{ "name": "nsite-clay", "version": "0.3.27", "type": "module", "description": "A self-editable nsite. One HTML file that edits and republishes itself, hosted on Nostr.", "license": "MIT-0", "homepage": "https://nsite-clay.cypherpunk.today/", "repository": { "type": "git", "url": "git+https://github.com/jooray/nsite-clay.git" }, "keywords": [ "nostr", "nsite", "blossom", "nip-5a", "malleable-html", "self-saving", "single-file", "static-site", "local-first", "no-build", "contenteditable" ], "bin": { "nsite-clay": "bin/nsite-clay.mjs" }, "main": "./dist/nsite-clay.esm.js", "exports": { ".": "./dist/nsite-clay.esm.js", "./dist/*": "./dist/*", "./src/*": "./src/*", "./package.json": "./package.json" }, "files": [ "dist/", "src/", "bin/", "examples/", "templates/", "icons/", "README.md", "LICENSE" ], "scripts": { "build": "node build.mjs", "test": "node test/secret-files.mjs && node test/served-types.mjs && node test/relay-list.mjs && node test/unpublish.mjs && node test/upgrade-siblings.mjs && node test/pull.mjs && node test/verify.mjs && node test/stale-copy.mjs && node test/remembered-editor.mjs && node test/kept-signin.mjs && node test/multi-page.mjs && node test/agent-brief.mjs && node test/ai-client.mjs && node test/ai-workflows.mjs && node test/ai-pictures.mjs && node test/publisher-ai.mjs && node test/publisher-key.mjs && node test/vault.mjs && node test/cashu.mjs && node test/wallet.mjs && node test/e2e-ai.mjs && node test/ai-evaluation.mjs", "prepublishOnly": "npm run build && npm test", "site:build": "node build.mjs && cp dist/nsite-clay.js dist/nsite-clay-source.js dist/nsite-clay-wallet.js site/ && cp templates/_shared/nsite-clay-base.css templates/_shared/nsite-clay-chrome.js site/ && cp icons/nsite-clay-transparent.png icons/nsite-clay-mark.svg icons/nsite-clay.png site/ && cp media/editing.png site/ && mkdir -p site/shots && cp media/guide/*.png site/shots/ && node tools/stage-templates.mjs && node tools/stage-deploy.mjs && node tools/stage-runtime.mjs && node tools/stage-agent.mjs", "devnet": "node tools/devnet.mjs", "publish:local": "npm run site:build && node tools/publish-local.mjs", "walkthrough": "npm run site:build && node tools/publish-walkthrough.mjs", "site:serve": "npm run site:build && node -e \"const{createServer}=require('node:http'),{readFileSync,statSync}=require('node:fs'),{join,extname}=require('node:path');const T={'.html':'text/html','.js':'text/javascript','.css':'text/css','.png':'image/png','.svg':'image/svg+xml','.md':'text/markdown'};createServer((q,s)=>{let p=join('site',decodeURIComponent(q.url.split('?')[0]));try{if(statSync(p).isDirectory())p=join(p,'index.html')}catch{}try{const b=readFileSync(p);s.writeHead(200,{'Content-Type':T[extname(p)]||'application/octet-stream'});s.end(b)}catch{s.writeHead(404);s.end('not found')}}).listen(4780,()=>console.log('site/ on http://127.0.0.1:4780/ (site root = server root, as a gateway serves it)'))\"", "review": "npm run site:build && node tools/review.mjs", "demo:build": "node build.mjs && rm -rf demo-dist && mkdir -p demo-dist && cp demo/index.html demo-dist/ && cp dist/nsite-clay.js demo-dist/ && cp templates/_shared/nsite-clay-base.css templates/_shared/nsite-clay-chrome.js demo-dist/", "demo:serve": "npm run demo:build && node -e \"const{createServer}=require('node:http'),{readFileSync,statSync}=require('node:fs'),{join,extname}=require('node:path');const T={'.html':'text/html','.js':'text/javascript','.css':'text/css'};createServer((q,s)=>{let p=join('demo-dist',decodeURIComponent(q.url.split('?')[0]));try{if(statSync(p).isDirectory())p=join(p,'index.html')}catch{}try{const b=readFileSync(p);s.writeHead(200,{'Content-Type':T[extname(p)]||'application/octet-stream','Cache-Control':'no-store'});s.end(b)}catch{s.writeHead(404);s.end('not found')}}).listen(4790,()=>console.log('demo on http://127.0.0.1:4790/'))\"" }, "dependencies": { "@noble/hashes": "^1.7.1", "hyper-undo": "0.6.0", "nostr-tools": "^2.10.4", "parse5": "8.0.1", "qrcode-generator": "^1.5.2", "quickcrop": "1.2.0", "ws": "^8.18.0" }, "devDependencies": { "dompurify": "^3.4.15", "esbuild": "^0.24.2", "playwright": "1.62.1" }, "engines": { "node": ">=18" } }