{"_id":"signet-login","_rev":"39-2c090332cd236d0774fb6f41f05f115c","name":"signet-login","dist-tags":{"latest":"0.17.3"},"versions":{"0.1.0":{"name":"signet-login","version":"0.1.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.1.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"821cc4c040def7cf16123aec51455fbd0a452106","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.1.0.tgz","fileCount":20,"integrity":"sha512-DE6X4tjtXLoImhhCVRLfA5LK9iy/c4RnMhHGo7pFZiVeRTQql/Nj1oNo6Tw2IgykIF34nG1INzzPwyRw0W5+6Q==","signatures":[{"sig":"MEQCIAvaJSps+CAkPoRrcFsp5CwcKXnuKYoGIQndWn1IG/VNAiBwWP0ljR1/2G/tKQL5oXliNINpyqnpJxbNcUi8bnJYLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236762},"main":"./dist/signet-login.js","type":"module","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"gitHead":"e18e34a24818d5a7805a35e16ddf75550885f63d","scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"},"repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.11.0","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.1.0_1778402355495_0.8245360393241483","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"signet-login","version":"0.2.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.2.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"20384d5350923f3f664226805e04139c9726f7d9","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.2.0.tgz","fileCount":20,"integrity":"sha512-TnWRPUlpQLKWfDo0VUu+N0u54ampXDR+5lIGswqC9GCCeMqkUuZ837+sKjNSSvqSNd/56RQlHaCl1VdwheQ6rg==","signatures":[{"sig":"MEUCICH3kHNohBocNK4lDALPUQJaWvHgzLFIObq6fi7ekyRCAiEA49YckGvPhCN48eIGRvTinn8Rh0gxaDLyXKgTKbEB3yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236758},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.2.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.2.0.tgz","_integrity":"sha512-TnWRPUlpQLKWfDo0VUu+N0u54ampXDR+5lIGswqC9GCCeMqkUuZ837+sKjNSSvqSNd/56RQlHaCl1VdwheQ6rg==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.2.0_1778404663516_0.7474734269977383","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"signet-login","version":"0.3.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.3.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"4f5b9e9f4c344c6ded74dc34ae25b98368db27ec","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.3.0.tgz","fileCount":20,"integrity":"sha512-UeAmhhU2bxvp0d9B2QJxt16Q4yW1Xp87otCidpfUeEhFIbhYdjEGNpnem5ZhhFlJrTHpFmSS7Isj91hZwEcOAA==","signatures":[{"sig":"MEUCIQDdG1DRQcLna9ThX22mXw50lNvyz0OmmnhfXiM50ISCMwIgaqbM8MnDhXSDP2OO1IyZgQmV0tP+Jtm8VbANP8Jg8L0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242242},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.3.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.3.0.tgz","_integrity":"sha512-UeAmhhU2bxvp0d9B2QJxt16Q4yW1Xp87otCidpfUeEhFIbhYdjEGNpnem5ZhhFlJrTHpFmSS7Isj91hZwEcOAA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.3.0_1778415809437_0.6269246726331965","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"signet-login","version":"0.4.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.4.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"92298148c03c370dba25378762c005122e8f920b","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.4.0.tgz","fileCount":20,"integrity":"sha512-xLDAfyaRZkMQsXbRkElr/tP4Ws/4b2oihUpkrPZzuO64RAPchE5gzUmnGixKrD7wlSONw1eI7a61uxXlaXPibQ==","signatures":[{"sig":"MEUCIQC6Y9aFepm/B06J7n1nU9XD1QqSDY0OgYeGMWNy6w0FbwIgeLZ/bDQzYlf7JVyoW7VHPXbchEVZtGGkJ0cDi8ezg74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":267547},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.4.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.4.0.tgz","_integrity":"sha512-xLDAfyaRZkMQsXbRkElr/tP4Ws/4b2oihUpkrPZzuO64RAPchE5gzUmnGixKrD7wlSONw1eI7a61uxXlaXPibQ==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.4.0_1778425521635_0.6294888783078698","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"signet-login","version":"0.5.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.5.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"6a15bd101df7240913ceda8e96ae1b5f44faa467","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.5.0.tgz","fileCount":20,"integrity":"sha512-NYgvmkE1rCvVvcsDZqnLbtSOveFJ+swVhGLGOj5Tqqy0I2ZuuTCM9K2Q9qc+26ijXPBsrU8CWPsaqNXB25pg1A==","signatures":[{"sig":"MEUCIQC5SsGY/6i/49+1JxaFNrMv3Zhto/XRQjhgriAMgaDOnQIgOUz4z2eni7C2k/+QTcjWqiSCwf5QPEEkW57Ju2dRvoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284889},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.5.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.5.0.tgz","_integrity":"sha512-NYgvmkE1rCvVvcsDZqnLbtSOveFJ+swVhGLGOj5Tqqy0I2ZuuTCM9K2Q9qc+26ijXPBsrU8CWPsaqNXB25pg1A==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.5.0_1778428778646_0.12360056871514558","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"signet-login","version":"0.6.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.6.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"8df6fa452e008ec4a11b5fe4a92402cef18e7e25","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.6.0.tgz","fileCount":20,"integrity":"sha512-cLbCRQQ7+Gpi42Srs4Tin3bHKWA0IJgoKcPlLUYSc7RfZDoicC43qzHbfabjQulLQbIWWmTbn9CtDUH9qnKs+w==","signatures":[{"sig":"MEUCIQDoCKxnQgkFZLNVXsAY8rmcXV7m6JPvAlBnGWuGv3sC6gIgFPQ9Q7LDL95qAFC4tEd1oWjiNNMIogMkS41l8bnt4tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":297391},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.6.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.6.0.tgz","_integrity":"sha512-cLbCRQQ7+Gpi42Srs4Tin3bHKWA0IJgoKcPlLUYSc7RfZDoicC43qzHbfabjQulLQbIWWmTbn9CtDUH9qnKs+w==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.6.0_1778429180731_0.05337921338762741","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"signet-login","version":"0.7.0","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.7.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"fc25d259f6d7d4b41c69a2baa829db6bde311c5f","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.7.0.tgz","fileCount":22,"integrity":"sha512-YY/0XcoGGUvWm3hpI1xIjofVpgtc+yx7A32jOR2pewRolNSjr0nzVG5z/NtFkZdyXmIzeWgxZQ1NTJsveBtR8A==","signatures":[{"sig":"MEUCIGt9zU37WLq88j4HhUn4W8qIboq0X7ROfd3XHD2mBq0qAiEAnMWqZyJWcEWOwCFzwAvAqOKMJXO4zRu9FikLvJZvuFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311886},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.0.tgz","_integrity":"sha512-YY/0XcoGGUvWm3hpI1xIjofVpgtc+yx7A32jOR2pewRolNSjr0nzVG5z/NtFkZdyXmIzeWgxZQ1NTJsveBtR8A==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.7.0_1778429518931_0.4845971883645501","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"signet-login","version":"0.7.1","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.7.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"f7337bd8bd0eed881564f93b84a8dde466308eb9","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.7.1.tgz","fileCount":22,"integrity":"sha512-iLzF9JM5Ip2Ux+b0T+UF9iCRFNvGEQBnmOaRifFlDoKWLo8YWuII/GL6D5ub6TD78a1+R+ZlxHr9KZ9zZGdlBg==","signatures":[{"sig":"MEQCIDSYJbzJnOHB6Upg1xjjxQUo17/BzLAkkw/gxftplI97AiAzj/y2GCkhBg5r6vF6TY8jFfT7pshUmO0VQ54AC/OkIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313480},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.1.tgz","_integrity":"sha512-iLzF9JM5Ip2Ux+b0T+UF9iCRFNvGEQBnmOaRifFlDoKWLo8YWuII/GL6D5ub6TD78a1+R+ZlxHr9KZ9zZGdlBg==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.7.1_1778836020725_0.45588941390840376","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"signet-login","version":"0.7.2","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.7.2","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"59549f7925e7cf50b5e4b092321c43900b152028","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.7.2.tgz","fileCount":22,"integrity":"sha512-CrATDLewsMbiNFhWOEWu4Vd+ZYcM/L0tn11L3XhLroiM90q4RjbIpPbRsYZWDgwzgry+ESaOOlyY/mZeyg9GTw==","signatures":[{"sig":"MEQCIF5/Tq/hr4GmeXD99Ge0GxS2fVRiqWVbdvv7K02R9jInAiAeIPtu2dwxMxlVXztG5vhfg8HiMTiIqp61JLRdL26i8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":315989},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.2.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.7.2.tgz","_integrity":"sha512-CrATDLewsMbiNFhWOEWu4Vd+ZYcM/L0tn11L3XhLroiM90q4RjbIpPbRsYZWDgwzgry+ESaOOlyY/mZeyg9GTw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.7.2_1780642648724_0.942350568600498","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"signet-login","version":"0.9.6","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.6","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"c01e565dd5e51518ff514037cb2b7a0d69de7cf8","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.6.tgz","fileCount":22,"integrity":"sha512-McASfyHPTYe85kMIuUpa31Dc34QUT7d4GkxDlOZhtO2a7ZFPVV40VWZPs61wKce2jetX/T2bEk3GHluqCPLl9g==","signatures":[{"sig":"MEYCIQCAiHgRYUS0KbitRUV7dNWUe6h7e7rxYiZ9MwQpuh1BuAIhAP9tAfgbLjcLLtER43RZZ/ndI5ryLI8duGI/oa5SW97m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341448},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.6.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.6.tgz","_integrity":"sha512-McASfyHPTYe85kMIuUpa31Dc34QUT7d4GkxDlOZhtO2a7ZFPVV40VWZPs61wKce2jetX/T2bEk3GHluqCPLl9g==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.3.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.6_1780829652171_0.7868259005960252","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"signet-login","version":"0.9.8","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.8","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"9cd0a8d188f2555b292f843f60f9aa712eb692ae","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.8.tgz","fileCount":22,"integrity":"sha512-5FlFMH3r+K2YQnWa++8haXZuZRNdCCHOO7TGWZtDI6FtXpGkrZTh/effqqhXqHp9zt+uvFTrhNVvpxpDUlpCHw==","signatures":[{"sig":"MEQCIB/MyVBlV9PqNBxJMUpjy6+2msYzO5dJOvBFrcbTUMWsAiAfdjK9MTwkjCeEeeATBg5GiTJAsajdXmGV4Fg7GhPQ7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341564},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.8.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.8.tgz","_integrity":"sha512-5FlFMH3r+K2YQnWa++8haXZuZRNdCCHOO7TGWZtDI6FtXpGkrZTh/effqqhXqHp9zt+uvFTrhNVvpxpDUlpCHw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.8_1780833302848_0.8606622818677905","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"signet-login","version":"0.9.9","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.9","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"b391bf270e16abf18434374d0ba76b2472945f80","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.9.tgz","fileCount":22,"integrity":"sha512-hGDTn+i0JlIbF0WNlVVPJLMZuyHS7mndAqB/noARLKSyHj3Z9mrV9XbMvq3C5LQqbJSuPWzFUjSstGT5igB87Q==","signatures":[{"sig":"MEYCIQCA+BloQtVGoV1XScadN9X6MJKcCHxuNtGsQ2vGYIo/CAIhAPaH5OL7Mawg0VYlqLsJB0YSjKoeY9bXQxphlEFuva+3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342400},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.9.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.9.tgz","_integrity":"sha512-hGDTn+i0JlIbF0WNlVVPJLMZuyHS7mndAqB/noARLKSyHj3Z9mrV9XbMvq3C5LQqbJSuPWzFUjSstGT5igB87Q==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.9_1780834639296_0.7424039551033659","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"signet-login","version":"0.9.10","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.10","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"15249234fd3660c74855e94547ed8148a7845c45","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.10.tgz","fileCount":22,"integrity":"sha512-jbGbdLjtNlH58XwmtTmFNRrxypQt7BngD7vGIY0ku0mNIUdf707FjCyxKaYffvDYPGiMlyyTuTY+bhdSRAOtNg==","signatures":[{"sig":"MEUCIQCnrb3ap+tPmJYxyJ7mT+o2863VJGoQbkOIrPQ2ysBYSgIgRzk/05Lo4BCeKT0Z2+M2F1hlM6YgPLe1kY1S/RCrFWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":343482},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.10.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.10.tgz","_integrity":"sha512-jbGbdLjtNlH58XwmtTmFNRrxypQt7BngD7vGIY0ku0mNIUdf707FjCyxKaYffvDYPGiMlyyTuTY+bhdSRAOtNg==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.10_1780845161391_0.3058832675694978","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"signet-login","version":"0.9.11","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.11","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"8229cc6897f498362b01dbabdda4636457d01f52","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.11.tgz","fileCount":22,"integrity":"sha512-ifpZG+bnES0lz+xq+CT9aD4auvtVdxWs5WKuPBO1Eb7srWAcaU1YOe2LDmTHwI4v7ZrYCCn9MRxsSH1v+a2zwA==","signatures":[{"sig":"MEQCIG+G5xSt1QHKE8jgqacsSFowMRphAm3Fzm9rNI3tPvIJAiBvwzw6rYQfuDPpkqnr8UTy+Pbd25unmu5An+ygUhvbVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344347},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.11.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.11.tgz","_integrity":"sha512-ifpZG+bnES0lz+xq+CT9aD4auvtVdxWs5WKuPBO1Eb7srWAcaU1YOe2LDmTHwI4v7ZrYCCn9MRxsSH1v+a2zwA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.11_1780846998207_0.42470648325458416","host":"s3://npm-registry-packages-npm-production"}},"0.9.13":{"name":"signet-login","version":"0.9.13","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.13","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"1a36e7d138e58e5432e6617dba4075e613db7606","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.13.tgz","fileCount":22,"integrity":"sha512-Qcn9ZANZMa1M2nsUKZ+UUt0oXCsML90SBxi6QL7ZGR4K2/Kbucg6gQYrQUbxefk1Z6iqTVBboAt9HGa/KymjJQ==","signatures":[{"sig":"MEUCIQDexFtHSpH8xWh2k3D9Xt+RGpsSNM7UpphEOEERKR+RSAIgMJcH8foEIwnshUb4zeKddn0kjfGyu0yWvXcHY3PqGEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345225},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.13.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.13.tgz","_integrity":"sha512-Qcn9ZANZMa1M2nsUKZ+UUt0oXCsML90SBxi6QL7ZGR4K2/Kbucg6gQYrQUbxefk1Z6iqTVBboAt9HGa/KymjJQ==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.13_1780850673601_0.610642211768166","host":"s3://npm-registry-packages-npm-production"}},"0.9.14":{"name":"signet-login","version":"0.9.14","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.14","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"cd74c85fcb8d7ce218ff00ea5c170cfad5288568","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.14.tgz","fileCount":22,"integrity":"sha512-I4/HAAl+wyD3c5NwynW/Nzgo/rScb2FLiuVyg9NBAXhjv6AFq/ObMh7738TKkEIsr9q3cjW1xfVfEERfGb2rBw==","signatures":[{"sig":"MEYCIQCxozWQL0qzJckD4gAgtZq1S3pKRYxeUBbCa3jysKb3mgIhAMBEkgRuBqo5POTmG+8j2nXASx22qQrxvww5snAlMQeT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345523},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.14.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.14.tgz","_integrity":"sha512-I4/HAAl+wyD3c5NwynW/Nzgo/rScb2FLiuVyg9NBAXhjv6AFq/ObMh7738TKkEIsr9q3cjW1xfVfEERfGb2rBw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.14_1781094092874_0.7647623989840673","host":"s3://npm-registry-packages-npm-production"}},"0.9.15":{"name":"signet-login","version":"0.9.15","keywords":["nostr","signet","login","authentication","nip-07","nip-46","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.9.15","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"1fe855d09acd48e7f87f84642afec0310023a1c4","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.9.15.tgz","fileCount":22,"integrity":"sha512-z8RRxCs6df/rwzJz779+iiwQC3iimtGL0ZKFOHd0GJMzj/xe+SSbTqk7yJPi4VskofzPfvYAE5A5goY+bqG0ww==","signatures":[{"sig":"MEUCIQCJhqAxNfrNf5whfk+d5LMpBlALDAOAYfvAJlQWxteIyAIgEhL7WI+ratv0j7YSRHIEeBT2Je60C8ZbFShRrIsI+ws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.9.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345748},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.15.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.9.15.tgz","_integrity":"sha512-z8RRxCs6df/rwzJz779+iiwQC3iimtGL0ZKFOHd0GJMzj/xe+SSbTqk7yJPi4VskofzPfvYAE5A5goY+bqG0ww==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Sign in with Signet — drop-in login SDK for Nostr-aware websites. NIP-07, bunker URI, and Signet redirect/QR in one unified API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^3.2.4","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.9.15_1781248764965_0.7113446758946211","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"signet-login","version":"0.10.0","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"0ba57e54a1385e502e30972952f0989387ec7fac","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.0.tgz","fileCount":26,"integrity":"sha512-6GzIOTtUZ/uqmB+Ag8ZjR3fd7ufuX/E/PBnqIeGf+AMwBRRpUM71C30S+8Fx1dfxmHQ7JSmbAsoJbaUbmTRG6A==","signatures":[{"sig":"MEUCIFDuYgow238eeHhOxDWz2+7tLlhUiNHmkKe8nbgeCUZnAiEAgN8Y1ilLEskdzpyVYOiSqYqimIG2tgv2DbgjRLeoOYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":520280},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.0.tgz","_integrity":"sha512-6GzIOTtUZ/uqmB+Ag8ZjR3fd7ufuX/E/PBnqIeGf+AMwBRRpUM71C30S+8Fx1dfxmHQ7JSmbAsoJbaUbmTRG6A==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.0_1781607472202_0.2568337089979895","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"signet-login","version":"0.10.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"fef1dd9a2d81e5da9abde8ac729f2706e8267d4c","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.1.tgz","fileCount":25,"integrity":"sha512-fou6SLqtyqQ4aEytSBltdROP5SeE5NNNvAV4VlVvbxJnCjywpH41hc+n2WrQTQ4/IvNYJZDmlN6RkX4PvXEEvA==","signatures":[{"sig":"MEUCIFDDUNpu4KBIEDaO7tl6pj5oK59PoSNCvKBLFTTIk5GXAiEAl/OD1rsssrdW0GKqEICqlccmQRyfcDx5RQvbgDvdZBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":521690},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.1.tgz","_integrity":"sha512-fou6SLqtyqQ4aEytSBltdROP5SeE5NNNvAV4VlVvbxJnCjywpH41hc+n2WrQTQ4/IvNYJZDmlN6RkX4PvXEEvA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.1_1781612315648_0.5459390234374901","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"signet-login","version":"0.10.2","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.2","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"a54945adf196d6091e89fada6d985552fb0f3a0f","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.2.tgz","fileCount":25,"integrity":"sha512-e46W5CYq/BLRpKTK0lFx+iqoIOhKDDlBNv6yDyLyVkdq2MQFsrl/tSeZMNn4dM6BHzJwA6sz4zYLZxdmHOFDgA==","signatures":[{"sig":"MEQCIGrsgVMVv3Li9ia4EDvVZbYq1fjIY7ZnW24Cu7441I25AiBIrNi6l89Tgg9Lz4t/M1krsiRp2YQEDVm7C7HTJSH2Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":523975},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.2.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.2.tgz","_integrity":"sha512-e46W5CYq/BLRpKTK0lFx+iqoIOhKDDlBNv6yDyLyVkdq2MQFsrl/tSeZMNn4dM6BHzJwA6sz4zYLZxdmHOFDgA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.2_1781614266467_0.6248821095112254","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"signet-login","version":"0.10.3","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.3","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"3f1055717b3a3a5c208e35374e73ca0a78845b28","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.3.tgz","fileCount":25,"integrity":"sha512-1FcF4R0n7SxN7w8IKHOnFPobBP5HuEp83tQT5pXCW2zfJks/ZQ/zeKdtK2qGvZ1LSBr4ECcIP1qflaNao1RZxw==","signatures":[{"sig":"MEQCIHvCFC8Te4Juak57eufTqZ0XCKFOe4IxTDrSociaebkWAiBpGqY3PUJM69wI8KM6Kag3eQ7Y3JWBLagEUFWmQp9ebQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":529193},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.3.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.3.tgz","_integrity":"sha512-1FcF4R0n7SxN7w8IKHOnFPobBP5HuEp83tQT5pXCW2zfJks/ZQ/zeKdtK2qGvZ1LSBr4ECcIP1qflaNao1RZxw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.3_1781640327633_0.34002805299673344","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"signet-login","version":"0.10.4","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.4","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"e902de9edb4825d39a109aa3b44b9e23355d670d","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.4.tgz","fileCount":25,"integrity":"sha512-TGOyqAj1CCZQ9NhP6cG5UxiNaUr9VuaB+DPkvbwAPJ0y+aRRZjunCkkfKGCMy6qqUEKfCWfwmE7VdgdzUd+Kfw==","signatures":[{"sig":"MEQCIF5rEhW9hE9GZJvlAlw/d/pmBh4dSOrGRNWIEJUQK71QAiBaN2L1svawdm+GbpDJXV0LUeI7bPlHof/nziauwYK6UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532820},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.4.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.4.tgz","_integrity":"sha512-TGOyqAj1CCZQ9NhP6cG5UxiNaUr9VuaB+DPkvbwAPJ0y+aRRZjunCkkfKGCMy6qqUEKfCWfwmE7VdgdzUd+Kfw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.4_1781680326124_0.6029627117834528","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"signet-login","version":"0.10.5","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.5","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"e49926d46e5fc68bb8f64316a679004ed7f44556","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.5.tgz","fileCount":25,"integrity":"sha512-Dd1xRoL/38LlBGD1/bB1oa5DAAEdf8s4YywF/iiSxhoyHAceUPGcblF+/gh5TmbbDIYphIj7VmlMQvEwYLytyg==","signatures":[{"sig":"MEUCIQDe6wvrujYSZ2TdCSk/3TIpMG9HL6xkQYzRbWLJVumYDQIgA+9b5WuGe1x9Fwy2k0dl2oYD30/+8qtJFT6y/BVHCvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533094},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.5.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.5.tgz","_integrity":"sha512-Dd1xRoL/38LlBGD1/bB1oa5DAAEdf8s4YywF/iiSxhoyHAceUPGcblF+/gh5TmbbDIYphIj7VmlMQvEwYLytyg==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.5_1781681294145_0.6310640640425917","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"signet-login","version":"0.10.7","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.7","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"e6b03e85291e18bb08ad2a1121983964118b11be","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.7.tgz","fileCount":25,"integrity":"sha512-NywbFEYQP7VyoZlDTeOAb5uuRbBrhDJpD9nBo0gSk1lHvODV8akb5x6uJKt+A4fFhEWQ3L8ioCyfnbSoiG6jag==","signatures":[{"sig":"MEQCICkgsbOboER+t+aI47nHMTtftUEVmWrgQDAvuAogwtsAAiAJDPtuCq/HsR67ygWnaktSyuMALpb6Pq5l2nz98cvDNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":561352},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.7.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.7.tgz","_integrity":"sha512-NywbFEYQP7VyoZlDTeOAb5uuRbBrhDJpD9nBo0gSk1lHvODV8akb5x6uJKt+A4fFhEWQ3L8ioCyfnbSoiG6jag==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.7_1781690914031_0.8949729377675832","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"signet-login","version":"0.10.8","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.10.8","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"3bd8bdbc7256bdfd3dbd84dc8b42424e6bf96915","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.10.8.tgz","fileCount":25,"integrity":"sha512-7ktpaOzWBk5LHwBCGLsjLtZT+GmKQFApYqgwZKMxtnWnWUUouMc2qCjNgPUJbb4EdGA/D54vUW0lByYEnA/g4A==","signatures":[{"sig":"MEUCIADMr8eeqHM4J88zrlWOTWpj2DoJiRyR7XbPlU6GCtgiAiEA9FZg+BTG5y3LmTrDxaMIG3zWe7pXnXzGLh7o+fx6ctA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.10.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540152},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.8.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.10.8.tgz","_integrity":"sha512-7ktpaOzWBk5LHwBCGLsjLtZT+GmKQFApYqgwZKMxtnWnWUUouMc2qCjNgPUJbb4EdGA/D54vUW0lByYEnA/g4A==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.10.8_1781704227445_0.3156182217485617","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"signet-login","version":"0.11.0","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.11.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"61fe96cbfa653a844dc0a960a67624a170a24c65","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.11.0.tgz","fileCount":25,"integrity":"sha512-+GmtCFAcSmhJwTYQYo9WN69uvMjmmwZ7cug+Hzb+vG9BPy6lEPmbuDBWsvyLo/Fl5D+lQN1UAMoDpgWa/E/9DA==","signatures":[{"sig":"MEYCIQDE/uKyZUEZdBLey5dyn7GU+A1unFRXtuYueNk4adkZyQIhAKDY8Mq6aHYNTOifaRaXGbYD5cM8lFPt3d81Dh/hXPGL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552434},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.11.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.11.0.tgz","_integrity":"sha512-+GmtCFAcSmhJwTYQYo9WN69uvMjmmwZ7cug+Hzb+vG9BPy6lEPmbuDBWsvyLo/Fl5D+lQN1UAMoDpgWa/E/9DA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.11.0_1781862402825_0.5301002094234213","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"signet-login","version":"0.11.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.11.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"66666544effb329c26aecd2ec14a42cfe0a29408","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.11.1.tgz","fileCount":26,"integrity":"sha512-JX1gMufRvlaCehTPnUkn0osaI6oaUeVnjb+Xd2AnvpGHPx1lMTmV0RX9/580ODosWK4CWxPKQ9Z5C+x6RVqtuw==","signatures":[{"sig":"MEYCIQDW8SZqLzdZme2Td+Jf4AU08RDXiLMcsQdg/Oiem+WPfQIhAMIbP13LSlQ8XQxk+4XEUzu73FGIJOe4VmXuErsQqD4N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":566932},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.11.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.11.1.tgz","_integrity":"sha512-JX1gMufRvlaCehTPnUkn0osaI6oaUeVnjb+Xd2AnvpGHPx1lMTmV0RX9/580ODosWK4CWxPKQ9Z5C+x6RVqtuw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.11.1_1781865392742_0.6111644502285898","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"signet-login","version":"0.12.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.12.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"7a72d9fe10095187f48d46aa3a412be4f090ff5d","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.12.1.tgz","fileCount":26,"integrity":"sha512-rA7ThWHTw32Ea05xZwGqbTAxPjjJybzkCT8Lv3U0LTR9PnJgJd8knNvOs6WBUbt57rVQL9f18SvSd1KLMdh8vQ==","signatures":[{"sig":"MEUCIEC4/utKwGu8IAxZyJQ0c8ZWlVHmICpWhauywlEA5jgOAiEAyP6rhkSg9/0ugZBKyQb3tnAT5JVlen3kGFXlSqWPMJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":581471},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.12.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.12.1.tgz","_integrity":"sha512-rA7ThWHTw32Ea05xZwGqbTAxPjjJybzkCT8Lv3U0LTR9PnJgJd8knNvOs6WBUbt57rVQL9f18SvSd1KLMdh8vQ==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.12.1_1781974875549_0.8189795537510467","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"signet-login","version":"0.13.0","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.13.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"5c9f2d3cdda4f78a2c46701d6a3c11b123133d0e","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.13.0.tgz","fileCount":28,"integrity":"sha512-J64mFom5kawiN6tIAjWLJ7JAe1/z3XiFMcD7/vhNwVjZbW9MfudDLgYxJFXiGnccAmKqed2TyY2NRI0bZ27aug==","signatures":[{"sig":"MEYCIQCWM+pZpzEvPvVg1sEiGK8dx+i6d2XWk1zGMEryr9/n4wIhAJVWCqVIR03budFARCavw/7SrYe54sSzRPxS1zWs48Lh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":585462},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.0.tgz","_integrity":"sha512-J64mFom5kawiN6tIAjWLJ7JAe1/z3XiFMcD7/vhNwVjZbW9MfudDLgYxJFXiGnccAmKqed2TyY2NRI0bZ27aug==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.13.0_1782029745725_0.7790681123522218","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"signet-login","version":"0.13.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.13.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"287f8dcbb97a7c5067710ace2004b5f2238aec89","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.13.1.tgz","fileCount":28,"integrity":"sha512-Y9WVQ5euwvdDPeabmZtEdqCh5wJEYFHnLTfxbYZBAOmRc2zRVsWPlrPExpvv7ZXpJcA87EhqIBA0jQAr7p+c5Q==","signatures":[{"sig":"MEUCIBWSnMw0YqvZWeAiQ4U57BkPIF/+Ob9QTNrK+VsYmrYJAiEA7EvSPrRX/rZK6GC4dE6yRUf0VlSwY22CSbUB3ycmRcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":585613},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.1.tgz","_integrity":"sha512-Y9WVQ5euwvdDPeabmZtEdqCh5wJEYFHnLTfxbYZBAOmRc2zRVsWPlrPExpvv7ZXpJcA87EhqIBA0jQAr7p+c5Q==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.13.1_1782030817203_0.06919691049727561","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"signet-login","version":"0.13.3","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.13.3","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"272ac44da58896023f7773f0ab48f949f4ebc092","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.13.3.tgz","fileCount":28,"integrity":"sha512-B098VOay0Zkfg5RR6jsZZSuvjMcnbaB+mCwoyi1uhsTWIBMxNQXpz7Ra91y/5nenzVDScB97TEBDDR4dLZTrdA==","signatures":[{"sig":"MEUCIAoU9oKehzCxzmzPf+6nbVmr+WgfyAOF05QJyyK1+Z+hAiEArT6wY98mOiOa/2cnRN1kTeYRwQ/NV/bR9BtAewU/pEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":598560},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.3.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.13.3.tgz","_integrity":"sha512-B098VOay0Zkfg5RR6jsZZSuvjMcnbaB+mCwoyi1uhsTWIBMxNQXpz7Ra91y/5nenzVDScB97TEBDDR4dLZTrdA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.13.3_1782933015171_0.5987113145197496","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"signet-login","version":"0.14.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.14.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"afbcc89a0e80c18ae8114184a33883169ef2e150","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.14.1.tgz","fileCount":28,"integrity":"sha512-+pwPRH2v0WmOpVRkZ+zurlAhg/06axleH/ry/D7kP/dZiM7NemTIPw2uW4eGb8znSDTWQ4FHs/tMuLU5ldTuGw==","signatures":[{"sig":"MEYCIQDgIS5p0/BaYU+SY8iPDM2uaI5y6klV6XNIWsBQHykJfwIhAO7UyDGY8oMvmtuevt7zDn205h8/1nfzVpfm8uhn1vxn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":602524},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.1.tgz","_integrity":"sha512-+pwPRH2v0WmOpVRkZ+zurlAhg/06axleH/ry/D7kP/dZiM7NemTIPw2uW4eGb8znSDTWQ4FHs/tMuLU5ldTuGw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.14.1_1782981798589_0.6196414996084141","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"signet-login","version":"0.14.2","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.14.2","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"199c5598a949b1af21e766824a5028c36c062122","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.14.2.tgz","fileCount":28,"integrity":"sha512-CDNuahNvNKZjtDvP5mkfj4VfdbnPLxCfeBtZaQPgP97rzfxWFmvP8ml4Zclf8xOJ07BOwy8aFiMpDwzinukJsg==","signatures":[{"sig":"MEUCIBLhokeJWfXIUKQN3O/tHh7cUWGLW0xPF86Ws4s3w9qLAiEAg2on2SHD+jLUk4bFKuiQEzwKvAYAXMhhZ1osd4/vbcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606894},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.2.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.2.tgz","_integrity":"sha512-CDNuahNvNKZjtDvP5mkfj4VfdbnPLxCfeBtZaQPgP97rzfxWFmvP8ml4Zclf8xOJ07BOwy8aFiMpDwzinukJsg==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.14.2_1783725527650_0.8509708911357463","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"signet-login","version":"0.14.3","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.14.3","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"10d38f4924e05b43cd6db45fa115085c98134cca","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.14.3.tgz","fileCount":28,"integrity":"sha512-0A335U9uKrYOTms/490tIMX7gN2VmB09teZnYVrIwEC5yd6OBxFTehjSBXgQT97IVyO3bHnehUFiQkkDuRjV2A==","signatures":[{"sig":"MEUCIDUBiPnvzItndmHMFz2jgsWGqU4jBwumPZT8VKdWHE75AiEA4VYpyCQy0tB7Oc6eEfhWaXutZLwJRYtELYPAY/P3CcE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":608249},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.3.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.14.3.tgz","_integrity":"sha512-0A335U9uKrYOTms/490tIMX7gN2VmB09teZnYVrIwEC5yd6OBxFTehjSBXgQT97IVyO3bHnehUFiQkkDuRjV2A==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.5.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^29.1.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.14.3_1787986082749_0.7094819434473913","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"signet-login","version":"0.16.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.16.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"35ebbc94d441c4870e80d9dbe275c48633fa8a49","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.16.1.tgz","fileCount":30,"integrity":"sha512-doIoqMHWPXjJRIj8C4z5Gplkw3lIJ69qVXemMN4mPPudxM036shVr6JvLz3ShhV6+KD/ZmtbWQC0G6FVXGT/qQ==","signatures":[{"sig":"MEYCIQDZa9iCVfgwBNMxiUpi1p3DuGawzLEuDvDxmykSjkaySwIhAKIRgqJDM4x3z3Cn0eEqJA301JFNIeFKvlVTgxyWt0wg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":677774},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.16.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.16.1.tgz","_integrity":"sha512-doIoqMHWPXjJRIj8C4z5Gplkw3lIJ69qVXemMN4mPPudxM036shVr6JvLz3ShhV6+KD/ZmtbWQC0G6FVXGT/qQ==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.7.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^30.0.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.16.1_1789212227989_0.8484365104866056","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"signet-login","version":"0.17.0","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.17.0","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"8fa8e8757738673252ecf543d95a035585aae929","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.17.0.tgz","fileCount":30,"integrity":"sha512-SzI9Ul+myB+pOO4PzPTVisYtDE5fFgSCaduVmwbBaNSrl8Wcpl8cOky4XuyTw7EYEAgfgN3sBM1Ku37H2PeyFA==","signatures":[{"sig":"MEQCICC2RnkWz+nKVe2LS6CMtguJh28fVSr7y1bhdBhFUuwcAiBi86WzokqNzF9y2QjRMs9f400bUMMiaQU3S3rtIZRcdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG7X8V2340BJt+/XEoLWTrAiQ4c9wnrlg0enCoL5myKIAiEA8moSz+lUMTafwU5VqZOQIbGIcH4oaV56Pq1anWy4Q7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":681302},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.0.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.0.tgz","_integrity":"sha512-SzI9Ul+myB+pOO4PzPTVisYtDE5fFgSCaduVmwbBaNSrl8Wcpl8cOky4XuyTw7EYEAgfgN3sBM1Ku37H2PeyFA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.7.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^30.0.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.17.0_1789473252105_0.04244280849041071","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"signet-login","version":"0.17.1","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.17.1","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"9e40ff784fe5c2eed0d255f15836d736a581a318","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.17.1.tgz","fileCount":30,"integrity":"sha512-KqSC/japVGtqI+Q0U2OdGLWz+6d7PQDvSk/qy+ekYx5ybfjrSkw+iFZhE5hIE22UGLn1ptN/DhJ/fr92Q7OMtw==","signatures":[{"sig":"MEUCIQD0gnnoJhsTQv+NK6JFeqdrHq7x5gb/yWsyoluPcL9ffgIgArewzW0OlSra3bRq22B0uBD0WvcH1DCY30kRvoqwYjQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCcLsafFYRRSLaUI379mISAAyck3Ifi5x2ylFou6RbSRgIhANKSk2BHwKtJ26mD7nKFMgyRCRsfVeyC1lMGQ1bBNUHO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684589},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.1.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.1.tgz","_integrity":"sha512-KqSC/japVGtqI+Q0U2OdGLWz+6d7PQDvSk/qy+ekYx5ybfjrSkw+iFZhE5hIE22UGLn1ptN/DhJ/fr92Q7OMtw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.7.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^30.0.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.17.1_1790006973576_0.7197195370507836","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"signet-login","version":"0.17.2","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"license":"MIT","_id":"signet-login@0.17.2","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"homepage":"https://github.com/forgesworn/signet-login#readme","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"dfd8605b5e72816403b28d48d33b44ed3c7b2918","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.17.2.tgz","fileCount":31,"integrity":"sha512-g3S1Dnxx/Zx2aLS5hFZJ3OJuJnkJ/cUC60K+8zfdApxyBkY2W01hL0JiwCq7R6FV/Klg2vVJKJ6FPuZUO3O4cA==","signatures":[{"sig":"MEYCIQC1OYiGyxVo+keofkEvapg55aGkdFwzIm+5F+ti7NOVoAIhAMY4V5V1QM93/+Li0HArtMDAZTAjOSy62F+/+O0duSPE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICa5iyfU45cYhnNJJMItNKqbXAdIp/BJC8vBWFGNOVkUAiAovR2yIjjlHla0Nr1gd1mUV93nkz87E9lblJaRHCGc/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.17.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":687491},"main":"./dist/signet-login.js","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.2.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.2.tgz","_integrity":"sha512-g3S1Dnxx/Zx2aLS5hFZJ3OJuJnkJ/cUC60K+8zfdApxyBkY2W01hL0JiwCq7R6FV/Klg2vVJKJ6FPuZUO3O4cA==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.7.0"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^30.0.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"tmp":"tmp/signet-login_0.17.2_1790276658335_0.07161633541821999","host":"s3://npm-registry-packages-npm-production"}},"0.17.3":{"_id":"signet-login@0.17.3","bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"dist":{"shasum":"d6bc7ff4ffa7df0198521e4dbefecbc5a14c0a15","tarball":"https://registry.npmjs.org/signet-login/-/signet-login-0.17.3.tgz","fileCount":31,"integrity":"sha512-wC/gjWDh8AYTEF1OoU+8G5hLmnFbs/PkGUGh/1jeI3Z66YqfeY/SVdyWhjYytmKcWb8WvavaIahlKchHiO2Cxw==","signatures":[{"sig":"MEUCIGaPR0LkipJETCPIlHkRK9biSK0dhHOvJQXF+nTLXZ8YAiEAr9ECuAoqwLJBjntTOgUeo/ipfxnO/DDiHcxtegZN5a4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB8rzerdQB6UihWCL55NLjhqRpVtYwIAshE+5ZvrLvSfAiA/27L5JMxH0rcD0rGGDmy4IqTmNnkOUNFGfNvCsvIbng=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signet-login@0.17.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":687461},"main":"./dist/signet-login.js","name":"signet-login","type":"module","_from":"file:/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.3.tgz","types":"./dist/signet-login.d.ts","exports":{".":{"types":"./dist/signet-login.d.ts","import":"./dist/signet-login.js","default":"./dist/signet-login.js"},"./iife":"./dist/signet-login.iife.js","./verify":{"types":"./dist/verify.d.ts","import":"./dist/verify.js","default":"./dist/verify.js"}},"license":"MIT","scripts":{"test":"vitest run","build":"npm run clean && tsc && npm run build:iife","clean":"rm -rf dist","typecheck":"tsc --noEmit","build:iife":"esbuild src/signet-login.ts --bundle --format=iife --global-name=__SignetLoginIIFE --outfile=dist/signet-login.iife.js --minify --target=es2020 --footer:js='Object.assign((globalThis.Signet||={}),__SignetLoginIIFE);'","test:watch":"vitest","check:consumer-compatibility":"node tools/check-consumer-compatibility.mjs","check:consumer-compatibility:dry-run":"node tools/check-consumer-compatibility.mjs --dry-run"},"version":"0.17.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4cc11fc1-d803-451f-bc8a-c83bc1607c37"}},"homepage":"https://github.com/forgesworn/signet-login#readme","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"_resolved":"/home/runner/work/_temp/forgesworn-anvil/signet-login-0.17.3.tgz","_integrity":"sha512-wC/gjWDh8AYTEF1OoU+8G5hLmnFbs/PkGUGh/1jeI3Z66YqfeY/SVdyWhjYytmKcWb8WvavaIahlKchHiO2Cxw==","repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"_npmVersion":"11.6.1","description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","directories":{},"maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"_nodeVersion":"24.11.0","dependencies":{"jsqr":"^1.4.0","qrcode":"^1.5.4","nostr-tools":"^2.23.3","@noble/curves":"^1.8.1","@noble/hashes":"^1.7.1","@types/qrcode":"^1.5.6","signet-verify":"^0.7.1"},"publishConfig":{"provenance":true},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","jsdom":"^30.0.1","vitest":"^4.1.9","esbuild":"^0.28.0","@types/ws":"^8.18.1","typescript":"^5.7.0","signet-protocol":"^1.6.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signet-login_0.17.3_1790367995273_0.4428289051507641"}}},"time":{"created":"2026-05-10T08:39:15.494Z","modified":"2026-09-25T20:26:35.706Z","0.1.0":"2026-05-10T08:39:15.639Z","0.2.0":"2026-05-10T09:17:43.664Z","0.3.0":"2026-05-10T12:23:29.588Z","0.4.0":"2026-05-10T15:05:21.877Z","0.5.0":"2026-05-10T15:59:38.796Z","0.6.0":"2026-05-10T16:06:20.905Z","0.7.0":"2026-05-10T16:11:59.058Z","0.7.1":"2026-05-15T09:07:00.927Z","0.7.2":"2026-06-05T06:57:28.863Z","0.9.6":"2026-06-07T10:54:12.325Z","0.9.8":"2026-06-07T11:55:03.036Z","0.9.9":"2026-06-07T12:17:19.450Z","0.9.10":"2026-06-07T15:12:41.539Z","0.9.11":"2026-06-07T15:43:18.412Z","0.9.13":"2026-06-07T16:44:33.760Z","0.9.14":"2026-06-10T12:21:33.018Z","0.9.15":"2026-06-12T07:19:25.161Z","0.10.0":"2026-06-16T10:57:52.391Z","0.10.1":"2026-06-16T12:18:35.897Z","0.10.2":"2026-06-16T12:51:06.679Z","0.10.3":"2026-06-16T20:05:27.822Z","0.10.4":"2026-06-17T07:12:06.353Z","0.10.5":"2026-06-17T07:28:14.382Z","0.10.7":"2026-06-17T10:08:34.165Z","0.10.8":"2026-06-17T13:50:27.668Z","0.11.0":"2026-06-19T09:46:43.077Z","0.11.1":"2026-06-19T10:36:32.916Z","0.12.1":"2026-06-20T17:01:15.730Z","0.13.0":"2026-06-21T08:15:45.900Z","0.13.1":"2026-06-21T08:33:37.389Z","0.13.3":"2026-07-01T19:10:15.327Z","0.14.1":"2026-07-02T08:43:18.793Z","0.14.2":"2026-07-10T23:18:47.841Z","0.14.3":"2026-08-29T06:48:02.906Z","0.16.1":"2026-09-12T11:23:48.141Z","0.17.0":"2026-09-15T11:54:12.193Z","0.17.1":"2026-09-21T16:09:33.694Z","0.17.2":"2026-09-24T19:04:18.425Z","0.17.3":"2026-09-25T20:26:35.383Z"},"bugs":{"url":"https://github.com/forgesworn/signet-login/issues"},"license":"MIT","homepage":"https://github.com/forgesworn/signet-login#readme","keywords":["nostr","signet","signet-access","login","access","authentication","nip-07","nip-46","nip-55","nostrconnect","bunker","decentralised-identity","sign-in-with-signet"],"repository":{"url":"git+https://github.com/forgesworn/signet-login.git","type":"git"},"description":"Signet Access — drop-in auth and signer-access SDK for Nostr-aware websites. Signet QR/redirect, NIP-07, NIP-46, Amber, and nsec fallback in one API.","maintainers":[{"name":"thecryptodonkey","email":"thecryptodonkey@proton.me"}],"readme":"# Signet Access\n\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/TheCryptoDonkey?logo=githubsponsors&color=ea4aaa&label=Sponsor)](https://github.com/sponsors/TheCryptoDonkey)\n\nPublished as `signet-login`.\n\n**Signet Access** is a drop-in auth and signer-access SDK for Nostr-aware websites. One picker, one session shape, multiple ways to prove identity and, when available, keep a live signer:\n\n- **Local Signet** on this device, against hosted or local-dev Signet\n- **Remote Signet** by cross-device QR, so a phone or second machine can approve\n- **Browser extension** via NIP-07 (bark, Alby, nos2x, Flamingo, ...)\n- **Connect a Nostr signer** via app-initiated NIP-46 / NostrConnect\n- **Paste or scan bunker URI** for Heartwood, nsecBunker, Amber, or compatible signers\n- **Sign in with Amber** via Android NIP-55\n- **Paste private key** as an in-memory, advanced fallback only: an `nsec`, or a NIP-49 password-protected `ncryptsec` decrypted in the browser\n\nReturns a unified `SignetSigner` plus a signed kind-21236 auth proof your server can verify before granting privileges.\n\n## Install\n\n```bash\nnpm install signet-login\n```\n\nOr drop it in via CDN:\n\n```html\n<script src=\"https://cdn.signet.forgesworn.dev/signet-login.iife.js\"></script>\n```\n\nThe IIFE bundle additively extends `window.Signet` — it coexists with `signet-verify` on the same page in either load order.\n\n## Quick start\n\n```html\n<button id=\"login\">Sign in</button>\n\n<script src=\"https://cdn.signet.forgesworn.dev/signet-login.iife.js\"></script>\n<script>\n  document.getElementById('login').addEventListener('click', async () => {\n    const session = await Signet.login({ appName: 'My Game' });\n    if (!session) return;  // user cancelled\n\n    // Sign a Nostr event with the user's chosen signer:\n    const signed = await session.signer.signEvent({\n      kind: 30762,\n      content: '',\n      tags: [\n        ['game', 'my-game'],\n        ['score', '12350'],\n        ['p', session.pubkey],\n      ],\n    });\n    console.log('signed:', signed);\n  });\n</script>\n```\n\n## API\n\n### `Signet.login(options)`\n\nShow the picker, return a `SignetSession` on success or `null` on cancel/timeout.\n\n```ts\ninterface LoginOptions {\n  appName: string;                              // shown in modal\n  challenge?: string;                           // 64 hex; auto if omitted\n  preferredMethod?: LoginPickerMethod;          // skip the picker\n  methods?: LoginPickerMethod[];                // picker methods, in order\n  advancedMethods?: LoginPickerMethod[];        // grouped behind Advanced; [] = flat list\n  relayUrl?: string;                            // default wss://nos.lol\n  relayUrls?: string[];                         // repeated relay= params for NostrConnect\n  nostrConnectPerms?: string[];                 // default sign_event + NIP-44\n  onNostrConnectStatus?: NostrConnectStatusHandler;\n  theme?: 'light' | 'dark' | 'auto';            // default 'auto'\n  timeout?: number;                             // default 120_000ms; clamped to [5k, 600k]\n  signetAppOrigin?: string;                     // default https://mysignet.app\n  redirectCallback?: string;                    // for same-device redirect / Amber return\n  mode?: 'relay' | 'redirect';                  // Signet delivery mode\n  storage?: SignetStorage;                      // default localStorage\n  persist?: boolean;                            // default true\n}\n\ninterface SignetStorage {\n  getItem(key: string): string | null | Promise<string | null>;\n  setItem(key: string, value: string): void | Promise<void>;\n  removeItem(key: string): void | Promise<void>;\n}\n\ntype LoginPickerMethod =\n  | 'nip07'\n  | 'local-signet'  // same-device Signet, relay delivery\n  | 'remote-signet' // cross-device Signet QR\n  | 'redirect'      // legacy alias for local-signet\n  | 'qr'            // legacy alias for remote-signet\n  | 'bunker'        // paste bunker://\n  | 'nostrconnect'  // show nostrconnect:// QR\n  | 'amber'         // Android NIP-55\n  | 'nsec';         // in-memory private key fallback (nsec or ncryptsec + password)\n\ninterface SignetSession {\n  pubkey: string;                  // hex\n  method: 'nip07' | 'redirect' | 'bunker' | 'nsec' | 'amber';\n  signer: SignetSigner;\n  authEvent: SignetAuthEvent;      // signed kind-21236 challenge proof\n  expiresAt?: number;\n  displayName?: string;\n}\n```\n\nBy default, the picker shows ordinary user-facing methods first and groups `bunker`, `nostrconnect`, and `nsec` behind **Advanced**. Control the surface per app:\n\n```js\nawait Signet.login({\n  appName: 'My Game',\n  methods: ['local-signet', 'remote-signet', 'nip07'],\n});\n\nawait Signet.login({\n  appName: 'My Local Dev Game',\n  preferredMethod: 'local-signet',\n  signetAppOrigin: 'http://localhost:5174',\n  relayUrl: 'ws://localhost:7777',\n});\n\nawait Signet.login({\n  appName: 'Power User Tool',\n  methods: ['nip07', 'bunker', 'nostrconnect', 'nsec'],\n  advancedMethods: [], // flat picker\n  relayUrls: ['wss://relay.nsec.app', 'wss://relay.damus.io'],\n});\n```\n\n`signetAppOrigin` defaults to `https://mysignet.app`. If your integration should launch Signet Lite specifically, pass `signetAppOrigin: 'https://lite.mysignet.app'`.\n\nIn `mode: 'redirect'`, the current tab navigates to Signet and the session is consumed later by `Signet.handleRedirectCallback()`. If the user taps Back before approving and the browser restores the original page, `login()` resolves `null` so your UI can leave its loading state.\n\n`redirect` and `qr` remain supported picker aliases for existing apps, but new integrations should use `local-signet` and `remote-signet`.\n\nWhen camera APIs are available, the bunker URI screen can scan `bunker://` QR codes directly. Paste remains the fallback.\n\n### Headless/custom UI\n\nUse the exported signer constructors and proof helpers when your app owns the UI:\n\n```ts\nimport {\n  createBunkerSigner,\n  createLoginAuthEvent,\n  createSessionFromSigner,\n  createLocalSignerFromNsec,\n} from 'signet-login';\n\nconst signer = await createBunkerSigner({\n  uri: bunkerUri,\n  timeoutMs: 30_000,\n});\n\nconst session = await createSessionFromSigner(signer, {\n  appName: 'My App',\n  challenge: challengeFromServer,\n  origin: 'https://my-app.example',\n});\n\nawait fetch('/api/login', {\n  method: 'POST',\n  body: JSON.stringify({ authEvent: session.authEvent }),\n});\n```\n\nHeadless exports include `hasNip07`, `createNip07Signer`, `createBunkerSigner`, `createBunkerSignerFromNostrConnect`, `buildNostrConnectUri`, `buildBunkerUriFromNostrConnectUri`, `isBunkerUri`, `isNostrConnectUri`, `isSupportedPairingUri`, `createLocalSignerFromNsec`, `createLoginAuthEvent`, `createSessionFromSigner`, and `generateSecretKey`.\nThe IIFE bundle attaches the same helpers to `window.Signet`.\n\n### NostrConnect and bunker roles\n\nNIP-46 has two URI directions:\n\n| URI | Producer | Consumer | Use |\n|---|---|---|---|\n| `nostrconnect://...` | The app / Signet Access client | Signer app scans or opens it | First pairing, where the app advertises its client pubkey, relays, requested permissions, and one-time secret |\n| `bunker://...` | The signer / bunker | App connects to it | Reconnect, paste/scan bunker flows, native clients, and persisted sessions |\n\n`createBunkerSignerFromNostrConnect()` waits for the signer response and then stores the equivalent `bunker://` reconnect URI internally, preserving the relay list and secret. This matters for apps such as Canary, Pallasite, and Axenstax: the user can pair once with NostrConnect, then `restoreSession()` can reconnect with the same stable client key instead of showing a fresh pairing request.\n\nSignet Access is the app-side session broker. Identity creation, recovery, and derived personas belong in Signet, Heartwood, and `nsec-tree`; app integrations should consume the returned pubkey and capability flags instead of deriving identities inside the login SDK.\n\n### NostrConnect status diagnostics\n\nUse `onNostrConnectStatus` when your app needs a reliable progress panel, telemetry, or support diagnostics for app-initiated NostrConnect. Do not scrape the built-in modal text.\n\n```ts\nimport type { NostrConnectStatus } from 'signet-login';\nimport { login, restoreSession } from 'signet-login';\n\nfunction renderNostrConnectStatus(status: NostrConnectStatus) {\n  const relay = status.relay ?? status.relays[0] ?? 'the relay';\n  const method = status.method ? ` ${status.method}` : '';\n\n  switch (status.type) {\n    case 'uri-created':\n      return 'Pairing code ready. Scan it with your signer.';\n    case 'relay-connecting':\n      return `Connecting to ${relay}...`;\n    case 'relay-connected':\n      return `Connected to ${relay}. Waiting for signer approval...`;\n    case 'signer-seen':\n      return 'Signer responded. Waiting for approval payload...';\n    case 'request-sent':\n      return `Sent${method} request. Waiting for signer response...`;\n    case 'response-received':\n      return `Signer approved${method}.`;\n    case 'timeout':\n      return 'Signer did not respond before the timeout.';\n    case 'error':\n      return status.message ?? 'NostrConnect failed.';\n  }\n}\n\nconst session = await login({\n  appName: 'My App',\n  preferredMethod: 'nostrconnect',\n  relayUrls: ['wss://relay.primal.net', 'wss://relay.damus.io'],\n  timeout: 120_000,\n  onNostrConnectStatus(status) {\n    console.log(status);\n    statusText.textContent = renderNostrConnectStatus(status);\n  },\n});\n\n// The same callback works for persisted bunker reconnects.\nawait restoreSession({\n  onNostrConnectStatus(status) {\n    reconnectText.textContent = renderNostrConnectStatus(status);\n  },\n});\n```\n\nStatus events are best-effort diagnostics. Handler errors are ignored so a broken dashboard cannot break login.\n\n| Event | Meaning | Useful fields |\n|---|---|---|\n| `uri-created` | The app created a `nostrconnect://` URI for the QR/link. | `uri`, `clientPubkey`, `relays`, `timeoutMs` |\n| `relay-connecting` | The SDK is opening relay/subscription state. | `relays`, `clientPubkey`, `signerPubkey` |\n| `relay-connected` | A relay connection succeeded. | `relay`, `relays` |\n| `signer-seen` | An encrypted response event arrived from a signer pubkey. | `signerPubkey`, `clientPubkey` |\n| `request-sent` | A NIP-46 request was published, such as `connect`, `sign_event`, or `nip44_encrypt`. | `method`, `requestId`, `signerPubkey` |\n| `response-received` | Pairing or a NIP-46 request received a response. | `phase`, `method`, `requestId` |\n| `timeout` | Pairing or a request hit its timeout. | `phase`, `method`, `requestId`, `timeoutMs`, `message` |\n| `error` | Relay, subscription, publish, response, or abort failure. | `phase`, `relay`, `method`, `message`, `error` |\n\nFor support triage: no `relay-connected` usually means relay/network trouble; `signer-seen` without `response-received` usually means the signer saw the request but did not complete approval; `request-sent` without a response usually means the saved bunker session exists but the signer device is unavailable or rejecting that method.\n\n### Custom storage\n\nBy default, Signet Access stores session state in localStorage under `signet:login.*`. Pass `storage` when you need encrypted, async, IndexedDB, server-backed, or test storage:\n\n```js\nconst encryptedStorage = {\n  async getItem(key) {\n    const value = localStorage.getItem(key);\n    return value ? await decrypt(value) : null;\n  },\n  async setItem(key, value) {\n    localStorage.setItem(key, await encrypt(value));\n  },\n  async removeItem(key) {\n    localStorage.removeItem(key);\n  },\n};\n\nconst session = await Signet.login({\n  appName: 'My Game',\n  storage: encryptedStorage,\n});\n\nawait Signet.restoreSession({ storage: encryptedStorage });\nawait Signet.handleRedirectCallback({ storage: encryptedStorage });\nawait Signet.logout(session, { storage: encryptedStorage });\n```\n\nUse the same storage adapter for `login`, `restoreSession`, `handleRedirectCallback`, and `logout`.\n\nFor the same-tab redirect callback, current Signet deployments return the signed event timestamp and the SDK verifies the returned auth proof before accepting it. Older deployments may omit that timestamp — without it the SDK cannot rebuild the signed event and **cannot verify the signature**, so the returned `pubkey` would be unverified. **`handleRedirectCallback` rejects those callbacks by default** (`reason: 't-required'`). Only opt into accepting them if you control the signet-app deployment and knowingly accept an unverified pubkey:\n\n```js\nawait Signet.handleRedirectCallback({\n  storage: encryptedStorage,\n  allowLegacyRedirectWithoutTimestamp: true, // ⚠️ disables signature verification — see warning above\n});\n```\n\n> **Breaking change (v0.14.0):** prior versions accepted timestamp-less redirect callbacks by default. This is now secure-by-default — such callbacks are rejected unless you explicitly opt in as shown above.\n\nThis adapter is deliberately not called \"Stash\". `@forgesworn/stash` is the separate encrypted cloud-save vault for app data; Signet Access storage is local session/reconnect state needed before a signer is available.\n\n### `Signet.restoreSession(opts?)`\n\nRestore a session from configured storage. For bunker sessions this attempts to reconnect to the stored bunker. Returns `null` if no session is stored, the session is malformed, or reconnection fails.\n\n```js\nconst session = await Signet.restoreSession();\nif (session?.signer.capabilities.canSignEvents) {\n  // we have ongoing signing capability\n}\n```\n\n### `Signet.logout(currentSession?, opts?)`\n\nClear stored session and close the active signer.\n\nBy default, logout keeps the persistent NIP-46 client key so a previously approved bunker can recognize this browser on the next login. Pass `clearPersistentClientKey: true` when the user explicitly wants to break that pairing:\n\n```js\nawait Signet.logout(session, { clearPersistentClientKey: true });\n```\n\n### `Signet.handleCallback(opts?)`\n\nRun on your callback page when using the same-device redirect flow. Parses URL params and posts them to `window.opener` (if popup-opened), then closes the popup.\n\n**Pass `targetOrigin`.** These params identify the signed-in user, and on the redirect-bunker handoff they include a live `bunker://...?secret=...` NIP-46 credential — a working signer, not just an identity assertion. Post them to your app's origin and nowhere else:\n\n```js\nSignet.handleCallback({\n  targetOrigin: 'https://my-game.example',\n});\n```\n\nIf you omit it, `handleCallback` falls back to the origin of `document.referrer`, which the browser sets for a `window.open()` popup. That fallback is best-effort — referrer policy can strip it — and when no origin can be determined the params are **not** posted at all. The result's `posted` field tells you which happened, and `params` is returned either way:\n\n```js\nconst { params, posted } = Signet.handleCallback({ targetOrigin: 'https://my-game.example' });\nif (!posted) {\n  // No opener, or no trustworthy target. Handle the params on this page instead.\n}\n```\n\nPassing `targetOrigin: '*'` deliberately restores broadcasting to any opener. Don't, unless you know the callback can never carry a bunker credential.\n\n## Signers and capabilities\n\nAll session signers implement `SignetSigner`:\n\n```ts\ninterface SignetSigner {\n  readonly pubkey: string;\n  readonly method: 'nip07' | 'redirect' | 'bunker' | 'nsec' | 'amber';\n  readonly capabilities: { canSignEvents: boolean; hasNip44: boolean };\n  signEvent(template: EventTemplate): Promise<NostrEvent>;\n  nip44?: { encrypt, decrypt };\n  close(): Promise<void>;\n}\n```\n\n| Signer | `canSignEvents` | Source |\n|---|---|---|\n| `Nip07Signer` | true | `window.nostr` (any NIP-07 extension) |\n| `BunkerSignerImpl` | true | `nostr-tools` BunkerSigner over NIP-46 relay |\n| `LocalSigner` | true | In-memory nsec fallback (accepts NIP-49 `ncryptsec` with a password); never persisted |\n| `EphemeralSigner` | **false** | Auth-only Signet redirect / QR / Amber callback |\n\n`EphemeralSigner` exists because some redirect-style flows return a signed challenge but no ongoing signing channel. Use `signer.capabilities.canSignEvents` to gate UI:\n\n```js\nif (session.signer.capabilities.canSignEvents) {\n  enableLeaderboardPublish();\n} else {\n  promptUserToInstallExtensionOrPasteBunkerURI();\n}\n```\n\nWhen Signet or a signer app returns a `bunker://` handoff, the SDK upgrades the auth-only proof into a live `BunkerSignerImpl` if the handoff connects and matches the authenticated pubkey.\n\nAmber / NIP-55 is currently auth-only in Signet Access. It can prove identity on Android, but it does not leave the web app with a persistent signer or NIP-44 channel. Signing-required consumers should reject Amber/auth-only sessions unless a future Amber flow returns a verified live signer handoff. See `docs/amber-policy.md`.\n\n## Server-side verification\n\nThe client sends `session.authEvent` to your server. Verify it before granting any privileges or paying out sats:\n\n```ts\nimport { verifyLogin } from 'signet-login/verify';\n\nconst result = verifyLogin(authEvent, {\n  expectedChallenge: theChallengeYouIssued,\n  expectedOrigin: 'https://my-game.example',\n  expectedAppName: 'My Game',          // optional\n  maxAgeSeconds: 300,                  // default 300\n});\n\nif (result.valid) {\n  // result.pubkey is the authenticated user\n} else {\n  // result.error: 'invalid-signature' | 'challenge-mismatch' | 'too-old' | …\n}\n```\n\nThe verifier checks: schnorr signature, canonical event ID, kind=21236, challenge tag match, origin tag match, optional app tag match, freshness window (5-min default + 60s skew tolerance).\n\n### The challenge must be yours, and single-use\n\n`verifyLogin` is stateless. It confirms the proof carries *the* challenge you passed in, but it has no way to know whether it has seen that proof before — so within the freshness window, replaying a captured auth event verifies exactly like the original. Preventing that is the caller's job:\n\n1. **Generate the challenge on the server**, per login attempt, from a CSPRNG.\n2. **Store it** against the pending login (session, cache, DB — with a TTL matching `maxAgeSeconds`).\n3. **Delete it as soon as `verifyLogin` returns valid**, so a second proof bearing it is rejected.\n\n```ts\n// server (Node)\nimport { randomBytes } from 'node:crypto';\nimport { verifyLogin } from 'signet-login/verify';\n\nconst challenge = randomBytes(32).toString('hex');\nawait pendingLogins.set(sessionId, challenge, { ttlSeconds: 300 });\n// → hand `challenge` to the browser, which passes it to Signet.login({ challenge })\n\n// later, when the browser posts back session.authEvent\nconst expected = await pendingLogins.take(sessionId);   // atomic read-and-delete\nif (!expected) return reject('no-pending-login');\nconst result = verifyLogin(authEvent, { expectedChallenge: expected, expectedOrigin });\n```\n\n**Do not verify against a challenge the browser chose.** `login()` and `createLoginAuthEvent()` auto-generate one when `challenge` is omitted. That is fine for an app with no backend — there is nothing to replay against — but a server that accepts a client-supplied challenge has no replay protection at all, because an attacker replaying a captured auth event simply supplies the matching challenge alongside it. If a server is going to see the proof, the server issues the challenge.\n\nNote also that the `origin` tag binds a proof to the site that requested it; it does not stop a hostile site from asking the user's signer to sign a kind-21236 event naming *your* origin. It is a binding, not a substitute for the user recognising what they approve.\n\n## Storage\n\nBy default, session data is stored in localStorage under `signet:login.*`:\n\n| Key | Purpose |\n|---|---|\n| `signet:login.pubkey` | Authenticated pubkey |\n| `signet:login.method` | `nip07` / `redirect` / `bunker` / `amber` |\n| `signet:login.authEvent` | Serialised kind-21236 auth event |\n| `signet:login.bunkerUri` | Bunker URI for reconnect (bunker only) |\n| `signet:login.bunkerClientSk` | Session client secret key hex (bunker only) |\n| `signet:login.clientSk` | Persistent NIP-46 client secret key for bunker auto-approval |\n| `signet:login.expiresAt` | Optional expiry |\n| `signet:login.displayName` | Optional persona handle |\n\nStorage namespace is `signet:login.*` so it doesn't collide with `signet:verify.*`. `Signet.logout()` clears session keys without touching other Signet SDKs; it clears `signet:login.clientSk` only when `clearPersistentClientKey: true` is set. Because bunker reconnect data can authorize future signing requests, apps should pair this SDK with a strict CSP and use a custom encrypted storage adapter when their threat model includes XSS on the app origin.\n\n## Coexistence with signet-verify\n\nBoth SDKs attach to `window.Signet` additively — load order doesn't matter:\n\n```html\n<script src=\".../signet-verify.iife.js\"></script>\n<script src=\".../signet-login.iife.js\"></script>\n\n<script>\n  // age verification\n  const ageResult = await Signet.verifyAge('18+');\n  // login\n  const session = await Signet.login({ appName: 'My App' });\n</script>\n```\n\nEach SDK manages its own slice of `window.Signet` and `localStorage` namespaces.\n\n## Upgrading — cross-device sign-in deadline\n\nIf cross-device sign-in has been failing for your users, this is the fix. Upgrade\nand you get it with no code change:\n\n- a **countdown** while the user approves on their phone, anchored to when the\n  request was issued, so it survives the page being backgrounded\n- a **resumable** sign-in — the in-flight request is persisted, so an OS that\n  discards your tab while the user is in the signer app no longer loses the\n  response\n- **\"this sign-in expired\"** instead of a generic failure when the user was too\n  late, with Start again offered\n\n### If you call `signet-verify` directly\n\nPass `issuedAt` — unix **seconds**, stamped when you mint the challenge and open\nthe auth URL — on **every** call for a given sign-in, retries and resumes\nincluded:\n\n```ts\nconst issuedAt = Math.floor(Date.now() / 1000);\n// …open the auth URL / render the QR…\nawait waitForAuthResponse({ /* … */, issuedAt });\n```\n\nDo not let a restarted wait re-anchor to `now`. That was the original bug: the\nfresh window began *after* the response was published, so it was never asked for\nagain, and the sign-in failed 100% of the time on mobile.\n\nBuild your countdown from the exported constant, not a local `300`:\n\n```ts\nimport { AUTH_FRESHNESS_WINDOW_SEC } from 'signet-verify';\nconst expiresAt = issuedAt + AUTH_FRESHNESS_WINDOW_SEC;\n```\n\n`issuedAt` is **seconds**, not milliseconds — a millisecond value throws\n`invalid-issued-at` rather than silently waiting ten minutes for nothing. And\ndon't pass your own `timeout` unless you mean to give up *earlier* than the\nsign-in expires; without one the wait lasts exactly as long as the sign-in is\nvalid.\n\nBranch on the failure, because they are not the same thing — read it from\n`err.code`: `expired` means this sign-in is over, so offer a fresh one;\n`timeout` means you gave up early, so a retry against the same `issuedAt` may\nstill work.\n\nNothing changes in how you verify signatures or display identity.\n\n## Bundle size\n\nThe ESM entry is approx **5.9 KB gzipped** before bundling dependencies. The standalone IIFE is approx **114.7 KB gzipped** because it includes NIP-46, Signet QR/relay support, and camera QR decoding. A future split-bundle could lazy-load advanced signer paths for smaller first-load pages.\n\n## Browser support\n\nES2020 baseline. Tested on modern Chrome / Firefox / Safari. Requires `crypto.subtle`, `WebSocket`, and the native `<dialog>` element. Session persistence defaults to `localStorage`, but apps can provide a custom storage adapter.\n\n## Development\n\n```bash\nnpm install\nnpm run build       # dist/signet-login.js (ESM) + dist/signet-login.iife.js (browser)\nnpm run typecheck\nnpm test            # vitest in jsdom\n```\n\nExamples in `examples/`:\n- `basic.html` — full demo with login / sign / logout / restore\n- `headless.html` — custom UI demo using signer constructors and proof helpers\n- `nostrconnect-status.html` — NostrConnect pairing with a diagnostic event log\n- `callback.html` — redirect-back receiver page\n\nBuild the IIFE bundle first, then serve the repo root with any static server and open an example page.\n\n## Out of scope\n\n| Excluded | Where it lives |\n|---|---|\n| Age verification | `signet-verify` |\n| Per-game persona derivation | Heartwood RPC (reserved scope) |\n| Sign-time policy clauses | Reserved (G34 NLnet Jun) |\n| Generating bunker URIs | Heartwood / bark |\n| Lightning, payments | Out of scope |\n\n## License\n\nMIT\n\n## Related\n\n- [signet](https://github.com/forgesworn/signet) — protocol, specs, docs\n- [signet-protocol](https://www.npmjs.com/package/signet-protocol) — npm primitives\n- [signet-verify](https://github.com/forgesworn/signet-verify) — age verification + cross-device auth primitives\n- [bark](https://github.com/forgesworn/bark) — NIP-07 browser extension that signs via NIP-46 to Heartwood\n- [Heartwood](https://github.com/forgesworn/heartwood) — self-hosted signing appliance\n","readmeFilename":"README.md"}