diff --git a/packages/access-api/package.json b/packages/access-api/package.json index eb9d3cef9..28708ded4 100644 --- a/packages/access-api/package.json +++ b/packages/access-api/package.json @@ -17,11 +17,11 @@ "license": "(Apache-2.0 OR MIT)", "dependencies": { "@ipld/dag-ucan": "^3.0.1", - "@ucanto/core": "^4.0.2", - "@ucanto/interface": "^4.0.2", - "@ucanto/principal": "^4.0.2", - "@ucanto/server": "^4.0.2", - "@ucanto/transport": "^4.0.2", + "@ucanto/core": "^4.0.3", + "@ucanto/interface": "^4.0.3", + "@ucanto/principal": "^4.0.3", + "@ucanto/server": "^4.0.3", + "@ucanto/transport": "^4.0.3", "@web3-storage/access": "workspace:^", "@web3-storage/capabilities": "workspace:^", "@web3-storage/worker-utils": "0.4.3-dev", diff --git a/packages/access-api/src/config.js b/packages/access-api/src/config.js index 17776de8e..dff5f0a27 100644 --- a/packages/access-api/src/config.js +++ b/packages/access-api/src/config.js @@ -34,8 +34,7 @@ export function loadConfig(env) { const DID = env.DID const PRIVATE_KEY = vars.PRIVATE_KEY - const signer = configureSigner({ PRIVATE_KEY }) - const ucantoServerId = configureUcantoServerId({ DID, PRIVATE_KEY }) + const signer = configureSigner({ DID, PRIVATE_KEY }) return { DEBUG: boolValue(vars.DEBUG), ENV: parseRuntimeEnv(vars.ENV), @@ -56,7 +55,6 @@ export function loadConfig(env) { COMMITHASH: ACCOUNT_COMMITHASH, signer, - ucantoServerId, // bindings METRICS: @@ -120,24 +118,13 @@ export function createAnalyticsEngine() { * * @param {object} config * @param {string} config.PRIVATE_KEY - multiformats private key of primary signing key - * @returns {Signer.EdSigner} + * @param {string} [config.DID] - public DID for the service (did:key:... derived from PRIVATE_KEY if not set) + * @returns {import('@ucanto/interface').Signer} */ export function configureSigner(config) { const signer = Signer.parse(config.PRIVATE_KEY) - return signer -} - -/** - * Given a config, return a ucanto principal - * - * @param {object} config - * @param {string} [config.DID] - public identifier of the running service. e.g. a did:key or a did:web - * @param {string} config.PRIVATE_KEY - multiformats private key of primary signing key - * @returns {import('@ucanto/interface').Principal} - */ -export function configureUcantoServerId(config) { if (config.DID) { - return DID.parse(config.DID) + return signer.withDID(DID.parse(config.DID).did()) } - return configureSigner(config) + return signer } diff --git a/packages/access-api/src/routes/raw.js b/packages/access-api/src/routes/raw.js index 04a47542f..081cee104 100644 --- a/packages/access-api/src/routes/raw.js +++ b/packages/access-api/src/routes/raw.js @@ -8,7 +8,7 @@ import { service } from '../service/index.js' */ export async function postRaw(request, env) { const server = Server.create({ - id: env.config.ucantoServerId, + id: env.signer, encoder: serverCodec, decoder: serverCodec, service: service(env), diff --git a/packages/access-api/src/routes/root.js b/packages/access-api/src/routes/root.js index 0c0b6eb76..95a8deedc 100644 --- a/packages/access-api/src/routes/root.js +++ b/packages/access-api/src/routes/root.js @@ -9,7 +9,7 @@ import { service } from '../service/index.js' */ export async function postRoot(request, env) { const server = Server.create({ - id: env.config.ucantoServerId, + id: env.signer, encoder: CBOR, decoder: CAR, service: service(env), diff --git a/packages/access-api/src/routes/version.js b/packages/access-api/src/routes/version.js index 86ed3a1c6..015f0223a 100644 --- a/packages/access-api/src/routes/version.js +++ b/packages/access-api/src/routes/version.js @@ -7,6 +7,5 @@ export async function version(event, env, ctx) { commit: env.config.COMMITHASH, branch: env.config.BRANCH, did: env.signer.did(), - aud: env.config.ucantoServerId.did(), }) } diff --git a/packages/access-api/test/config.test.js b/packages/access-api/test/config.test.js index 864b6d1d7..155e7efe8 100644 --- a/packages/access-api/test/config.test.js +++ b/packages/access-api/test/config.test.js @@ -18,7 +18,7 @@ const testKeypair = { }, } -describe('@web3-storage/access-api/src/config configureSigner', () => { +describe('configureSigner', () => { it('creates a signer using config.PRIVATE_KEY', async () => { const config = { PRIVATE_KEY: testKeypair.private.multiformats, @@ -30,31 +30,31 @@ describe('@web3-storage/access-api/src/config configureSigner', () => { const didKeys = Object.keys(keys) assert.deepEqual(didKeys, [testKeypair.public.did]) }) -}) -describe('@web3-storage/access-api/src/config configureUcantoServerId', () => { it('creates a signer using config.{DID,PRIVATE_KEY}', async () => { const config = { PRIVATE_KEY: testKeypair.private.multiformats, DID: 'did:web:exampe.com', } - const serverId = configModule.configureUcantoServerId(config) + const serverId = configModule.configureSigner(config) assert.ok(serverId) assert.equal(serverId.did().toString(), config.DID) }) + it('errors if config.DID is provided but not a did', () => { assert.throws(() => { - configModule.configureUcantoServerId({ + configModule.configureSigner({ DID: 'not a did', PRIVATE_KEY: testKeypair.private.multiformats, }) }, 'Invalid DID') }) + it('infers did from config.PRIVATE_KEY when config.DID is omitted', async () => { const config = { PRIVATE_KEY: testKeypair.private.multiformats, } - const serverId = configModule.configureUcantoServerId(config) + const serverId = configModule.configureSigner(config) assert.ok(serverId) assert.equal(serverId.did().toString(), testKeypair.public.did) }) diff --git a/packages/access-client/package.json b/packages/access-client/package.json index bd3706f0f..943b3cddf 100644 --- a/packages/access-client/package.json +++ b/packages/access-client/package.json @@ -61,12 +61,12 @@ "@ipld/car": "^5.0.1", "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-ucan": "^3.0.1", - "@ucanto/client": "^4.0.2", - "@ucanto/core": "^4.0.2", - "@ucanto/interface": "^4.0.2", - "@ucanto/principal": "^4.0.2", - "@ucanto/transport": "^4.0.2", - "@ucanto/validator": "^4.0.2", + "@ucanto/client": "^4.0.3", + "@ucanto/core": "^4.0.3", + "@ucanto/interface": "^4.0.3", + "@ucanto/principal": "^4.0.3", + "@ucanto/transport": "^4.0.3", + "@ucanto/validator": "^4.0.3", "@web3-storage/capabilities": "workspace:^", "bigint-mod-arith": "^3.1.2", "conf": "^10.2.0", @@ -91,7 +91,7 @@ "@types/node": "^18.11.14", "@types/varint": "^6.0.1", "@types/ws": "^8.5.3", - "@ucanto/server": "^4.0.2", + "@ucanto/server": "^4.0.3", "assert": "^2.0.0", "delay": "^5.0.0", "hd-scripts": "^3.0.2", diff --git a/packages/access-client/src/agent-data.js b/packages/access-client/src/agent-data.js index a7fed91f5..c6ce8cb72 100644 --- a/packages/access-client/src/agent-data.js +++ b/packages/access-client/src/agent-data.js @@ -72,6 +72,7 @@ export class AgentData { return new AgentData( { meta: raw.meta, + // @ts-expect-error for some reason TS thinks this is a EdSigner principal: Signer.from(raw.principal), currentSpace: raw.currentSpace, spaces: raw.spaces, diff --git a/packages/capabilities/package.json b/packages/capabilities/package.json index b6430de77..872a19782 100644 --- a/packages/capabilities/package.json +++ b/packages/capabilities/package.json @@ -57,11 +57,11 @@ "dist/src/**/*.d.ts.map" ], "dependencies": { - "@ucanto/core": "^4.0.2", - "@ucanto/interface": "^4.0.2", - "@ucanto/principal": "^4.0.2", - "@ucanto/transport": "^4.0.2", - "@ucanto/validator": "^4.0.2" + "@ucanto/core": "^4.0.3", + "@ucanto/interface": "^4.0.3", + "@ucanto/principal": "^4.0.3", + "@ucanto/transport": "^4.0.3", + "@ucanto/validator": "^4.0.3" }, "devDependencies": { "@types/assert": "^1.5.6", diff --git a/packages/capabilities/test/capabilities/store.test.js b/packages/capabilities/test/capabilities/store.test.js index 627ef86c0..fa1ac00e1 100644 --- a/packages/capabilities/test/capabilities/store.test.js +++ b/packages/capabilities/test/capabilities/store.test.js @@ -45,6 +45,7 @@ describe('store capabilities', function () { const result = await access(await add.delegate(), { capability: Store.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -74,6 +75,7 @@ describe('store capabilities', function () { const result = await access(await add.delegate(), { capability: Store.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -110,6 +112,7 @@ describe('store capabilities', function () { const result = await access(await add.delegate(), { capability: Store.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -150,6 +153,7 @@ describe('store capabilities', function () { const result = await access(await add.delegate(), { capability: Store.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -179,6 +183,7 @@ describe('store capabilities', function () { const result = await access(await add.delegate(), { capability: Store.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) @@ -227,6 +232,7 @@ describe('store capabilities', function () { const result = await access(add, { capability: Store.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) diff --git a/packages/capabilities/test/capabilities/upload.test.js b/packages/capabilities/test/capabilities/upload.test.js index eb912bb21..189d797e9 100644 --- a/packages/capabilities/test/capabilities/upload.test.js +++ b/packages/capabilities/test/capabilities/upload.test.js @@ -48,6 +48,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -83,6 +84,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -134,6 +136,7 @@ describe('upload capabilities', function () { const result = await access(add, { capability: Upload.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) assert(String(result).includes('Expected link to be CID with 0x202 codec')) @@ -156,6 +159,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -204,6 +208,7 @@ describe('upload capabilities', function () { const result = await access(add, { capability: Upload.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) @@ -237,6 +242,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) if (result.error) { @@ -277,6 +283,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) @@ -312,6 +319,7 @@ describe('upload capabilities', function () { const result = await access(await add.delegate(), { capability: Upload.add, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) @@ -334,6 +342,7 @@ describe('upload capabilities', function () { const result = await access(await list.delegate(), { capability: Upload.list, principal: Verifier, + authority: w3, }) if (result.error) { @@ -364,6 +373,7 @@ describe('upload capabilities', function () { const result = await access(await list.delegate(), { capability: Upload.list, principal: Verifier, + authority: w3, }) if (result.error) { @@ -395,6 +405,7 @@ describe('upload capabilities', function () { const result = await access(await list.delegate(), { capability: Upload.list, principal: Verifier, + authority: w3, }) if (result.error) { @@ -435,6 +446,7 @@ describe('upload capabilities', function () { const result = await access(list, { capability: Upload.list, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) assert( @@ -458,6 +470,7 @@ describe('upload capabilities', function () { const result = await access(await remove.delegate(), { capability: Upload.remove, principal: Verifier, + authority: w3, }) if (result.error) { @@ -492,6 +505,7 @@ describe('upload capabilities', function () { const result = await access(await remove.delegate(), { capability: Upload.remove, principal: Verifier, + authority: w3, }) if (result.error) { @@ -529,6 +543,7 @@ describe('upload capabilities', function () { const result = await access(await remove.delegate(), { capability: Upload.remove, principal: Verifier, + authority: w3, }) if (result.error) { @@ -573,6 +588,7 @@ describe('upload capabilities', function () { const result = await access(remove, { capability: Upload.remove, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) assert( @@ -610,6 +626,7 @@ describe('upload capabilities', function () { const result = await access(await remove.delegate(), { capability: Upload.remove, principal: Verifier, + authority: w3, }) assert.equal(result.error, true) diff --git a/packages/capabilities/test/capabilities/voucher.test.js b/packages/capabilities/test/capabilities/voucher.test.js index 2ea58987f..40d42d0fa 100644 --- a/packages/capabilities/test/capabilities/voucher.test.js +++ b/packages/capabilities/test/capabilities/voucher.test.js @@ -34,6 +34,7 @@ describe('voucher capabilities', function () { const result = await access(await claim.delegate(), { capability: Voucher.claim, principal: Verifier, + authority: service, }) if (!result.error) { assert.deepEqual(result.audience.did(), service.did()) @@ -73,6 +74,7 @@ describe('voucher capabilities', function () { const result = await access(await claim.delegate(), { capability: Voucher.claim, principal: Verifier, + authority: service, }) if (!result.error) { @@ -115,6 +117,7 @@ describe('voucher capabilities', function () { const result = await access(await claim.delegate(), { capability: Voucher.claim, principal: Verifier, + authority: service, }) if (result.error) { diff --git a/packages/upload-client/package.json b/packages/upload-client/package.json index e22b19881..776642549 100644 --- a/packages/upload-client/package.json +++ b/packages/upload-client/package.json @@ -66,9 +66,9 @@ "@ipld/car": "^5.0.0", "@ipld/dag-ucan": "^3.0.1", "@ipld/unixfs": "^2.0.0", - "@ucanto/client": "^4.0.2", - "@ucanto/interface": "^4.0.2", - "@ucanto/transport": "^4.0.2", + "@ucanto/client": "^4.0.3", + "@ucanto/interface": "^4.0.3", + "@ucanto/transport": "^4.0.3", "@web3-storage/capabilities": "workspace:^", "multiformats": "^10.0.2", "p-queue": "^7.3.0", @@ -77,8 +77,8 @@ "devDependencies": { "@types/assert": "^1.5.6", "@types/mocha": "^10.0.1", - "@ucanto/principal": "^4.0.2", - "@ucanto/server": "^4.0.2", + "@ucanto/principal": "^4.0.3", + "@ucanto/server": "^4.0.3", "assert": "^2.0.0", "blockstore-core": "^2.0.2", "c8": "^7.12.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0cc81fdcf..e2e5cdc3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,11 +35,11 @@ importers: '@types/mocha': ^10.0.1 '@types/node': ^18.11.14 '@types/qrcode': ^1.5.0 - '@ucanto/core': ^4.0.2 - '@ucanto/interface': ^4.0.2 - '@ucanto/principal': ^4.0.2 - '@ucanto/server': ^4.0.2 - '@ucanto/transport': ^4.0.2 + '@ucanto/core': ^4.0.3 + '@ucanto/interface': ^4.0.3 + '@ucanto/principal': ^4.0.3 + '@ucanto/server': ^4.0.3 + '@ucanto/transport': ^4.0.3 '@web3-storage/access': workspace:^ '@web3-storage/capabilities': workspace:^ '@web3-storage/worker-utils': 0.4.3-dev @@ -67,11 +67,11 @@ importers: wrangler: ^2.6.2 dependencies: '@ipld/dag-ucan': 3.0.1 - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 - '@ucanto/principal': 4.0.2 - '@ucanto/server': 4.0.2 - '@ucanto/transport': 4.0.2 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 + '@ucanto/principal': 4.0.3 + '@ucanto/server': 4.0.3 + '@ucanto/transport': 4.0.3 '@web3-storage/access': link:../access-client '@web3-storage/capabilities': link:../capabilities '@web3-storage/worker-utils': 0.4.3-dev @@ -119,13 +119,13 @@ importers: '@types/node': ^18.11.14 '@types/varint': ^6.0.1 '@types/ws': ^8.5.3 - '@ucanto/client': ^4.0.2 - '@ucanto/core': ^4.0.2 - '@ucanto/interface': ^4.0.2 - '@ucanto/principal': ^4.0.2 - '@ucanto/server': ^4.0.2 - '@ucanto/transport': ^4.0.2 - '@ucanto/validator': ^4.0.2 + '@ucanto/client': ^4.0.3 + '@ucanto/core': ^4.0.3 + '@ucanto/interface': ^4.0.3 + '@ucanto/principal': ^4.0.3 + '@ucanto/server': ^4.0.3 + '@ucanto/transport': ^4.0.3 + '@ucanto/validator': ^4.0.3 '@web3-storage/capabilities': workspace:^ assert: ^2.0.0 bigint-mod-arith: ^3.1.2 @@ -156,12 +156,12 @@ importers: '@ipld/car': 5.0.1 '@ipld/dag-cbor': 8.0.0 '@ipld/dag-ucan': 3.0.1 - '@ucanto/client': 4.0.2 - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 - '@ucanto/principal': 4.0.2 - '@ucanto/transport': 4.0.2 - '@ucanto/validator': 4.0.2 + '@ucanto/client': 4.0.3 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 + '@ucanto/principal': 4.0.3 + '@ucanto/transport': 4.0.3 + '@ucanto/validator': 4.0.3 '@web3-storage/capabilities': link:../capabilities bigint-mod-arith: 3.1.2 conf: 10.2.0 @@ -185,7 +185,7 @@ importers: '@types/node': 18.11.14 '@types/varint': 6.0.1 '@types/ws': 8.5.3 - '@ucanto/server': 4.0.2 + '@ucanto/server': 4.0.3 assert: 2.0.0 delay: 5.0.0 hd-scripts: 3.0.2 @@ -245,11 +245,11 @@ importers: '@types/assert': ^1.5.6 '@types/mocha': ^10.0.0 '@types/node': ^18.11.14 - '@ucanto/core': ^4.0.2 - '@ucanto/interface': ^4.0.2 - '@ucanto/principal': ^4.0.2 - '@ucanto/transport': ^4.0.2 - '@ucanto/validator': ^4.0.2 + '@ucanto/core': ^4.0.3 + '@ucanto/interface': ^4.0.3 + '@ucanto/principal': ^4.0.3 + '@ucanto/transport': ^4.0.3 + '@ucanto/validator': ^4.0.3 assert: ^2.0.0 hd-scripts: ^3.0.2 mocha: ^10.2.0 @@ -258,11 +258,11 @@ importers: typescript: 4.9.4 watch: ^1.0.2 dependencies: - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 - '@ucanto/principal': 4.0.2 - '@ucanto/transport': 4.0.2 - '@ucanto/validator': 4.0.2 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 + '@ucanto/principal': 4.0.3 + '@ucanto/transport': 4.0.3 + '@ucanto/validator': 4.0.3 devDependencies: '@types/assert': 1.5.6 '@types/mocha': 10.0.1 @@ -282,11 +282,11 @@ importers: '@ipld/unixfs': ^2.0.0 '@types/assert': ^1.5.6 '@types/mocha': ^10.0.1 - '@ucanto/client': ^4.0.2 - '@ucanto/interface': ^4.0.2 - '@ucanto/principal': ^4.0.2 - '@ucanto/server': ^4.0.2 - '@ucanto/transport': ^4.0.2 + '@ucanto/client': ^4.0.3 + '@ucanto/interface': ^4.0.3 + '@ucanto/principal': ^4.0.3 + '@ucanto/server': ^4.0.3 + '@ucanto/transport': ^4.0.3 '@web3-storage/capabilities': workspace:^ assert: ^2.0.0 blockstore-core: ^2.0.2 @@ -305,9 +305,9 @@ importers: '@ipld/car': 5.0.1 '@ipld/dag-ucan': 3.0.1 '@ipld/unixfs': 2.0.0 - '@ucanto/client': 4.0.2 - '@ucanto/interface': 4.0.2 - '@ucanto/transport': 4.0.2 + '@ucanto/client': 4.0.3 + '@ucanto/interface': 4.0.3 + '@ucanto/transport': 4.0.3 '@web3-storage/capabilities': link:../capabilities multiformats: 10.0.2 p-queue: 7.3.0 @@ -315,8 +315,8 @@ importers: devDependencies: '@types/assert': 1.5.6 '@types/mocha': 10.0.1 - '@ucanto/principal': 4.0.2 - '@ucanto/server': 4.0.2 + '@ucanto/principal': 4.0.3 + '@ucanto/server': 4.0.3 assert: 2.0.0 blockstore-core: 2.0.2 c8: 7.12.0 @@ -1561,61 +1561,61 @@ packages: eslint-visitor-keys: 3.3.0 dev: true - /@ucanto/client/4.0.2: - resolution: {integrity: sha512-kSAlNlk8lpK2eShsXe9cE2I4iP1a7vq8wIFpzLR8Jjvh0YN4oI3zYQ6grrKJGHrork1mubkqIimzZerHCzFiwQ==} + /@ucanto/client/4.0.3: + resolution: {integrity: sha512-Kr+6A9VB/m2sFEatEKWzJk7Ccwg7AURdqdFyzhzUGU6YvUe4Z/wcly+yz1hswHmGc77dVPo+b19k2U/jjwnSKA==} dependencies: - '@ucanto/interface': 4.0.2 + '@ucanto/interface': 4.0.3 multiformats: 10.0.2 dev: false - /@ucanto/core/4.0.2: - resolution: {integrity: sha512-FxR6o4HsJepiYCj21j0F7D2vSPV4z6gk4489oo9NP/uF7+YJdZBSTxPytvBd/Ir7+2xlyFvBXP8Uxx/JRQu9HA==} + /@ucanto/core/4.0.3: + resolution: {integrity: sha512-5Uc6vdmKZzlA9NFvAN6BC1Tp1Npz0sepp2up1ZWU4BqArQ0w4U0YMtL9KPdBnL3TDAyDNgS9PgK+vHpjcSoeiQ==} dependencies: '@ipld/car': 5.0.1 '@ipld/dag-cbor': 8.0.0 '@ipld/dag-ucan': 3.0.1 - '@ucanto/interface': 4.0.2 + '@ucanto/interface': 4.0.3 multiformats: 10.0.2 - /@ucanto/interface/4.0.2: - resolution: {integrity: sha512-3EPO9LRJy9ENWNBLk/x5XOx6ALCzgMkndvdRHJi8VTMKm4XroSnUYLarC3pPLdAWsF7NlmFN4g6aLz4mS9bHUQ==} + /@ucanto/interface/4.0.3: + resolution: {integrity: sha512-ip1ZziMUhi9nFm9jPLEDLs8zX4HleYsuHHITH5w8GjST7chbRz1LBSq43A3nMUgea17cuIp+rr7i4QcOSFgXHw==} dependencies: '@ipld/dag-ucan': 3.0.1 multiformats: 10.0.2 - /@ucanto/principal/4.0.2: - resolution: {integrity: sha512-hicpJ5EGKlXPHJ4BhV1ymn6Sk4Rw/htCU0iAPpu6Ls8+9qVbKrFF/3GjVxlZOeWxOATNM2WHRfag5hBimyIrbw==} + /@ucanto/principal/4.0.3: + resolution: {integrity: sha512-mR9BTkXWDDSFDCf5gminNeDte/jwurohjFJE8oVfGfUnkzSjYwfm4h5GQ47qeze6xgm17SS5pQwipSvCGHfvkg==} dependencies: '@ipld/dag-ucan': 3.0.1 '@noble/ed25519': 1.7.1 - '@ucanto/interface': 4.0.2 + '@ucanto/interface': 4.0.3 multiformats: 10.0.2 one-webcrypto: 1.0.3 - /@ucanto/server/4.0.2: - resolution: {integrity: sha512-UwuVqIY6i5JB+coxNMCNThbusqL5kCAlxcydgrxH8Cv3bKCP4lbsrYhCVHH+ETLmxWpdY/AiKCyDyhjJq5y5hQ==} + /@ucanto/server/4.0.3: + resolution: {integrity: sha512-4s7XQNrj8O9EVGwYne5zVTKl10S9Cgbea64LJomfSlx5gYf7cQTMpOaRCNudi91rutOxDzEtQAVCc2vb1WWrbw==} dependencies: - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 - '@ucanto/validator': 4.0.2 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 + '@ucanto/validator': 4.0.3 - /@ucanto/transport/4.0.2: - resolution: {integrity: sha512-KRWUcmmu6tvVKGO+Q0FnnUcEnIgFNGsQg5Udma+WQrQjJLcd+cDYrz5EhGItMmsC/gtM9Cm2+YMSZL21S/yf9A==} + /@ucanto/transport/4.0.3: + resolution: {integrity: sha512-yrJoqoxmMCpPElR+iEb2AKIjUEmM+JGCcM1TZLXVbMlzaAt6ndYDMPajfnh3PBQMk7edIodZi+UxCLKvc8yelg==} dependencies: '@ipld/car': 5.0.1 '@ipld/dag-cbor': 8.0.0 - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 multiformats: 10.0.2 dev: false - /@ucanto/validator/4.0.2: - resolution: {integrity: sha512-TXY5Pu/mbrpiDb0/1s0Bl/LKNX23hDKZYbcM9kAyAhO1C3EUIm7r2kYYJJgU1hc9dGGnPPSsvv+vu8xwj0yclg==} + /@ucanto/validator/4.0.3: + resolution: {integrity: sha512-GLsOIq4R7ixu4D1NMNEJZhOelLPIpd/qtTyOjpxqrrSfsDfOoCsHkSxBy0gTwS/4ZIFMM5sa2LBPJw+ZXobgzw==} dependencies: '@ipld/car': 5.0.1 '@ipld/dag-cbor': 8.0.0 - '@ucanto/core': 4.0.2 - '@ucanto/interface': 4.0.2 + '@ucanto/core': 4.0.3 + '@ucanto/interface': 4.0.3 multiformats: 10.0.2 /@vue/compiler-core/3.2.45: