@interop/did-cli 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +26 -20
- package/dist/commands/was/request-grant.d.ts +4 -2
- package/dist/commands/was/request-grant.d.ts.map +1 -1
- package/dist/commands/was/request-grant.js +7 -5
- package/dist/commands/was/request-grant.js.map +1 -1
- package/dist/commands/was.d.ts.map +1 -1
- package/dist/commands/was.js +4 -1
- package/dist/commands/was.js.map +1 -1
- package/dist/commands/zcap.d.ts +22 -2
- package/dist/commands/zcap.d.ts.map +1 -1
- package/dist/commands/zcap.js +75 -4
- package/dist/commands/zcap.js.map +1 -1
- package/dist/was/capability.d.ts.map +1 -1
- package/dist/was/capability.js +4 -1
- package/dist/was/capability.js.map +1 -1
- package/dist/was/client.d.ts +10 -3
- package/dist/was/client.d.ts.map +1 -1
- package/dist/was/client.js +27 -6
- package/dist/was/client.js.map +1 -1
- package/dist/was/request-grant.d.ts +9 -6
- package/dist/was/request-grant.d.ts.map +1 -1
- package/dist/was/request-grant.js +19 -12
- package/dist/was/request-grant.js.map +1 -1
- package/dist/zcap/create.d.ts +1 -1
- package/dist/zcap/create.js +1 -1
- package/dist/zcap/delegate.d.ts +1 -1
- package/dist/zcap/delegate.js +1 -1
- package/dist/zcap/encoding.d.ts +17 -5
- package/dist/zcap/encoding.d.ts.map +1 -1
- package/dist/zcap/encoding.js +31 -17
- package/dist/zcap/encoding.js.map +1 -1
- package/dist/zcap/resolve.d.ts +17 -4
- package/dist/zcap/resolve.d.ts.map +1 -1
- package/dist/zcap/resolve.js +25 -8
- package/dist/zcap/resolve.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/was/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACV,MAAM,qBAAqB,CAAA;AAI5B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAA;AAEjE;;GAEG;AACH,UAAU,sBAAsB;IAC9B,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,KAAK,CAAA;IACX,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAC,GAC5D,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,GACtE,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,GAAG,EACH,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../src/was/capability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACV,MAAM,qBAAqB,CAAA;AAI5B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAA;AAEjE;;GAEG;AACH,UAAU,sBAAsB;IAC9B,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,KAAK,CAAA;IACX,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAChC,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,CAAA;CAAE,CAAC,GAC5D,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,GACtE,CAAC,sBAAsB,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAA;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,EAC5C,GAAG,EACH,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,wBAAwB,CAAC,CA0CpC"}
|
package/dist/was/capability.js
CHANGED
|
@@ -31,9 +31,12 @@ export async function resolveCapabilityTarget({ ref, did }) {
|
|
|
31
31
|
if (!didRef) {
|
|
32
32
|
throw new Error('No signing DID for the capability: provide --did or WAS_DID.');
|
|
33
33
|
}
|
|
34
|
+
// Discover the service from the target itself rather than the origin: a
|
|
35
|
+
// deployment may serve a static page at its origin with no service link.
|
|
34
36
|
const { client, did: resolvedDid } = await buildWasClient({
|
|
35
37
|
server,
|
|
36
|
-
did: didRef
|
|
38
|
+
did: didRef,
|
|
39
|
+
discoverFrom: url
|
|
37
40
|
});
|
|
38
41
|
const handle = client.fromCapability(zcap);
|
|
39
42
|
const base = { client, zcap, server, did: resolvedDid, url };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/was/capability.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAgC5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,GAAG,EACH,GAAG,EAIJ;IACC,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,4BAA4B,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAA;IACjC,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,yDAAyD,GAAG,EAAE,EAC9D,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GACV,GAAG;QACH,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;IACH,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC;QACxD,MAAM;QACN,GAAG,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../../src/was/capability.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAgC5C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,GAAG,EACH,GAAG,EAIJ;IACC,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,4BAA4B,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAA;IACjC,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,yDAAyD,GAAG,EAAE,EAC9D,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GACV,GAAG;QACH,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAA;IACH,CAAC;IACD,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC;QACxD,MAAM;QACN,GAAG,EAAE,MAAM;QACX,YAAY,EAAE,GAAG;KAClB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAA;IAC5D,+DAA+D;IAC/D,2EAA2E;IAC3E,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;IAC/C,CAAC;IACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAA;IACjD,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5C,CAAC"}
|
package/dist/was/client.d.ts
CHANGED
|
@@ -19,12 +19,16 @@ import { type SpaceRecord } from './registry.js';
|
|
|
19
19
|
/**
|
|
20
20
|
* Constructs the `WasClient` for a resolved server URL and signer. Kept as a
|
|
21
21
|
* replaceable factory so command tests can substitute a stubbed client (no
|
|
22
|
-
* network) while exercising the full resolution path.
|
|
22
|
+
* network) while exercising the full resolution path. `discoverFrom` names a
|
|
23
|
+
* server-owned URL to run service discovery against instead of the base URL,
|
|
24
|
+
* for a deployment whose base URL is a static page that carries no service
|
|
25
|
+
* link.
|
|
23
26
|
*/
|
|
24
27
|
type WasClientFactory = (options: {
|
|
25
28
|
serverUrl: string;
|
|
26
29
|
signer: ISigner;
|
|
27
|
-
|
|
30
|
+
discoverFrom?: string;
|
|
31
|
+
}) => WasClient | Promise<WasClient>;
|
|
28
32
|
/**
|
|
29
33
|
* Replaces the `WasClient` construction step (a test-only seam). Call with
|
|
30
34
|
* no argument to restore the default factory.
|
|
@@ -76,11 +80,14 @@ export declare function loadWasSigner({ did }: {
|
|
|
76
80
|
* @param options {object}
|
|
77
81
|
* @param [options.server] {string} The server base URL.
|
|
78
82
|
* @param [options.did] {string} A DID or stored-DID metadata handle.
|
|
83
|
+
* @param [options.discoverFrom] {string} A server-owned URL to run service
|
|
84
|
+
* discovery against instead of the base URL.
|
|
79
85
|
* @returns {Promise<{client: WasClient, server: string, did: string}>}
|
|
80
86
|
*/
|
|
81
|
-
export declare function buildWasClient({ server, did }?: {
|
|
87
|
+
export declare function buildWasClient({ server, did, discoverFrom }?: {
|
|
82
88
|
server?: string;
|
|
83
89
|
did?: string;
|
|
90
|
+
discoverFrom?: string;
|
|
84
91
|
}): Promise<{
|
|
85
92
|
client: WasClient;
|
|
86
93
|
server: string;
|
package/dist/was/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAmB,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAIhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AASjE;;;;;;;GAOG;AACH,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAwBpC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAEpE;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,YAAY,CAAA;KAAE,CAAA;CACxE;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,EAClC,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAiC5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,GAAG,EACH,YAAY,EACb,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBnE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,GAAG,EACJ,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6C7B"}
|
package/dist/was/client.js
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* signing (the constraint of the `Ed25519Signature2020` zcap suite used by
|
|
13
13
|
* `@interop/was-client`).
|
|
14
14
|
*/
|
|
15
|
-
import { WasClient } from '@interop/was-client';
|
|
15
|
+
import { discoverService, WasClient } from '@interop/was-client';
|
|
16
|
+
import { spacePath, toUrl } from '@interop/was-client/paths';
|
|
16
17
|
import { Ed25519VerificationKey } from '@interop/ed25519-verification-key';
|
|
17
18
|
import { createSigner } from '@interop/ed25519-signature';
|
|
18
19
|
import { loadDidDocument, loadDidKeys } from '../storage.js';
|
|
@@ -25,8 +26,16 @@ import { resolveSpaceRef } from './registry.js';
|
|
|
25
26
|
* public key is what identifies the curve.
|
|
26
27
|
*/
|
|
27
28
|
const ED25519_MULTIBASE_PREFIX = 'z6Mk';
|
|
28
|
-
function defaultWasClientFactory({ serverUrl, signer }) {
|
|
29
|
-
|
|
29
|
+
async function defaultWasClientFactory({ serverUrl, signer, discoverFrom }) {
|
|
30
|
+
if (discoverFrom === undefined) {
|
|
31
|
+
return WasClient.fromSigner({ serverUrl, signer });
|
|
32
|
+
}
|
|
33
|
+
const { description } = await discoverService({ url: discoverFrom });
|
|
34
|
+
return WasClient.fromSigner({
|
|
35
|
+
serverUrl,
|
|
36
|
+
signer,
|
|
37
|
+
serviceDescription: description
|
|
38
|
+
});
|
|
30
39
|
}
|
|
31
40
|
let wasClientFactory = defaultWasClientFactory;
|
|
32
41
|
/**
|
|
@@ -85,9 +94,11 @@ export async function loadWasSigner({ did }) {
|
|
|
85
94
|
* @param options {object}
|
|
86
95
|
* @param [options.server] {string} The server base URL.
|
|
87
96
|
* @param [options.did] {string} A DID or stored-DID metadata handle.
|
|
97
|
+
* @param [options.discoverFrom] {string} A server-owned URL to run service
|
|
98
|
+
* discovery against instead of the base URL.
|
|
88
99
|
* @returns {Promise<{client: WasClient, server: string, did: string}>}
|
|
89
100
|
*/
|
|
90
|
-
export async function buildWasClient({ server, did } = {}) {
|
|
101
|
+
export async function buildWasClient({ server, did, discoverFrom } = {}) {
|
|
91
102
|
const serverUrl = server ?? process.env.WAS_SERVER_URL;
|
|
92
103
|
if (!serverUrl) {
|
|
93
104
|
throw new Error('No WAS server URL: provide --server or set WAS_SERVER_URL.');
|
|
@@ -97,7 +108,11 @@ export async function buildWasClient({ server, did } = {}) {
|
|
|
97
108
|
throw new Error('No signing DID: provide --did or set WAS_DID.');
|
|
98
109
|
}
|
|
99
110
|
const { did: resolvedDid, signer } = await loadWasSigner({ did: didRef });
|
|
100
|
-
const client = wasClientFactory({
|
|
111
|
+
const client = await wasClientFactory({
|
|
112
|
+
serverUrl,
|
|
113
|
+
signer,
|
|
114
|
+
...(discoverFrom !== undefined && { discoverFrom })
|
|
115
|
+
});
|
|
101
116
|
return { client, server: serverUrl, did: resolvedDid };
|
|
102
117
|
}
|
|
103
118
|
/**
|
|
@@ -132,7 +147,13 @@ export async function resolveWasTarget({ address, server, did }) {
|
|
|
132
147
|
'WAS_DID, or register the space with its controller DID.');
|
|
133
148
|
}
|
|
134
149
|
const { did: resolvedDid, signer } = await loadWasSigner({ did: didRef });
|
|
135
|
-
|
|
150
|
+
// Discover the service from the space rather than the origin: a deployment
|
|
151
|
+
// may serve a static page at its origin with no service link.
|
|
152
|
+
const client = await wasClientFactory({
|
|
153
|
+
serverUrl,
|
|
154
|
+
signer,
|
|
155
|
+
discoverFrom: toUrl({ serverUrl, path: spacePath(spaceId) })
|
|
156
|
+
});
|
|
136
157
|
return {
|
|
137
158
|
client,
|
|
138
159
|
server: serverUrl,
|
package/dist/was/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/was/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,7 +78,7 @@ export declare function buildCapabilityRequest({ controller, collection, actions
|
|
|
78
78
|
*
|
|
79
79
|
* @param options {object}
|
|
80
80
|
* @param options.wallet {string} The wallet's base URL.
|
|
81
|
-
* @returns {URL}
|
|
81
|
+
* @returns {URL} The base URL with the route as its fragment.
|
|
82
82
|
*/
|
|
83
83
|
export declare function walletRequestRoute({ wallet }: {
|
|
84
84
|
wallet: string;
|
|
@@ -87,8 +87,10 @@ export declare function walletRequestRoute({ wallet }: {
|
|
|
87
87
|
* Builds the link that opens a wallet straight onto the approval page for an
|
|
88
88
|
* exchange, for the case where the user is already at a browser: the wallet's
|
|
89
89
|
* external-request route carrying the interaction URL as a percent-encoded
|
|
90
|
-
* `url` parameter. The
|
|
91
|
-
*
|
|
90
|
+
* `url` parameter. The parameter goes inside the fragment, after the route,
|
|
91
|
+
* because that is the only part of the URL a fragment-routed wallet reads.
|
|
92
|
+
* The interaction URL alone stays the fallback, since it is what a wallet on
|
|
93
|
+
* another device can be pointed at.
|
|
92
94
|
*
|
|
93
95
|
* @param options {object}
|
|
94
96
|
* @param options.route {URL} The wallet's external-request route.
|
|
@@ -104,12 +106,13 @@ export declare function buildWalletDeepLink({ route, interactionUrl }: {
|
|
|
104
106
|
* returns both the URL to poll and the interaction URL to hand the user.
|
|
105
107
|
*
|
|
106
108
|
* @param options {object}
|
|
107
|
-
* @param options.
|
|
109
|
+
* @param options.exchange {string} Base URL of the WAS server hosting the
|
|
110
|
+
* exchange.
|
|
108
111
|
* @param options.request {IVPRDetails} The VPR to store on the exchange.
|
|
109
112
|
* @returns {Promise<{exchangeUrl: string, interactionUrl: string}>}
|
|
110
113
|
*/
|
|
111
|
-
export declare function openGrantExchange({
|
|
112
|
-
|
|
114
|
+
export declare function openGrantExchange({ exchange, request }: {
|
|
115
|
+
exchange: string;
|
|
113
116
|
request: IVPRDetails;
|
|
114
117
|
}): Promise<{
|
|
115
118
|
exchangeUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-grant.d.ts","sourceRoot":"","sources":["../../src/was/request-grant.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,4CAA4C,CAAA;AAE/E,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AAEvC,qEAAqE;AACrE,eAAO,MAAM,eAAe,UAAiC,CAAA;AAS7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA4B,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,aAAgB,CAAA;AAE3C;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C;;GAEG;AACH,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAIzE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAE5D;AAsBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,UAA+B,EAC/B,OAAyB,EACzB,MAAM,EACN,IAAI,EACL,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,WAAW,CAcd;
|
|
1
|
+
{"version":3,"file":"request-grant.d.ts","sourceRoot":"","sources":["../../src/was/request-grant.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,4CAA4C,CAAA;AAE/E,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AAEvC,qEAAqE;AACrE,eAAO,MAAM,eAAe,UAAiC,CAAA;AAS7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAA4B,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,aAAgB,CAAA;AAE3C;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;CAAG;AAE/C;;GAEG;AACH,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAIzE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAE5D;AAsBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,UAA+B,EAC/B,OAAyB,EACzB,MAAM,EACN,IAAI,EACL,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,GAAG,WAAW,CAcd;AAUD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAsBtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,cAAc,EACf,EAAE;IACD,KAAK,EAAE,GAAG,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;CACvB,GAAG,MAAM,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,QAAQ,EACR,OAAO,EACR,EAAE;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAM3D;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,CA4B9D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,WAAW,EACX,SAA8B,EAC9B,UAAU,EACX,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA8BnB"}
|
|
@@ -118,9 +118,10 @@ export function buildCapabilityRequest({ controller, collection = DEFAULT_COLLEC
|
|
|
118
118
|
/**
|
|
119
119
|
* The wallet route an outside request is handed to. Requests arriving from
|
|
120
120
|
* outside the app land under `/external/`; `/wallet/*` stays CHAPI-handler
|
|
121
|
-
* only.
|
|
121
|
+
* only. The wallet routes on the URL fragment, so the route (and the query it
|
|
122
|
+
* carries) lives after `#`.
|
|
122
123
|
*/
|
|
123
|
-
const
|
|
124
|
+
const WALLET_REQUEST_ROUTE = '/external/request';
|
|
124
125
|
/**
|
|
125
126
|
* Resolves a wallet base URL to its external-request route, rejecting anything
|
|
126
127
|
* that is not an absolute http(s) URL. Kept separate from the link itself so a
|
|
@@ -128,7 +129,7 @@ const WALLET_REQUEST_PATH = 'external/request';
|
|
|
128
129
|
*
|
|
129
130
|
* @param options {object}
|
|
130
131
|
* @param options.wallet {string} The wallet's base URL.
|
|
131
|
-
* @returns {URL}
|
|
132
|
+
* @returns {URL} The base URL with the route as its fragment.
|
|
132
133
|
*/
|
|
133
134
|
export function walletRequestRoute({ wallet }) {
|
|
134
135
|
let base;
|
|
@@ -142,17 +143,21 @@ export function walletRequestRoute({ wallet }) {
|
|
|
142
143
|
throw new Error(`Invalid wallet URL "${wallet}": expected an http(s) URL, got ` +
|
|
143
144
|
`"${base.protocol}".`);
|
|
144
145
|
}
|
|
145
|
-
//
|
|
146
|
-
//
|
|
146
|
+
// Keep the base path (a wallet deployed under a sub-path keeps its prefix)
|
|
147
|
+
// and hang the route off it as the fragment.
|
|
147
148
|
const path = base.pathname.endsWith('/') ? base.pathname : `${base.pathname}/`;
|
|
148
|
-
|
|
149
|
+
const route = new URL(path, base);
|
|
150
|
+
route.hash = WALLET_REQUEST_ROUTE;
|
|
151
|
+
return route;
|
|
149
152
|
}
|
|
150
153
|
/**
|
|
151
154
|
* Builds the link that opens a wallet straight onto the approval page for an
|
|
152
155
|
* exchange, for the case where the user is already at a browser: the wallet's
|
|
153
156
|
* external-request route carrying the interaction URL as a percent-encoded
|
|
154
|
-
* `url` parameter. The
|
|
155
|
-
*
|
|
157
|
+
* `url` parameter. The parameter goes inside the fragment, after the route,
|
|
158
|
+
* because that is the only part of the URL a fragment-routed wallet reads.
|
|
159
|
+
* The interaction URL alone stays the fallback, since it is what a wallet on
|
|
160
|
+
* another device can be pointed at.
|
|
156
161
|
*
|
|
157
162
|
* @param options {object}
|
|
158
163
|
* @param options.route {URL} The wallet's external-request route.
|
|
@@ -161,7 +166,8 @@ export function walletRequestRoute({ wallet }) {
|
|
|
161
166
|
*/
|
|
162
167
|
export function buildWalletDeepLink({ route, interactionUrl }) {
|
|
163
168
|
const link = new URL(route);
|
|
164
|
-
|
|
169
|
+
const params = new URLSearchParams({ url: interactionUrl });
|
|
170
|
+
link.hash = `${route.hash.slice(1)}?${params.toString()}`;
|
|
165
171
|
return link.toString();
|
|
166
172
|
}
|
|
167
173
|
/**
|
|
@@ -169,13 +175,14 @@ export function buildWalletDeepLink({ route, interactionUrl }) {
|
|
|
169
175
|
* returns both the URL to poll and the interaction URL to hand the user.
|
|
170
176
|
*
|
|
171
177
|
* @param options {object}
|
|
172
|
-
* @param options.
|
|
178
|
+
* @param options.exchange {string} Base URL of the WAS server hosting the
|
|
179
|
+
* exchange.
|
|
173
180
|
* @param options.request {IVPRDetails} The VPR to store on the exchange.
|
|
174
181
|
* @returns {Promise<{exchangeUrl: string, interactionUrl: string}>}
|
|
175
182
|
*/
|
|
176
|
-
export async function openGrantExchange({
|
|
183
|
+
export async function openGrantExchange({ exchange, request }) {
|
|
177
184
|
return createEphemeralExchange({
|
|
178
|
-
serverUrl:
|
|
185
|
+
serverUrl: exchange,
|
|
179
186
|
request,
|
|
180
187
|
...(exchangeFetch && { fetch: exchangeFetch })
|
|
181
188
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-grant.js","sourceRoot":"","sources":["../../src/was/request-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAA;AAOhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,yCAAyC,CAAA;AAE/E,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEvC,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAE7D;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAO/C,IAAI,aAAoC,CAAA;AAExC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAqB;IACpD,aAAa,GAAG,SAAS,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,OAAiB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QACjC,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,gBAAgB;gBACvC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACxC,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,UAAU,EACV,UAAU,GAAG,kBAAkB,EAC/B,OAAO,GAAG,eAAe,EACzB,MAAM,EACN,IAAI,EAOL;IACC,MAAM,eAAe,GAA2B;QAC9C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,aAAa,EAAE,yBAAyB,CAAC,OAAO,CAAC;QACjD,UAAU;QACV,gBAAgB,EAAE;YAChB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,UAAU;SACjB;KACF,CAAA;IACD,OAAO,wBAAwB,CAAC;QAC9B,iBAAiB,EAAE,CAAC,eAAe,CAAC;QACpC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"request-grant.js","sourceRoot":"","sources":["../../src/was/request-grant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,yBAAyB,CAAA;AAOhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,yCAAyC,CAAA;AAE/E,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEvC,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AAE7D;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;CAAG;AAO/C,IAAI,aAAoC,CAAA;AAExC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAqB;IACpD,aAAa,GAAG,SAAS,CAAA;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,OAAiB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QACjC,IAAI,CAAE,mBAAyC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CACb,mBAAmB,MAAM,gBAAgB;gBACvC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACxC,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,EACrC,UAAU,EACV,UAAU,GAAG,kBAAkB,EAC/B,OAAO,GAAG,eAAe,EACzB,MAAM,EACN,IAAI,EAOL;IACC,MAAM,eAAe,GAA2B;QAC9C,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,aAAa,EAAE,yBAAyB,CAAC,OAAO,CAAC;QACjD,UAAU;QACV,gBAAgB,EAAE;YAChB,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,UAAU;SACjB;KACF,CAAA;IACD,OAAO,wBAAwB,CAAC;QAC9B,iBAAiB,EAAE,CAAC,eAAe,CAAC;QACpC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,mBAAmB,CAAA;AAEhD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,MAAM,EAAsB;IAC/D,IAAI,IAAS,CAAA;IACb,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,uBAAuB,MAAM,sCAAsC,EACnE,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;IACH,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,uBAAuB,MAAM,kCAAkC;YAC7D,IAAI,IAAI,CAAC,QAAQ,IAAI,CACxB,CAAA;IACH,CAAC;IACD,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAA;IAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAA;IACjC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,EACL,cAAc,EAIf;IACC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAA;IAC3D,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;IACzD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,QAAQ,EACR,OAAO,EAIR;IACC,OAAO,uBAAuB,CAAC;QAC7B,SAAS,EAAE,QAAQ;QACnB,OAAO;QACP,GAAG,CAAC,aAAa,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAiB;IACnD,MAAM,YAAY,GAChB,QACD,EAAE,sBAAsB,CAAA;IACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,iBAAiB,CACzB,0DAA0D,CAC3D,CAAA;IACH,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAA;IAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC3E,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ,IAAI,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9D,MAAM,IAAI,iBAAiB,CACzB,qEAAqE;gBACnE,qDAAqD,CACxD,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAiB,CACzB,uEAAuE;YACrE,iEAAiE;YACjE,kEAAkE;YAClE,wBAAwB,CAC3B,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,WAAW,EACX,SAAS,GAAG,kBAAkB,EAC9B,UAAU,EAKX;IACC,IAAI,QAAiB,CAAA;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,qBAAqB,CAAC;YACrC,WAAW;YACX,SAAS;YACT,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;YAC/C,GAAG,CAAC,aAAa,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SAC/C,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mEAAmE;QACnE,8DAA8D;QAC9D,IAAK,GAAa,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACzD,MAAM,IAAI,iBAAiB,CACzB,kEAAkE;gBAChE,oEAAoE,EACtE,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACH,CAAC;QACD,IAAK,GAAa,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;YAC5D,MAAM,IAAI,iBAAiB,CACzB,sCAAsC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;gBACrE,mEAAmE;gBACnE,iCAAiC,EACnC,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACH,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;AACtC,CAAC"}
|
package/dist/zcap/create.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { IRootZcap } from '@interop/data-integrity-core/zcap';
|
|
|
8
8
|
* @param options.url {string} The resource URI the capability targets (the
|
|
9
9
|
* `invocationTarget`).
|
|
10
10
|
* @returns {{rootCapability: IRootZcap, encoded: string}} The root capability
|
|
11
|
-
* and its multibase (
|
|
11
|
+
* and its multibase (base64url) encoding.
|
|
12
12
|
*/
|
|
13
13
|
export declare function createCapability({ controller, url }: {
|
|
14
14
|
controller: string;
|
package/dist/zcap/create.js
CHANGED
|
@@ -17,7 +17,7 @@ import { encodeCapability } from './encoding.js';
|
|
|
17
17
|
* @param options.url {string} The resource URI the capability targets (the
|
|
18
18
|
* `invocationTarget`).
|
|
19
19
|
* @returns {{rootCapability: IRootZcap, encoded: string}} The root capability
|
|
20
|
-
* and its multibase (
|
|
20
|
+
* and its multibase (base64url) encoding.
|
|
21
21
|
*/
|
|
22
22
|
export function createCapability({ controller, url }) {
|
|
23
23
|
const rootCapability = createRootCapability({
|
package/dist/zcap/delegate.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ import type { IDelegatedZcap, IZcap } from '@interop/data-integrity-core/zcap';
|
|
|
25
25
|
* @param [options.expires] {string} Explicit ISO 8601 expiration (overrides
|
|
26
26
|
* `ttl`).
|
|
27
27
|
* @returns {Promise<{delegatedCapability: IDelegatedZcap, encoded: string}>}
|
|
28
|
-
* The signed delegated capability and its multibase (
|
|
28
|
+
* The signed delegated capability and its multibase (base64url) encoding.
|
|
29
29
|
*/
|
|
30
30
|
export declare function delegateCapability({ did, controller, delegatee, url, capability, invocationTarget, allow, ttl, expires }: {
|
|
31
31
|
did?: string;
|
package/dist/zcap/delegate.js
CHANGED
|
@@ -46,7 +46,7 @@ import { loadDelegationSigner } from './signer.js';
|
|
|
46
46
|
* @param [options.expires] {string} Explicit ISO 8601 expiration (overrides
|
|
47
47
|
* `ttl`).
|
|
48
48
|
* @returns {Promise<{delegatedCapability: IDelegatedZcap, encoded: string}>}
|
|
49
|
-
* The signed delegated capability and its multibase (
|
|
49
|
+
* The signed delegated capability and its multibase (base64url) encoding.
|
|
50
50
|
*/
|
|
51
51
|
export async function delegateCapability({ did, controller, delegatee, url, capability, invocationTarget, allow, ttl = '1y', expires }) {
|
|
52
52
|
const delegationSigner = await loadDelegationSigner({ did, controller });
|
package/dist/zcap/encoding.d.ts
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
import type { IZcap } from '@interop/data-integrity-core/zcap';
|
|
2
2
|
/**
|
|
3
|
-
* Encodes a capability as a multibase (
|
|
3
|
+
* Encodes a capability as a multibase (base64url, no padding) string.
|
|
4
4
|
*
|
|
5
5
|
* @param capability {IZcap} The root or delegated capability to encode.
|
|
6
|
-
* @returns {string} The capability JSON,
|
|
6
|
+
* @returns {string} The capability JSON, base64url-encoded with a leading
|
|
7
|
+
* `u`.
|
|
7
8
|
*/
|
|
8
9
|
export declare function encodeCapability(capability: IZcap): string;
|
|
9
10
|
/**
|
|
10
|
-
*
|
|
11
|
+
* Tells whether a `--capability` value is an encoded capability rather than a
|
|
12
|
+
* file path or a stored id/handle. The `u` form is base64url of JSON that
|
|
13
|
+
* always opens with `{"`, so it always begins `ueyJ`; checking that prefix is
|
|
14
|
+
* what keeps a `urn:` capability id (which also begins with `u`) out of the
|
|
15
|
+
* decoder.
|
|
11
16
|
*
|
|
12
|
-
* @param
|
|
13
|
-
*
|
|
17
|
+
* @param value {string}
|
|
18
|
+
* @returns {boolean}
|
|
19
|
+
*/
|
|
20
|
+
export declare function isEncodedCapability(value: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Decodes a multibase (base64url, `u` prefix) capability string back into a
|
|
23
|
+
* capability.
|
|
24
|
+
*
|
|
25
|
+
* @param encoded {string} A `u`-prefixed multibase string.
|
|
14
26
|
* @returns {IZcap} The decoded root or delegated capability.
|
|
15
27
|
*/
|
|
16
28
|
export declare function decodeCapability(encoded: string): IZcap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/zcap/encoding.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAE9D
|
|
1
|
+
{"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/zcap/encoding.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAE9D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,MAAM,CAG1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAQvD"}
|
package/dist/zcap/encoding.js
CHANGED
|
@@ -1,37 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Multibase
|
|
2
|
+
* Multibase encoding for Authorization Capabilities (zcaps).
|
|
3
3
|
*
|
|
4
4
|
* The CLI prints an `encoded` form alongside each capability: the capability's
|
|
5
|
-
* JSON serialized to UTF-8 bytes,
|
|
6
|
-
* multibase prefix
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
5
|
+
* JSON serialized to UTF-8 bytes, base64url-encoded without padding, with a
|
|
6
|
+
* leading `u` multibase prefix. `decodeCapability` reverses this so a
|
|
7
|
+
* delegated capability can be passed back in via `--capability`. base64url
|
|
8
|
+
* rather than base58btc because a delegated capability embeds its whole
|
|
9
|
+
* chain, and base58 is quadratic in the input size, so `@scure/base` refuses
|
|
10
|
+
* it past 2048 bytes -- smaller than a two-hop chain a wallet delegates.
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { base64urlnopad } from '@scure/base';
|
|
13
13
|
/**
|
|
14
|
-
* Encodes a capability as a multibase (
|
|
14
|
+
* Encodes a capability as a multibase (base64url, no padding) string.
|
|
15
15
|
*
|
|
16
16
|
* @param capability {IZcap} The root or delegated capability to encode.
|
|
17
|
-
* @returns {string} The capability JSON,
|
|
17
|
+
* @returns {string} The capability JSON, base64url-encoded with a leading
|
|
18
|
+
* `u`.
|
|
18
19
|
*/
|
|
19
20
|
export function encodeCapability(capability) {
|
|
20
21
|
const bytes = new TextEncoder().encode(JSON.stringify(capability));
|
|
21
|
-
return `
|
|
22
|
+
return `u${base64urlnopad.encode(bytes)}`;
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
+
* Tells whether a `--capability` value is an encoded capability rather than a
|
|
26
|
+
* file path or a stored id/handle. The `u` form is base64url of JSON that
|
|
27
|
+
* always opens with `{"`, so it always begins `ueyJ`; checking that prefix is
|
|
28
|
+
* what keeps a `urn:` capability id (which also begins with `u`) out of the
|
|
29
|
+
* decoder.
|
|
25
30
|
*
|
|
26
|
-
* @param
|
|
27
|
-
*
|
|
31
|
+
* @param value {string}
|
|
32
|
+
* @returns {boolean}
|
|
33
|
+
*/
|
|
34
|
+
export function isEncodedCapability(value) {
|
|
35
|
+
return /^ueyJ[A-Za-z0-9_-]*$/.test(value);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Decodes a multibase (base64url, `u` prefix) capability string back into a
|
|
39
|
+
* capability.
|
|
40
|
+
*
|
|
41
|
+
* @param encoded {string} A `u`-prefixed multibase string.
|
|
28
42
|
* @returns {IZcap} The decoded root or delegated capability.
|
|
29
43
|
*/
|
|
30
44
|
export function decodeCapability(encoded) {
|
|
31
|
-
if (!encoded.startsWith('
|
|
32
|
-
throw new Error('Encoded capability must be a multibase
|
|
45
|
+
if (!encoded.startsWith('u')) {
|
|
46
|
+
throw new Error('Encoded capability must be a multibase base64url string (leading "u").');
|
|
33
47
|
}
|
|
34
|
-
const bytes =
|
|
48
|
+
const bytes = base64urlnopad.decode(encoded.slice(1));
|
|
35
49
|
return JSON.parse(new TextDecoder().decode(bytes));
|
|
36
50
|
}
|
|
37
51
|
//# sourceMappingURL=encoding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/zcap/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/zcap/encoding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG5C;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAiB;IAChD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAClE,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AAC3C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAU,CAAA;AAC7D,CAAC"}
|
package/dist/zcap/resolve.d.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import type { IZcap } from '@interop/data-integrity-core/zcap';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* an existing file is parsed as capability JSON
|
|
6
|
-
*
|
|
3
|
+
* Reads a capability given directly rather than by stored reference: a value
|
|
4
|
+
* that `isEncodedCapability` recognizes is decoded as a multibase capability
|
|
5
|
+
* string, and a path to an existing file is parsed as capability JSON. Returns
|
|
6
|
+
* undefined when the value is neither.
|
|
7
|
+
*
|
|
8
|
+
* @param options {object}
|
|
9
|
+
* @param options.ref {string}
|
|
10
|
+
* @returns {Promise<IZcap | undefined>}
|
|
11
|
+
*/
|
|
12
|
+
export declare function readCapabilityInput({ ref }: {
|
|
13
|
+
ref: string;
|
|
14
|
+
}): Promise<IZcap | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves a `--capability` reference to a capability object. An encoded
|
|
17
|
+
* capability string or a capability JSON file is read by
|
|
18
|
+
* `readCapabilityInput`; anything else is looked up in the local zcap store by
|
|
19
|
+
* capability id or metadata handle.
|
|
7
20
|
*
|
|
8
21
|
* @param options {object}
|
|
9
22
|
* @param options.ref {string}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/zcap/resolve.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAmB9D;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/zcap/resolve.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAA;AAmB9D;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,EACxC,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CAgB7B;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,GAAG,EACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,KAAK,CAAC,CAajB"}
|
package/dist/zcap/resolve.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { access, readFile } from 'node:fs/promises';
|
|
8
8
|
import { resolveZcapRef } from '../meta.js';
|
|
9
|
-
import { decodeCapability } from './encoding.js';
|
|
9
|
+
import { decodeCapability, isEncodedCapability } from './encoding.js';
|
|
10
10
|
/**
|
|
11
11
|
* Returns true when the path exists on disk.
|
|
12
12
|
*
|
|
@@ -23,17 +23,17 @@ async function fileExists(filePath) {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* an existing file is parsed as capability JSON
|
|
29
|
-
*
|
|
26
|
+
* Reads a capability given directly rather than by stored reference: a value
|
|
27
|
+
* that `isEncodedCapability` recognizes is decoded as a multibase capability
|
|
28
|
+
* string, and a path to an existing file is parsed as capability JSON. Returns
|
|
29
|
+
* undefined when the value is neither.
|
|
30
30
|
*
|
|
31
31
|
* @param options {object}
|
|
32
32
|
* @param options.ref {string}
|
|
33
|
-
* @returns {Promise<IZcap>}
|
|
33
|
+
* @returns {Promise<IZcap | undefined>}
|
|
34
34
|
*/
|
|
35
|
-
export async function
|
|
36
|
-
if (ref
|
|
35
|
+
export async function readCapabilityInput({ ref }) {
|
|
36
|
+
if (isEncodedCapability(ref)) {
|
|
37
37
|
return decodeCapability(ref);
|
|
38
38
|
}
|
|
39
39
|
if (await fileExists(ref)) {
|
|
@@ -45,6 +45,23 @@ export async function resolveCapabilityInput({ ref }) {
|
|
|
45
45
|
`${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolves a `--capability` reference to a capability object. An encoded
|
|
52
|
+
* capability string or a capability JSON file is read by
|
|
53
|
+
* `readCapabilityInput`; anything else is looked up in the local zcap store by
|
|
54
|
+
* capability id or metadata handle.
|
|
55
|
+
*
|
|
56
|
+
* @param options {object}
|
|
57
|
+
* @param options.ref {string}
|
|
58
|
+
* @returns {Promise<IZcap>}
|
|
59
|
+
*/
|
|
60
|
+
export async function resolveCapabilityInput({ ref }) {
|
|
61
|
+
const direct = await readCapabilityInput({ ref });
|
|
62
|
+
if (direct) {
|
|
63
|
+
return direct;
|
|
64
|
+
}
|
|
48
65
|
const stored = await resolveZcapRef({ ref });
|
|
49
66
|
if (!stored) {
|
|
50
67
|
throw new Error(`No capability found for "${ref}" (not an encoded string, a file, ` +
|
package/dist/zcap/resolve.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/zcap/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/zcap/resolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAErE;;;;;GAKG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EACxC,GAAG,EAGJ;IACC,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAU,CAAA;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,qCAAqC;gBACzC,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EACvD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EAGJ;IACC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACjD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,4BAA4B,GAAG,oCAAoC;YACjE,8BAA8B,CACjC,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAa,CAAA;AAC7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interop/did-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "DID CLI tool for DIDs, Verifiable Credentials, key pairs, and zcaps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
"@interop/security-document-loader": "^10.1.2",
|
|
43
43
|
"@interop/vc": "^11.0.9",
|
|
44
44
|
"@interop/verifier-core": "^3.5.8",
|
|
45
|
-
"@interop/wallet-core": "^0.
|
|
45
|
+
"@interop/wallet-core": "^0.78.0",
|
|
46
46
|
"@interop/wallet-request": "^0.3.1",
|
|
47
|
-
"@interop/was-client": "^0.
|
|
47
|
+
"@interop/was-client": "^0.64.0",
|
|
48
48
|
"@interop/x25519-key-agreement-key": "^5.4.0",
|
|
49
|
-
"@interop/zcap": "^11.
|
|
49
|
+
"@interop/zcap": "^11.3.0",
|
|
50
50
|
"@scure/base": "^2.2.0",
|
|
51
51
|
"commander": "^15.0.0"
|
|
52
52
|
},
|