Ctrl K
ComunidadGuías…

package.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "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"
  }
}