{"_id":"@eikeon/nostr-relay","_rev":"10-1adcd4768f497726d1d8cdc791b693a5","name":"@eikeon/nostr-relay","dist-tags":{"alpha":"1.0.3-alpha.2","latest":"2.2.0"},"versions":{"0.1.0":{"name":"@eikeon/nostr-relay","version":"0.1.0","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@0.1.0","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"dist":{"shasum":"c85b5511eeedf6474100a6b35a970f90454b37c9","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-0.1.0.tgz","fileCount":43,"integrity":"sha512-9VmEmECZMVJVswsQpUa44oJvcy9ynYsXVzYqD1QvonkBiO/9iUY6L7peptr0StfC9VqSFSHsWaeC2RqdVhm26Q==","signatures":[{"sig":"MEQCIH3Y2MkDiRGlp+LzNmo6ST+RZFWUcpqBcgI+NF31hyNWAiADJGx/SYixu+V55LuxjzFBbJIv4ucXHG7iARpSnhcfIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91200},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"55ba94b2f409ec3a452ada20a80938ec61050a43","scripts":{"dev":"tsx src/index.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash scripts/smoke-test.sh","start":"node dist/index.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"eikeon","email":"eikeon@eikeon.com"},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"25.2.1","dependencies":{"effect":"4.0.0-beta.10","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.1","vitest":"^3.2.0","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24","@effect/vitest":"^4.0.0-beta.10","@eslint/compat":"^2.0.2","@eslint/eslintrc":"^3.3.3","semantic-release":"^25.0.3","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_0.1.0_1771804561709_0.7934895335288468","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@eikeon/nostr-relay","version":"1.0.0","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@1.0.0","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"dist":{"shasum":"a7b192db988535b4c4632e2155719d5c92efb872","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-1.0.0.tgz","fileCount":43,"integrity":"sha512-jO0eq5MlMD68dKwGNnGAUdjxHl0VHv9aQb9mIm21FL4188EKWsjAJDp3x6NI0EYa2Xh/0x3sbLg0APb3zY1Akg==","signatures":[{"sig":"MEQCIE/bSv+cPy+FP/8y4jZtnSWi8pwov8KxS3o+zYYKXLWAAiB4l9KCOVk8Z3O3MNAjCmZLCoU8SfxqMJpkgu3VRIvK2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91200},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"f6b947c08bd29daefb53bbbcf59cbf2755f7c9cf","scripts":{"dev":"tsx src/index.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash scripts/smoke-test.sh","start":"node dist/index.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.10.1","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.0","dependencies":{"effect":"4.0.0-beta.10","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.10"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.1","vitest":"^3.2.0","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24","@effect/vitest":"^4.0.0-beta.10","@eslint/compat":"^2.0.2","@eslint/eslintrc":"^3.3.3","semantic-release":"^25.0.3","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_1.0.0_1771808673059_0.6553048559643144","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@eikeon/nostr-relay","version":"1.0.1","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@1.0.1","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"dist/index.js"},"dist":{"shasum":"456a86232aed25d0b1c6fff6d13f94c00677dbee","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-1.0.1.tgz","fileCount":44,"integrity":"sha512-MpeKjyM7J23NvaUhDmpupwtoIs6KO/4YLkUK/SDt5GjV+H8JGChONKh2N2iX4tRE1YoOXSn9x+//2fGp/3cRuQ==","signatures":[{"sig":"MEUCIQCwd61jdrKTYMViOr9GOQLzOPzP7qWXytn+qS0A1qlW5gIgT86JgpemrST1c6D3Xr5WJ6N/TqP+mJKCWrxsDqJI3Ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91670},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"47fcc43cdf3f1d4258d769596a0c8ad69dfbe027","scripts":{"dev":"tsx src/index.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash scripts/smoke-test.sh","start":"node dist/index.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.10.1","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.0","dependencies":{"effect":"4.0.0-beta.11","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.11"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.1","vitest":"^3.2.0","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24","@effect/vitest":"^4.0.0-beta.10","@eslint/compat":"^2.0.2","@eslint/eslintrc":"^3.3.3","semantic-release":"^25.0.3","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_1.0.1_1771813318612_0.18948712080943086","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@eikeon/nostr-relay","version":"1.0.2","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@1.0.2","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"fccba90c335c7f4dace19a10645ffd7313b410cc","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-1.0.2.tgz","fileCount":45,"integrity":"sha512-nMRZOvvimjLsAT/Us02voakN+mViuqiL7ue3c8bbmopTLLcJfr4eGNGLZ/O6E688YnklEMWP6p+MIMSu8YYqTw==","signatures":[{"sig":"MEUCIQDH2apvqONPMkCJmx/RLPR4kNne+6y77dVRIdd+KDZ5lwIgQ6xHQby9MiIqbcxRIJOv7VY32+uobc5K5KPKuhpQ8FA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91732},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=24.0.0"},"gitHead":"677cd8453e1d7daee55dbacb41e195c6b3c650cb","scripts":{"dev":"tsx src/index.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash scripts/smoke-test.sh","start":"node dist/index.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.10.1","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.0","dependencies":{"effect":"4.0.0-beta.11","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.11"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^10.0.1","vitest":"^3.2.0","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24","@effect/vitest":"^4.0.0-beta.10","@eslint/compat":"^2.0.2","@eslint/eslintrc":"^3.3.3","semantic-release":"^25.0.3","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1","@typescript-eslint/parser":"^8.56.0","@typescript-eslint/eslint-plugin":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_1.0.2_1771814227653_0.10057131375895456","host":"s3://npm-registry-packages-npm-production"}},"1.0.3-alpha.1":{"name":"@eikeon/nostr-relay","version":"1.0.3-alpha.1","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@1.0.3-alpha.1","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"e6de52a23f3c6087b1cd2e9cfe084a665c812d94","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-1.0.3-alpha.1.tgz","fileCount":65,"integrity":"sha512-BAPkKDiAMs/SC8LDM7rm4AsODun/vj09XOny1obQkxf5WpMDrXFuYDA7nhpC1LHUCk1jXawvTyJwFwCyVmFIyA==","signatures":[{"sig":"MEQCID1ivVnb3VhRLS0cy2QgjSrpsLZwTd6Z19tOO2nWOaIoAiAREgAd7Jro4Mr/ddg9w9gq0FNEprqqul5xKalE2GKAaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@1.0.3-alpha.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101524},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"gitHead":"709dee7baae617226d33d488e26c905bc818777e","scripts":{"dev":"tsx bin/nostr-relay.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash ../../scripts/smoke-test.sh","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.1","dependencies":{"effect":"4.0.0-beta.11","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.11"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ws":"^8.19.0","tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^3.2.1","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^25","@effect/vitest":"^4.0.0-beta.10","semantic-release":"^25.0.3","typescript-eslint":"^8.56.1","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_1.0.3-alpha.1_1772078010416_0.14238180028203629","host":"s3://npm-registry-packages-npm-production"}},"1.0.3-alpha.2":{"name":"@eikeon/nostr-relay","version":"1.0.3-alpha.2","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@1.0.3-alpha.2","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"6d8d594e3174cab2904a40680cbc1c889f5930ba","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-1.0.3-alpha.2.tgz","fileCount":65,"integrity":"sha512-tWn8jFnV1ciFeR7Ag4wbn2GGJVjy+tJxe9CoUQwrX4iRC767oDI1SwUAM2Wvi2+g5MgLIk9ETOXJrpSR3oHbmA==","signatures":[{"sig":"MEUCIQDlDxLVc473r3CGOsTyttsPMNUvr1+IC0OPgN2WbtcPcAIgbVdncxFgHbT/rYIDeSJ+Qbtp+wfyKXG2nNBdXmHAYyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@1.0.3-alpha.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101896},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"gitHead":"8c39711dccbbedc369ad759474d12752d3f48f9f","scripts":{"dev":"tsx bin/nostr-relay.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash ../../scripts/smoke-test.sh","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.1","dependencies":{"effect":"4.0.0-beta.17","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"ws":"^8.19.0","tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^3.2.4","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24.10.14","@effect/vitest":"4.0.0-beta.15","semantic-release":"^25.0.3","typescript-eslint":"^8.56.1","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_1.0.3-alpha.2_1772117197774_0.38228062445713507","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@eikeon/nostr-relay","version":"2.0.0","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@2.0.0","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"e028abf779cc480c797d2d891fd7a0d463a2d2a0","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-2.0.0.tgz","fileCount":65,"integrity":"sha512-Xoov+TXBKAKta/e7TfbMN6KcR/t+y3o+432pyjqK2rPydgy5MBnDMMI/Vt4hq46dAIBgVTYCNcal+JHex8Flxg==","signatures":[{"sig":"MEYCIQDaUWpLvdQgPe17A9sEmLFY91ASJ8lVRDYi0x5CjlorrAIhALI7HS1SOZcdmF5XQQx8jClLL9x4w6JmHY09Q6n/1CPR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101888},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"gitHead":"67120c5bba572ea72581944c5f6cd6ccb6f05948","scripts":{"dev":"tsx bin/nostr-relay.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash ../../scripts/smoke-test.sh","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.1","dependencies":{"effect":"4.0.0-beta.17","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^3.2.4","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24.10.14","@effect/vitest":"4.0.0-beta.15","semantic-release":"^25.0.3","typescript-eslint":"^8.56.1","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_2.0.0_1772118496627_0.44333314818909364","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@eikeon/nostr-relay","version":"2.1.0","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@2.1.0","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"fadee2d56e13d27d35f5022abf5ab09c4452de1a","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-2.1.0.tgz","fileCount":65,"integrity":"sha512-4cn2aB2928/Lm9J1FoqbhuUTZDkifIGoryz0bTH0Ojt3gukhIVDMAG22wBthEuY/vp7LxHb7j5Hx+DvR/7LaoA==","signatures":[{"sig":"MEUCIBZpgzt4ja+LoEs47fin0dhMQFUJNFFn7bFEElyWfKELAiEA28BDVwpPFbowvbZRnxdJq90ILCLgFly9AP4JwI0kbxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101888},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"gitHead":"e01100494f9de023b1d60886bc48184e6908ada0","scripts":{"dev":"tsx bin/nostr-relay.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash ../../scripts/smoke-test.sh","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.1","dependencies":{"effect":"4.0.0-beta.17","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^3.2.4","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24.10.14","@effect/vitest":"4.0.0-beta.15","semantic-release":"^25.0.3","typescript-eslint":"^8.56.1","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_2.1.0_1772228740871_0.5132393658205532","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@eikeon/nostr-relay","version":"2.1.1","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","_id":"@eikeon/nostr-relay@2.1.1","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"homepage":"https://github.com/eikeon/nostr-relay#readme","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"bin":{"nostr-relay":"bin/nostr-relay.js"},"dist":{"shasum":"858b56e34856639f7d311dfb3341d67f7ac9f50f","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-2.1.1.tgz","fileCount":65,"integrity":"sha512-YjM2v58RwoPvRZ0HwDhXSN8V/kKHQOAivE1bjVXQhSj6fokacZyc/GWCCi3ksaR0M2uHC/0lymXlKE6zK3KS8A==","signatures":[{"sig":"MEUCIQDxNowd4CfXMdimC5CAmg/m3DcpHULVUKjUgzllIzmjiAIgew//pDfo0xsuuey7GRgYoCz0CEPXNwJREODfiyNRnCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101888},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"gitHead":"3277d6de86ed41634e2796fda8924e0bd4214a09","scripts":{"dev":"tsx bin/nostr-relay.ts","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","test":"vitest run","build":"tsc","smoke":"bash ../../scripts/smoke-test.sh","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","lint:fix":"eslint \"src/**/*.ts\" --fix","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"repository":{"url":"git+https://github.com/eikeon/nostr-relay.git","type":"git"},"_npmVersion":"11.8.0","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","directories":{},"_nodeVersion":"24.13.1","dependencies":{"effect":"4.0.0-beta.17","nostr-tools":"^2.23.1","@effect/platform-node":"4.0.0-beta.17"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsx":"^4.21.0","eslint":"^10.0.2","vitest":"^3.2.4","@eslint/js":"^10.0.1","typescript":"~5.9.3","@types/node":"^24.10.14","@effect/vitest":"4.0.0-beta.15","semantic-release":"^25.0.3","typescript-eslint":"^8.56.1","@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1"},"_npmOperationalInternal":{"tmp":"tmp/nostr-relay_2.1.1_1772313557463_0.5428907346542726","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@eikeon/nostr-relay","version":"2.2.0","type":"module","license":"MIT","description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"main":"dist/src/index.js","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./dist/src/index.js"},"./memory":{"types":"./dist/src/in-memory-relay.d.ts","default":"./dist/src/in-memory-relay.js"},"./services":{"types":"./dist/src/services/index.d.ts","default":"./dist/src/services/index.js"},"./schema":{"types":"./dist/src/schema.d.ts","default":"./dist/src/schema.js"},"./filter":{"types":"./dist/src/filter.d.ts","default":"./dist/src/filter.js"},"./nip01":{"types":"./dist/src/nip01.d.ts","default":"./dist/src/nip01.js"},"./constants":{"types":"./dist/src/constants.d.ts","default":"./dist/src/constants.js"}},"bin":{"nostr-relay":"bin/nostr-relay.js"},"repository":{"type":"git","url":"git+https://github.com/eikeon/nostr-relay.git"},"publishConfig":{"access":"public","provenance":true},"scripts":{"dev":"tsx bin/nostr-relay.ts","build":"tsc","start":"node dist/bin/nostr-relay.js","prepare":"effect-language-service patch","prepublishOnly":"pnpm run build","test":"vitest run","lint":"eslint \"src/**/*.ts\" && tsc --noEmit","smoke":"bash ../../scripts/smoke-test.sh","lint:fix":"eslint \"src/**/*.ts\" --fix"},"dependencies":{"@effect/platform-node":"4.0.0-beta.17","effect":"4.0.0-beta.17","nostr-tools":"^2.23.1"},"devDependencies":{"@effect/eslint-plugin":"^0.3.2","@effect/language-service":"^0.75.1","@effect/vitest":"4.0.0-beta.15","@eslint/js":"^10.0.1","@types/node":"^24.10.14","eslint":"^10.0.2","semantic-release":"^25.0.3","tsx":"^4.21.0","typescript":"~5.9.3","typescript-eslint":"^8.56.1","vitest":"^3.2.4","ws":"^8.19.0"},"engines":{"node":">=24.0.0"},"gitHead":"252ff5dee6a076178320cd1ee94bfeec2ea431e6","_id":"@eikeon/nostr-relay@2.2.0","bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"homepage":"https://github.com/eikeon/nostr-relay#readme","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-xrmZ50m8lZxVCxU2OmZ0/iDGc1AtcnsDCkXAyio4fTF47xjOs+ydO/HsElHmOh8Dc073l9SsI/XuHG3AMGoHjw==","shasum":"08759c602541c11cf9acc10ae428c799c839a3ef","tarball":"https://registry.npmjs.org/@eikeon/nostr-relay/-/nostr-relay-2.2.0.tgz","fileCount":65,"unpackedSize":103676,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eikeon%2fnostr-relay@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDGpg/AL3tKi6fmh5NwrKzfEdLco8CzIQavhn7KJXzGAIgDse+bYycjqX8xFl+4sNJZW8c9mI9qpxl8cXMX+m8MoQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9a743aa-efb8-410e-9a41-3251a27829cc"}},"directories":{},"maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nostr-relay_2.2.0_1772460920353_0.5299277986742683"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-22T23:56:01.637Z","modified":"2026-03-02T14:15:20.766Z","0.1.0":"2026-02-22T23:56:01.865Z","1.0.0":"2026-02-23T01:04:33.214Z","1.0.1":"2026-02-23T02:21:58.754Z","1.0.2":"2026-02-23T02:37:07.813Z","1.0.3-alpha.1":"2026-02-26T03:53:30.552Z","1.0.3-alpha.2":"2026-02-26T14:46:37.921Z","2.0.0":"2026-02-26T15:08:16.849Z","2.1.0":"2026-02-27T21:45:41.016Z","2.1.1":"2026-02-28T21:19:17.601Z","2.2.0":"2026-03-02T14:15:20.498Z"},"bugs":{"url":"https://github.com/eikeon/nostr-relay/issues"},"author":{"name":"Daniel Krech","email":"eikeon@eikeon.com"},"license":"MIT","homepage":"https://github.com/eikeon/nostr-relay#readme","repository":{"type":"git","url":"git+https://github.com/eikeon/nostr-relay.git"},"description":"NIP-01 NOSTR relay - WebSocket server built with Effect v4","maintainers":[{"name":"eikeon","email":"eikeon@eikeon.com"}],"readme":"# @eikeon/nostr-relay\n\nNIP-01 NOSTR relay - WebSocket server built with Effect v4.\n\n## Overview\n\nNOSTR is a decentralized protocol for social applications. This relay implements a NIP-01 WebSocket server using Effect v4. Events are stored in memory only (no persistence). For a persistent implementation, see [@eikeon/nostr-relay-aws](https://www.npmjs.com/package/@eikeon/nostr-relay-aws), the AWS serverless-backed version (DynamoDB, Lambda, API Gateway WebSocket).\n\n## NIPs Implemented\n\n- **NIP-01** ([spec](https://github.com/nostr-protocol/nips/blob/master/01.md))\n  - **Events**: schema validation (id, pubkey, created_at, kind, tags, content, sig)\n  - **Filters**: ids, authors, kinds, since, until, limit, and single-letter tag filters (#e, #p, #a, etc.)\n  - **Kind semantics**: replaceable (0, 3, 10000–19999), ephemeral (20000–29999), addressable (30000–39999), regular (1000–9999)\n  - **Protocol**: REQ, EVENT, CLOSE message handling\n\n## Requirements\n\n- Node.js >= 24.0.0\n\n## Run from npm\n\n```bash\nnpx @eikeon/nostr-relay\n```\n\nConnects at `ws://localhost:8181`. Or install globally:\n\n```bash\nnpm install -g @eikeon/nostr-relay\nnostr-relay\n```\n\n## Develop from source\n\nThis is a pnpm monorepo. The in-memory relay lives in `packages/nostr-relay`; the AWS serverless implementation is in `packages/nostr-relay-aws`.\n\n```bash\ngit clone https://github.com/eikeon/nostr-relay.git\ncd nostr-relay\npnpm install\npnpm run dev\n```\n\n### Scripts\n\n| Script           | Purpose                          |\n| ---------------- | -------------------------------- |\n| `pnpm run dev`   | Start relay (tsx)                |\n| `pnpm run build` | Compile TypeScript               |\n| `pnpm run start` | Run compiled relay               |\n| `pnpm run test`  | Run vitest                       |\n| `pnpm run smoke` | Verify relay starts on port 8182 |\n| `pnpm run lint`  | ESLint + tsc check               |\n\nFor production: `pnpm run build && pnpm run start`.\n\n## Configuration\n\n- `RELAY_PORT` - Port to listen on (default: 8181)\n- `RELAY_HOST` - Host to bind (default: 0.0.0.0)\n- `RELAY_CREATED_AT_WINDOW_SEC` - Max seconds event created_at can differ from now (default: 900)\n- `RELAY_BANNED_PUBKEYS` - Comma-separated 64-char hex pubkeys to ban (default: empty)\n\n## See also\n\n- [@eikeon/nostr-relay-aws](https://www.npmjs.com/package/@eikeon/nostr-relay-aws) - AWS serverless implementation (DynamoDB, Lambda, API Gateway WebSocket)\n\n## License\n\nMIT License (see [LICENSE](LICENSE)).\n","readmeFilename":"README.md"}