@verana-labs/vs-agent-sdk 2.0.0-dev.73 → 2.0.0-dev.74
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/build/types.d.ts +7 -0
- package/build/types.js.map +1 -1
- package/build/utils/boundedFetch.d.ts +13 -0
- package/build/utils/boundedFetch.js +47 -0
- package/build/utils/boundedFetch.js.map +1 -0
- package/build/utils/ecsClaims.d.ts +0 -1
- package/build/utils/ecsClaims.js +3 -8
- package/build/utils/ecsClaims.js.map +1 -1
- package/build/utils/index.d.ts +1 -0
- package/build/utils/index.js +1 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/setupSelfTr.d.ts +1 -7
- package/build/utils/setupSelfTr.js +3 -10
- package/build/utils/setupSelfTr.js.map +1 -1
- package/build/utils/typeMetadata.d.ts +24 -0
- package/build/utils/typeMetadata.js +55 -0
- package/build/utils/typeMetadata.js.map +1 -1
- package/build/utils/vtjscResolver.d.ts +7 -2
- package/build/utils/vtjscResolver.js.map +1 -1
- package/package.json +3 -3
package/build/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BaseAgentModules, VsAgent } from './agent/VsAgent';
|
|
2
|
+
import type { IndexerHandlerRegistry } from './blockchain/handlers/IndexerHandlerRegistry';
|
|
2
3
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
4
|
import { BaseLogger } from '@credo-ts/core';
|
|
4
5
|
export type Plugin = {
|
|
@@ -17,6 +18,12 @@ export interface VsAgentNestPlugin {
|
|
|
17
18
|
didcommModules?: DidcommModule[];
|
|
18
19
|
imports?: any[];
|
|
19
20
|
registerEvents?: (agent: VsAgent<BaseAgentModules>, logger: BaseLogger) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Wraps or adds indexer event handlers. The agent calls this after it built the default registry
|
|
23
|
+
* and after `registerEvents`, so the original handler of a msg is already there to preserve, and
|
|
24
|
+
* a plugin driven by indexer notifications cannot be wired from `registerEvents`.
|
|
25
|
+
*/
|
|
26
|
+
registerIndexerHandlers?: (registry: IndexerHandlerRegistry) => void;
|
|
20
27
|
}
|
|
21
28
|
export declare const ISSUER_PARTICIPANT_TYPE = 1;
|
|
22
29
|
export declare const VERIFIER_PARTICIPANT_TYPE = 2;
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAmCa,QAAA,uBAAuB,GAAG,CAAC,CAAA;AAC3B,QAAA,yBAAyB,GAAG,CAAC,CAAA;AAC7B,QAAA,+BAA+B,GAAG,CAAC,CAAA;AACnC,QAAA,iCAAiC,GAAG,CAAC,CAAA;AACrC,QAAA,uBAAuB,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The `sha384-` subresource integrity metadata of the given bytes. */
|
|
2
|
+
export declare function digestOfBytes(content: string | Uint8Array): string;
|
|
3
|
+
/**
|
|
4
|
+
* Reads the bytes a URL serves under the network boundary the spec puts on step 3 of the trust
|
|
5
|
+
* decision: `https` only, no redirect, and an answer within five seconds. The address ban of that
|
|
6
|
+
* boundary is not enforced yet (#754).
|
|
7
|
+
*/
|
|
8
|
+
export declare function fetchBoundedBytes(url: string, timeoutMs?: number): Promise<Uint8Array>;
|
|
9
|
+
/**
|
|
10
|
+
* The `sha384-` integrity metadata of the bytes a URL serves, read with {@link fetchBoundedBytes}.
|
|
11
|
+
* The digest covers the bytes on the wire, never a re-encoding of the decoded document.
|
|
12
|
+
*/
|
|
13
|
+
export declare function digestOfBoundedUri(url: string, timeoutMs?: number): Promise<string>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.digestOfBytes = digestOfBytes;
|
|
4
|
+
exports.fetchBoundedBytes = fetchBoundedBytes;
|
|
5
|
+
exports.digestOfBoundedUri = digestOfBoundedUri;
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const BOUNDED_TIMEOUT_MS = 5000;
|
|
8
|
+
/** The `sha384-` subresource integrity metadata of the given bytes. */
|
|
9
|
+
function digestOfBytes(content) {
|
|
10
|
+
return `sha384-${(0, crypto_1.createHash)('sha384').update(content).digest('base64')}`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Reads the bytes a URL serves under the network boundary the spec puts on step 3 of the trust
|
|
14
|
+
* decision: `https` only, no redirect, and an answer within five seconds. The address ban of that
|
|
15
|
+
* boundary is not enforced yet (#754).
|
|
16
|
+
*/
|
|
17
|
+
async function fetchBoundedBytes(url, timeoutMs = BOUNDED_TIMEOUT_MS) {
|
|
18
|
+
let target;
|
|
19
|
+
try {
|
|
20
|
+
target = new URL(url);
|
|
21
|
+
}
|
|
22
|
+
catch (_a) {
|
|
23
|
+
throw new Error(`${url} is not an absolute URL`);
|
|
24
|
+
}
|
|
25
|
+
if (target.protocol !== 'https:') {
|
|
26
|
+
throw new Error(`${url} does not use https, which this boundary requires`);
|
|
27
|
+
}
|
|
28
|
+
const response = await fetch(target.href, {
|
|
29
|
+
redirect: 'manual',
|
|
30
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
31
|
+
});
|
|
32
|
+
if (response.type === 'opaqueredirect' || (response.status >= 300 && response.status < 400)) {
|
|
33
|
+
throw new Error(`${url} answered with a redirect, which this boundary does not follow`);
|
|
34
|
+
}
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`${url} answered ${response.status} ${response.statusText}`);
|
|
37
|
+
}
|
|
38
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The `sha384-` integrity metadata of the bytes a URL serves, read with {@link fetchBoundedBytes}.
|
|
42
|
+
* The digest covers the bytes on the wire, never a re-encoding of the decoded document.
|
|
43
|
+
*/
|
|
44
|
+
async function digestOfBoundedUri(url, timeoutMs) {
|
|
45
|
+
return digestOfBytes(await fetchBoundedBytes(url, timeoutMs));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=boundedFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boundedFetch.js","sourceRoot":"","sources":["../../src/utils/boundedFetch.ts"],"names":[],"mappings":";;AAKA,sCAEC;AAOD,8CA0BC;AAMD,gDAEC;AAhDD,mCAAmC;AAEnC,MAAM,kBAAkB,GAAG,IAAK,CAAA;AAEhC,uEAAuE;AACvE,SAAgB,aAAa,CAAC,OAA4B;IACxD,OAAO,UAAU,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;AAC1E,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,YAAoB,kBAAkB;IAEtC,IAAI,MAAW,CAAA;IACf,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mDAAmD,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;QACxC,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KACvC,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,gEAAgE,CAAC,CAAA;IACzF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,aAAa,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;AACrD,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,GAAW,EAAE,SAAkB;IACtE,OAAO,aAAa,CAAC,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAA;AAC/D,CAAC"}
|
|
@@ -37,7 +37,6 @@ export declare const ECS_CLAIMS_VARIABLES: {
|
|
|
37
37
|
};
|
|
38
38
|
};
|
|
39
39
|
export declare function readEcsClaimsFromEnv(): Required<Pick<EcsClaims, 'org' | 'persona' | 'service'>>;
|
|
40
|
-
export declare function digestOf(content: string): string;
|
|
41
40
|
export declare function digestOfUri(uri: string, variable: string, logger?: Logger): Promise<string>;
|
|
42
41
|
/**
|
|
43
42
|
* Compose the claims of one ECS credential from the configured variables, deriving `id` and
|
package/build/utils/ecsClaims.js
CHANGED
|
@@ -5,11 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ECS_CLAIMS_VARIABLES = void 0;
|
|
7
7
|
exports.readEcsClaimsFromEnv = readEcsClaimsFromEnv;
|
|
8
|
-
exports.digestOf = digestOf;
|
|
9
8
|
exports.digestOfUri = digestOfUri;
|
|
10
9
|
exports.composeEcsClaims = composeEcsClaims;
|
|
11
|
-
const crypto_1 = require("crypto");
|
|
12
10
|
const axios_1 = __importDefault(require("axios"));
|
|
11
|
+
const boundedFetch_1 = require("./boundedFetch");
|
|
13
12
|
// the URI claim each derived digest claim is computed from
|
|
14
13
|
const DIGEST_OF = {
|
|
15
14
|
logoDigestSri: 'logoUri',
|
|
@@ -61,16 +60,12 @@ const DIGEST_TIMEOUT_MS = 5000;
|
|
|
61
60
|
const DIGEST_ATTEMPTS = 4;
|
|
62
61
|
const DIGEST_BASE_DELAY_MS = 500;
|
|
63
62
|
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
64
|
-
// Generate a SHA-384 digest for the given content
|
|
65
|
-
function digestOf(content) {
|
|
66
|
-
return `sha384-${(0, crypto_1.createHash)('sha384').update(content).digest('base64')}`;
|
|
67
|
-
}
|
|
68
63
|
async function digestOfUri(uri, variable, logger) {
|
|
69
64
|
let lastError;
|
|
70
65
|
for (let attempt = 1; attempt <= DIGEST_ATTEMPTS; attempt++) {
|
|
71
66
|
try {
|
|
72
67
|
const response = await axios_1.default.get(uri, { responseType: 'arraybuffer', timeout: DIGEST_TIMEOUT_MS });
|
|
73
|
-
return
|
|
68
|
+
return (0, boundedFetch_1.digestOfBytes)(Buffer.from(response.data));
|
|
74
69
|
}
|
|
75
70
|
catch (error) {
|
|
76
71
|
lastError = error;
|
|
@@ -113,7 +108,7 @@ async function composeEcsClaims(claims, schemaKey, logger) {
|
|
|
113
108
|
const group = GROUP_OF[schemaKey];
|
|
114
109
|
const variable = (group && exports.ECS_CLAIMS_VARIABLES[group][uriClaim]) || uriClaim;
|
|
115
110
|
const local = (_a = claims.localResources) === null || _a === void 0 ? void 0 : _a[uri];
|
|
116
|
-
composed[digestClaim] = local ?
|
|
111
|
+
composed[digestClaim] = local ? (0, boundedFetch_1.digestOfBytes)(local) : await digestOfUri(uri, variable, logger);
|
|
117
112
|
}
|
|
118
113
|
return composed;
|
|
119
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecsClaims.js","sourceRoot":"","sources":["../../src/utils/ecsClaims.ts"],"names":[],"mappings":";;;;;;AAyDA,oDAUC;
|
|
1
|
+
{"version":3,"file":"ecsClaims.js","sourceRoot":"","sources":["../../src/utils/ecsClaims.ts"],"names":[],"mappings":"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"}
|
package/build/utils/index.d.ts
CHANGED
package/build/utils/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./agent"), exports);
|
|
18
|
+
__exportStar(require("./boundedFetch"), exports);
|
|
18
19
|
__exportStar(require("./data"), exports);
|
|
19
20
|
__exportStar(require("./ecsClaims"), exports);
|
|
20
21
|
__exportStar(require("./ecsService"), exports);
|
package/build/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,yCAAsB;AACtB,8CAA2B;AAC3B,+CAA4B;AAC5B,gDAA6B;AAC7B,yDAAsC;AACtC,iDAA8B;AAC9B,yCAAsB;AACtB,0CAAuB;AACvB,kDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,iDAA8B;AAC9B,yCAAsB;AACtB,8CAA2B;AAC3B,+CAA4B;AAC5B,gDAA6B;AAC7B,yDAAsC;AACtC,iDAA8B;AAC9B,yCAAsB;AACtB,0CAAuB;AACvB,kDAA+B"}
|
|
@@ -73,11 +73,5 @@ export declare function validateSchema(ecsSchema: AnySchemaObject, credentialSub
|
|
|
73
73
|
export declare function addDigestSRI<T extends object>(id?: string, data?: T, ecsSchemas?: Record<string, string>): Promise<T & {
|
|
74
74
|
digestSRI: string;
|
|
75
75
|
}>;
|
|
76
|
-
|
|
77
|
-
* Generates a SRI digest string for the given content using the specified algorithm.
|
|
78
|
-
* @param content - The content to hash.
|
|
79
|
-
* @param algorithm - The hash algorithm to use (default: sha256).
|
|
80
|
-
* @returns The SRI digest string.
|
|
81
|
-
*/
|
|
82
|
-
export declare function generateDigestSRI(content: string, algorithm?: string): string;
|
|
76
|
+
export declare function generateDigestSRI(content: string): string;
|
|
83
77
|
export declare function getVerificationMethodId(logger: Logger, didRecord: DidRecord): string;
|
|
@@ -19,7 +19,7 @@ const credo_ts_didcomm_vt_flow_1 = require("@verana-labs/credo-ts-didcomm-vt-flo
|
|
|
19
19
|
const vs_agent_model_1 = require("@verana-labs/vs-agent-model");
|
|
20
20
|
const _2020_1 = __importDefault(require("ajv/dist/2020"));
|
|
21
21
|
const ajv_formats_1 = __importDefault(require("ajv-formats"));
|
|
22
|
-
const
|
|
22
|
+
const boundedFetch_1 = require("./boundedFetch");
|
|
23
23
|
const ecsClaims_1 = require("./ecsClaims");
|
|
24
24
|
const vcdm2_1 = require("./vcdm2");
|
|
25
25
|
const TEN_YEARS_MS = 10 * 365 * 24 * 60 * 60 * 1000;
|
|
@@ -200,15 +200,8 @@ function assertValidSchema(schemaContent, id) {
|
|
|
200
200
|
throw new Error(`Schema from ${id} is not valid: ${message}`);
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
* @param content - The content to hash.
|
|
206
|
-
* @param algorithm - The hash algorithm to use (default: sha256).
|
|
207
|
-
* @returns The SRI digest string.
|
|
208
|
-
*/
|
|
209
|
-
function generateDigestSRI(content, algorithm = 'sha384') {
|
|
210
|
-
const hash = (0, crypto_1.createHash)(algorithm).update(content).digest('base64');
|
|
211
|
-
return `${algorithm}-${hash}`;
|
|
203
|
+
function generateDigestSRI(content) {
|
|
204
|
+
return (0, boundedFetch_1.digestOfBytes)(content);
|
|
212
205
|
}
|
|
213
206
|
function getVerificationMethodId(logger, didRecord) {
|
|
214
207
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupSelfTr.js","sourceRoot":"","sources":["../../src/utils/setupSelfTr.ts"],"names":[],"mappings":";;;;;;AAwEA,4CAKC;AAQD,kEAKC;AA2BD,8BAwBC;AAGD,gDAEC;AAaD,8BAkBC;AAOD,4CAOC;AAMD,wCAKC;AAuBD,oCAuBC;
|
|
1
|
+
{"version":3,"file":"setupSelfTr.js","sourceRoot":"","sources":["../../src/utils/setupSelfTr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
/** The URL of the SD-JWT VC Type Metadata of a `CredentialSchema`, per [VSA-PUB-VT-5]. */
|
|
2
2
|
export declare function typeMetadataUrl(publicApiBaseUrl: string, credentialSchemaId: string | number): string;
|
|
3
|
+
/**
|
|
4
|
+
* The https base URL a `did:web` or `did:webvh` maps to, per the DID-to-HTTPS transformation of both
|
|
5
|
+
* method specs, dropping the SCID of a `did:webvh`. It is the reverse of
|
|
6
|
+
* {@link derivePublicDidLocation}, and it gives {@link typeMetadataUrl} the base of an Ecosystem
|
|
7
|
+
* whose DID is all the VPR holds. Returns undefined for any other method.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getDidWebHttpsBaseUrl(did: string): string | undefined;
|
|
10
|
+
export interface PublicDidLocation {
|
|
11
|
+
host: string;
|
|
12
|
+
port?: string;
|
|
13
|
+
pathSegments: string[];
|
|
14
|
+
domain: string;
|
|
15
|
+
location: string;
|
|
16
|
+
path?: string;
|
|
17
|
+
hasPath: boolean;
|
|
18
|
+
normalizedBaseUrl: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Derives the did:web/did:webvh location from PUBLIC_API_BASE_URL, per the DID-to-HTTPS
|
|
22
|
+
* transformation of both method specs: the port is %3A-encoded and path segments are
|
|
23
|
+
* colon-separated in the DID (e.g. https://example.com:3000/dids/issuer ->
|
|
24
|
+
* example.com%3A3000:dids:issuer).
|
|
25
|
+
*/
|
|
26
|
+
export declare function derivePublicDidLocation(baseUrl: string): PublicDidLocation;
|
|
3
27
|
export interface TypeMetadataInput {
|
|
4
28
|
/** The URL the document is served at; the document carries it as `vct`. */
|
|
5
29
|
vct: string;
|
|
@@ -1,12 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.typeMetadataUrl = typeMetadataUrl;
|
|
4
|
+
exports.getDidWebHttpsBaseUrl = getDidWebHttpsBaseUrl;
|
|
5
|
+
exports.derivePublicDidLocation = derivePublicDidLocation;
|
|
4
6
|
exports.composeTypeMetadata = composeTypeMetadata;
|
|
7
|
+
const core_1 = require("@credo-ts/core");
|
|
8
|
+
const legacyDidWeb_1 = require("../did/legacyDidWeb");
|
|
5
9
|
const util_1 = require("./util");
|
|
6
10
|
/** The URL of the SD-JWT VC Type Metadata of a `CredentialSchema`, per [VSA-PUB-VT-5]. */
|
|
7
11
|
function typeMetadataUrl(publicApiBaseUrl, credentialSchemaId) {
|
|
8
12
|
return `${publicApiBaseUrl}/vt/vct/${credentialSchemaId}`;
|
|
9
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The https base URL a `did:web` or `did:webvh` maps to, per the DID-to-HTTPS transformation of both
|
|
16
|
+
* method specs, dropping the SCID of a `did:webvh`. It is the reverse of
|
|
17
|
+
* {@link derivePublicDidLocation}, and it gives {@link typeMetadataUrl} the base of an Ecosystem
|
|
18
|
+
* whose DID is all the VPR holds. Returns undefined for any other method.
|
|
19
|
+
*/
|
|
20
|
+
function getDidWebHttpsBaseUrl(did) {
|
|
21
|
+
const didWeb = (0, legacyDidWeb_1.getLegacyDidWeb)(did);
|
|
22
|
+
if (!didWeb)
|
|
23
|
+
return undefined;
|
|
24
|
+
const [authority, ...path] = (0, core_1.parseDid)(didWeb).id.split(':').map(decodeURIComponent);
|
|
25
|
+
return `https://${[authority, ...path].join('/')}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Derives the did:web/did:webvh location from PUBLIC_API_BASE_URL, per the DID-to-HTTPS
|
|
29
|
+
* transformation of both method specs: the port is %3A-encoded and path segments are
|
|
30
|
+
* colon-separated in the DID (e.g. https://example.com:3000/dids/issuer ->
|
|
31
|
+
* example.com%3A3000:dids:issuer).
|
|
32
|
+
*/
|
|
33
|
+
function derivePublicDidLocation(baseUrl) {
|
|
34
|
+
let url;
|
|
35
|
+
try {
|
|
36
|
+
url = new URL(baseUrl);
|
|
37
|
+
}
|
|
38
|
+
catch (_a) {
|
|
39
|
+
throw new Error(`PUBLIC_API_BASE_URL is not a valid URL (got '${baseUrl}')`);
|
|
40
|
+
}
|
|
41
|
+
if (!['http:', 'https:'].includes(url.protocol)) {
|
|
42
|
+
throw new Error(`PUBLIC_API_BASE_URL must use http or https (got '${url.protocol.slice(0, -1)}')`);
|
|
43
|
+
}
|
|
44
|
+
if (url.username || url.password) {
|
|
45
|
+
throw new Error('PUBLIC_API_BASE_URL must not contain userinfo');
|
|
46
|
+
}
|
|
47
|
+
if (url.search || url.hash) {
|
|
48
|
+
throw new Error('PUBLIC_API_BASE_URL must not contain a query or fragment');
|
|
49
|
+
}
|
|
50
|
+
const host = url.hostname;
|
|
51
|
+
const port = url.port || undefined;
|
|
52
|
+
const pathSegments = url.pathname.split('/').filter(segment => segment.length > 0);
|
|
53
|
+
const domain = port ? `${host}%3A${port}` : host;
|
|
54
|
+
return {
|
|
55
|
+
host,
|
|
56
|
+
port,
|
|
57
|
+
pathSegments,
|
|
58
|
+
domain,
|
|
59
|
+
location: [domain, ...pathSegments].join(':'),
|
|
60
|
+
path: pathSegments.length ? pathSegments.join('/') : undefined,
|
|
61
|
+
hasPath: pathSegments.length > 0,
|
|
62
|
+
normalizedBaseUrl: `${url.origin}${pathSegments.length ? `/${pathSegments.join('/')}` : ''}`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
10
65
|
/**
|
|
11
66
|
* Composes the SD-JWT VC Type Metadata of a `CredentialSchema`, serialized, per [VSA-PUB-VT-5] and
|
|
12
67
|
* [VT-CRED-SDJWT-3]. The result is what the agent serves at `vct`, byte for byte: every issuer the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeMetadata.js","sourceRoot":"","sources":["../../src/utils/typeMetadata.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"typeMetadata.js","sourceRoot":"","sources":["../../src/utils/typeMetadata.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAQD,sDAKC;AAmBD,0DAgCC;AAmBD,kDAWC;AAvGD,yCAAyC;AAEzC,sDAAqD;AAErD,iCAAuC;AAEvC,0FAA0F;AAC1F,SAAgB,eAAe,CAAC,gBAAwB,EAAE,kBAAmC;IAC3F,OAAO,GAAG,gBAAgB,WAAW,kBAAkB,EAAE,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,MAAM,MAAM,GAAG,IAAA,8BAAe,EAAC,GAAG,CAAC,CAAA;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IAC7B,MAAM,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,GAAG,IAAA,eAAQ,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IACnF,OAAO,WAAW,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACpD,CAAC;AAaD;;;;;GAKG;AACH,SAAgB,uBAAuB,CAAC,OAAe;IACrD,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAAC,WAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gDAAgD,OAAO,IAAI,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACpG,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAA;IACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAA;IAClC,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAEhD,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,MAAM;QACN,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9D,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC;QAChC,iBAAiB,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;KAC7F,CAAA;AACH,CAAC;AAaD;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAwB;IAC1D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAE1E,OAAO,IAAI,CAAC,SAAS,+BACnB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,IAAI,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,mBAAmB,IACrC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,+FAA+F;QAC/F,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAC/D,6BAA6B,EAAE,KAAK,CAAC,sBAAsB,IAC3D,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { VsAgent } from '../agent/VsAgent';
|
|
2
|
-
import type {
|
|
2
|
+
import type { CredentialSchemaDto, EcosystemDto } from '../blockchain/types';
|
|
3
|
+
/** The indexer reads that resolving a VTJSC needs, so a caller can pass reads it already made. */
|
|
4
|
+
export interface IndexerSchemaReader {
|
|
5
|
+
getCredentialSchema(id: string | number): Promise<CredentialSchemaDto>;
|
|
6
|
+
getEcosystem(id: string | number): Promise<EcosystemDto | undefined>;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Resolves the VTJSC that a credential of a given schema must name as its `credentialSchema`.
|
|
5
10
|
*
|
|
@@ -15,4 +20,4 @@ import type { VeranaIndexerService } from '../blockchain/VeranaIndexerService';
|
|
|
15
20
|
* Returns the id of the JsonSchemaCredential, which is the value a credential carries in
|
|
16
21
|
* `credentialSchema.id`.
|
|
17
22
|
*/
|
|
18
|
-
export declare function resolveJsonSchemaCredentialId(agent: VsAgent, indexer:
|
|
23
|
+
export declare function resolveJsonSchemaCredentialId(agent: VsAgent, indexer: IndexerSchemaReader, credentialSchemaId: string | number, chainId: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vtjscResolver.js","sourceRoot":"","sources":["../../src/utils/vtjscResolver.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"vtjscResolver.js","sourceRoot":"","sources":["../../src/utils/vtjscResolver.ts"],"names":[],"mappings":";;AAkCA,sEAwCC;AAvED,iEAA0D;AAC1D,iCAAkC;AAElC,MAAM,sBAAsB,GAAG,KAAM,CAAA;AAarC;;;;;;;;;;;;;;GAcG;AACI,KAAK,UAAU,6BAA6B,CACjD,KAAc,EACd,OAA4B,EAC5B,kBAAmC,EACnC,OAAe;;IAEf,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,cAAc,OAAO,OAAO,QAAQ,EAAE,CAAA;IAExD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,SAAS;YACvB,CAAC,CAAC,MAAA,MAAA,MAAA,MAAA,IAAA,wCAAiB,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,0CAAE,IAAI,0CAAE,oBAAoB,0CAAG,CAAC,CAAC,0CAAE,EAAE;YAC7F,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAA,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,YAAY,cAAc,QAAQ,aAAa,CAAC,CAAA;IACtF,CAAC;IAED,oEAAoE;IACpE,MAAM,SAAS,GAAG,GAAG,SAAS,CAAC,GAAG,gBAAgB,QAAQ,WAAW,CAAA;IACrE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,0CAAE,eAAe,CAAA;IACjG,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,CAAC,GAAG,kCAAkC,QAAQ,gBAAgB,SAAS,GAAG,CACjG,CAAA;IACH,CAAC;IAED,6FAA6F;IAC7F,MAAM,YAAY,GAAG,MAAM,IAAA,gBAAS,EAAoB,QAAQ,EAAE,sBAAsB,CAAC,CAAA;IACzF,MAAM,sBAAsB,GAAG,MAAA,MAAA,YAAY,CAAC,oBAAoB,0CAAG,CAAC,CAAC,0CAAE,EAAE,CAAA;IACzE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,wBAAwB,CAAC,CAAA;IAChF,CAAC;IACD,OAAO,sBAAsB,CAAA;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"default": "./build/index.js"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
-
"version": "2.0.0-dev.
|
|
12
|
+
"version": "2.0.0-dev.74",
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
15
|
"url": "https://github.com/verana-labs/vs-agent"
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"didwebvh-ts": "^2.8.0",
|
|
51
51
|
"express": "^4.18.1",
|
|
52
52
|
"tsyringe": "4.8.0",
|
|
53
|
-
"@verana-labs/
|
|
54
|
-
"@verana-labs/
|
|
53
|
+
"@verana-labs/credo-ts-didcomm-vt-flow": "2.0.0-dev.74",
|
|
54
|
+
"@verana-labs/vs-agent-model": "2.0.0-dev.74"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@credo-ts/core": "0.7.1-pr-2704-20260909134930",
|