{"_id":"iso-ucan","_rev":"15-4f365bbf0f0f272d6808bd763fc9db4f","name":"iso-ucan","dist-tags":{"latest":"3.0.0"},"versions":{"0.0.1":{"name":"iso-ucan","version":"0.0.1","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.0.1","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"e5a9aebb2d9b22f6a16c232bfe35aec1fe85cd91","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.0.1.tgz","fileCount":41,"integrity":"sha512-QX3qEOW56mnt/zNTU1qG9LyMUrVBuGI0AmRiGKMR3uPd2MV1gMLIkFkg0B/oGLcXSFfCXQuOVMDQf1R0KNd6Xw==","signatures":[{"sig":"MEYCIQC0c2mLQgVoEyGRFYvuj1MkcFrX90I4yoFC4s77nE0gdQIhAN6R17oUuCiF+3jmU4Dis2D9GMPKOk+peu0yBRtwaY22","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93789},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.0.1.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/64e5dd652a9bd889a9b85cb85ae23caa/iso-ucan-0.0.1.tgz","_integrity":"sha512-QX3qEOW56mnt/zNTU1qG9LyMUrVBuGI0AmRiGKMR3uPd2MV1gMLIkFkg0B/oGLcXSFfCXQuOVMDQf1R0KNd6Xw==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.2","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.17.1","dependencies":{"iso-kv":"^3.0.3","iso-did":"^1.8.0","iso-web":"^1.1.1","iobuffer":"^6.0.0","iso-base":"^4.0.2","it-merge":"^3.0.12","multiformats":"^13.3.7","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.3.2","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.5","typescript":"5.8.3","@types/node":"^24.1.0","playwright-test":"^14.1.11"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.0.1_1753299192464_0.7873163015066404","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"iso-ucan","version":"0.1.5","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.1.5","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"8fba6e3e4b1a116e8b5c38e3e360d2657c383a7e","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.1.5.tgz","fileCount":41,"integrity":"sha512-FpfEF/cyYNsB8SGPtfnRENHr6a+5ZQ01S/hnEogCYUtLogWCqo3kya0do/QYyf1eUwZ/exEr3T60Ez6j0TGh0Q==","signatures":[{"sig":"MEYCIQCaxAn7qkeFrohe3Go3hjZChFvwvXxC+dwIUU06MEwxoQIhAOUH3n8aoTnX0+GV/DcGBMQv5WhV+Fcs5sIPHiwQknnV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95848},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.1.5.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/d12a5f7f311b3036c68678ee91e4437d/iso-ucan-0.1.5.tgz","_integrity":"sha512-FpfEF/cyYNsB8SGPtfnRENHr6a+5ZQ01S/hnEogCYUtLogWCqo3kya0do/QYyf1eUwZ/exEr3T60Ez6j0TGh0Q==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.2","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.17.1","dependencies":{"iso-kv":"^3.0.3","iso-did":"^2.0.0","iso-web":"^1.1.1","iobuffer":"^6.0.0","iso-base":"^4.1.0","it-merge":"^3.0.12","multiformats":"^13.3.7","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.4.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.5","typescript":"5.8.3","@types/node":"^24.1.0","playwright-test":"^14.1.11"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.1.5_1753300966636_0.20566423635441033","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"iso-ucan","version":"0.1.6","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.1.6","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"b76339f7573d8360045995e05a463572ae86a9bd","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.1.6.tgz","fileCount":47,"integrity":"sha512-ok8ShddB5JInYRBxe0PJY7mlQN72xYsf1vGzdIIdfTu9kb/FCF1tM9npKpfv4p5pljWiF6MKD2GcZNGXTd/zBg==","signatures":[{"sig":"MEUCIC5hSmM9kCx465Y6zsPALbrEq1e0EkDDoa9NHBAsR9ttAiEAqd2+zQyqTG1AX/3/rUPiPl+OSxa2m9097peLpvYyuVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108869},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.1.6.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/f79f0ad62266a1636e8641b30553bfe1/iso-ucan-0.1.6.tgz","_integrity":"sha512-ok8ShddB5JInYRBxe0PJY7mlQN72xYsf1vGzdIIdfTu9kb/FCF1tM9npKpfv4p5pljWiF6MKD2GcZNGXTd/zBg==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.2","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.17.1","dependencies":{"iso-kv":"^3.0.3","iso-did":"^2.0.0","iso-web":"^1.1.1","iobuffer":"^6.0.0","iso-base":"^4.1.0","it-merge":"^3.0.12","multiformats":"^13.3.7","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.4.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.5","typescript":"5.8.3","@types/node":"^24.1.0","playwright-test":"^14.1.11"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.1.6_1753454942825_0.3971052464379814","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"iso-ucan","version":"0.2.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.2.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"6542a9d7a51444decfecddd074e0d627d26a82dc","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.2.0.tgz","fileCount":47,"integrity":"sha512-dDn2pGX9WlVggaD5Pn864t4gqf56m2xnKxeJTH8I5SLXBV2AuJb48QwSgRv4m7yBRx4r8P1u8ODpkLIDbvLDbQ==","signatures":[{"sig":"MEYCIQCjCSLZmprUud507IubdSBp+Ndj4cj6CAdWDh+SWqW7fwIhANMmZpbD9Tdp4tctTESDIWLFQqAcJnLB8m+EWJSzBp26","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113442},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.2.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/a5b7065d8db3b0689f8cb7771b169aad/iso-ucan-0.2.0.tgz","_integrity":"sha512-dDn2pGX9WlVggaD5Pn864t4gqf56m2xnKxeJTH8I5SLXBV2AuJb48QwSgRv4m7yBRx4r8P1u8ODpkLIDbvLDbQ==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.2","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.17.1","dependencies":{"iso-kv":"^3.0.3","iso-did":"^2.0.0","iso-web":"^1.1.1","iobuffer":"^6.0.0","iso-base":"^4.1.0","it-merge":"^3.0.12","multiformats":"^13.3.7","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.4.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.5","typescript":"5.8.3","@types/node":"^24.1.0","playwright-test":"^14.1.11"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.2.0_1753722314401_0.30260506597868053","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"iso-ucan","version":"0.2.1","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.2.1","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"36adbf498fb7eace60dbdc7a92f5d1c24b731926","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.2.1.tgz","fileCount":47,"integrity":"sha512-k/Gm2TcfDwB8pP+c76uJX3OeUTU6Wgt7RFwFY4ZV6O8KIDzz+gyiM+nVCydv9uVXb6gLrn/O4VbWBjxfh7ERgA==","signatures":[{"sig":"MEQCID1zK3mOT0aNmhCRfKQQcFauecUePjiNnlFoolzEQP9OAiBGd5Lst57rtRKr1F9uLd98EvqM6bd+FZtUaVdhHYXINw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113442},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.2.1.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/1d620a2dbbbb66ce60e8878ece9cf68f/iso-ucan-0.2.1.tgz","_integrity":"sha512-k/Gm2TcfDwB8pP+c76uJX3OeUTU6Wgt7RFwFY4ZV6O8KIDzz+gyiM+nVCydv9uVXb6gLrn/O4VbWBjxfh7ERgA==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.2","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.17.1","dependencies":{"iso-kv":"^3.0.3","iso-did":"^2.0.0","iso-web":"^1.1.1","iobuffer":"^6.0.0","iso-base":"^4.1.0","it-merge":"^3.0.12","multiformats":"^13.3.7","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.4.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.5","typescript":"5.8.3","@types/node":"^24.1.0","playwright-test":"^14.1.11"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.2.1_1753731276009_0.3732763963694987","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"iso-ucan","version":"0.3.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.3.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"ffc2b4d8570afee93327b9513c02bc5962f7d378","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.3.0.tgz","fileCount":47,"integrity":"sha512-cNuuDRyJGUhCELioa7+FzE8yr5yf6BzuNeoJTkzengUNwkeP5YRJdzkbYxiDGJuGeojOdOU4wsJn03RzlbRRtg==","signatures":[{"sig":"MEUCIQDoWPMuEGJkuj8JDlYrzuACo50t3k5FD3xiKMdG87QXVgIgOOJ/wV0dn8CjzRq7FhhCp5dIX2qD0pcIoI+/aLRDZh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117363},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.3.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/3c262981eaa3309ff622fa830917d0d3/iso-ucan-0.3.0.tgz","_integrity":"sha512-cNuuDRyJGUhCELioa7+FzE8yr5yf6BzuNeoJTkzengUNwkeP5YRJdzkbYxiDGJuGeojOdOU4wsJn03RzlbRRtg==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.3","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.25.0","iso-kv":"^3.0.3","iso-did":"^2.0.1","iso-web":"^1.1.1","iobuffer":"^6.0.1","iso-base":"^4.1.0","it-merge":"^3.0.12","multiformats":"^13.4.0","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.4.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^6.0.0","typescript":"5.8.2","@types/node":"^24.2.1","playwright-test":"^14.1.12"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.3.0_1755121678763_0.24496202550371216","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"iso-ucan","version":"0.4.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.4.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"d28a557d6181fa461e2619c91d31c069e78224b7","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.4.0.tgz","fileCount":47,"integrity":"sha512-Yp/G/JJhw0tbVxpfCcdpWzeyHIaPbK0VXz0xvG5UQYZm7SDnxz98EPuXXsyLB447oWoCe7wIoa/V8hM2UMwfTA==","signatures":[{"sig":"MEQCIApKpbzXABWdXu0/h19PfAXzrJvoMWkvk5DJ6lo3g1P1AiBU6bw32vSs19FULtaeyGCjmCWZZSDEkf6WO78zgnDr6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117390},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.4.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/842f362614cd8a34286d1277f648233c/iso-ucan-0.4.0.tgz","_integrity":"sha512-Yp/G/JJhw0tbVxpfCcdpWzeyHIaPbK0VXz0xvG5UQYZm7SDnxz98EPuXXsyLB447oWoCe7wIoa/V8hM2UMwfTA==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.3","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.18.0","dependencies":{"zod":"^3.25.0","iso-kv":"^3.0.3","iso-did":"^2.1.0","iso-web":"^1.2.0","iobuffer":"^6.0.1","iso-base":"^4.2.0","it-merge":"^3.0.12","multiformats":"^13.4.0","@ipld/dag-cbor":"^9.2.4","iso-signatures":"^0.5.0","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^6.0.0","typescript":"5.9.2","@types/node":"^24.3.0","playwright-test":"^14.1.12"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.4.0_1756291699127_0.5160474297104956","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"iso-ucan","version":"0.4.1","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.4.1","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"3900abb8214e2d2491b4e45b17b908b1901b7120","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.4.1.tgz","fileCount":47,"integrity":"sha512-EhThJk0d84SCK4GlwnAMpNo+HT70kLQiCFJljihdFrUF681PxOSpE4LdQUTX5irqZ2g8KIk3d6q+rGK0vQ1E5Q==","signatures":[{"sig":"MEYCIQCZ2nADyZ5qfWx2VK7u+VrHzuFWFN56u1vgwF2Jol8JKAIhANZVdHs2+cSsL+19eU/PKye56hCRm8VGFZFcTKYUhqHu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116597},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.4.1.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/603b1e8a6580e814374b6412412cd25b/iso-ucan-0.4.1.tgz","_integrity":"sha512-EhThJk0d84SCK4GlwnAMpNo+HT70kLQiCFJljihdFrUF681PxOSpE4LdQUTX5irqZ2g8KIk3d6q+rGK0vQ1E5Q==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"10.9.3","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.25.0","iso-kv":"^3.1.0","iso-did":"^2.1.1","iso-web":"^1.3.0","iobuffer":"^6.0.1","iso-base":"^4.2.1","it-merge":"^3.0.12","multiformats":"^13.4.1","@ipld/dag-cbor":"^9.2.5","iso-signatures":"^0.5.1","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^6.0.0","typescript":"5.9.2","@types/node":"^24.5.2","playwright-test":"^14.1.12"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.4.1_1759166697468_0.7956429015099407","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"iso-ucan","version":"0.4.2","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.4.2","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"0fa96863dc484d5f29d8fa37af8a6bb7510d794f","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.4.2.tgz","fileCount":47,"integrity":"sha512-OQOvlWceZq5izZDSuM/VWAD0c+y3v8ApLIiKEI/LLvQeVgUTdOHqP0vtkqJb8/pwIANez0GqgvJSLf2yk6KMiQ==","signatures":[{"sig":"MEUCICAT4H/VbiJt4ydjoyYDYdQOPR71OmkW4dfmp8nvPpOcAiEArYz3+gx8SYSCN9Y17VsdPe/W4orvzc65HgpG5kjcmRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116598},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.4.2.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./client":{"types":"./dist/src/client.d.ts","default":"./src/client.js"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./server":{"types":"./dist/src/server.d.ts","default":"./src/server.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"hugomrdias","email":"hugomrdias@gmail.com"},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/e827bbf0cf8a3951aeb5103cdec39da1/iso-ucan-0.4.2.tgz","_integrity":"sha512-OQOvlWceZq5izZDSuM/VWAD0c+y3v8ApLIiKEI/LLvQeVgUTdOHqP0vtkqJb8/pwIANez0GqgvJSLf2yk6KMiQ==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"11.6.1","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"24.11.0","dependencies":{"zod":"^4.1.12","iso-kv":"^3.1.0","iso-did":"^2.1.1","iso-web":"^1.4.2","iobuffer":"^6.0.1","iso-base":"^4.2.1","it-merge":"^3.0.12","multiformats":"^13.4.1","@ipld/dag-cbor":"^9.2.5","iso-signatures":"^0.5.1","@standard-schema/spec":"^1.0.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"store":["dist/src/store"],"types":["dist/src/types"],"client":["dist/src/client"],"policy":["dist/src/policy"],"server":["dist/src/server"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^7.0.0","typescript":"5.9.3","@types/node":"^24.10.1","playwright-test":"^14.1.12"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.4.2_1762973817788_0.6642671309917085","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"iso-ucan","version":"0.5.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":{"url":"hugodias.me","name":"Hugo Dias","email":"hugomrdias@gmail.com"},"license":"MIT","_id":"iso-ucan@0.5.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"homepage":"https://github.com/hugomrdias/iso-repo#readme","bugs":{"url":"https://github.com/hugomrdias/iso-repo/issues"},"dist":{"shasum":"424ff49ea10db3fd0e03a09ae78c0006269dc16e","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.5.0.tgz","fileCount":60,"integrity":"sha512-k2FfjtXSOJVxWU90kltOriPf9cmd+Hfmn0IsXTVqTwCi19DGWxbFgbJeiyXnj8dGcPD2dv0JKwKe/amFJ7abqQ==","signatures":[{"sig":"MEUCICIwveKnhCYqjjqkAYwx9WrmT4VwHpkSe+Axl3jNtI8xAiEA7mT/ujfFyQnuKBppHDDxjcLK7vOvDXRRQweZN7+veTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148232},"main":"src/index.js","type":"module","_from":"file:iso-ucan-0.5.0.tgz","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"_resolved":"/tmp/14a66ca33cde9002c7cef26eed68ec98/iso-ucan-0.5.0.tgz","_integrity":"sha512-k2FfjtXSOJVxWU90kltOriPf9cmd+Hfmn0IsXTVqTwCi19DGWxbFgbJeiyXnj8dGcPD2dv0JKwKe/amFJ7abqQ==","repository":{"url":"git+https://github.com/hugomrdias/iso-repo.git","directory":"packages/iso-ucan"},"_npmVersion":"11.11.0","description":"Isomorphic UCAN","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^4.3.6","iso-kv":"^3.1.1","iso-did":"^2.1.1","iso-web":"^2.1.0","iobuffer":"^6.0.1","iso-base":"^4.3.1","it-merge":"^3.0.12","multiformats":"^13.4.1","@ipld/dag-cbor":"^9.2.5","iso-signatures":"^0.5.1","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^7.0.0","typescript":"5.9.3","@types/node":"^25.6.0","playwright-test":"^14.1.13"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.5.0_1776623952685_0.39518956466284916","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"iso-ucan","version":"0.5.1","keywords":["ucan","varsig","crypto","isomorphic"],"author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","license":"MIT","_id":"iso-ucan@0.5.1","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"dist":{"shasum":"ff9a9b17936688d79b1c25b38e5b5bfc88277b95","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.5.1.tgz","fileCount":61,"integrity":"sha512-YWyEYIl/PZvawyGfhdr+x2aYmj5BNNoeG3IwvTahejFRhH2dLu/mfjELvPBwuXR5evemzvo9Bj+0FY58lTnheQ==","signatures":[{"sig":"MEUCIGeh7JBAso8bNbco9WQizHyj5gXyTGBCzo6V38ZErrYtAiEA9zJz0kugDmoAKAubYHY7r9cm54s4efxScm/GuwVu3po=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDSXK+OjT68zGetmf+EiPl/oJmELBPnC9+cbf3UkSlSbAIhAI6Hxsy1KXlUWphm3G5fNf61gSaA25oNHOpGzukvpbyi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152510},"main":"src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","directories":{},"dependencies":{"zod":"^4.6.5","iso-kv":"^3.2.0","iso-did":"^3.0.0","iso-web":"^4.0.0","iobuffer":"^6.0.1","iso-base":"^4.4.0","it-merge":"^3.0.15","multiformats":"^14.0.5","@ipld/dag-cbor":"^10.0.2","iso-signatures":"^0.5.2","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"delay":"^7.0.0","typescript":"^6.0.3","@types/node":"^26.6.2","playwright-test":"^15.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.5.1_1790788235250_0.12024654597660489","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"iso-ucan","version":"0.5.2","keywords":["ucan","varsig","crypto","isomorphic"],"author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","license":"MIT","_id":"iso-ucan@0.5.2","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"dist":{"shasum":"91e6711afa8f73c78bdafe0263cc5dfcf3a08fec","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-0.5.2.tgz","fileCount":64,"integrity":"sha512-JNQ4TyBPP82P8oqlYPw0cXJxbmfprFVNEzfUs9ck1VSUJRs46B+XYI3SSCipXXsNFPVAB5L6YPSMPoQ8AhemPQ==","signatures":[{"sig":"MEYCIQCCxZJXgh9x9jx7mr5loJqSy1je+W4ug4ct+SwDZ7bJwQIhAOscC5lEPS+IexYGmQiirlkiYYtMRHbaq6VNxf4/yPy8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIERmZT6FdKktSvstcwECmlnEFv4ieuRaIOuh+ChjtpWqAiAkud2lxAZozXBt1N46LIj6z/vqGHX5vWJGMu0ZD1Nheg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172380},"main":"src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./replay":{"types":"./dist/src/replay.d.ts","default":"./src/replay.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","directories":{},"dependencies":{"zod":"^4.6.5","iso-kv":"^3.2.0","iso-did":"^3.0.0","iso-web":"^4.0.0","iobuffer":"^6.0.1","iso-base":"^4.4.0","it-merge":"^3.0.15","multiformats":"^14.0.5","@ipld/dag-cbor":"^10.0.2","iso-signatures":"^0.5.2","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"replay":["dist/src/replay"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"viem":"~2.56.9","delay":"^7.0.0","typescript":"^6.0.3","@types/node":"^26.6.2","playwright-test":"^15.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_0.5.2_1790792046471_0.40327580377513517","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"iso-ucan","version":"1.0.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","license":"MIT","_id":"iso-ucan@1.0.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"dist":{"shasum":"65563cb5ff173b8cdddf1ccdd292699f60f1cfb1","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-1.0.0.tgz","fileCount":64,"integrity":"sha512-VVLHUwqzt52V579GcyikrL+/AzAPS8WvqnSyVUGx4VTedXfx38qdHC6CQUaEGqgIgTWG1cCLKqFR+pkTYwVHRw==","signatures":[{"sig":"MEUCIQDdpsKfa5IKthsKHRy7cR86+ItCyYKgkY/IVzFUAhTPdQIgWXMnggUBWWh/ZOSFEg5VirXWS+0vkpyNN5oUDMssGYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCA+NiI3IXN6v7u0A70x7liF7eX91tHxlidejYCwDnHXAIgMZugq/J9t8pmaOCtcFIJDd6jj0IarvkgoA242ADqdMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172662},"main":"src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./replay":{"types":"./dist/src/replay.d.ts","default":"./src/replay.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","directories":{},"dependencies":{"zod":"^4.6.5","iso-kv":"^3.2.0","iso-did":"^3.0.0","iso-web":"^4.0.0","iobuffer":"^6.0.1","iso-base":"^4.4.0","it-merge":"^3.0.15","multiformats":"^14.0.5","@ipld/dag-cbor":"^10.0.2","iso-signatures":"^0.6.0","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"replay":["dist/src/replay"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"viem":"~2.56.9","delay":"^7.0.0","typescript":"^6.0.3","@types/node":"^26.6.2","playwright-test":"^15.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_1.0.0_1790794504716_0.6489963101476168","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"iso-ucan","version":"2.0.0","keywords":["ucan","varsig","crypto","isomorphic"],"author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","license":"MIT","_id":"iso-ucan@2.0.0","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"dist":{"shasum":"c3dacf29ff44be90bd6a75943f93060284101105","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-2.0.0.tgz","fileCount":64,"integrity":"sha512-Tsx2hBnydRRKylzx1coDGiQnNUFe9dR2KcQ5Rukbhf+YRNXCOgRwQGtkk2fKigQg2ImHKf63Z196/pL+/mFGKw==","signatures":[{"sig":"MEUCIQDx0gXh/IEXUB8ZVTQFazfshLZecZzcWS0oJSuD5NTuPwIgZ8ht2ipM0TzWz8CLMRnEbfYytNfMKJ5sWZu1cWSXgtA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDXidD4T7+jQY/ghyIZn741mksI4jj94wX6jhwfXKdRzAiEA/vLd54Y5C+/8QGI7V+f8lAD+sJPTZc92v/bXPSWz/7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":196031},"main":"src/index.js","type":"module","types":"dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./replay":{"types":"./dist/src/replay.d.ts","default":"./src/replay.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","directories":{},"dependencies":{"zod":"^4.6.5","iso-kv":"^3.2.0","iso-did":"^3.0.0","iso-web":"^4.0.0","iobuffer":"^6.0.1","iso-base":"^4.4.0","it-merge":"^3.0.15","multiformats":"^14.0.5","@ipld/dag-cbor":"^10.0.2","iso-signatures":"^0.6.0","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"replay":["dist/src/replay"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"viem":"~2.56.9","delay":"^7.0.0","typescript":"^6.0.3","@types/node":"^26.6.2","playwright-test":"^15.0.1"},"_npmOperationalInternal":{"tmp":"tmp/iso-ucan_2.0.0_1790855857139_0.6148814123542858","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"iso-ucan@3.0.0","dist":{"shasum":"38de9a1fb2b67390fd3058c63b95fa829f90828d","tarball":"https://registry.npmjs.org/iso-ucan/-/iso-ucan-3.0.0.tgz","fileCount":64,"integrity":"sha512-1fFbt4Vgbh4DPzj919BpMBmgOizBzxv09ggEoRbC4/UtALOIvnROrnP1YMP9gdIaouOSV4uuFduvFBb2ecHafA==","signatures":[{"sig":"MEUCIQD7glSpHIEqDQIWxKZ5Pudb60gj2rI8luhoahD8bYBZQgIgMvUJKKJlSJZzBavHQCg/mjMOPHLRVFWV/VI5pf34zA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFnT+4s0G6go5QV9ED9uAc/bDv8puywGEFkAeECN+DofAiEAjdSQiZeThdikPAoiEkBkWSahmUwuzSwaC28i+m+S+us="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iso-ucan@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":190255},"main":"src/index.js","name":"iso-ucan","type":"module","types":"dist/src/index.d.ts","author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","exports":{".":{"types":"./dist/src/index.d.ts","default":"./src/index.js"},"./rpc":{"types":"./dist/src/rpc/index.d.ts","default":"./src/rpc/index.js"},"./store":{"types":"./dist/src/store.d.ts","default":"./src/store.js"},"./types":{"types":"./dist/src/types.d.ts"},"./policy":{"types":"./dist/src/policy.d.ts","default":"./src/policy.js"},"./replay":{"types":"./dist/src/replay.d.ts","default":"./src/replay.js"},"./varsig":{"types":"./dist/src/varsig.d.ts","default":"./src/varsig.js"},"./envelope":{"types":"./dist/src/envelope.d.ts","default":"./src/envelope.js"},"./capability":{"types":"./dist/src/capability.d.ts","default":"./src/capability.js"},"./delegation":{"types":"./dist/src/delegation.d.ts","default":"./src/delegation.js"},"./invocation":{"types":"./dist/src/invocation.d.ts","default":"./src/invocation.js"}},"license":"MIT","scripts":{"lint":"tsc --build && biome check --no-errors-on-unmatched --files-ignore-unknown=true .","test":"tsc --build && pnpm run test:node && pnpm run test:browser","test:node":"playwright-test 'test/**/!(*.browser).test.{js,ts}' --mode node","test:browser":"playwright-test 'test/**/!(*.node).test.{js,ts}'"},"version":"3.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"14686e12-cf99-4807-8639-38e9d5f86243"}},"depcheck":{"ignores":["@types/*"],"specials":["bin"]},"keywords":["ucan","varsig","crypto","isomorphic"],"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","directories":{},"maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"dependencies":{"zod":"^4.6.5","iso-kv":"^4.0.0","iso-did":"^3.0.0","iso-web":"^4.0.0","iobuffer":"^6.0.1","iso-base":"^4.4.0","it-merge":"^3.0.15","multiformats":"^14.0.5","@ipld/dag-cbor":"^10.0.2","iso-signatures":"^0.7.0","@standard-schema/spec":"^1.1.0","@standard-schema/utils":"^0.3.0"},"publishConfig":{"provenance":true},"typesVersions":{"*":{"rpc":["dist/src/rpc/index"],"store":["dist/src/store"],"types":["dist/src/types"],"policy":["dist/src/policy"],"replay":["dist/src/replay"],"varsig":["dist/src/varsig"],"envelope":["dist/src/envelope"],"capability":["dist/src/capability"],"delegation":["dist/src/delegation"],"invocation":["dist/src/invocation"]}},"_hasShrinkwrap":false,"devDependencies":{"viem":"~2.56.9","delay":"^7.0.0","typescript":"^6.0.3","@types/node":"^26.6.2","playwright-test":"^15.0.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iso-ucan_3.0.0_1793088420915_0.8204240166494762"}}},"time":{"created":"2025-07-23T19:33:12.395Z","modified":"2026-10-27T08:07:01.563Z","0.0.1":"2025-07-23T19:33:12.642Z","0.1.5":"2025-07-23T20:02:46.819Z","0.1.6":"2025-07-25T14:49:03.003Z","0.2.0":"2025-07-28T17:05:14.604Z","0.2.1":"2025-07-28T19:34:36.192Z","0.3.0":"2025-08-13T21:47:58.952Z","0.4.0":"2025-08-27T10:48:19.314Z","0.4.1":"2025-09-29T17:24:57.648Z","0.4.2":"2025-11-12T18:56:57.947Z","0.5.0":"2026-04-19T18:39:12.851Z","0.5.1":"2026-09-30T17:10:35.335Z","0.5.2":"2026-09-30T18:14:06.573Z","1.0.0":"2026-09-30T18:55:04.817Z","2.0.0":"2026-10-01T11:57:37.228Z","3.0.0":"2026-10-27T08:07:01.002Z"},"author":"Hugo Dias <hugomrdias@gmail.com> (hugodias.me)","license":"MIT","keywords":["ucan","varsig","crypto","isomorphic"],"repository":{"url":"hugomrdias/iso-repo","directory":"packages/iso-ucan"},"description":"Isomorphic UCAN","maintainers":[{"name":"hugomrdias","email":"hugomrdias@gmail.com"}],"readme":"# iso-ucan [![NPM Version](https://img.shields.io/npm/v/iso-ucan.svg)](https://www.npmjs.com/package/iso-ucan) [![License](https://img.shields.io/npm/l/iso-ucan.svg)](https://github.com/hugomrdias/iso-repo/blob/main/license) [![iso-ucan](https://github.com/hugomrdias/iso-repo/actions/workflows/iso-ucan.yml/badge.svg)](https://github.com/hugomrdias/iso-repo/actions/workflows/iso-ucan.yml)\n\n> Isomorphic UCAN primitives for delegations, invocations, proof storage, and\n> typed RPC.\n\n## Overview\n\nUCAN is a local-first authorization model where permissions are\ncryptographically signed, delegated, and verified without relying on a central\nauthority. See [ucan.xyz](https://ucan.xyz/) for more background.\n\n`iso-ucan` provides:\n\n- Typed capabilities backed by schema validation.\n- Delegation and invocation builders for UCAN authorization flows.\n- Proof storage with pluggable `iso-kv` drivers.\n- Signer and verifier support through `iso-signatures`.\n- EIP-191 wallet signing support through `iso-signatures` `EIP191Signer`.\n- Filsnap-powered UCAN signature insights in MetaMask signature popups.\n- A typed RPC layer for request/response APIs built on UCAN invocations.\n\n## Install\n\n```bash\npnpm install iso-ucan\n```\n\n## Usage\n\n```ts\nimport { Capability } from 'iso-ucan/capability'\nimport { Store } from 'iso-ucan/store'\nimport { MemoryDriver } from 'iso-kv/drivers/memory'\nimport { EdDSASigner } from 'iso-signatures/signers/eddsa.js'\nimport { z } from 'zod'\n\nconst store = new Store(new MemoryDriver())\n\nconst AccountCreateCap = Capability.from({\n  schema: z.object({\n    type: z.string(),\n    properties: z\n      .object({\n        name: z.string(),\n      })\n      .strict(),\n  }),\n  cmd: '/account/create',\n})\n\nconst AccountCap = Capability.from({\n  schema: z.never(),\n  cmd: '/account',\n})\n\nconst owner = await EdDSASigner.generate()\nconst bob = await EdDSASigner.generate()\nconst invoker = await EdDSASigner.generate()\n\nconst nowInSeconds = Math.floor(Date.now() / 1000)\n\nconst ownerDelegation = await AccountCap.delegate({\n  iss: owner,\n  aud: bob,\n  sub: owner,\n  pol: [],\n  exp: nowInSeconds + 1000,\n})\n\nawait store.set(ownerDelegation)\n\nconst bobDelegation = await AccountCap.delegate({\n  iss: bob,\n  aud: invoker,\n  sub: owner,\n  pol: [],\n  exp: nowInSeconds + 1000,\n})\n\nawait store.set(bobDelegation)\n\nconst invocation = await AccountCreateCap.invoke({\n  iss: invoker,\n  sub: owner,\n  args: {\n    type: 'account',\n    properties: {\n      name: 'John Doe',\n    },\n  },\n  store,\n  exp: nowInSeconds + 1000,\n})\n```\n\n## Replay protection\n\nThe UCAN spec requires executors to reject replayed invocations. Pass a\n`replayStore` to `Invocation.from` so an invocation is accepted only once, and\nset `maxTtl` so invocations must expire soon, which keeps the store bounded:\n\n```ts\nimport { Invocation } from 'iso-ucan/invocation'\nimport { KVReplayStore } from 'iso-ucan/replay'\n\nconst replayStore = new KVReplayStore() // in memory by default\n\nconst invocation = await Invocation.from({\n  bytes,\n  audience: executor,\n  verifierResolver,\n  resolveProof: (cid) => store.resolveProof(cid),\n  replayStore,\n  maxTtl: 300,\n})\n```\n\nThe store is keyed on `invocation.cid`. `iso-ucan` verifies signatures in\nstrict mode, which accepts only the\n[canonical Varsig encoding](https://github.com/ChainAgnostic/varsig#canonical-signatures),\nfor example low-S for ECDSA. An attacker can't re-encode an intercepted\ninvocation under a different CID.\n\n`KVReplayStore` is atomic within one process only. When several processes or\ninstances execute invocations, implement the `ReplayStore` interface on a\nshared store with an atomic set-if-absent, such as Redis `SET NX` or SQL\n`INSERT ... ON CONFLICT DO NOTHING`.\n\n## Revocation\n\nPass `isRevoked` to `Delegation.from`, `Delegation#validate` or\n`Invocation.from` to reject revoked delegations by CID. Strict verification\nrejects non-canonical signatures, so a revoked delegation can't come back under\na different CID.\n\n### Migrate revocation lists from earlier versions\n\nEarlier versions accepted ECDSA (ES256, ES384, ES512) signatures with high S,\nand EIP-191 signatures with `v` of 0 or 1. If your revocation list holds the\nCID of such a delegation, anyone holding the delegation can convert it to the\ncanonical encoding. The canonical CID is not in your list, so the revoked\ndelegation passes `isRevoked`.\n\nTo keep those revocations, add the canonical CID of each revoked delegation to\nyour list. Compute it from the stored delegation bytes:\n\n```js\nimport { Delegation } from 'iso-ucan/delegation'\nimport * as Envelope from 'iso-ucan/envelope'\nimport { normalizeS } from 'iso-signatures/signers/ecdsa.js'\nimport { normalizeSignature } from 'iso-signatures/signers/eip191.js'\n\nconst CURVES = { ES256: 'P-256', ES384: 'P-384', ES512: 'P-521' }\n\n/**\n * @param {Uint8Array} bytes - Revoked delegation, as stored\n * @param {import('iso-ucan/types').VerifierResolver} verifierResolver\n */\nasync function canonicalCid(bytes, verifierResolver) {\n  const envelope = Envelope.decode({ envelope: bytes })\n  let signature = envelope.signature\n  if (envelope.alg === 'EIP191') {\n    signature = normalizeSignature(signature)\n  } else if (envelope.alg in CURVES) {\n    signature = normalizeS(CURVES[envelope.alg], signature)\n  }\n\n  const canonical = Envelope.encode({\n    signature,\n    signaturePayload: Envelope.getSignaturePayload({\n      spec: envelope.spec,\n      version: envelope.version,\n      signatureType: envelope.alg,\n      payload: envelope.payload,\n    }),\n  })\n  const delegation = await Delegation.from({ bytes: canonical, verifierResolver })\n  return delegation.cid\n}\n```\n\nEd25519 and ES256K signatures were already canonical, so their CIDs don't\nchange.\n\n## EIP-191 wallet signing\n\n`iso-ucan` can use EIP-191 wallet signatures through `EIP191Signer` from\n`iso-signatures`. That lets UCAN delegations and invocations be issued by an\nEthereum account exposed through an EIP-1193 provider, such as an injected\nMetaMask wallet, while verification is handled by the matching EIP-191 verifier\nfrom `iso-signatures`.\n\n[`examples/eip191`](../../examples/eip191) shows this flow in a browser web\napp. It uses `wagmi` to connect the wallet, wraps the provider in\n`EIP191Signer`, then creates and verifies UCAN delegations and invocations\ndirectly in the browser.\n\nThe example uses `filsnap-adapter` to install or enable\n[Filsnap](https://github.com/filecoin-project/filsnap), the Filecoin Wallet\nMetaMask Snap. Filsnap supports UCAN signature insights for EIP-191 signers, so\nwhen the app asks MetaMask to sign a UCAN delegation, the MetaMask signature\npopup can show a readable summary of the issuer, audience, subject, command,\nexpiration, and raw payload.\n\n## RPC\n\n`iso-ucan/rpc` is a small request/response layer on top of UCAN\ninvocations. You declare a protocol once as a record of commands\n(`defineCommand`), then build matching client and server pairs from it\n(`defineClient` / `defineServer`). Every command's success and error shapes\nare described by a single receipt schema (`receipt`, `receiptResult`,\n`receiptError`) which is shared by both ends, so the call sites are fully\ntype-safe and discriminated unions just work on the client.\n\nInternal server failures (invalid invocation, unknown command, handler\nthrew, …) are surfaced as a generic `SERVER_ERROR` variant that\n`receipt(...)` adds implicitly, so clients can always handle them with one\nnarrow.\n\n### Define a shared protocol\n\n```ts\nimport {\n  defineCommand,\n  receipt,\n  receiptError,\n  receiptResult,\n} from 'iso-ucan/rpc'\nimport { z } from 'zod'\n\nconst TodoSchema = z.object({\n  id: z.string(),\n  text: z.string(),\n  done: z.boolean(),\n})\n\nexport const Protocol = {\n  TodoList: defineCommand({\n    cmd: '/todo/list',\n    args: z.object({}),\n    receipt: receipt(receiptResult(z.object({ todos: z.array(TodoSchema) }))),\n  }),\n  TodoAdd: defineCommand({\n    cmd: '/todo/add',\n    args: z.object({ text: z.string().min(1) }),\n    receipt: receipt(receiptResult(z.object({ todo: TodoSchema }))),\n  }),\n  TodoComplete: defineCommand({\n    cmd: '/todo/complete',\n    args: z.object({ id: z.string() }),\n    receipt: receipt(\n      receiptResult(z.object({ todo: TodoSchema })),\n      receiptError('NOT_FOUND', 'Todo not found.', z.object({ id: z.string() }))\n    ),\n  }),\n} as const\n```\n\n### Server (e.g. Hono + `@hono/node-server`)\n\n```ts\nimport { serve } from '@hono/node-server'\nimport { Hono } from 'hono'\nimport { MemoryDriver } from 'iso-kv/drivers/memory.js'\nimport { defineServer, type ServerHandlers } from 'iso-ucan/rpc'\nimport { Store } from 'iso-ucan/store'\nimport { Protocol } from './protocol.ts'\n\nconst store = new Store(new MemoryDriver())\n// ...seed `store` with the delegations that authorise your clients...\n\nconst handlers: ServerHandlers<typeof Protocol> = {\n  '/todo/list': ({ invocation }) => ({\n    cid: invocation.cid,\n    result: { todos: [/* ... */] },\n  }),\n  '/todo/add': ({ args, invocation }) => ({\n    cid: invocation.cid,\n    result: { todo: { id: '1', text: args.text, done: false } },\n  }),\n  '/todo/complete': ({ args, invocation }) => {\n    // return either { cid, result: ... } or { cid, error: { code, message, data } }\n    return {\n      cid: invocation.cid,\n      error: {\n        code: 'NOT_FOUND',\n        message: 'Todo not found.',\n        data: { id: args.id },\n      },\n    }\n  },\n}\n\nconst rpc = defineServer(Protocol, {\n  signer: serverSigner,\n  store,\n  verifierResolver,\n  handlers,\n})\n\nconst app = new Hono()\napp.post('/rpc', (c) => rpc(c.req.raw))\nserve({ fetch: app.fetch, port: 3000 })\n```\n\n`defineServer` rejects replayed invocations with an in-memory `KVReplayStore`\nby default. Pass `replayStore` to share it between server instances.\n\nIt also rejects invocations that never expire or expire more than `maxTtl`\nseconds from now (default 600). Pass a different `maxTtl` to change the\nlimit, or `null` to accept any expiration. See\n[Replay protection](#replay-protection).\n\n### Client\n\n```ts\nimport { defineClient } from 'iso-ucan/rpc'\n\nconst client = defineClient(Protocol, {\n  url: 'http://localhost:3000/rpc',\n  issuer: cliSigner,\n  audience: serverSigner.didObject,\n  store,\n  verifierResolver,\n})\n```\n\nInvocations created by the client expire after `ttl` seconds (default 300).\n\n```ts\n// `args` and the returned receipt are typed from the protocol entry for `cmd`.\nconst r = await client.request({ cmd: '/todo/complete', args: { id: '42' } })\n\nif ('result' in r) {\n  console.log(r.result.todo)\n} else if (r.error.code === 'NOT_FOUND') {\n  console.error(r.error.message, r.error.data) // data: { id: string }\n} else {\n  // r.error.code === 'SERVER_ERROR' — always present in every receipt union.\n  console.error('server error:', r.error.message)\n}\n```\n\nA complete runnable example (Hono server + a small CLI client) lives in\n[`examples/rpc-todo`](../../examples/rpc-todo).\n\n## License\n\nMIT © [Hugo Dias](http://hugodias.me)\n","readmeFilename":""}