diff --git a/package-lock.json b/package-lock.json index e0f9cd248..7c9980cb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -738,7 +738,7 @@ } }, "node_modules/@tbd54566975/dwn-sdk-js": { - "version": "0.2.4", + "version": "0.2.6", "license": "Apache-2.0", "dependencies": { "@ipld/dag-cbor": "9.0.3", @@ -749,7 +749,7 @@ "ajv": "8.12.0", "blockstore-core": "4.2.0", "cross-fetch": "4.0.0", - "eciesjs": "0.4.0", + "eciesjs": "0.4.5", "flat": "5.0.2", "interface-blockstore": "5.2.3", "interface-store": "5.1.2", @@ -2836,10 +2836,46 @@ "license": "MIT" }, "node_modules/eciesjs": { - "version": "0.4.0", - "license": "MIT", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.5.tgz", + "integrity": "sha512-2zSRIygO48LpdS95Rwt9ryIkJNO37IdbkjRsnYyAn7gx7e4WPBNimnk6jGNdx2QQYr/VJRPnSVdwQpO5bycYZw==", "dependencies": { - "@noble/curves": "^1.1.0" + "@noble/ciphers": "^0.3.0", + "@noble/curves": "^1.2.0", + "@noble/hashes": "^1.3.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/eciesjs/node_modules/@noble/ciphers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.3.0.tgz", + "integrity": "sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/eciesjs/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/eciesjs/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/ee-first": { @@ -8707,10 +8743,10 @@ }, "packages/agent": { "name": "@web5/agent", - "version": "0.2.3", + "version": "0.2.4", "license": "Apache-2.0", "dependencies": { - "@tbd54566975/dwn-sdk-js": "0.2.4", + "@tbd54566975/dwn-sdk-js": "0.2.6", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2", @@ -8756,11 +8792,11 @@ "version": "0.8.2", "license": "Apache-2.0", "dependencies": { - "@tbd54566975/dwn-sdk-js": "0.2.4", - "@web5/agent": "0.2.3", - "@web5/crypto": "0.2.2", + "@tbd54566975/dwn-sdk-js": "0.2.6", + "@web5/agent": "0.2.4", + "@web5/crypto": "0.2.1", "@web5/dids": "0.2.2", - "@web5/user-agent": "0.2.3", + "@web5/user-agent": "0.2.4", "level": "8.0.0", "ms": "2.1.3", "readable-stream": "4.4.2", @@ -8803,6 +8839,20 @@ "node": ">=18.0.0" } }, + "packages/api/node_modules/@web5/crypto": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@web5/crypto/-/crypto-0.2.1.tgz", + "integrity": "sha512-DM49030ftALhzXipYdsxfCexdSNJxlnj++YUiM+lbf9aEOxT3PCapDMSXi0MG1flPJHu/Q/LMebMN/aAr0WJ3A==", + "dependencies": { + "@noble/ciphers": "0.1.4", + "@noble/curves": "1.1.0", + "@noble/hashes": "1.3.1", + "@web5/common": "0.2.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, "packages/common": { "name": "@web5/common", "version": "0.2.1", @@ -8989,10 +9039,10 @@ }, "packages/identity-agent": { "name": "@web5/identity-agent", - "version": "0.2.3", + "version": "0.2.4", "license": "Apache-2.0", "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/api": "0.8.2" }, "devDependencies": { @@ -9029,10 +9079,10 @@ }, "packages/proxy-agent": { "name": "@web5/proxy-agent", - "version": "0.2.3", + "version": "0.2.4", "license": "Apache-2.0", "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2" @@ -9071,10 +9121,10 @@ }, "packages/user-agent": { "name": "@web5/user-agent", - "version": "0.2.3", + "version": "0.2.4", "license": "Apache-2.0", "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2" diff --git a/packages/agent/.vscode/launch.json b/packages/agent/.vscode/launch.json index bc398db79..ece04cae5 100644 --- a/packages/agent/.vscode/launch.json +++ b/packages/agent/.vscode/launch.json @@ -16,4 +16,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/packages/agent/package.json b/packages/agent/package.json index c4379528c..3f8b1d210 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -1,6 +1,6 @@ { "name": "@web5/agent", - "version": "0.2.3", + "version": "0.2.4", "type": "module", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", @@ -67,7 +67,7 @@ "node": ">=18.0.0" }, "dependencies": { - "@tbd54566975/dwn-sdk-js": "0.2.4", + "@tbd54566975/dwn-sdk-js": "0.2.6", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2", diff --git a/packages/agent/src/dwn-manager.ts b/packages/agent/src/dwn-manager.ts index 0814e5da9..b58591235 100644 --- a/packages/agent/src/dwn-manager.ts +++ b/packages/agent/src/dwn-manager.ts @@ -273,12 +273,12 @@ export class DwnManager { } } - const dwnAuthorizationSigner = await this.constructDwnAuthorizationSigner(request.author); + const dwnsigner = await this.constructDwnsigner(request.author); const messageCreator = dwnMessageCreators[request.messageType]; const dwnMessage = await messageCreator.create({ ...request.messageOptions, - authorizationSigner: dwnAuthorizationSigner + signer: dwnsigner }); return { message: dwnMessage.toJSON(), dataStream: readableStream }; @@ -299,7 +299,7 @@ export class DwnManager { return signingKeyId; } - private async constructDwnAuthorizationSigner(author: string): Promise { + private async constructDwnsigner(author: string): Promise { const signingKeyId = await this.getAuthorSigningKeyId({ did: author }); /** @@ -341,11 +341,11 @@ export class DwnManager { }): Promise { const { author, messageType, messageCid } = options; - const dwnAuthorizationSigner = await this.constructDwnAuthorizationSigner(author); + const dwnsigner = await this.constructDwnsigner(author); const messagesGet = await MessagesGet.create({ - authorizationSigner : dwnAuthorizationSigner, - messageCids : [messageCid] + signer : dwnsigner, + messageCids : [messageCid] }); const result: MessagesGetReply = await this._dwn.processMessage(author, messagesGet.message); @@ -374,8 +374,8 @@ export class DwnManager { dwnMessage.data = new Blob([dataBytes]); } else { const recordsRead = await RecordsRead.create({ - authorizationSigner : dwnAuthorizationSigner, - filter : { + signer : dwnsigner, + filter : { recordId: writeMessage.recordId } }); @@ -409,13 +409,13 @@ export class DwnManager { }): Promise { const { author, messageOptions, messageType } = options; - const dwnAuthorizationSigner = await this.constructDwnAuthorizationSigner(author); + const dwnsigner = await this.constructDwnsigner(author); const messageCreator = dwnMessageCreators[messageType]; const dwnMessage = await messageCreator.create({ ...messageOptions, - authorizationSigner: dwnAuthorizationSigner + signer: dwnsigner }); return dwnMessage; diff --git a/packages/agent/tests/test-config.ts b/packages/agent/tests/test-config.ts index 213604404..3d613c34d 100644 --- a/packages/agent/tests/test-config.ts +++ b/packages/agent/tests/test-config.ts @@ -1,6 +1,6 @@ declare const __karma__: { config?: { testDwnUrl?: string; } }; -const DEFAULT_TEST_DWN_URL = 'https://dwn.tbddev.org/dwn0'; +const DEFAULT_TEST_DWN_URL = 'http://localhost:3000'; function getTestDwnUrl(): string { // Check to see if we're running in a Karma browser test environment. diff --git a/packages/api/.vscode/launch.json b/packages/api/.vscode/launch.json index 666f5afc0..cf2d6baab 100644 --- a/packages/api/.vscode/launch.json +++ b/packages/api/.vscode/launch.json @@ -12,6 +12,7 @@ "webRoot": "${workspaceFolder:web5}" }, { + "runtimeVersion": "20", "type": "node", "request": "launch", "name": "test:node", diff --git a/packages/api/package.json b/packages/api/package.json index cf74f7114..4664b4e68 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -75,11 +75,17 @@ "node": ">=18.0.0" }, "dependencies": { + "@tbd54566975/dwn-sdk-js": "0.2.6", + "@web5/agent": "0.2.4", + "@web5/crypto": "0.2.2", "@tbd54566975/dwn-sdk-js": "0.2.4", "@web5/agent": "0.2.3", - "@web5/crypto": "0.2.2", + "@web5/crypto": "0.2.1", + "@tbd54566975/dwn-sdk-js": "0.2.6", + "@web5/agent": "0.2.4", + "@web5/crypto": "0.2.1", "@web5/dids": "0.2.2", - "@web5/user-agent": "0.2.3", + "@web5/user-agent": "0.2.4", "level": "8.0.0", "ms": "2.1.3", "readable-stream": "4.4.2", diff --git a/packages/api/src/dwn-api.ts b/packages/api/src/dwn-api.ts index 8ce82ec0f..88fa973c6 100644 --- a/packages/api/src/dwn-api.ts +++ b/packages/api/src/dwn-api.ts @@ -26,7 +26,7 @@ import { dataToBlob } from './utils.js'; * @beta */ export type ProtocolsConfigureRequest = { - message: Omit; + message: Omit; } /** @@ -55,7 +55,7 @@ export type ProtocolsQueryReplyEntry = { */ export type ProtocolsQueryRequest = { from?: string; - message: Omit + message: Omit } /** @@ -90,7 +90,7 @@ export type RecordsCreateResponse = RecordsWriteResponse; export type RecordsCreateFromRequest = { author: string; data: unknown; - message?: Omit; + message?: Omit; record: Record; } @@ -101,7 +101,7 @@ export type RecordsCreateFromRequest = { */ export type RecordsDeleteRequest = { from?: string; - message: Omit; + message: Omit; } /** @@ -121,7 +121,7 @@ export type RecordsDeleteResponse = { export type RecordsQueryRequest = { /** The from property indicates the DID to query from and return results. */ from?: string; - message: Omit; + message: Omit; } /** @@ -142,7 +142,7 @@ export type RecordsQueryResponse = { export type RecordsReadRequest = { /** The from property indicates the DID to read from and return results fro. */ from?: string; - message: Omit; + message: Omit; } /** @@ -162,7 +162,7 @@ export type RecordsReadResponse = { */ export type RecordsWriteRequest = { data: unknown; - message?: Omit, 'authorizationSigner'>; + message?: Omit, 'signer'>; store?: boolean; } diff --git a/packages/api/tests/record.spec.ts b/packages/api/tests/record.spec.ts index ecb7d9363..7f633f82d 100644 --- a/packages/api/tests/record.spec.ts +++ b/packages/api/tests/record.spec.ts @@ -146,7 +146,7 @@ describe('Record', () => { // Create a parent record to reference in the RecordsWriteMessage used for validation const parentRecorsWrite = await RecordsWrite.create({ - authorizationSigner : authorization, + signer : authorization, data : new Uint8Array(await dataBlob.arrayBuffer()), dataFormat, protocol, @@ -157,7 +157,7 @@ describe('Record', () => { // Create a RecordsWriteMessage const recordsWrite = await RecordsWrite.create({ attestationSigners : attestation, - authorizationSigner : authorization, + signer : authorization, data : new Uint8Array(await dataBlob.arrayBuffer()), dataFormat, encryptionInput, @@ -533,7 +533,7 @@ describe('Record', () => { }); }); - it('writes records to remote DWNs for your own DID', async () => { + it.only('writes records to remote DWNs for your own DID', async () => { const dataString = 'Hello, world!'; // Alice writes a message to her agent connected DWN. @@ -908,7 +908,7 @@ describe('Record', () => { // Create a parent record to reference in the RecordsWriteMessage used for validation const parentRecorsWrite = await RecordsWrite.create({ - authorizationSigner : authorization, + signer : authorization, data : new Uint8Array(await dataBlob.arrayBuffer()), dataFormat, protocol, @@ -919,7 +919,7 @@ describe('Record', () => { // Create a RecordsWriteMessage const recordsWrite = await RecordsWrite.create({ attestationSigners : attestation, - authorizationSigner : authorization, + signer : authorization, data : new Uint8Array(await dataBlob.arrayBuffer()), dataFormat, encryptionInput, diff --git a/packages/dev-env/docker-compose.yaml b/packages/dev-env/docker-compose.yaml index d0a601355..f1ad61c04 100644 --- a/packages/dev-env/docker-compose.yaml +++ b/packages/dev-env/docker-compose.yaml @@ -3,6 +3,6 @@ version: "3.98" services: dwn-server: container_name: dwn-server - image: ghcr.io/tbd54566975/dwn-server:dwn-sdk-0.2.4 + image: ghcr.io/tbd54566975/dwn-server:dwn-sdk-v0.2.6 ports: - "3000:3000" diff --git a/packages/identity-agent/package.json b/packages/identity-agent/package.json index cd98aa750..c14afe706 100644 --- a/packages/identity-agent/package.json +++ b/packages/identity-agent/package.json @@ -1,6 +1,6 @@ { "name": "@web5/identity-agent", - "version": "0.2.3", + "version": "0.2.4", "type": "module", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", @@ -67,7 +67,7 @@ "node": ">=18.0.0" }, "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/api": "0.8.2" }, "devDependencies": { diff --git a/packages/proxy-agent/package.json b/packages/proxy-agent/package.json index 972863526..71c3a6c09 100644 --- a/packages/proxy-agent/package.json +++ b/packages/proxy-agent/package.json @@ -1,6 +1,6 @@ { "name": "@web5/proxy-agent", - "version": "0.2.3", + "version": "0.2.4", "type": "module", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", @@ -67,7 +67,7 @@ "node": ">=18.0.0" }, "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2" diff --git a/packages/user-agent/package.json b/packages/user-agent/package.json index ae024c8f8..1ee5bb9d0 100644 --- a/packages/user-agent/package.json +++ b/packages/user-agent/package.json @@ -1,6 +1,6 @@ { "name": "@web5/user-agent", - "version": "0.2.3", + "version": "0.2.4", "type": "module", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", @@ -67,7 +67,7 @@ "node": ">=18.0.0" }, "dependencies": { - "@web5/agent": "0.2.3", + "@web5/agent": "0.2.4", "@web5/common": "0.2.1", "@web5/crypto": "0.2.2", "@web5/dids": "0.2.2"