{"_id":"@kehto/shell","_rev":"32-1783dfc862c1845f218ff9d62adac004","name":"@kehto/shell","dist-tags":{"latest":"0.21.2"},"versions":{"0.1.0":{"name":"@kehto/shell","version":"0.1.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.1.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/runtime#readme","bugs":{"url":"https://github.com/kehto/runtime/issues"},"dist":{"shasum":"92e7b36164ed6438018677e3c1a2f9a7dcd9a41b","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.1.0.tgz","fileCount":5,"integrity":"sha512-lBUAaWA0XJMkzW7KkZd/027q3XVdWz/aqXBXRkNLXuP5so4Gm+f594P6ollpPQ99JmBfdbIIQGKdJIGFtAZ58Q==","signatures":[{"sig":"MEUCIQDPf3nzvYPyZffHkULUK75EzDbxDz1nZ9gySq9wS2MhhgIgHF8VXpmQTxXUHxjNDRUuBK9e7YnOOxamPVmUdrTTnwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199275},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d8ad7c5cfa8e32e3bccf6807afceb01220cba340","scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"sandwiches","email":"sandwich.farm@protonmail.com"},"repository":{"url":"git+https://github.com/kehto/runtime.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.11.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"@kehto/acl":"workspace:*","@kehto/runtime":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/core":"^0.2.1","@napplet/nub-ifc":"^0.2.1","@napplet/nub-keys":"^0.2.1","@napplet/nub-media":"^0.2.1","@napplet/nub-relay":"^0.2.1","@napplet/nub-theme":"^0.2.1","@napplet/nub-notify":"^0.2.1","@napplet/nub-storage":"^0.2.1","@napplet/nub-identity":"^0.2.1"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/core":"^0.2.1","@napplet/nub-ifc":"^0.2.1","@napplet/nub-keys":"^0.2.1","@napplet/nub-media":"^0.2.1","@napplet/nub-relay":"^0.2.1","@napplet/nub-theme":"^0.2.1","@napplet/nub-notify":"^0.2.1","@napplet/nub-storage":"^0.2.1","@napplet/nub-identity":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.1.0_1776602828175_0.05808692266379367","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@kehto/shell","version":"0.2.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.2.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/runtime#readme","bugs":{"url":"https://github.com/kehto/runtime/issues"},"dist":{"shasum":"1d5bd04798ff070fcb7c8cce1d07f37460d0bf26","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.2.0.tgz","fileCount":5,"integrity":"sha512-SnhaJ/ykk3KkZszdLk9YheJDUpDYvdVGuF0HOyPao9HM18rUp77w93aN6VX/7E7FvSalHPbJOcWS70u26p3Y6Q==","signatures":[{"sig":"MEQCICv0G2Y4h1vmTZi22adhyHcyqSwmMtouCrWl4aiom4WPAiB7zD4TlHD4ifpv7qY9zLokhb2ipO7d3o8e7aWktH6YjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199259},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"sandwiches","email":"sandwich.farm@protonmail.com"},"_resolved":"/tmp/1a283f605acb77919d225533a23a2805/kehto-shell-0.2.0.tgz","_integrity":"sha512-SnhaJ/ykk3KkZszdLk9YheJDUpDYvdVGuF0HOyPao9HM18rUp77w93aN6VX/7E7FvSalHPbJOcWS70u26p3Y6Q==","repository":{"url":"git+https://github.com/kehto/runtime.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.11.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"@kehto/acl":"0.2.0","@kehto/runtime":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/core":"^0.2.1","@napplet/nub-ifc":"^0.2.1","@napplet/nub-keys":"^0.2.1","@napplet/nub-media":"^0.2.1","@napplet/nub-relay":"^0.2.1","@napplet/nub-theme":"^0.2.1","@napplet/nub-notify":"^0.2.1","@napplet/nub-storage":"^0.2.1","@napplet/nub-identity":"^0.2.1"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/core":"^0.2.1","@napplet/nub-ifc":"^0.2.1","@napplet/nub-keys":"^0.2.1","@napplet/nub-media":"^0.2.1","@napplet/nub-relay":"^0.2.1","@napplet/nub-theme":"^0.2.1","@napplet/nub-notify":"^0.2.1","@napplet/nub-storage":"^0.2.1","@napplet/nub-identity":"^0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.2.0_1776603072362_0.8782579933347419","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@kehto/shell","version":"0.5.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.5.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"e34647f5c7a9950d9c1f29aef0e2f355130d1405","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.5.0.tgz","fileCount":5,"integrity":"sha512-1efjMNEHsWS/Hd04M+9H3NKbmYIY301DU4QXbB9ku7sj6WBkvtS9i3ZiQBTpd3YsKgsqrit27G1hBxnOgAQKlA==","signatures":[{"sig":"MEQCICqHqpW32hPePBeKxkdXfN5azHv5p6jDSSgSbCeHPZuCAiBtjCXBA8EQ1hXyrJJZte8j/t/uF7DQfw3OfRzJ0feOLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225383},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/41eb7be1e40f9f99ef752dc2554f2e82/kehto-shell-0.5.0.tgz","_integrity":"sha512-1efjMNEHsWS/Hd04M+9H3NKbmYIY301DU4QXbB9ku7sj6WBkvtS9i3ZiQBTpd3YsKgsqrit27G1hBxnOgAQKlA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.5.0","@kehto/runtime":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.5.0_1781405655817_0.550306801964429","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@kehto/shell","version":"0.6.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.6.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"5f9e15ce7dadabe14064403a6390d656a3004362","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.6.0.tgz","fileCount":5,"integrity":"sha512-NO+YB/sSbKUiZYgKWAfNZIBE00lTpD5ksqN6nwUP3hjnhGdC40Yf1z5SEhSB2CV6nHD2o/gj3K270zFlwT26TQ==","signatures":[{"sig":"MEUCIQDHQobd2ZJDqu+ztU9UafbgKg3smJiyzFZG9/HV+E68NAIgU+TDV6o3tSKwmkv5et1Cc8dv/4nGAOXpjc02kcJNpAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225531},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/757e4a7eed53854c32e9d80de44ea275/kehto-shell-0.6.0.tgz","_integrity":"sha512-NO+YB/sSbKUiZYgKWAfNZIBE00lTpD5ksqN6nwUP3hjnhGdC40Yf1z5SEhSB2CV6nHD2o/gj3K270zFlwT26TQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.6.0","@kehto/runtime":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.6.0_1781439407342_0.645113977572296","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@kehto/shell","version":"0.7.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.7.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"c28a3bffe93c2f9c11c7f93766215b5d4357ac81","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.7.0.tgz","fileCount":5,"integrity":"sha512-fFshLRshoC2iP+6fw4AMTMPIKQEw6BYKxnhifhc65MuvnMuRbv+s04RR6/kJo3RQqk02qlXK3pHdvRvK2cS3Eg==","signatures":[{"sig":"MEUCIQCtFoH9dwbqlL5F0Ejmr8T7gT1w8Z8nRhm3uDzZSfq4LQIgFJ3L5Uzw/tB+IpUP86EYAmb5CTNH8iRvv/UOpjimXPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":226915},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/bde6e5f84af3605718b5316c8bcfcab3/kehto-shell-0.7.0.tgz","_integrity":"sha512-fFshLRshoC2iP+6fw4AMTMPIKQEw6BYKxnhifhc65MuvnMuRbv+s04RR6/kJo3RQqk02qlXK3pHdvRvK2cS3Eg==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.7.0","@kehto/runtime":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.7.0_1781445142946_0.08780244098130585","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@kehto/shell","version":"0.8.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.8.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"9bfb1bae289e76dddfa5b90c94f490189dc83c11","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.8.0.tgz","fileCount":5,"integrity":"sha512-85G1/Ek+IrLl+CJ6uIzGZfHKp7QEihPdRBeWG7mF2k6iL9O9uIL8aHZOtx51EI37IsnTe5Dz52H28lZretah1Q==","signatures":[{"sig":"MEYCIQCd+beikQ4suImcnUWXdXNw9GhPDYWgvJcItk2VeV0tlwIhAJ/o7xnFyFFFNNXrsYK+mJ11CWdIQ8IFfOLQEfKCUQuk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227107},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/4b4ae8fc47cb203b145ed8f58ead7460/kehto-shell-0.8.0.tgz","_integrity":"sha512-85G1/Ek+IrLl+CJ6uIzGZfHKp7QEihPdRBeWG7mF2k6iL9O9uIL8aHZOtx51EI37IsnTe5Dz52H28lZretah1Q==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.8.0","@kehto/runtime":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.8.0_1781451552388_0.05799678902868299","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@kehto/shell","version":"0.10.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.10.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"2ee7257e272750afbd5745af96803ec9cd121785","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.10.0.tgz","fileCount":5,"integrity":"sha512-Qt3uk/jcOM28atxDS0J3Vge1rMoi+2pyjAS3spt5vqXqXH9euyAqP5XFXLrANJWjmZ6SnwDq+4hCQCkaTaSJLg==","signatures":[{"sig":"MEUCIEJu5v5UgIT35Fkb8qzmW4Bw6eE1v9LHyeQ0A5or4LUWAiEAlhZirghRHk3owtxBUlL1gDJRCCf/1o/euDJgtswOiRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":233886},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/4ba46254b03dc154242129a1265e7474/kehto-shell-0.10.0.tgz","_integrity":"sha512-Qt3uk/jcOM28atxDS0J3Vge1rMoi+2pyjAS3spt5vqXqXH9euyAqP5XFXLrANJWjmZ6SnwDq+4hCQCkaTaSJLg==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.10.0","@kehto/runtime":"0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0","@napplet/shim":"0.9.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nub":"^0.5.0","@napplet/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.10.0_1781567092254_0.9340461077045288","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@kehto/shell","version":"0.11.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.11.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"accfc9bd9cc2ffa76643a37f9201695e02853eb8","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.11.0.tgz","fileCount":5,"integrity":"sha512-uTF/l5YxxFoe/cYaY13Ko7vNV70dEnzfsvTkFJSzKReY6Kc6HR0ZX4GAA/c4d0jC7XjnEDXKY3A9i5tkbE09DQ==","signatures":[{"sig":"MEUCIQDGhnL+LUUf6m6fBcPH7Km6KbvMY6MbEtId95RlVkgg9gIgbqSPHFEN0aKEPKQpi2rKkalRoUHOIyYyFltw8Voz8Ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244006},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/de89df682cd12ad2b3b617e7da40e628/kehto-shell-0.11.0.tgz","_integrity":"sha512-uTF/l5YxxFoe/cYaY13Ko7vNV70dEnzfsvTkFJSzKReY6Kc6HR0ZX4GAA/c4d0jC7XjnEDXKY3A9i5tkbE09DQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.11.0","@kehto/runtime":"0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":"^0.12.0","@napplet/core":"^0.12.0","@napplet/shim":"0.13.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":"^0.12.0","@napplet/core":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.11.0_1781704138150_0.45976972191839716","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@kehto/shell","version":"0.11.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.11.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"1f219bb39ef27688b927cb5d48cbc86589906a0c","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.11.1.tgz","fileCount":5,"integrity":"sha512-M/0k2ZPrhESbOHLsIHh5zQJZFwthrVfuJXd5yhGYebkDeKHABOrOBVGooSbY9ZsKUuclsGkzzI3HNxWmgdGyyQ==","signatures":[{"sig":"MEQCIEVrL8HJ7XUrNguPRjoKKckLaFhkYfCN3ysLVb7TO2OiAiB++R8HJOq8yIIU2ZXtoSab2D1dK4v1Gw9JFB78+eYxZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244006},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.11.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/00548b8871c8b53a40bbda5d636e7d8a/kehto-shell-0.11.1.tgz","_integrity":"sha512-M/0k2ZPrhESbOHLsIHh5zQJZFwthrVfuJXd5yhGYebkDeKHABOrOBVGooSbY9ZsKUuclsGkzzI3HNxWmgdGyyQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.11.0","@kehto/runtime":"0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":"^0.12.0","@napplet/core":"^0.12.0","@napplet/shim":"0.13.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":"^0.12.0","@napplet/core":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.11.1_1781713200915_0.7001912394287861","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@kehto/shell","version":"0.12.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.12.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"7cb17b9b79b901003c8e06896130263aa2fb6c7b","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.12.0.tgz","fileCount":5,"integrity":"sha512-OCxczS47DyGBDlbjKyoNZy9oj5aAnMqmLpm7gRThyMe+zRzpTqTHBDfTa8OUEpv/FEkRYQlOVwK25K7BS2pVnA==","signatures":[{"sig":"MEUCICzDYxxbG0i9VYxvBnfsl/ZllyzQCWwFU/Ga3jKelxoMAiEAmqNF/3fZoLzAAfggqxPKZIRyZtMeyKVEyJ46HZcOqpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":217525},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.12.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/8d617cecd4d641db190c7008b5ac992f/kehto-shell-0.12.0.tgz","_integrity":"sha512-OCxczS47DyGBDlbjKyoNZy9oj5aAnMqmLpm7gRThyMe+zRzpTqTHBDfTa8OUEpv/FEkRYQlOVwK25K7BS2pVnA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.12.0","@kehto/runtime":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":"^0.13.0","@napplet/core":"^0.13.0","@napplet/shim":"^0.14.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.12.0 <0.14.0","@napplet/core":">=0.12.0 <0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.12.0_1781789144710_0.6481978303838023","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@kehto/shell","version":"0.13.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.13.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"cf0de7cada6a73b2ee0e0760608168caa60208ae","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.13.0.tgz","fileCount":5,"integrity":"sha512-AwRULm+I7h9iTEHZ14zFfn3R0+HBHZ8XWNhyMB49iDFM2sKJB42iz5cwIs+RemFXD6Od+JMdsDRxTkOcGpqKuQ==","signatures":[{"sig":"MEQCICnZv6+cArzNf6yxPhGhaEax23IY6A9oXRii1H057vYJAiA6zoBGcqyTVfR1KXP2YmP26rgCTj32cj8tD5jLZeSaeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":220135},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.13.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/f1abe3f07a0b7a06ffc667faee7cbbc6/kehto-shell-0.13.0.tgz","_integrity":"sha512-AwRULm+I7h9iTEHZ14zFfn3R0+HBHZ8XWNhyMB49iDFM2sKJB42iz5cwIs+RemFXD6Od+JMdsDRxTkOcGpqKuQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"0.12.0","@kehto/runtime":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":"^0.13.0","@napplet/core":"^0.13.0","@napplet/shim":"^0.14.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.12.0 <0.14.0","@napplet/core":">=0.12.0 <0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.13.0_1782099054715_0.6410658078851197","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@kehto/shell","version":"0.14.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.14.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"40a1579f000512b3a9384feef2d5bfbccb4013f5","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.14.0.tgz","fileCount":5,"integrity":"sha512-0SI1jpdJ4/oqreH9j9+YpDwimjPBl8+79A7OtbcMGWeBoI3rDoUJ4GAlF2+2pirDyNCP/pVu2L1ENmbqfD5Hyg==","signatures":[{"sig":"MEUCIDixI/I/q5mvNNi/U//KLREr3nH022tw3lmkMt1Ih5PdAiEA+oLeZ8uwsyYCD0yf1HzecKp7iIdIUAqtbYIRXW0aaOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227758},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.14.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/f6bde8d746ad9fe431372895aa15fa20/kehto-shell-0.14.0.tgz","_integrity":"sha512-0SI1jpdJ4/oqreH9j9+YpDwimjPBl8+79A7OtbcMGWeBoI3rDoUJ4GAlF2+2pirDyNCP/pVu2L1ENmbqfD5Hyg==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"^0.13.0","@kehto/runtime":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":"^0.20.0","@napplet/core":"^0.20.0","@napplet/shim":"^0.14.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.20.0 <0.21.0","@napplet/core":">=0.20.0 <0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.14.0_1782200270617_0.1336568092018513","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@kehto/shell","version":"0.14.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.14.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"a489ee6b185f259ac5c321ec779eec06a13a0213","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.14.1.tgz","fileCount":5,"integrity":"sha512-D54RYqzR94z4ZxoJaST3M9V6NeWdwZv/1vM7dgBsqkoNsVcqhtw5sUUHmYnOAHU1aUaJxtlXbRcEVi1w6z+W+Q==","signatures":[{"sig":"MEUCIQCqht+kJrW1bOTdSBqXhIjw0KUHp2I+KQUPfWp5j4kNcgIgDiL84K95HGxsHhk47Btzp5OCCRwSw5cCXMEbAzsh154=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227776},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.14.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/574132be1e3b07602b6a62e747d23d9b/kehto-shell-0.14.1.tgz","_integrity":"sha512-D54RYqzR94z4ZxoJaST3M9V6NeWdwZv/1vM7dgBsqkoNsVcqhtw5sUUHmYnOAHU1aUaJxtlXbRcEVi1w6z+W+Q==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"^0.13.1","@kehto/runtime":"^0.14.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.21.0 <0.22.0","@napplet/core":">=0.21.0 <0.22.0","@napplet/shim":"^0.22.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.21.0 <0.22.0","@napplet/core":">=0.21.0 <0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.14.1_1782245166701_0.7867935755298887","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"@kehto/shell","version":"0.14.2","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.14.2","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"89d2a24ea81cfa41e5dc0082e02deacf836151f4","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.14.2.tgz","fileCount":5,"integrity":"sha512-3rlFRjxylDg+2umew4Dgk0ll0NAW8zogzonVMXYhHiHEWWaDU7AsGB4hS83bpHVK8CuQdd6pTzNkXWQIRvu6JA==","signatures":[{"sig":"MEUCIE5zXxlmUnZ3mf2tH+aTVkoG5ZzO8Dwv6J81EpU+DuNyAiEAiiDMaXWcWq7Zto9xtLkT2UBOlWB+ENaBXApuak1fANk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227776},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.14.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/0c047571f0685bfe5d99cfc3aae46f07/kehto-shell-0.14.2.tgz","_integrity":"sha512-3rlFRjxylDg+2umew4Dgk0ll0NAW8zogzonVMXYhHiHEWWaDU7AsGB4hS83bpHVK8CuQdd6pTzNkXWQIRvu6JA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@kehto/acl":"^0.13.1","@kehto/runtime":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.21.0 <0.22.0","@napplet/core":">=0.21.0 <0.22.0","@napplet/shim":"^0.22.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.21.0 <0.22.0","@napplet/core":">=0.21.0 <0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.14.2_1782337094155_0.5911749240627007","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@kehto/shell","version":"0.15.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.15.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"ffe552c6540d4a9fc23c627b3f0930135a89b6f1","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.15.1.tgz","fileCount":5,"integrity":"sha512-faMekJKLXSPcjKzC3BLTXjFZxw71ZX52jSoXdMpGAWJTVfwo2xxjKheZcxHKVDCdKRQ9MeM4NFhNwB9d7TLgpQ==","signatures":[{"sig":"MEQCHyVW6CDnit0ooqlGz0qhJBXHUyaiQGvdXEaBYvuLjd8CIQDj1Z6GAx+fynUykeCG8SMEsEj6qfrMpK8ESgqdxOdFZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241059},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.15.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/56057d59541137b2471eb97438d15c66/kehto-shell-0.15.1.tgz","_integrity":"sha512-faMekJKLXSPcjKzC3BLTXjFZxw71ZX52jSoXdMpGAWJTVfwo2xxjKheZcxHKVDCdKRQ9MeM4NFhNwB9d7TLgpQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"@kehto/acl":"^0.14.1","@kehto/runtime":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <0.24.0","@napplet/core":">=0.23.0 <0.24.0","@napplet/shim":"^0.24.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.23.0 <0.24.0","@napplet/core":">=0.23.0 <0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.15.1_1782731860890_0.30053597369292295","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"@kehto/shell","version":"0.15.2","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.15.2","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"c17dc945b95a9d23c4a6b4e9c7695f5f04acfd62","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.15.2.tgz","fileCount":5,"integrity":"sha512-1RN1A9brApFzLsLutCrXMbWWcoTN6qLQlxmUxq005zV79MSEXgKzvMPbUPO8qmTS9SPpxwDvKPic555HuhzLEw==","signatures":[{"sig":"MEQCIAa8iUNt1/KeEZqgoa1GWrAvIy7+LQbVX4hxjZabJA74AiB957ng7ulmTVAItLNCYnDoL3aM64uQEwIcsQk4LBk6zA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241059},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.15.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/7055d76ae9833a246d6d7cfe3da91a02/kehto-shell-0.15.2.tgz","_integrity":"sha512-1RN1A9brApFzLsLutCrXMbWWcoTN6qLQlxmUxq005zV79MSEXgKzvMPbUPO8qmTS9SPpxwDvKPic555HuhzLEw==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"@kehto/acl":"^0.14.2","@kehto/runtime":"^0.16.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <0.25.0","@napplet/core":">=0.23.0 <0.25.0","@napplet/shim":"^0.24.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.23.0 <0.25.0","@napplet/core":">=0.23.0 <0.25.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.15.2_1782733810481_0.9187624975904845","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@kehto/shell","version":"0.16.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"308e1435bc3e0a387101009547741ac3e1ea59bd","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.1.tgz","fileCount":5,"integrity":"sha512-lZOH+KOVQUozEXqfEkSI/iO4k9Nv6xEqYoatRRjyNgGWVPAOkJ3Ho+YRskvn1HVubqpmrfkhtOOu8aifyA1hhA==","signatures":[{"sig":"MEYCIQDuqVqowIyk2EkuYy53TT3Fw2oqAWc+jlLu4D71mRv/dwIhAK1cYB1Vw0H2kfvaa0c8VXc/zv5VBoE3SA7jMr/ySTS2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241712},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/e16bbc2bfef4a45dcb21c2b016177a9d/kehto-shell-0.16.1.tgz","_integrity":"sha512-lZOH+KOVQUozEXqfEkSI/iO4k9Nv6xEqYoatRRjyNgGWVPAOkJ3Ho+YRskvn1HVubqpmrfkhtOOu8aifyA1hhA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","dependencies":{"@kehto/acl":"^0.15.1","@kehto/runtime":"^0.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <0.26.0","@napplet/core":">=0.23.0 <0.26.0","@napplet/shim":"^0.26.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.23.0 <0.26.0","@napplet/core":">=0.23.0 <0.26.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.1_1782967577426_0.9291657418281911","host":"s3://npm-registry-packages-npm-production"}},"0.16.2":{"name":"@kehto/shell","version":"0.16.2","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.2","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"52da6fcf207b2888cd2f7ef8eb6d0a3442fe8d4d","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.2.tgz","fileCount":5,"integrity":"sha512-ddYhlKcb6ZEuyQDpK27MqQOTb7XbaL0S/mt4VNcy9bIMiPvYEm2YXkARLuMrmPEK/ENwhK0R/HTWWQxsQv6/jQ==","signatures":[{"sig":"MEQCIHwiu75IFc+k0pEr5NF0Y9OjmkEP7WxDVhC3rRbyFMebAiBvTxU0HRmotyw5lUg19S3LRxgvbR5z7vjTOPipEh/YMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241712},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/e6778859ac85486c7ae6009e3d18a591/kehto-shell-0.16.2.tgz","_integrity":"sha512-ddYhlKcb6ZEuyQDpK27MqQOTb7XbaL0S/mt4VNcy9bIMiPvYEm2YXkARLuMrmPEK/ENwhK0R/HTWWQxsQv6/jQ==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.1","@kehto/runtime":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <0.26.0","@napplet/core":">=0.23.0 <0.26.0","@napplet/shim":"^0.26.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <3.0.0","@napplet/nap":">=0.23.0 <0.26.0","@napplet/core":">=0.23.0 <0.26.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.2_1783075562947_0.8703021010752783","host":"s3://npm-registry-packages-npm-production"}},"0.16.4":{"name":"@kehto/shell","version":"0.16.4","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.4","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"939b5faafa0dc2e57b3029aced188858e446fc5f","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.4.tgz","fileCount":5,"integrity":"sha512-y6eCq8MdLkqi/WzpXbW5Bel/t0vSmq2TJfJSH+OldgMtOtHr7WBZ+79C6SQG2jWSTl9F3Ec/QVFoGF/GdTT+iw==","signatures":[{"sig":"MEYCIQCJbeI0/vnL52ZU61fHH1mHK9hMWfGheRVzlFDHndpDGAIhAN7gNT5Y6WOTTAtg++7YeYoRC5MBjOrYAVSsqFD3x9zB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241715},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/34ec7993750c46e74e5c70c437538be4/kehto-shell-0.16.4.tgz","_integrity":"sha512-y6eCq8MdLkqi/WzpXbW5Bel/t0vSmq2TJfJSH+OldgMtOtHr7WBZ+79C6SQG2jWSTl9F3Ec/QVFoGF/GdTT+iw==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.4","@kehto/runtime":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x","@napplet/shim":"^0.26.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.4_1783119414290_0.8988132128275534","host":"s3://npm-registry-packages-npm-production"}},"0.16.5":{"name":"@kehto/shell","version":"0.16.5","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.5","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"3e7c31c59c1ec42193a3a9f8fbddcdfa1fb5a4da","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.5.tgz","fileCount":5,"integrity":"sha512-jnUKf6CX911bBtWAUc+cS9WIoN4E8nZwFvA1bpgqZGzgQzfoNleIgYRkKdXDQ4WWAuZkRXM1WB/mCRbWyBoq6A==","signatures":[{"sig":"MEQCIHuITvQYvQvh0xByphP7srlzB+TOYjRDDw+RWEnmtKqXAiAI05DFMn3Ecb2YoUC6nWzKIv1WCx3xOIZzLs/NCBRPlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324676},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/f2aa918d7322d87cbc5a62844e84cc2b/kehto-shell-0.16.5.tgz","_integrity":"sha512-jnUKf6CX911bBtWAUc+cS9WIoN4E8nZwFvA1bpgqZGzgQzfoNleIgYRkKdXDQ4WWAuZkRXM1WB/mCRbWyBoq6A==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.4","@kehto/runtime":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x","@napplet/shim":"^0.26.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.5_1783357416107_0.2552194463896382","host":"s3://npm-registry-packages-npm-production"}},"0.16.6":{"name":"@kehto/shell","version":"0.16.6","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.6","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"13f123357e70b0bca9d92b37e54344a63a3b4f62","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.6.tgz","fileCount":5,"integrity":"sha512-F0UQFDdN9PzeWmcIEU2SDH9dw3/0E591CeISGISwvPB7iwrCqFNavbOU/9CsZ/n9hxt29sNIIOxriItsQBEBZg==","signatures":[{"sig":"MEUCIQCGNsYbzS0/MhEY+PgiYGMi0kxZAArHzOazSml8d8ttuwIgR61yzC6W7NMwGOFh/5imlqw67QrBRaVF42X+UEZrhiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326105},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/7f352c95c323a650f1107d57c57bdc41/kehto-shell-0.16.6.tgz","_integrity":"sha512-F0UQFDdN9PzeWmcIEU2SDH9dw3/0E591CeISGISwvPB7iwrCqFNavbOU/9CsZ/n9hxt29sNIIOxriItsQBEBZg==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.4","@kehto/runtime":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x","@napplet/shim":"^0.26.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.6_1783361897670_0.0786638942895872","host":"s3://npm-registry-packages-npm-production"}},"0.16.7":{"name":"@kehto/shell","version":"0.16.7","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.16.7","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"dcae6f00ded3a9e4bc4abc10e86d08ba6a24a661","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.16.7.tgz","fileCount":5,"integrity":"sha512-6LO1nip9ksWrUcBPe930VROb12XE16GYag8yPZJwE2ACZpHae1tTSSENpny8MMblKuI1jAWJusABtwIKUCorcA==","signatures":[{"sig":"MEUCICRpv9Y3biL97XZfduj0Dl7ng1MNwBwHBrCW5o3rhM93AiEA32xU8Md2jp1SdcZq5uCo3XSE9oENmWmXg9NeXHg0oUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.16.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342277},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.16.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/2d2010e8154f6ba9ba11f60d56c0a052/kehto-shell-0.16.7.tgz","_integrity":"sha512-6LO1nip9ksWrUcBPe930VROb12XE16GYag8yPZJwE2ACZpHae1tTSSENpny8MMblKuI1jAWJusABtwIKUCorcA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.18.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.4","@kehto/runtime":"^0.18.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x","@napplet/shim":"^0.26.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.23.0 <=0.27.x","@napplet/core":">=0.23.0 <=0.27.x"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.16.7_1783365819223_0.09935839886395414","host":"s3://npm-registry-packages-npm-production"}},"0.17.2":{"name":"@kehto/shell","version":"0.17.2","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.17.2","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"7a04dd64285342314c632c36386c4472b110162f","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.17.2.tgz","fileCount":5,"integrity":"sha512-C5/Etvt5say90c0EEgsdIbIToxrWEp0Fs3/PsVhbyuUuJG9/EQFLchLTpGbZ6ZEnvPHqu8r1g1OzVWQjDUm4Rw==","signatures":[{"sig":"MEQCIDQoUV4Q1k1bUToeBzBeiBy9HztZXjATXPwQAP7vedTmAiBSXD53WlA+jyBeEL9O3iXRpxwyUw0ic7ztwtTJrfRU9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.17.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329729},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.17.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/058600caa4b466ea3879b86c00699b09/kehto-shell-0.17.2.tgz","_integrity":"sha512-C5/Etvt5say90c0EEgsdIbIToxrWEp0Fs3/PsVhbyuUuJG9/EQFLchLTpGbZ6ZEnvPHqu8r1g1OzVWQjDUm4Rw==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.15.6","@kehto/runtime":"^0.18.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.23.0 <=0.28.x","@napplet/core":">=0.23.0 <=0.28.x","@napplet/shim":"^0.26.8"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.23.0 <=0.28.x","@napplet/core":">=0.23.0 <=0.28.x"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.17.2_1783811183874_0.6180136569198842","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@kehto/shell","version":"0.18.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.18.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"1ad0fb2f7aa1445e4e5ab1f8b1b806edd5c8b8df","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.18.0.tgz","fileCount":5,"integrity":"sha512-X/RuhzrxeptxwIvtEn5S4X+PRxVlpVKIF0SQYPPNrHVuzSyKTaIaj6SRTN09uX7zSR3vqImSGnJ53t5hTTLN4A==","signatures":[{"sig":"MEUCIQDFD18bH4nWj4dUjXWA4pfAGwJK53jwPNk7U1rxPm8ifgIgBWaKuJsfU/ONgtvJVYkTXDn3llIwv/MMq+NfX1UFQa8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":371299},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.18.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/d2fc6a96e5ca556ee4327a667c194d44/kehto-shell-0.18.0.tgz","_integrity":"sha512-X/RuhzrxeptxwIvtEn5S4X+PRxVlpVKIF0SQYPPNrHVuzSyKTaIaj6SRTN09uX7zSR3vqImSGnJ53t5hTTLN4A==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.16.0","@kehto/runtime":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.29.0 <0.30.0","@napplet/core":">=0.29.0 <0.30.0","@napplet/shim":"0.27.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.29.0 <0.30.0","@napplet/core":">=0.29.0 <0.30.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.18.0_1785234061317_0.5800890174199511","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@kehto/shell","version":"0.19.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.19.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"5e703a650af213678fb8d16ab07f9c6fd6d66a5b","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.19.0.tgz","fileCount":5,"integrity":"sha512-MIFE/i4MmizxCquzaZbeUh1QMwdC/GS/tcOD1GzZwJWXkL6RqYcNwWQ+DExuWRcaHaobW/8pIHe/oIS0rFP7FA==","signatures":[{"sig":"MEYCIQDka5+8pGcHt7zOhld55qmpWV/7TOJ+57UCwgep86ihJAIhAJWLqhxzyqvw1b/bN0kOFxGAp0Eltg6bKE2EfxJTlDII","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":368813},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/04bcb52f96abcf2ddc2cf2159261b042/kehto-shell-0.19.0.tgz","_integrity":"sha512-MIFE/i4MmizxCquzaZbeUh1QMwdC/GS/tcOD1GzZwJWXkL6RqYcNwWQ+DExuWRcaHaobW/8pIHe/oIS0rFP7FA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.17.0","@kehto/runtime":"^0.20.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0","@napplet/shim":"0.29.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.19.0_1785264725222_0.5367609693336766","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"@kehto/shell","version":"0.19.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.19.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"9a2fef7492d2d76eaa88d3458b7d30096bdbaaeb","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.19.1.tgz","fileCount":5,"integrity":"sha512-XKyl2nVsohDmutIp8mDc2FlErKrWGV6s5rJH3w/Fm/zfdLIv1WwSdczcxqr6I/S2qoLBccQiOmlwXnf+vm3iug==","signatures":[{"sig":"MEYCIQCs6uU5qvUzwPdk0U5a+zV4rqN5EK0Wo9EtM0CAsVby4QIhAJ/FGIqxIAvyBLE/PG/AoG9usfVyotJzVTFMzaUBmyGg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369470},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.19.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/86892b1b66c3c52d097d2db60d604f38/kehto-shell-0.19.1.tgz","_integrity":"sha512-XKyl2nVsohDmutIp8mDc2FlErKrWGV6s5rJH3w/Fm/zfdLIv1WwSdczcxqr6I/S2qoLBccQiOmlwXnf+vm3iug==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.17.0","@kehto/runtime":"^0.20.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0","@napplet/shim":"0.29.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.19.1_1785341462935_0.7754457435427846","host":"s3://npm-registry-packages-npm-production"}},"0.19.2":{"name":"@kehto/shell","version":"0.19.2","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.19.2","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"1d276b36940d1bb6e2ff8790776e90f69882d8ec","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.19.2.tgz","fileCount":5,"integrity":"sha512-L7iwLURLM+6yoatpFZ9FporF8nDyM+/WWZWk8UnhvgE4TVkyjxnPY/iK1BThXHH18TM155GIqGiefl6G9IpjgA==","signatures":[{"sig":"MEQCIA5R4KngPSRgRSCGc9nrFBpNrjWzBpOo2fQ/KGPV4uOPAiBhkzKndvmA1CqDk5Mh4ePDEzO/p07kCBZWfJmOTlDJ2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369470},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.19.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/7dc5cac2bb37d2772a4595ccfa9b7cd0/kehto-shell-0.19.2.tgz","_integrity":"sha512-L7iwLURLM+6yoatpFZ9FporF8nDyM+/WWZWk8UnhvgE4TVkyjxnPY/iK1BThXHH18TM155GIqGiefl6G9IpjgA==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.17.0","@kehto/runtime":"^0.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0","@napplet/shim":"0.29.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.19.2_1785459566962_0.7781970659497537","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@kehto/shell","version":"0.20.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.20.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"079d49da36fbac8258a8f89d288eea29a36a3292","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.20.0.tgz","fileCount":5,"integrity":"sha512-YVn5kaU18Fg0cQyP+i3DlW0GZgVS5KKku6USVSg1UnPnD3I4OSgv5RbHJQRb5Zr3E3vNmZxMGu00O4mOsO2V4A==","signatures":[{"sig":"MEUCIQC09x1H3lkeE0fxwEI/9pUp0oVZ2I+1d6oXn2EqTyia2gIgfy/6SKtkYnwgFMTlOk11LVPXE/JOiBKEflv2ohFdZ3w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376362},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.20.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/89f757ec2e4dee98f67faa5040654e41/kehto-shell-0.20.0.tgz","_integrity":"sha512-YVn5kaU18Fg0cQyP+i3DlW0GZgVS5KKku6USVSg1UnPnD3I4OSgv5RbHJQRb5Zr3E3vNmZxMGu00O4mOsO2V4A==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@kehto/acl":"^0.18.0","@kehto/runtime":"^0.22.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0","@napplet/shim":"0.29.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.20.0_1786284903614_0.7237205778169251","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@kehto/shell","version":"0.20.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.20.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"4696d8a2bd154336e116aa78da4fadb9f6e8fcc5","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.20.1.tgz","fileCount":5,"integrity":"sha512-Pe0wkCFV5DIlz2bYVF6vOqHQcpK4+aNWbDgYKmmyaH50ZGF4R5Ml/PMM2VBnsQE70/xAvi1/wodIOo9Nde6x0w==","signatures":[{"sig":"MEYCIQCOXkvQlz7Eo8kUU8Blf6cYqG+Jaun01jTRL9UZMN8ILQIhAPTluYEBLTczxn25PNcTPaSmhtCDw5RxNxbdzX07VO1v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376945},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.20.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/885dd9f2ffbfbcc4ba58c6921d323c6f/kehto-shell-0.20.1.tgz","_integrity":"sha512-Pe0wkCFV5DIlz2bYVF6vOqHQcpK4+aNWbDgYKmmyaH50ZGF4R5Ml/PMM2VBnsQE70/xAvi1/wodIOo9Nde6x0w==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@kehto/acl":"^0.18.0","@kehto/runtime":"^0.22.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0","@napplet/shim":"0.29.2"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.31.0 <0.32.0","@napplet/core":">=0.31.0 <0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.20.1_1787406793119_0.7143700681810217","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@kehto/shell","version":"0.21.0","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.21.0","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"a87b9a75f24708612a84393d6853ea7b5277f02d","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.21.0.tgz","fileCount":5,"integrity":"sha512-kfx0/pHY7zkpzRwC/T982KXgq0SdAE2PqJ8WQ9wCqqWnP3n4jLmuiWsbwYF/bSAIClykDe4YTs3TIa8guSme8g==","signatures":[{"sig":"MEUCIQCNX7k38ttYb54WkGqAy8Hl7xDCutvZllMVGGCdUfC5XQIgcSMBOCqq3VLnjsKWPHxFJeE0cpyaNrYvBySbjY00jDs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHUXliKUWtpAUZFQK5V3UzxhTV19GS9I3eCgOvRDb+CMAiBqOtM0BxeZAzhI1L6mErDBVsOUGRqxUt/RRszeSMZjyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":377861},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.21.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/b912750ba5ba31681fb02b359175b011/kehto-shell-0.21.0.tgz","_integrity":"sha512-kfx0/pHY7zkpzRwC/T982KXgq0SdAE2PqJ8WQ9wCqqWnP3n4jLmuiWsbwYF/bSAIClykDe4YTs3TIa8guSme8g==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@kehto/acl":"^0.19.0","@kehto/runtime":"^0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0","@napplet/shim":"0.30.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.21.0_1787856878640_0.8903942662498621","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@kehto/shell","version":"0.21.1","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"license":"MIT","_id":"@kehto/shell@0.21.1","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"homepage":"https://github.com/kehto/web#readme","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"551045e131b559bf63e1da2f70e57c6621bfece8","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.21.1.tgz","fileCount":5,"integrity":"sha512-KjY9mqaB10k6DMvQwQafx1PXPPnWVZmKG6g3QtGctab/nZFYclGQMEDP9uY0rpEahhwi+KYMupkN5WN9FPFDtg==","signatures":[{"sig":"MEUCICOiDb9AALQj3baSgoP4NBRztfVEb66UPK0lNo2jnDmvAiEAmdcDYUc1b7KIZAK2znTI9kc9XWer2xQZgb9BwNn4Umc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGErEGMEBH4GO3+3x/tSBvFEsHaYfDpRXpATHxXPlbybAiB1HCtoz2MGGr0BTCkegW+MRvP60hOJGIeIkMnESMuAMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.21.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380453},"main":"./dist/index.js","type":"module","_from":"file:kehto-shell-0.21.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"_resolved":"/tmp/4e56af1f337e458737f88517d056f445/kehto-shell-0.21.1.tgz","_integrity":"sha512-KjY9mqaB10k6DMvQwQafx1PXPPnWVZmKG6g3QtGctab/nZFYclGQMEDP9uY0rpEahhwi+KYMupkN5WN9FPFDtg==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@kehto/acl":"^0.19.0","@kehto/runtime":"^0.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0","@napplet/shim":"0.30.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/shell_0.21.1_1788549000021_0.5489159718836016","host":"s3://npm-registry-packages-npm-production"}},"0.21.2":{"_id":"@kehto/shell@0.21.2","bugs":{"url":"https://github.com/kehto/web/issues"},"dist":{"shasum":"e169078e1da5cb8970299fb82a2aaddf020cbe4f","tarball":"https://registry.npmjs.org/@kehto/shell/-/shell-0.21.2.tgz","fileCount":5,"integrity":"sha512-BokbaQOnpdtR6tqxEaA3GWKmL1qBNULtFcq8/UkqlDsXpzcYEJQqCWErldcM6uTw5u0EWMRbij1bnP7lzN5M1w==","signatures":[{"sig":"MEUCIQCDXQUMW1kjGIk0050SxZ6hWN4ic9YgfPyox6Jz81GPcQIgesJz5f11e7N4034dP5vUHwe8+1yq28LXe3Uuzc9si98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDR7VAQvTBoI7EGVmEtDCBrCaDMgLVFkWeNDh+h79UHAgIhAJ4QKOK0nubyhdXggXXXWjSGhTWAD4gvFI7dWXV1TkpN"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@kehto%2fshell@0.21.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":380453},"main":"./dist/index.js","name":"@kehto/shell","type":"module","_from":"file:kehto-shell-0.21.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"license":"MIT","scripts":{"build":"tsup","test:unit":"echo 'no unit tests yet'","type-check":"tsc --noEmit"},"version":"0.21.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d81de74d-9c66-484b-bd95-928e2a763b59"}},"homepage":"https://github.com/kehto/web#readme","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"_resolved":"/tmp/998d9f7557f7887e8f8c16b65e2dbc83/kehto-shell-0.21.2.tgz","_integrity":"sha512-BokbaQOnpdtR6tqxEaA3GWKmL1qBNULtFcq8/UkqlDsXpzcYEJQqCWErldcM6uTw5u0EWMRbij1bnP7lzN5M1w==","repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"_npmVersion":"11.17.0","description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","directories":{},"maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@kehto/acl":"^0.19.0","@kehto/runtime":"^0.24.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.9.3","nostr-tools":"^2.23.3","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0","@napplet/shim":"0.30.0"},"peerDependencies":{"nostr-tools":">=2.23.3 <=2.x","@napplet/nap":">=0.32.0 <0.33.0","@napplet/core":">=0.32.0 <0.33.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shell_0.21.2_1788814386124_0.5776704683049996"}}},"time":{"created":"2026-04-19T12:47:08.069Z","modified":"2026-09-07T20:53:06.611Z","0.1.0":"2026-04-19T12:47:08.321Z","0.2.0":"2026-04-19T12:51:12.509Z","0.5.0":"2026-06-14T02:54:15.960Z","0.6.0":"2026-06-14T12:16:47.467Z","0.7.0":"2026-06-14T13:52:23.089Z","0.8.0":"2026-06-14T15:39:12.538Z","0.10.0":"2026-06-15T23:44:52.399Z","0.11.0":"2026-06-17T13:48:58.281Z","0.11.1":"2026-06-17T16:20:01.089Z","0.12.0":"2026-06-18T13:25:44.870Z","0.13.0":"2026-06-22T03:30:54.864Z","0.14.0":"2026-06-23T07:37:50.755Z","0.14.1":"2026-06-23T20:06:06.866Z","0.14.2":"2026-06-24T21:38:14.297Z","0.15.1":"2026-06-29T11:17:41.020Z","0.15.2":"2026-06-29T11:50:10.641Z","0.16.1":"2026-07-02T04:46:17.582Z","0.16.2":"2026-07-03T10:46:03.107Z","0.16.4":"2026-07-03T22:56:54.448Z","0.16.5":"2026-07-06T17:03:36.233Z","0.16.6":"2026-07-06T18:18:17.815Z","0.16.7":"2026-07-06T19:23:39.436Z","0.17.2":"2026-07-11T23:06:24.078Z","0.18.0":"2026-07-28T10:21:01.459Z","0.19.0":"2026-07-28T18:52:05.375Z","0.19.1":"2026-07-29T16:11:03.085Z","0.19.2":"2026-07-31T00:59:27.112Z","0.20.0":"2026-08-09T14:15:03.789Z","0.20.1":"2026-08-22T13:53:13.267Z","0.21.0":"2026-08-27T18:54:38.796Z","0.21.1":"2026-09-04T19:10:00.166Z","0.21.2":"2026-09-07T20:53:06.253Z"},"bugs":{"url":"https://github.com/kehto/web/issues"},"license":"MIT","homepage":"https://github.com/kehto/web#readme","keywords":["nostr","napplet","kehto","shell","relay-bridge"],"repository":{"url":"git+https://github.com/kehto/web.git","type":"git","directory":"packages/shell"},"description":"Shell runtime — relay bridge, ACL enforcement, signer proxy, storage proxy for hosting napplet iframe applications","maintainers":[{"name":"sandwiches","email":"sandwich.farm@protonmail.com"}],"readme":"# @kehto/shell\n\nBrowser adapter over @kehto/runtime — ShellBridge and domain proxies.\n\n> **Alpha status:** Kehto is an early runtime toolkit for a draft NIP-5D\n> protocol. NAP contracts and injected-domain behavior are still draft; treat\n> this package as current implementation guidance.\n\n## Install\n\n```bash\npnpm add @kehto/shell\n```\n\n## Published Napplet Compatibility\n\n`@kehto/shell` publishes against `@napplet/core` and `@napplet/nap`\n`>=0.32.0 <0.33.0`. The installed core 0.32.0 / nap 0.32.0 contracts follow\nNAP-INTENT authority `5ac0490461ca6fec2f0d2e45b4835cf9bc08de24`, napplet/web#199\nsource `3037200c932488f14f7f369b8583c39c9c16510a` / merge\n`b3f0007867eac109fa4917fac9c285d3b7cc6155`, and Version Packages #198 release\nsource `dc1d24153c759152b6ba31a6ec9bea967798f2df`.\n\n## Overview\n\n`@kehto/shell` is the browser-specific integration layer for kehto. It wraps `@kehto/runtime` with the window/postMessage transport, localStorage persistence hooks, an audio manager, and the five canonical per-domain proxies defined by NIP-5D.\n\nThe primary entry point is `createShellBridge()` — it owns the postMessage listener, the NAP-SHELL `shell.ready` / `shell.init` handshake, manifest verification, and every dispatch back into the runtime engine.\n\nCurrent draft behaviors this package enforces:\n\n- The shell does not inject a host-provided nostr object into napplets — NIP-5D explicitly forbids napplet-visible signing. Napplets call `relay.publish` / `relay.publishEncrypted` and the shell mediates the signing flow internally (NIP-44 default, NIP-04 opt-in for encrypted envelopes).\n- `AuthHooks.getSigner(windowId?)` receives the originating iframe window ID\n  when the runtime can identify it. The shell forwards this optional context\n  without imposing a consent policy; host runtimes may ignore it or use it to\n  resolve their own identity-scoped signer decisions.\n- `injectNappletNamespacePrelude()` implements the NIP-5D injected-domain bootstrap and mandatory NAP-SHELL shim: hosts prepend it to `srcdoc` outside verified artifact bytes, install the parent-bound `shell.init` receiver, emit one `shell.ready`, and expose callable NAP interfaces before authored scripts run. Optional namespaces are filtered to the bare-domain allowlist; `shell` is always retained. Published core 0.32.0 and shim 0.30.0 omit generic mandatory shell, so Kehto retains this host-owned prelude under NAP-SHELL `5ac0490461ca6fec2f0d2e45b4835cf9bc08de24` until an upstream correction is reviewed.\n- The injected resource projection follows draft NAP-RESOURCE `9511232f69313aa7953d110e35d32cc28d506f66`: `bytes(url, { servers? })` carries advisory Blossom locations and `bytesMany(requests)` keeps each `{ url, servers? }` entry intact.\n- `window.napplet.shell.supports(domain)` answers synchronously and locally from the cached first `shell.init` environment. It returns `false` before `shell.init`, for unknown values, and for domains that are not live and granted to that napplet; it never sends a support-query message.\n- Five optional per-domain proxies — `createIdentityProxy`, `createThemeProxy`, `createKeysProxy`, `createMediaProxy`, `createNotifyProxy` — can be composed between napplet and runtime to intercept request traffic per NAP. They are NOT wired by default. Identity/theme proxy `emit()` compatibility members fail closed; hosts must deliver automatic changes through `ShellBridge.publishIdentityChanged()` / `publishTheme()`, which enforce live session, granted domain, and current ACL.\n- `keys.forward` is napplet-to-shell only. Active napplets suppress locally-bound keys from `keys.bindings` before forwarding; shell-initiated action triggers use `keys.action`.\n- `buildShellCapabilities()` advertises only live domains. Registered `dm` and `fs` services are injected only when their handlers exist; disabled domains are absent from the delivered `domains` and named services snapshots.\n\n### NAP-INC binding and channel contract\n\nThe injected INC binding follows merged\n[`naps/NAP-INC.md`](https://github.com/napplet/naps/blob/5ac0490461ca6fec2f0d2e45b4835cf9bc08de24/naps/NAP-INC.md)\non `napplet/naps` master\n`5ac0490461ca6fec2f0d2e45b4835cf9bc08de24`. The specification remains marked\ndraft, but its merged path is the protocol authority.\n\nThe released package projection and `window.napplet.inc` binding own\nquery-to-text-payload\ntransposition: it converts a convention URI query before emitting a stable,\nexact stable convention topic identity. Subscriptions reject query- or fragment-bearing\n**convention** identities; arbitrary opaque topics remain byte-for-byte exact,\nincluding `?` and `#`. The binding never creates a normalized query-bearing\nwire/discovery identity,\ndoes not do prefix/wildcard/query-aware matching or service-over-INC prefix\ndispatch, and does not infer payload kinds. Runtime delivery supplies the\n**runtime-attested dTag**; no caller sender is accepted, topic source exclusion\nis runtime-owned, and IDs and payloads are opaque.\n\nMerged NAP-INC and released `@napplet/nap@0.32.0` both deliver one `IncEvent`\nto `on(topic, callback)`.\n\nFor channels, runtime ACL checks are open-only rather than per-message. The\ntarget `inc.channel.opened` before the opener result creates an equivalent target\nhandle; `channel.onOpened` exposes it, while symmetric handles expose `on` and\n`onClosed`. The binding retains inbound, early, and terminal lifecycle state in\norder, closes on bounded overflow, and treats teardown as deterministic.\n`channel.list()` is informational only. The downstream tracker is\n[`kehto/web#203`](https://github.com/kehto/web/issues/203), with its [upstream\nresolution reply](https://github.com/kehto/web/issues/203#issuecomment-5060904495);\nthe prior opener-only interpretation is obsolete.\n\n### NAP-INTENT binding and delivery\n\nKehto implements merged [NAP-INTENT at\n`5ac0490461ca6fec2f0d2e45b4835cf9bc08de24`](https://github.com/napplet/naps/blob/5ac0490461ca6fec2f0d2e45b4835cf9bc08de24/naps/NAP-INTENT.md).\nThe protected `window.napplet.intent` binding accepts structured\n`invoke(request)` calls and `open(archetype, payload?, opts?)`. It defaults\n`action` to `open`, preserves an optional queryless convention, rejects\nunsupported fields and caller-supplied sender data, and resolves only\nparent-originated correlated results.\n\nSuccessful results include `handled`, `handler`, `windowId`, and `convention`\nafter target dispatch completes. There is no `intent.deliver` or `onDelivery`;\nselected targets consume their convention through the ordinary\nruntime-attested INC binding.\n\nPhase 105 completed released `@napplet/*` package adoption and persistent live\nPaja/playground catalogs and target controllers. The Phase 104 Paja simulator\nand playground catalog builder are historical exact-contract consumers; preserve\narchived planning rather than presenting it as active guidance.\n\n## Quick Start\n\n```ts\nimport { createShellBridge } from '@kehto/shell';\nimport { createNotificationService } from '@kehto/services';\n\nconst bridge = createShellBridge({\n  adapter: myShellAdapter,\n  hooks: myHooks,\n  target: window,\n});\n\n// Register a reference service against the underlying runtime.\nbridge.runtime.registerService(\n  'notify',\n  createNotificationService({ onChange: updateBadge }),\n);\n```\n\n## Public API\n\n### Bridge factory\n- `createShellBridge` — primary entry point; returns a `ShellBridge` (exposed `runtime`, `shell.ready`, lifecycle hooks)\n- `ShellBridge` — interface type for the returned bridge\n\n### Hooks adapter\n- `adaptHooks` — convert a `ShellAdapter` + `BrowserDeps` into the canonical `RuntimeAdapter` hook bag consumed by `@kehto/runtime`\n\n### Diagnostics\n- `ShellAdapter.onUnroutedMessage?(info)` — optional observe-only hook fired when `ShellBridge.handleMessage` drops an incoming postMessage it can't route to a registered napplet window. `info` is an `UnroutedMessageInfo` (`{ type?, origin, reason }`) where `reason` is `'no-source-window'` or `'unregistered-window'`. The message is still dropped — this exists so otherwise-silent drops (e.g. an intent/`srcdoc` iframe whose `contentWindow` was never registered in `originRegistry`, or was swapped by a reload) are diagnosable instead of vanishing. Host can `console.warn` inside its own hook; the bridge adds no console output and swallows hook errors so routing is never broken.\n\n```ts\nconst bridge = createShellBridge({\n  ...myShellAdapter,\n  onUnroutedMessage: ({ type, origin, reason }) => {\n    console.warn(`[shell] dropped ${type ?? '<unknown>'} from ${origin}: ${reason}`);\n  },\n});\n```\n\n### Shell init\n- `buildShellCapabilities` — construct the immutable domain-only `ShellCapabilities` payload emitted during the `shell.ready` / `shell.init` handshake\n- `resolveShellEnvironment(hooks, identity)` — host-integrator-only utility that narrows the live environment for a trusted creation-time identity before `shell.init`; it is not installed on `window.napplet` and is not a shim-facing napplet API\n- `injectNappletNamespacePrelude` — insert a host-owned NIP-5D `window.napplet` callable-domain prelude into verified HTML before authored scripts\n- `renderNappletNamespacePrelude` — render only the bootstrap `<script>` for hosts that already own HTML insertion\n\n### Domain proxies (NIP-5D composition seams)\n- `createIdentityProxy` — intercept identity read requests; direct `emit()` is prohibited\n- `createThemeProxy` — intercept `theme.get`; direct `emit()` is prohibited\n- `createKeysProxy` — intercept `keys.bind/unbind/bindings`\n- `createMediaProxy` — intercept `media.*` playback control\n\n### Protected identity and theme delivery\n\nThe injected identity/theme bindings follow NAP-IDENTITY and NAP-THEME at\n`napplet/naps` master `5ac0490461ca6fec2f0d2e45b4835cf9bc08de24`.\nThey are readonly protected objects: identity exposes supported reads and\n`onChanged`, while theme exposes `get` and `onChanged` only. Results and\nautomatic changes are accepted only when their `MessageEvent.source` is\n`window.parent`; direct-domain and whole-namespace assignment cannot replace\nthe canonical operations.\n\n`ShellBridge` delivers `identity.changed` and `theme.changed` exactly once per\neligible recipient: a live authenticated `shell.ready` session, its frozen\nenvironment includes the relevant domain, and its current recipient read\ncapability is still granted. Identity sign-out is `pubkey: \"\"`. Theme updates\narrive only after the service has stored the complete color state. These are\nautomatic change messages, not NAP-INC/intent delivery and not a subscription\nprotocol. Kehto's denied/unavailable theme read policy is a complete fixed\nnormal result without `error`, deliberately avoiding a mixed theme/error\npayload.\n- `createNotifyProxy` — intercept `notify.send/list/read/dismiss`\n\n### Session / origin registry\n- `sessionRegistry` — canonical windowId ↔ verified-napplet registry singleton\n- `nappKeyRegistry` — deprecated alias for `sessionRegistry`\n- `originRegistry` — origin-to-windowId map used by proxies and bridge broadcasts\n- `PendingUpdate` — type for pending aggregate-hash change prompts\n\n### Manifest cache\n- `manifestCache` — browser-specific manifest cache singleton\n- `ManifestCacheEntry` — manifest cache entry type\n\n### Audio manager\n- `audioManager` — browser audio registry singleton (audio element pool)\n- `AudioSource` — per-windowId audio source shape\n\n### Topic constants\n- `TOPICS` — canonical shell topic namespace for command routing\n- `TopicKey`, `TopicValue` — typed topic lookup helpers\n\n### Types\nExported for host-app integration: `ShellAdapter`, `ShellCapabilities`, `CapabilityHooks`, `OriginIdentity`, `RelayPoolHooks`, `RelayPoolLike`, `RelayConfigHooks`, `WindowManagerHooks`, `AuthHooks`, `ConfigHooks`, `HotkeyHooks`, `WorkerRelayHooks`, `WorkerRelayLike`, `CryptoHooks`, `DmHooks`, `UploadHooks`, `IntentHooks`, `LinkHooks`, `CommonHooks`, `ListsHooks`, `SerialHooks`, `BleHooks`, `WebrtcHooks`, `SessionEntry`, `NappKeyEntry` (deprecated), `AclEntry`, `AclCheckEvent`, `UnroutedMessageInfo`, `ServiceDescriptor`, `ServiceHandler`, `ServiceRegistry`, `NostrEvent`, `NostrFilter`, `NappletMessage`, `ConsentRequest`, and per-proxy `*Deps`/`*Proxy` interfaces.\n\n`RelayPoolLike.publish()` may return `Promise<void>` when transport acceptance\nis asynchronous. The shell adapter forwards that promise so the runtime does\nnot acknowledge or buffer an event before the relay operation settles.\n`RelayPoolHooks.publishToScopedRelay()` may likewise return\n`Promise<boolean>` so asynchronous hosts report the settled outcome.\n\n### Enforcement re-exports (from @kehto/runtime)\n`createEnforceGate`, `createNapEnforceGate`, `formatDenialReason`, plus `EnforceResult`, `EnforceConfig`, `NapEnforceConfig`, `IdentityResolver`, `AclChecker`, `NapMessage`.\n\n### Compat re-exports (DRIFT-CORE-06)\n\nRetained for migration consumers; new integrations should use current NIP-5D envelope types from `@napplet/core`. Slated for removal once upstream restores those exports.\n\nRe-exported from `@kehto/runtime`: the v1.1 bus-kind enum, auth event kind, shell bridge URI constant, protocol version string, the full capability list, destructive-kind set, and the replay window seconds constant. Re-exported types cover the v1.1 capability union and bus-kind numeric union. See the typedoc API reference below for the exact identifier list.\n\n## API Reference\n\nFull package docs: [`docs/packages/shell.md`](../../docs/packages/shell.md).\nGenerated API module: `docs/api/modules/_kehto_shell.html` (run `pnpm docs:api`).\n\n## License\n\nMIT\n","readmeFilename":"README.md"}