@sphereon/ssi-sdk-ext.did-utils 0.22.1-unstable.8 → 0.23.1-next.3

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.
@@ -3,20 +3,41 @@ import { DIDDocument, DIDDocumentSection, DIDResolutionResult, IAgentContext, ID
3
3
  import { _ExtendedIKey, _ExtendedVerificationMethod, _NormalizedVerificationMethod } from '@veramo/utils';
4
4
  import { DIDResolutionOptions, Resolvable } from 'did-resolver';
5
5
  import { CreateIdentifierOpts, CreateOrGetIdentifierOpts, GetOrCreateResult, IdentifierProviderOpts, IDIDOptions, IIdentifierOpts } from './types';
6
- export declare const getAuthenticationKey: (identifier: IIdentifier, context: IAgentContext<IResolver & IDIDManager>, offlineWhenNoDIDRegistered?: boolean, noVerificationMethodFallback?: boolean) => Promise<_ExtendedIKey>;
6
+ export declare const getAuthenticationKey: ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, }: {
7
+ identifier: IIdentifier;
8
+ keyType?: TKeyType;
9
+ offlineWhenNoDIDRegistered?: boolean;
10
+ noVerificationMethodFallback?: boolean;
11
+ controllerKey?: boolean;
12
+ }, context: IAgentContext<IResolver & IDIDManager>) => Promise<_ExtendedIKey>;
13
+ export declare const getFirstKeyWithRelation: ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, vmRelationship, }: {
14
+ identifier: IIdentifier;
15
+ keyType?: TKeyType;
16
+ offlineWhenNoDIDRegistered?: boolean;
17
+ noVerificationMethodFallback?: boolean;
18
+ controllerKey?: boolean;
19
+ vmRelationship: DIDDocumentSection;
20
+ }, context: IAgentContext<IResolver & IDIDManager>) => Promise<_ExtendedIKey>;
7
21
  export declare const getOrCreatePrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts) => Promise<GetOrCreateResult<IIdentifier>>;
8
22
  export declare const getPrimaryIdentifier: (context: IAgentContext<IDIDManager>, opts?: IdentifierProviderOpts) => Promise<IIdentifier | undefined>;
9
23
  export declare const createIdentifier: (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts) => Promise<IIdentifier>;
10
- export declare const getFirstKeyWithRelation: (identifier: IIdentifier, context: IAgentContext<IResolver & IDIDManager>, vmRelationship?: DIDDocumentSection, errorOnNotFound?: boolean, didDocument?: DIDDocument) => Promise<_ExtendedIKey | undefined>;
24
+ export declare const getFirstKeyWithRelationFromDIDDoc: ({ identifier, vmRelationship, keyType, errorOnNotFound, didDocument, controllerKey, }: {
25
+ identifier: IIdentifier;
26
+ controllerKey?: boolean;
27
+ vmRelationship?: DIDDocumentSection;
28
+ keyType?: TKeyType;
29
+ errorOnNotFound?: boolean;
30
+ didDocument?: DIDDocument;
31
+ }, context: IAgentContext<IResolver & IDIDManager>) => Promise<_ExtendedIKey | undefined>;
11
32
  export declare const getEthereumAddressFromKey: ({ key }: {
12
33
  key: IKey;
13
34
  }) => any;
14
35
  export declare const getControllerKey: ({ identifier }: {
15
36
  identifier: IIdentifier;
16
37
  }) => IKey;
17
- export declare const getKeys: ({ jwkThumbprint, kms, identifier, kid, keyType, controllerKey, }: {
38
+ export declare const getKeys: ({ jwkThumbprint, kms, identifier, kmsKeyRef, keyType, controllerKey, }: {
18
39
  identifier: IIdentifier;
19
- kid?: string;
40
+ kmsKeyRef?: string;
20
41
  keyType?: TKeyType;
21
42
  kms?: string;
22
43
  jwkThumbprint?: string;
@@ -62,6 +83,7 @@ export declare function extractPublicKeyHex(pk: _ExtendedVerificationMethod, con
62
83
  * @param section - the section of the DID document to be mapped (see
63
84
  * {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships}), but can also be
64
85
  * `verificationMethod` to map all the keys.
86
+ * @param didDocument
65
87
  * @param context - the veramo agent context, which must contain a {@link @veramo/core#IResolver | IResolver}
66
88
  * implementation that can resolve the DID document of the identifier.
67
89
  *
@@ -70,19 +92,30 @@ export declare function extractPublicKeyHex(pk: _ExtendedVerificationMethod, con
70
92
  *
71
93
  * @beta This API may change without a BREAKING CHANGE notice.
72
94
  */
73
- export declare function mapIdentifierKeysToDocWithJwkSupport(identifier: IIdentifier, section: DIDDocumentSection | undefined, context: IAgentContext<IResolver & IDIDManager>, didDocument?: DIDDocument): Promise<_ExtendedIKey[]>;
95
+ export declare function mapIdentifierKeysToDocWithJwkSupport({ identifier, vmRelationship, didDocument, }: {
96
+ identifier: IIdentifier;
97
+ vmRelationship?: DIDDocumentSection;
98
+ didDocument?: DIDDocument;
99
+ }, context: IAgentContext<IResolver & IDIDManager>): Promise<_ExtendedIKey[]>;
74
100
  export declare function getAgentDIDMethods(context: IAgentContext<IDIDManager>): Promise<string[]>;
75
101
  export declare function getIdentifier(identifierOpts: IIdentifierOpts, context: IAgentContext<IDIDManager>): Promise<IIdentifier>;
76
102
  export declare function getDID(identifierOpts: IIdentifierOpts): string;
77
103
  export declare function toDID(identifier: string | IIdentifier | Partial<IIdentifier>): string;
78
104
  export declare function toDIDs(identifiers?: (string | IIdentifier | Partial<IIdentifier>)[]): string[];
79
- export declare function getKey(identifier: IIdentifier, verificationMethodSection: DIDDocumentSection | undefined, context: IAgentContext<IResolver & IDIDManager>, keyId?: string): Promise<IKey>;
105
+ export declare function getKey({ identifier, vmRelationship, kmsKeyRef, }: {
106
+ identifier: IIdentifier;
107
+ vmRelationship?: DIDDocumentSection;
108
+ kmsKeyRef?: string;
109
+ }, context: IAgentContext<IResolver & IDIDManager>): Promise<IKey>;
80
110
  /**
81
111
  * Get the real kid as used in JWTs. This is the kid in the VM or in the JWT, not the kid in the Veramo/Sphereon keystore. That was just a poorly chosen name
82
112
  * @param key
83
113
  * @param idOpts
84
114
  */
85
- export declare function determineKid(key: IKey, idOpts: IIdentifierOpts): string;
115
+ export declare function determineKid({ key, idOpts, }: {
116
+ key: IKey;
117
+ idOpts: IIdentifierOpts;
118
+ }, context: IAgentContext<IResolver & IDIDManager>): Promise<string>;
86
119
  export declare function getSupportedDIDMethods(didOpts: IDIDOptions, context: IAgentContext<IDIDManager>): Promise<string[]>;
87
120
  export declare function getAgentResolver(context: IAgentContext<IResolver & IDIDManager>, opts?: {
88
121
  localResolution?: boolean;
@@ -106,7 +139,7 @@ export declare class AgentDIDResolver implements Resolvable {
106
139
  *
107
140
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
108
141
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
109
- * when no DID Document is cached.
142
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
110
143
  *
111
144
  * @param identifier
112
145
  * @param opts
@@ -1 +1 @@
1
- {"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-functions.d.ts","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
47
47
  };
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
- exports.asDidWeb = exports.toDidResolutionResult = exports.toDidDocument = exports.AgentDIDResolver = exports.getAgentResolver = exports.getSupportedDIDMethods = exports.determineKid = exports.getKey = exports.toDIDs = exports.toDID = exports.getDID = exports.getIdentifier = exports.getAgentDIDMethods = exports.mapIdentifierKeysToDocWithJwkSupport = exports.extractPublicKeyHex = exports.isEvenHexString = exports.extractPublicKeyHexWithJwkSupport = exports.dereferenceDidKeysWithJwkSupport = exports.getKeys = exports.getControllerKey = exports.getEthereumAddressFromKey = exports.getFirstKeyWithRelation = exports.createIdentifier = exports.getPrimaryIdentifier = exports.getOrCreatePrimaryIdentifier = exports.getAuthenticationKey = void 0;
49
+ exports.asDidWeb = exports.toDidResolutionResult = exports.toDidDocument = exports.AgentDIDResolver = exports.getAgentResolver = exports.getSupportedDIDMethods = exports.determineKid = exports.getKey = exports.toDIDs = exports.toDID = exports.getDID = exports.getIdentifier = exports.getAgentDIDMethods = exports.mapIdentifierKeysToDocWithJwkSupport = exports.extractPublicKeyHex = exports.isEvenHexString = exports.extractPublicKeyHexWithJwkSupport = exports.dereferenceDidKeysWithJwkSupport = exports.getKeys = exports.getControllerKey = exports.getEthereumAddressFromKey = exports.getFirstKeyWithRelationFromDIDDoc = exports.createIdentifier = exports.getPrimaryIdentifier = exports.getOrCreatePrimaryIdentifier = exports.getFirstKeyWithRelation = exports.getAuthenticationKey = void 0;
50
50
  const transactions_1 = require("@ethersproject/transactions");
51
51
  const did_uni_client_1 = require("@sphereon/did-uni-client");
52
52
  const ssi_sdk_ext_key_utils_1 = require("@sphereon/ssi-sdk-ext.key-utils");
@@ -57,12 +57,37 @@ const utils_1 = require("@veramo/utils");
57
57
  const elliptic_1 = __importDefault(require("elliptic"));
58
58
  const u8a = __importStar(require("uint8arrays"));
59
59
  const types_1 = require("./types");
60
- const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, noVerificationMethodFallback) => __awaiter(void 0, void 0, void 0, function* () {
61
- var _a, _b;
60
+ const getAuthenticationKey = (_a, context_1) => __awaiter(void 0, [_a, context_1], void 0, function* ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, }, context) {
61
+ return yield (0, exports.getFirstKeyWithRelation)({
62
+ identifier,
63
+ offlineWhenNoDIDRegistered,
64
+ noVerificationMethodFallback,
65
+ keyType,
66
+ controllerKey,
67
+ vmRelationship: 'authentication',
68
+ }, context);
69
+ });
70
+ exports.getAuthenticationKey = getAuthenticationKey;
71
+ const getFirstKeyWithRelation = (_b, context_2) => __awaiter(void 0, [_b, context_2], void 0, function* ({ identifier, offlineWhenNoDIDRegistered, noVerificationMethodFallback, keyType, controllerKey, vmRelationship, }, context) {
72
+ var _c, _d;
62
73
  let key = undefined;
63
74
  try {
64
75
  key =
65
- (_a = (yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'authentication', false))) !== null && _a !== void 0 ? _a : (noVerificationMethodFallback ? undefined : yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'verificationMethod', false));
76
+ (_c = (yield (0, exports.getFirstKeyWithRelationFromDIDDoc)({
77
+ identifier,
78
+ vmRelationship,
79
+ errorOnNotFound: false,
80
+ keyType,
81
+ controllerKey,
82
+ }, context))) !== null && _c !== void 0 ? _c : (noVerificationMethodFallback
83
+ ? undefined
84
+ : yield (0, exports.getFirstKeyWithRelationFromDIDDoc)({
85
+ identifier,
86
+ vmRelationship: 'verificationMethod',
87
+ errorOnNotFound: false,
88
+ keyType,
89
+ controllerKey,
90
+ }, context));
66
91
  }
67
92
  catch (e) {
68
93
  if (e instanceof Error) {
@@ -77,10 +102,27 @@ const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, n
77
102
  if (!key && offlineWhenNoDIDRegistered) {
78
103
  const offlineDID = toDidDocument(identifier);
79
104
  key =
80
- (_b = (yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'authentication', false, offlineDID))) !== null && _b !== void 0 ? _b : (noVerificationMethodFallback ? undefined : yield (0, exports.getFirstKeyWithRelation)(identifier, context, 'verificationMethod', false, offlineDID));
105
+ (_d = (yield (0, exports.getFirstKeyWithRelationFromDIDDoc)({
106
+ identifier,
107
+ vmRelationship,
108
+ errorOnNotFound: false,
109
+ didDocument: offlineDID,
110
+ keyType,
111
+ controllerKey,
112
+ }, context))) !== null && _d !== void 0 ? _d : (noVerificationMethodFallback
113
+ ? undefined
114
+ : yield (0, exports.getFirstKeyWithRelationFromDIDDoc)({
115
+ identifier,
116
+ vmRelationship: 'verificationMethod',
117
+ errorOnNotFound: false,
118
+ didDocument: offlineDID,
119
+ keyType,
120
+ controllerKey,
121
+ }, context));
81
122
  if (!key) {
82
123
  key = identifier.keys
83
124
  .map((key) => key)
125
+ .filter((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId))
84
126
  .find((key) => { var _a, _b; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.type.includes('authentication')) || ((_b = key.meta.purposes) === null || _b === void 0 ? void 0 : _b.includes('authentication')); });
85
127
  }
86
128
  }
@@ -89,10 +131,10 @@ const getAuthenticationKey = (identifier, context, offlineWhenNoDIDRegistered, n
89
131
  }
90
132
  return key;
91
133
  });
92
- exports.getAuthenticationKey = getAuthenticationKey;
134
+ exports.getFirstKeyWithRelation = getFirstKeyWithRelation;
93
135
  const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
94
- var _c, _d;
95
- const primaryIdentifier = yield (0, exports.getPrimaryIdentifier)(context, (_c = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _c === void 0 ? void 0 : _c.options);
136
+ var _e, _f;
137
+ const primaryIdentifier = yield (0, exports.getPrimaryIdentifier)(context, Object.assign(Object.assign({}, (_e = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _e === void 0 ? void 0 : _e.options), ((opts === null || opts === void 0 ? void 0 : opts.method) && { method: opts.method })));
96
138
  if (primaryIdentifier !== undefined) {
97
139
  return {
98
140
  created: false,
@@ -100,7 +142,7 @@ const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0
100
142
  };
101
143
  }
102
144
  if ((opts === null || opts === void 0 ? void 0 : opts.method) === types_1.SupportedDidMethodEnum.DID_KEY) {
103
- const createOpts = (_d = opts === null || opts === void 0 ? void 0 : opts.createOpts) !== null && _d !== void 0 ? _d : {};
145
+ const createOpts = (_f = opts === null || opts === void 0 ? void 0 : opts.createOpts) !== null && _f !== void 0 ? _f : {};
104
146
  createOpts.options = Object.assign({ codecName: 'EBSI', type: 'Secp256r1' }, createOpts);
105
147
  opts.createOpts = createOpts;
106
148
  }
@@ -112,36 +154,38 @@ const getOrCreatePrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0
112
154
  });
113
155
  exports.getOrCreatePrimaryIdentifier = getOrCreatePrimaryIdentifier;
114
156
  const getPrimaryIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
115
- const identifiers = (yield context.agent.didManagerFind((opts === null || opts === void 0 ? void 0 : opts.method) ? { provider: `${types_1.DID_PREFIX}:${opts === null || opts === void 0 ? void 0 : opts.method}` } : {})).filter((identifier) => (opts === null || opts === void 0 ? void 0 : opts.type) === undefined || identifier.keys.some((key) => key.type === (opts === null || opts === void 0 ? void 0 : opts.type)));
116
- return (identifiers && identifiers.length > 0) ? identifiers[0] : undefined;
157
+ const identifiers = (yield context.agent.didManagerFind((opts === null || opts === void 0 ? void 0 : opts.method) ? { provider: `${types_1.DID_PREFIX}${opts === null || opts === void 0 ? void 0 : opts.method}` } : {})).filter((identifier) => (opts === null || opts === void 0 ? void 0 : opts.type) === undefined || identifier.keys.some((key) => key.type === (opts === null || opts === void 0 ? void 0 : opts.type)));
158
+ return identifiers && identifiers.length > 0 ? identifiers[0] : undefined;
117
159
  });
118
160
  exports.getPrimaryIdentifier = getPrimaryIdentifier;
119
161
  const createIdentifier = (context, opts) => __awaiter(void 0, void 0, void 0, function* () {
120
- var _e, _f, _g, _h, _j, _k, _l;
121
- const identifier = yield context.agent.didManagerCreate(Object.assign(Object.assign({ kms: (_f = (_e = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _e === void 0 ? void 0 : _e.kms) !== null && _f !== void 0 ? _f : types_1.KeyManagementSystemEnum.LOCAL }, ((opts === null || opts === void 0 ? void 0 : opts.method) && { provider: `${types_1.DID_PREFIX}:${opts === null || opts === void 0 ? void 0 : opts.method}` })), { alias: (_h = (_g = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _g === void 0 ? void 0 : _g.alias) !== null && _h !== void 0 ? _h : `${types_1.IdentifierAliasEnum.PRIMARY}-${opts === null || opts === void 0 ? void 0 : opts.method}-${(_k = (_j = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _j === void 0 ? void 0 : _j.options) === null || _k === void 0 ? void 0 : _k.type}-${new Date().toUTCString()}`, options: (_l = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _l === void 0 ? void 0 : _l.options }));
162
+ var _g, _h, _j, _k, _l, _m, _o;
163
+ const identifier = yield context.agent.didManagerCreate(Object.assign(Object.assign({ kms: (_h = (_g = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _g === void 0 ? void 0 : _g.kms) !== null && _h !== void 0 ? _h : types_1.KeyManagementSystemEnum.LOCAL }, ((opts === null || opts === void 0 ? void 0 : opts.method) && { provider: `${types_1.DID_PREFIX}${opts === null || opts === void 0 ? void 0 : opts.method}` })), { alias: (_k = (_j = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _j === void 0 ? void 0 : _j.alias) !== null && _k !== void 0 ? _k : `${types_1.IdentifierAliasEnum.PRIMARY}-${opts === null || opts === void 0 ? void 0 : opts.method}-${(_m = (_l = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _l === void 0 ? void 0 : _l.options) === null || _m === void 0 ? void 0 : _m.type}-${new Date().toUTCString()}`, options: (_o = opts === null || opts === void 0 ? void 0 : opts.createOpts) === null || _o === void 0 ? void 0 : _o.options }));
122
164
  return identifier;
123
165
  });
124
166
  exports.createIdentifier = createIdentifier;
125
- const getFirstKeyWithRelation = (identifier, context, vmRelationship, errorOnNotFound, didDocument) => __awaiter(void 0, void 0, void 0, function* () {
126
- const section = vmRelationship !== null && vmRelationship !== void 0 ? vmRelationship : 'verificationMethod'; // search all VMs in case no relationship is provided
127
- const matchedKeys = yield mapIdentifierKeysToDocWithJwkSupport(identifier, section, context, didDocument);
167
+ const getFirstKeyWithRelationFromDIDDoc = (_p, context_3) => __awaiter(void 0, [_p, context_3], void 0, function* ({ identifier, vmRelationship = 'verificationMethod', keyType, errorOnNotFound = false, didDocument, controllerKey, }, context) {
168
+ const matchedKeys = yield mapIdentifierKeysToDocWithJwkSupport({ identifier, vmRelationship, didDocument }, context);
128
169
  if (Array.isArray(matchedKeys) && matchedKeys.length > 0) {
129
- return matchedKeys[0];
170
+ const result = matchedKeys.find((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId));
171
+ if (result) {
172
+ return result;
173
+ }
130
174
  }
131
- if (errorOnNotFound === true) {
132
- throw new Error(`Could not find key with relationship ${section} in DID document for ${identifier.did}`);
175
+ if (errorOnNotFound) {
176
+ throw new Error(`Could not find key with relationship ${vmRelationship} in DID document for ${identifier.did}${keyType ? ' and key type: ' + keyType : ''}`);
133
177
  }
134
178
  return undefined;
135
179
  });
136
- exports.getFirstKeyWithRelation = getFirstKeyWithRelation;
180
+ exports.getFirstKeyWithRelationFromDIDDoc = getFirstKeyWithRelationFromDIDDoc;
137
181
  const getEthereumAddressFromKey = ({ key }) => {
138
182
  var _a, _b, _c, _d, _e;
139
183
  if (key.type !== 'Secp256k1') {
140
- throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for kid: ${key.kid}`);
184
+ throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for keyRef: ${key.kid}`);
141
185
  }
142
186
  const ethereumAddress = (_e = (_b = (_a = key.meta) === null || _a === void 0 ? void 0 : _a.ethereumAddress) !== null && _b !== void 0 ? _b : (_d = (_c = key.meta) === null || _c === void 0 ? void 0 : _c.account) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : (0, transactions_1.computeAddress)(`0x${key.publicKeyHex}`).toLowerCase();
143
187
  if (!ethereumAddress) {
144
- throw Error(`Could not get or generate ethereum address from key ${key.kid}`);
188
+ throw Error(`Could not get or generate ethereum address from key with keyRef ${key.kid}`);
145
189
  }
146
190
  return ethereumAddress;
147
191
  };
@@ -154,11 +198,11 @@ const getControllerKey = ({ identifier }) => {
154
198
  return key;
155
199
  };
156
200
  exports.getControllerKey = getControllerKey;
157
- const getKeys = ({ jwkThumbprint, kms, identifier, kid, keyType, controllerKey, }) => {
201
+ const getKeys = ({ jwkThumbprint, kms, identifier, kmsKeyRef, keyType, controllerKey, }) => {
158
202
  return identifier.keys
159
203
  .filter((key) => !keyType || key.type === keyType)
160
204
  .filter((key) => !kms || key.kms === kms)
161
- .filter((key) => !kid || key.kid === kid)
205
+ .filter((key) => !kmsKeyRef || key.kid === kmsKeyRef)
162
206
  .filter((key) => { var _a; return !jwkThumbprint || ((_a = key.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint) === jwkThumbprint; })
163
207
  .filter((key) => !controllerKey || identifier.controllerKeyId === key.kid);
164
208
  };
@@ -310,6 +354,7 @@ function extractPublicKeyBytes(pk) {
310
354
  * @param section - the section of the DID document to be mapped (see
311
355
  * {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships}), but can also be
312
356
  * `verificationMethod` to map all the keys.
357
+ * @param didDocument
313
358
  * @param context - the veramo agent context, which must contain a {@link @veramo/core#IResolver | IResolver}
314
359
  * implementation that can resolve the DID document of the identifier.
315
360
  *
@@ -318,8 +363,8 @@ function extractPublicKeyBytes(pk) {
318
363
  *
319
364
  * @beta This API may change without a BREAKING CHANGE notice.
320
365
  */
321
- function mapIdentifierKeysToDocWithJwkSupport(identifier_1) {
322
- return __awaiter(this, arguments, void 0, function* (identifier, section = 'keyAgreement', context, didDocument) {
366
+ function mapIdentifierKeysToDocWithJwkSupport(_a, context_4) {
367
+ return __awaiter(this, arguments, void 0, function* ({ identifier, vmRelationship = 'verificationMethod', didDocument, }, context) {
323
368
  const didDoc = didDocument !== null && didDocument !== void 0 ? didDocument : (yield getAgentResolver(context)
324
369
  .resolve(identifier.did)
325
370
  .then((result) => result.didDocument));
@@ -328,16 +373,16 @@ function mapIdentifierKeysToDocWithJwkSupport(identifier_1) {
328
373
  }
329
374
  // const rsaDidWeb = identifier.keys && identifier.keys.length > 0 && identifier.keys.find((key) => key.type === 'RSA') && didDocument
330
375
  // We skip mapping in case the identifier is RSA and a did document is supplied.
331
- const keys = didDoc ? [] : yield (0, utils_1.mapIdentifierKeysToDoc)(identifier, section, context);
376
+ const keys = didDoc ? [] : yield (0, utils_1.mapIdentifierKeysToDoc)(identifier, vmRelationship, context);
332
377
  // dereference all key agreement keys from DID document and normalize
333
- const documentKeys = yield dereferenceDidKeysWithJwkSupport(didDoc, section, context);
334
- const localKeys = section === 'keyAgreement' ? (0, utils_1.convertIdentifierEncryptionKeys)(identifier) : (0, utils_1.compressIdentifierSecp256k1Keys)(identifier);
378
+ const documentKeys = yield dereferenceDidKeysWithJwkSupport(didDoc, vmRelationship, context);
379
+ const localKeys = vmRelationship === 'keyAgreement' ? (0, utils_1.convertIdentifierEncryptionKeys)(identifier) : (0, utils_1.compressIdentifierSecp256k1Keys)(identifier);
335
380
  // finally map the didDocument keys to the identifier keys by comparing `publicKeyHex`
336
381
  const extendedKeys = documentKeys
337
382
  .map((verificationMethod) => {
338
383
  /*if (verificationMethod.type !== 'JsonWebKey2020') {
339
- return null
340
- }*/
384
+ return null
385
+ }*/
341
386
  const localKey = localKeys.find((localKey) => {
342
387
  var _a;
343
388
  return localKey.publicKeyHex === verificationMethod.publicKeyHex ||
@@ -427,32 +472,33 @@ function toDIDs(identifiers) {
427
472
  return identifiers.map(toDID);
428
473
  }
429
474
  exports.toDIDs = toDIDs;
430
- function getKey(identifier_1) {
431
- return __awaiter(this, arguments, void 0, function* (identifier, verificationMethodSection = 'authentication', context, keyId) {
475
+ function getKey(_a, context_4) {
476
+ return __awaiter(this, arguments, void 0, function* ({ identifier, vmRelationship = 'authentication', kmsKeyRef, }, context) {
432
477
  if (!identifier) {
433
478
  return Promise.reject(new Error(`No identifier provided to getKey method!`));
434
479
  }
435
480
  // normalize to kid, in case keyId was passed in as did#vm or #vm
436
- const kidVals = keyId === null || keyId === void 0 ? void 0 : keyId.split(`#`);
437
- const kid = kidVals ? ((kidVals === null || kidVals === void 0 ? void 0 : kidVals.length) === 2 ? kidVals[1] : kidVals[0]) : undefined;
438
- let identifierKey = keyId ? identifier.keys.find((key) => { var _a; return key.kid === kid || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint) === kid; }) : undefined;
481
+ const kmsKeyRefParts = kmsKeyRef === null || kmsKeyRef === void 0 ? void 0 : kmsKeyRef.split(`#`);
482
+ const kid = kmsKeyRefParts ? ((kmsKeyRefParts === null || kmsKeyRefParts === void 0 ? void 0 : kmsKeyRefParts.length) === 2 ? kmsKeyRefParts[1] : kmsKeyRefParts[0]) : undefined;
483
+ // todo: We really should do a keyRef and external kid here
484
+ let identifierKey = kmsKeyRef ? identifier.keys.find((key) => { var _a; return key.kid === kid || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.jwkThumbprint) === kid; }) : undefined;
439
485
  if (!identifierKey) {
440
- const keys = yield mapIdentifierKeysToDocWithJwkSupport(identifier, verificationMethodSection, context);
486
+ const keys = yield mapIdentifierKeysToDocWithJwkSupport({ identifier, vmRelationship: vmRelationship }, context);
441
487
  if (!keys || keys.length === 0) {
442
- throw new Error(`No keys found for verificationMethodSection: ${verificationMethodSection} and did ${identifier.did}`);
488
+ throw new Error(`No keys found for verificationMethodSection: ${vmRelationship} and did ${identifier.did}`);
443
489
  }
444
- if (keyId) {
445
- identifierKey = keys.find((key) => { var _a, _b, _c; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.id) === keyId || (kid && ((_c = (_b = key.meta.verificationMethod) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.includes(kid))); });
490
+ if (kmsKeyRef) {
491
+ identifierKey = keys.find((key) => { var _a, _b, _c; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.id) === kmsKeyRef || (kid && ((_c = (_b = key.meta.verificationMethod) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.includes(kid))); });
446
492
  }
447
493
  if (!identifierKey) {
448
- identifierKey = keys.find((key) => { var _a, _b; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.type) === verificationMethodSection || ((_b = key.meta.purposes) === null || _b === void 0 ? void 0 : _b.includes(verificationMethodSection)); });
494
+ identifierKey = keys.find((key) => { var _a, _b; return ((_a = key.meta.verificationMethod) === null || _a === void 0 ? void 0 : _a.type) === vmRelationship || ((_b = key.meta.purposes) === null || _b === void 0 ? void 0 : _b.includes(vmRelationship)); });
449
495
  }
450
496
  if (!identifierKey) {
451
497
  identifierKey = keys[0];
452
498
  }
453
499
  }
454
500
  if (!identifierKey) {
455
- throw new Error(`No matching verificationMethodSection key found for keyId: ${keyId} and vmSection: ${verificationMethodSection} for id ${identifier.did}`);
501
+ throw new Error(`No matching verificationMethodSection key found for keyId: ${kmsKeyRef} and vmSection: ${vmRelationship} for id ${identifier.did}`);
456
502
  }
457
503
  return identifierKey;
458
504
  });
@@ -463,9 +509,23 @@ exports.getKey = getKey;
463
509
  * @param key
464
510
  * @param idOpts
465
511
  */
466
- function determineKid(key, idOpts) {
467
- var _a, _b, _c, _d, _e, _f;
468
- return (_f = (_e = (_c = (_b = (_a = key.meta) === null || _a === void 0 ? void 0 : _a.verificationMethod) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : (_d = key.meta) === null || _d === void 0 ? void 0 : _d.jwkThumbprint) !== null && _e !== void 0 ? _e : idOpts.kid) !== null && _f !== void 0 ? _f : key.kid;
512
+ function determineKid(_a, context_4) {
513
+ return __awaiter(this, arguments, void 0, function* ({ key, idOpts, }, context) {
514
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
515
+ if ((_c = (_b = key.meta) === null || _b === void 0 ? void 0 : _b.verificationMethod) === null || _c === void 0 ? void 0 : _c.id) {
516
+ return (_e = (_d = key.meta) === null || _d === void 0 ? void 0 : _d.verificationMethod) === null || _e === void 0 ? void 0 : _e.id;
517
+ }
518
+ const identifier = yield getIdentifier(idOpts, context);
519
+ const mappedKeys = yield mapIdentifierKeysToDocWithJwkSupport({
520
+ identifier,
521
+ vmRelationship: 'verificationMethod',
522
+ }, context);
523
+ const vmKey = mappedKeys.find((extendedKey) => extendedKey.kid === key.kid);
524
+ if (vmKey) {
525
+ return (_l = (_k = (_h = (_g = (_f = vmKey.meta) === null || _f === void 0 ? void 0 : _f.verificationMethod) === null || _g === void 0 ? void 0 : _g.id) !== null && _h !== void 0 ? _h : (_j = vmKey.meta) === null || _j === void 0 ? void 0 : _j.jwkThumbprint) !== null && _k !== void 0 ? _k : idOpts.kmsKeyRef) !== null && _l !== void 0 ? _l : vmKey.kid;
526
+ }
527
+ return (_p = (_o = (_m = key.meta) === null || _m === void 0 ? void 0 : _m.jwkThumbprint) !== null && _o !== void 0 ? _o : idOpts.kmsKeyRef) !== null && _p !== void 0 ? _p : key.kid;
528
+ });
469
529
  }
470
530
  exports.determineKid = determineKid;
471
531
  function getSupportedDIDMethods(didOpts, context) {
@@ -565,17 +625,18 @@ exports.AgentDIDResolver = AgentDIDResolver;
565
625
  *
566
626
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
567
627
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
568
- * when no DID Document is cached.
628
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
569
629
  *
570
630
  * @param identifier
571
631
  * @param opts
572
632
  */
573
633
  function toDidDocument(identifier, opts) {
574
- var _a, _b, _c;
634
+ var _a, _b, _c, _d, _e, _f;
575
635
  let didDocument = undefined;
636
+ // TODO: Introduce jwk thumbprints here
576
637
  if (identifier) {
577
638
  const did = (_a = identifier.did) !== null && _a !== void 0 ? _a : opts === null || opts === void 0 ? void 0 : opts.did;
578
- didDocument = Object.assign(Object.assign(Object.assign({ '@context': 'https://www.w3.org/ns/did/v1', id: did, verificationMethod: identifier.keys.map((key) => {
639
+ didDocument = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ '@context': 'https://www.w3.org/ns/did/v1', id: did, verificationMethod: identifier.keys.map((key) => {
579
640
  const vm = {
580
641
  controller: did,
581
642
  id: key.kid.startsWith(did) && key.kid.includes('#') ? key.kid : `${did}#${key.kid}`,
@@ -586,42 +647,50 @@ function toDidDocument(identifier, opts) {
586
647
  type: 'JsonWebKey2020',
587
648
  };
588
649
  return vm;
589
- }) }, ((!(opts === null || opts === void 0 ? void 0 : opts.use) || ((_b = opts === null || opts === void 0 ? void 0 : opts.use) === null || _b === void 0 ? void 0 : _b.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
650
+ }) }, (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_b = opts === null || opts === void 0 ? void 0 : opts.use) === null || _b === void 0 ? void 0 : _b.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
590
651
  identifier.keys && {
591
652
  assertionMethod: identifier.keys
592
- .filter((key) => { var _a, _b; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'assertionMethod'; })
653
+ .filter((key) => { var _a, _b, _c, _d; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === undefined || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'assertionMethod' || ((_d = (_c = key === null || key === void 0 ? void 0 : key.meta) === null || _c === void 0 ? void 0 : _c.purposes) === null || _d === void 0 ? void 0 : _d.includes('assertionMethod')); })
593
654
  .map((key) => {
655
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
656
+ return key.kid;
657
+ }
594
658
  return `${did}#${key.kid}`;
595
659
  }),
660
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_c = opts === null || opts === void 0 ? void 0 : opts.use) === null || _c === void 0 ? void 0 : _c.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Signature))) &&
661
+ identifier.keys && {
596
662
  authentication: identifier.keys
597
- .filter((key) => { var _a, _b; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'authentication'; })
663
+ .filter((key) => { var _a, _b, _c, _d; return ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === undefined || ((_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purpose) === 'authentication' || ((_d = (_c = key === null || key === void 0 ? void 0 : key.meta) === null || _c === void 0 ? void 0 : _c.purposes) === null || _d === void 0 ? void 0 : _d.includes('authentication')); })
598
664
  .map((key) => {
665
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
666
+ return key.kid;
667
+ }
599
668
  return `${did}#${key.kid}`;
600
669
  }),
601
- })), ((!(opts === null || opts === void 0 ? void 0 : opts.use) || ((_c = opts === null || opts === void 0 ? void 0 : opts.use) === null || _c === void 0 ? void 0 : _c.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
670
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_d = opts === null || opts === void 0 ? void 0 : opts.use) === null || _d === void 0 ? void 0 : _d.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
602
671
  identifier.keys && {
603
672
  keyAgreement: identifier.keys
604
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'keyAgreement'; })
673
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'keyAgreement' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('keyAgreement')); })
605
674
  .map((key) => {
606
675
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
607
676
  return key.kid;
608
677
  }
609
678
  return `${did}#${key.kid}`;
610
679
  }),
611
- } &&
680
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_e = opts === null || opts === void 0 ? void 0 : opts.use) === null || _e === void 0 ? void 0 : _e.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
612
681
  identifier.keys && {
613
682
  capabilityInvocation: identifier.keys
614
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityInvocation'; })
683
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityInvocation' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('capabilityInvocation')); })
615
684
  .map((key) => {
616
685
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
617
686
  return key.kid;
618
687
  }
619
688
  return `${did}#${key.kid}`;
620
689
  }),
621
- } &&
690
+ })), (((opts === null || opts === void 0 ? void 0 : opts.use) === undefined || ((_f = opts === null || opts === void 0 ? void 0 : opts.use) === null || _f === void 0 ? void 0 : _f.includes(ssi_sdk_ext_key_utils_1.JwkKeyUse.Encryption))) &&
622
691
  identifier.keys && {
623
692
  capabilityDelegation: identifier.keys
624
- .filter((key) => { var _a; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityDelegation'; })
693
+ .filter((key) => { var _a, _b, _c; return key.type === 'X25519' || ((_a = key === null || key === void 0 ? void 0 : key.meta) === null || _a === void 0 ? void 0 : _a.purpose) === 'capabilityDelegation' || ((_c = (_b = key === null || key === void 0 ? void 0 : key.meta) === null || _b === void 0 ? void 0 : _b.purposes) === null || _c === void 0 ? void 0 : _c.includes('capabilityDelegation')); })
625
694
  .map((key) => {
626
695
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
627
696
  return key.kid;
@@ -1 +1 @@
1
- {"version":3,"file":"did-functions.js","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"did-functions.js","sourceRoot":"","sources":["../src/did-functions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA4D;AAC5D,6DAAsD;AACtD,2EAA8H;AAC9H,yDAAkH;AAClH,gDAA6D;AAE7D,yCASsB;AAEtB,aAAa;AACb,wDAA+B;AAC/B,iDAAkC;AAClC,mCAWgB;AAET,MAAM,oBAAoB,GAAG,gBAeV,EAAE,uDAd1B,EACE,UAAU,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,OAAO,EACP,aAAa,GAOd,EACD,OAA+C;IAE/C,OAAO,MAAM,IAAA,+BAAuB,EAClC;QACE,UAAU;QACV,0BAA0B;QAC1B,4BAA4B;QAC5B,OAAO;QACP,aAAa;QACb,cAAc,EAAE,gBAAgB;KACjC,EACD,OAAO,CACR,CAAA;AACH,CAAC,CAAA,CAAA;AA3BY,QAAA,oBAAoB,wBA2BhC;AACM,MAAM,uBAAuB,GAAG,gBAiBb,EAAE,uDAhB1B,EACE,UAAU,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,OAAO,EACP,aAAa,EACb,cAAc,GAQf,EACD,OAA+C;;IAE/C,IAAI,GAAG,GAA8B,SAAS,CAAA;IAC9C,IAAI,CAAC;QACH,GAAG;YACD,MAAA,CAAC,MAAM,IAAA,yCAAiC,EACtC;gBACE,UAAU;gBACV,cAAc;gBACd,eAAe,EAAE,KAAK;gBACtB,OAAO;gBACP,aAAa;aACd,EACD,OAAO,CACR,CAAC,mCACF,CAAC,4BAA4B;gBAC3B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,IAAA,yCAAiC,EACrC;oBACE,UAAU;oBACV,cAAc,EAAE,oBAAoB;oBACpC,eAAe,EAAE,KAAK;oBACtB,OAAO;oBACP,aAAa;iBACd,EACD,OAAO,CACR,CAAC,CAAA;IACV,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAC9D,MAAM,CAAC,CAAA;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QAC5C,GAAG;YACD,MAAA,CAAC,MAAM,IAAA,yCAAiC,EACtC;gBACE,UAAU;gBACV,cAAc;gBACd,eAAe,EAAE,KAAK;gBACtB,WAAW,EAAE,UAAU;gBACvB,OAAO;gBACP,aAAa;aACd,EACD,OAAO,CACR,CAAC,mCACF,CAAC,4BAA4B;gBAC3B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,IAAA,yCAAiC,EACrC;oBACE,UAAU;oBACV,cAAc,EAAE,oBAAoB;oBACpC,eAAe,EAAE,KAAK;oBACtB,WAAW,EAAE,UAAU;oBACvB,OAAO;oBACP,aAAa;iBACd,EACD,OAAO,CACR,CAAC,CAAA;QACR,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,UAAU,CAAC,IAAI;iBAClB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAoB,CAAC;iBAClC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,eAAe,CAAC,CAAC;iBAC3H,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,0CAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAI,MAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA,CAAA,EAAA,CAAC,CAAA;QACjI,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,KAAK,CAAC,6CAA6C,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA,CAAA;AA1FY,QAAA,uBAAuB,2BA0FnC;AAEM,MAAM,4BAA4B,GAAG,CAC1C,OAAmC,EACnC,IAAgC,EACS,EAAE;;IAC3C,MAAM,iBAAiB,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,kCAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,OAAO,GAAK,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAG,CAAA;IAC7I,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,iBAAiB;SAC1B,CAAA;IACH,CAAC;IAED,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,8BAAsB,CAAC,OAAO,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,mCAAI,EAAE,CAAA;QACzC,UAAU,CAAC,OAAO,mBAAK,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,IAAK,UAAU,CAAE,CAAA;QAC5E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,iBAAiB;KAC1B,CAAA;AACH,CAAC,CAAA,CAAA;AAtBY,QAAA,4BAA4B,gCAsBxC;AAEM,MAAM,oBAAoB,GAAG,CAAO,OAAmC,EAAE,IAA6B,EAAoC,EAAE;IACjJ,MAAM,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,kBAAU,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAC/H,CAAC,UAAuB,EAAE,EAAE,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,CAAC,CACtH,CAAA;IAED,OAAO,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3E,CAAC,CAAA,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,gBAAgB,GAAG,CAAO,OAAmC,EAAE,IAA2B,EAAwB,EAAE;;IAC/H,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,gBAAgB,+BACrD,GAAG,EAAE,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,GAAG,mCAAI,+BAAuB,CAAC,KAAK,IACxD,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,EAAE,QAAQ,EAAE,GAAG,kBAAU,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAE,EAAE,CAAC,KACjE,KAAK,EAAE,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,KAAK,mCAAI,GAAG,2BAAmB,CAAC,OAAO,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,IAAI,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,OAAO,0CAAE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,EACjJ,OAAO,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,0CAAE,OAAO,IAClC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAEM,MAAM,iCAAiC,GAAG,gBAiBX,EAAE,uDAhBtC,EACE,UAAU,EACV,cAAc,GAAG,oBAAoB,EACrC,OAAO,EACP,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,aAAa,GAQd,EACD,OAA+C;IAE/C,MAAM,WAAW,GAAG,MAAM,oCAAoC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAA;IACpH,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,eAAe,CAAC,CACpH,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wCAAwC,cAAc,wBAAwB,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5I,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA,CAAA;AAjCY,QAAA,iCAAiC,qCAiC7C;AAEM,MAAM,yBAAyB,GAAG,CAAC,EAAE,GAAG,EAAiB,EAAE,EAAE;;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,+DAA+D,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC/G,CAAC;IACD,MAAM,eAAe,GAAG,MAAA,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,eAAe,mCAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,OAAO,0CAAE,WAAW,EAAE,mCAAI,IAAA,6BAAc,EAAC,KAAK,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9I,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,mEAAmE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AATY,QAAA,yBAAyB,6BASrC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAAE,UAAU,EAA+B,EAAE,EAAE;IAC9E,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,UAAU,CAAC,eAAe,CAAC,CAAA;IACjF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,KAAK,CAAC,+CAA+C,UAAU,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAEM,MAAM,OAAO,GAAG,CAAC,EACtB,aAAa,EACb,GAAG,EACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,aAAa,GAQd,EAAE,EAAE;IACH,OAAO,UAAU,CAAC,IAAI;SACnB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;SACjD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;SACxC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC;SACpD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAC,aAAa,IAAI,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,aAAa,MAAK,aAAa,CAAA,EAAA,CAAC;SAC5E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,aAAa,IAAI,UAAU,CAAC,eAAe,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;AAC9E,CAAC,CAAA;AArBY,QAAA,OAAO,WAqBnB;AAED,mDAAmD;AACnD;;;;;;;;;GASG;AACH,SAAsB,gCAAgC;yDACpD,WAAwB,EACxB,UAA8B,cAAc,EAC5C,OAAiC;QAEjC,MAAM,OAAO,GAAG,OAAO,KAAK,cAAc,CAAA;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,CACL,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAO,GAAgC,EAAE,EAAE;YAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;wBAC9C,WAAW;wBACX,MAAM,EAAE,GAAG;wBACX,OAAO;qBACR,CAAC,CAAgC,CAAA;gBACpC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAkC,CAAA;YAC3C,CAAC;QACH,CAAC,CAAA,CAAC,CACH,CACF;aACE,MAAM,CAAC,iBAAS,CAAC;aACjB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,MAAM,GAAG,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAC9D,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,KAAkB,GAAG,EAAhB,QAAQ,UAAK,GAAG,EAAnF,sEAA6E,CAAM,CAAA;YACzF,MAAM,MAAM,mCAAQ,QAAQ,KAAE,YAAY,EAAE,MAAM,GAAE,CAAA;YACpD,IAAI,OAAO,IAAI,4BAA4B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5D,MAAM,CAAC,IAAI,GAAG,2BAA2B,CAAA;YAC3C,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;IACN,CAAC;CAAA;AAtCD,4EAsCC;AAED;;;;;;;;GAQG;AACH,SAAgB,iCAAiC,CAAC,EAA+B,EAAE,OAAO,GAAG,KAAK;IAChG,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YAE3F,MAAM,IAAI,GAAG,IAAA,mCAAW,EAAC,EAAE,CAAC,YAAY,CAAC,CAAE,EAAE,WAAW,CAAC,CAAA;YACzD,MAAM,IAAI,GAAG,IAAA,mCAAW,EAAC,EAAE,CAAC,YAAY,CAAC,CAAE,EAAE,WAAW,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,IAAI,CAAA,CAAC,6BAA6B;YACjD,oCAAoC;YACpC,oEAAoE;YACpE,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;YACrC,+JAA+J;YAC/J,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YAC7E,qDAAqD;YACrD,OAAO,YAAY,CAAA;QACrB,CAAC;aAAM,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,CAAE,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAA;QAChF,CAAC;aAAM,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACzC,OAAO,IAAA,6CAAqB,EAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IACD,2DAA2D;IAC3D,OAAO,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;AACzC,CAAC;AAvBD,8EAuBC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAClD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACpE,CAAC;AAHD,0CAGC;AAMD;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,EAA+B,EAAE,UAAmB,KAAK;;IAC3F,IAAI,QAAQ,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAA;IACxC,IAAI,OAAO,EAAE,CAAC;QACZ,IACE,CAAC,SAAS,EAAE,4BAA4B,EAAE,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;YACzF,CAAC,EAAE,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAA,MAAA,EAAE,CAAC,YAAY,0CAAE,GAAG,MAAK,SAAS,CAAC,EACpE,CAAC;YACD,QAAQ,GAAG,IAAA,kCAAwB,EAAC,QAAQ,CAAC,CAAA;QAC/C,CAAC;aAAM,IACL,CAAC,CAAC,QAAQ,EAAE,2BAA2B,EAAE,2BAA2B,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;YACvF,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAA,MAAA,EAAE,CAAC,YAAY,0CAAE,GAAG,MAAK,QAAQ,CAAC,EACpE,CAAC;YACD,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAA,yBAAU,EAAC,QAAQ,CAAC,CAAA;AAC7B,CAAC;AAhBD,kDAgBC;AAED,SAAS,qBAAqB,CAAC,EAAsB;IACnD,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAA,4BAAa,EAAC,EAAE,CAAC,eAAe,CAAC,CAAA;IAC1C,CAAC;SAAM,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;QACjC,OAAO,IAAA,kCAAmB,EAAC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IACnD,CAAC;SAAM,IAA+B,EAAG,CAAC,eAAe,EAAE,CAAC;QAC1D,OAAO,IAAA,4BAAa,EAA4B,EAAG,CAAC,eAAe,CAAC,CAAA;IACtE,CAAC;SAAM,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;QAC3B,OAAO,IAAA,yBAAU,EAAC,EAAE,CAAC,YAAY,CAAC,CAAA;IACpC,CAAC;SAAM,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACjJ,MAAM,IAAI,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACjD,OAAO,IAAA,yBAAU,EACf,IAAI;aACD,aAAa,CAAC;YACb,CAAC,EAAE,IAAA,mCAAW,EAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC;YAC9C,CAAC,EAAE,IAAA,mCAAW,EAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC;SAC/C,CAAC;aACD,SAAS,CAAC,KAAK,CAAC,CACpB,CAAA;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QAC3H,OAAO,IAAA,4BAAa,EAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,IAAI,UAAU,EAAE,CAAA;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAsB,oCAAoC;yDACxD,EACE,UAAU,EACV,cAAc,GAAG,oBAAoB,EACrC,WAAW,GAKZ,EACD,OAA+C;QAE/C,MAAM,MAAM,GACV,WAAW,aAAX,WAAW,cAAX,WAAW,GACX,CAAC,MAAM,gBAAgB,CAAC,OAAO,CAAC;aAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;aACvB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,yBAAyB,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;QACxD,CAAC;QAED,sIAAsI;QAEtI,gFAAgF;QAChF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAA,8BAAsB,EAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;QAE5F,qEAAqE;QACrE,MAAM,YAAY,GAAyB,MAAM,gCAAgC,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;QAElH,MAAM,SAAS,GAAG,cAAc,KAAK,cAAc,CAAC,CAAC,CAAC,IAAA,uCAA+B,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAA,uCAA+B,EAAC,UAAU,CAAC,CAAA;QAE/I,sFAAsF;QACtF,MAAM,YAAY,GAAoB,YAAY;aAC/C,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC1B;;2EAE+D;YAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAC7B,CAAC,QAAQ,EAAE,EAAE;;gBACX,OAAA,QAAQ,CAAC,YAAY,KAAK,kBAAkB,CAAC,YAAY;qBACzD,MAAA,kBAAkB,CAAC,YAAY,0CAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;oBAClE,0BAA0B,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;aAAA,CAC3D,CAAA;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,EAAE,IAAI,KAAoB,QAAQ,EAAvB,UAAU,UAAK,QAAQ,EAAlC,QAAuB,CAAW,CAAA;gBACxC,uCAAY,UAAU,KAAE,IAAI,kCAAO,IAAI,KAAE,kBAAkB,OAAI;YACjE,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC,CAAC;aACD,MAAM,CAAC,iBAAS,CAAC,CAAA;QAEpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAClC,CAAC;CAAA;AArDD,oFAqDC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,0BAA0B,CAAC,QAAc,EAAE,kBAAsC;;IACxF,IACE,CAAC,kBAAkB,CAAC,IAAI,KAAK,kCAAkC,IAAI,kBAAkB,CAAC,IAAI,KAAK,mCAAmC,CAAC;QACnI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAC7B,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,SAAS,GAAG,IAAA,0BAAkB,EAAC,kBAAkB,CAAC,CAAA;IACtD,IAAI,MAAA,QAAQ,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAC;QAC3B,OAAO,SAAS,MAAK,MAAA,QAAQ,CAAC,IAAI,0CAAE,OAAO,CAAC,WAAW,EAAE,CAAA,CAAA;IAC3D,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,6BAAc,EAAC,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/E,OAAO,YAAY,KAAK,SAAS,CAAA;AACnC,CAAC;AAED,SAAsB,kBAAkB,CAAC,OAAmC;;QAC1E,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IACrH,CAAC;CAAA;AAFD,gDAEC;AAED,SAAsB,aAAa,CAAC,cAA+B,EAAE,OAAmC;;QACtG,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAA;QACxE,CAAC;aAAM,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACzD,OAAO,cAAc,CAAC,UAAU,CAAA;QAClC,CAAC;QACD,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAC/D,CAAC;CAAA;AAPD,sCAOC;AAED,SAAgB,MAAM,CAAC,cAA+B;IACpD,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,cAAc,CAAC,UAAU,CAAA;IAClC,CAAC;SAAM,IAAI,OAAO,cAAc,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAA;IACtC,CAAC;IACD,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACrD,CAAC;AAPD,wBAOC;AAED,SAAgB,KAAK,CAAC,UAAuD;IAC3E,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;QACnB,OAAO,UAAU,CAAC,GAAG,CAAA;IACvB,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAA;AACnD,CAAC;AARD,sBAQC;AAED,SAAgB,MAAM,CAAC,WAA6D;IAClF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC;AALD,wBAKC;AAED,SAAsB,MAAM;yDAC1B,EACE,UAAU,EACV,cAAc,GAAG,gBAAgB,EACjC,SAAS,GAKV,EACD,OAA+C;QAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAA;QAC9E,CAAC;QACD,iEAAiE;QACjE,MAAM,cAAc,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/G,2DAA2D;QAC3D,IAAI,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAS,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,aAAa,MAAK,GAAG,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpI,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,MAAM,oCAAoC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,CAAA;YAChH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,cAAc,YAAY,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;YAC7G,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,aAAa,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,GAAkB,EAAE,EAAE,mBAAC,OAAA,CAAA,MAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,0CAAE,EAAE,MAAK,SAAS,IAAI,CAAC,GAAG,KAAI,MAAA,MAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,0CAAE,EAAE,0CAAE,QAAQ,CAAC,GAAG,CAAC,CAAA,CAAC,CAAA,EAAA,CACjI,CAAA;YACH,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,aAAa,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,GAAkB,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,GAAG,CAAC,IAAI,CAAC,kBAAkB,0CAAE,IAAI,MAAK,cAAc,KAAI,MAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,CAAC,cAAc,CAAC,CAAA,CAAA,EAAA,CAC5H,CAAA;YACH,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,8DAA8D,SAAS,mBAAmB,cAAc,WAAW,UAAU,CAAC,GAAG,EAAE,CACpI,CAAA;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;CAAA;AA9CD,wBA8CC;AAED;;;;GAIG;AACH,SAAsB,YAAY;yDAChC,EACE,GAAG,EACH,MAAM,GAIP,EACD,OAA+C;;QAE/C,IAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,0CAAE,EAAE,EAAE,CAAC;YACrC,OAAO,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,kBAAkB,0CAAE,EAAE,CAAA;QACzC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACvD,MAAM,UAAU,GAAG,MAAM,oCAAoC,CAC3D;YACE,UAAU;YACV,cAAc,EAAE,oBAAoB;SACrC,EACD,OAAO,CACR,CAAA;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3E,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,MAAA,MAAA,MAAA,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,kBAAkB,0CAAE,EAAE,mCAAI,MAAA,KAAK,CAAC,IAAI,0CAAE,aAAa,mCAAI,MAAM,CAAC,SAAS,mCAAI,KAAK,CAAC,GAAG,CAAA;QACzG,CAAC;QAED,OAAO,MAAA,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,aAAa,mCAAI,MAAM,CAAC,SAAS,mCAAI,GAAG,CAAC,GAAG,CAAA;IAC/D,CAAC;CAAA;AA3BD,oCA2BC;AAED,SAAsB,sBAAsB,CAAC,OAAoB,EAAE,OAAmC;;;QACpG,OAAO,MAAA,OAAO,CAAC,mBAAmB,mCAAI,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3E,CAAC;CAAA;AAFD,wDAEC;AAED,SAAgB,gBAAgB,CAC9B,OAA+C,EAC/C,IAIC;IAED,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC;AATD,4CASC;AAED,MAAa,gBAAgB;IAM3B,YACE,OAA+C,EAC/C,IAAmG;QAEnG,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,kBAAkB,MAAK,KAAK,CAAA;QAC5D,IAAI,CAAC,qBAAqB,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,qBAAqB,MAAK,KAAK,CAAA;QAClE,IAAI,CAAC,eAAe,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,MAAK,KAAK,CAAA;IACxD,CAAC;IAEK,OAAO,CAAC,MAAc,EAAE,OAA8B;;YAC1D,IAAI,gBAAiD,CAAA;YACrD,IAAI,oBAAqD,CAAA;YACzD,IAAI,GAAQ,CAAA;YACZ,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACrF,MAAM,KAAK,CAAC,6HAA6H,CAAC,CAAA;YAC5I,CAAC;YACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,gBAAgB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC7E,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,GAAG,GAAG,KAAK,CAAA;gBACb,CAAC;YACH,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,oBAAoB,GAAG,gBAAgB,CAAA;gBACvC,IAAI,gBAAgB,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;oBAC1C,gBAAgB,GAAG,SAAS,CAAA;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;YACvF,CAAC;YACD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAA;gBAC/E,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;oBACnE,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;oBAC9D,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;wBACjC,GAAG,GAAG,SAAS,CAAA;oBACjB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAA;oBACvE,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,KAAK,CAAA;oBACb,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,oBAAoB,GAAG,gBAAgB,CAAA;gBACzC,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBAClC,gBAAgB,GAAG,SAAS,CAAA;gBAC9B,CAAC;YACH,CAAC;YACD,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAA;gBACrE,gBAAgB,GAAG,MAAM,IAAI,4BAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBACnE,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B,oBAAoB,GAAG,gBAAgB,CAAA;gBACzC,CAAC;gBACD,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC;oBACjC,GAAG,GAAG,SAAS,CAAA;gBACjB,CAAC;YACH,CAAC;YAED,IAAI,GAAG,EAAE,CAAC;gBACR,uBAAuB;gBACvB,MAAM,GAAG,CAAA;YACX,CAAC;YACD,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,MAAM,qBAAqB,MAAM,gCAAgC,IAAI,CAAC,kBAAkB,YAAY,IAAI,CAAC,eAAe,mBAAmB,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACzK,CAAC;YACD,OAAO,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,oBAAqB,CAAA;QAClD,CAAC;KAAA;CACF;AAnFD,4CAmFC;AAED;;;;;;;;;GASG;AACH,SAAgB,aAAa,CAC3B,UAAwB,EACxB,IAGC;;IAED,IAAI,WAAW,GAA4B,SAAS,CAAA;IACpD,uCAAuC;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,MAAA,UAAU,CAAC,GAAG,mCAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA;QACvC,WAAW,yFACT,UAAU,EAAE,8BAA8B,EAC1C,EAAE,EAAE,GAAG,EACP,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9C,MAAM,EAAE,GAAuB;oBAC7B,UAAU,EAAE,GAAG;oBACf,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;oBACpF,YAAY,EAAE,IAAA,6BAAK,EAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE;wBAC9C,GAAG,EAAE,oCAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iCAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAS,CAAC,SAAS;wBACjF,GAAG;qBACJ,CAAe;oBAChB,IAAI,EAAE,gBAAgB;iBACvB,CAAA;gBACD,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,IACC,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,SAAS,KAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,QAAQ,CAAC,iCAAS,CAAC,SAAS,CAAC,CAAA,CAAC;YACvE,UAAU,CAAC,IAAI,IAAI;YACjB,eAAe,EAAE,UAAU,CAAC,IAAI;iBAC7B,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,uBACN,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,SAAS,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,iBAAiB,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA,CAAA,EAAA,CACnI;iBACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC,CAAC;SACL,CAAC,GACD,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,SAAS,KAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,QAAQ,CAAC,iCAAS,CAAC,SAAS,CAAC,CAAA,CAAC;YACvE,UAAU,CAAC,IAAI,IAAI;YACjB,cAAc,EAAE,UAAU,CAAC,IAAI;iBAC5B,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,uBAAC,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,SAAS,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,gBAAgB,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAA,CAAA,EAAA,CACxI;iBACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC,CAAC;SACL,CAAC,GACD,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,SAAS,KAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,QAAQ,CAAC,iCAAS,CAAC,UAAU,CAAC,CAAA,CAAC;YACxE,UAAU,CAAC,IAAI,IAAI;YACjB,YAAY,EAAE,UAAU,CAAC,IAAI;iBAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,cAAc,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,cAAc,CAAC,CAAA,CAAA,EAAA,CAAC;iBAChI,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC,CAAC;SACL,CAAC,GACD,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,SAAS,KAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,QAAQ,CAAC,iCAAS,CAAC,UAAU,CAAC,CAAA,CAAC;YACxE,UAAU,CAAC,IAAI,IAAI;YACjB,oBAAoB,EAAE,UAAU,CAAC,IAAI;iBAClC,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,sBAAsB,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAA,CAAA,EAAA,CACzI;iBACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC,CAAC;SACL,CAAC,GACD,CAAC,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAK,SAAS,KAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,QAAQ,CAAC,iCAAS,CAAC,UAAU,CAAC,CAAA,CAAC;YACxE,UAAU,CAAC,IAAI,IAAI;YACjB,oBAAoB,EAAE,UAAU,CAAC,IAAI;iBAClC,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,mBAAC,OAAA,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,OAAO,MAAK,sBAAsB,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAA,CAAA,EAAA,CACzI;iBACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,OAAO,GAAG,CAAC,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;YAC5B,CAAC,CAAC;SACL,CAAC,GACD,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAC/F,CAAA;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AA9FD,sCA8FC;AAED,SAAgB,qBAAqB,CACnC,UAAwB,EACxB,IAGC;;IAED,MAAM,WAAW,GAAG,MAAA,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,mCAAI,IAAI,CAAA,CAAC,yEAAyE;IAErI,MAAM,gBAAgB,GAAwB;QAC5C,UAAU,EAAE,oCAAoC;QAChD,WAAW;QACX,qBAAqB,kCAChB,CAAC,CAAC,WAAW,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GACvC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC;YACvC,UAAU;YACV,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC,CAClH;QACD,mBAAmB,oBACd,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,KAAI,EAAE,YAAY,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,CAAC,CAC9D;KACF,CAAA;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAvBD,sDAuBC;AAED,SAAsB,QAAQ,CAAC,aAAqB;;QAClD,IAAI,GAAG,GAAG,aAAa,CAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,WAAW,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;IAChF,CAAC;CAAA;AATD,4BASC"}
package/dist/types.d.ts CHANGED
@@ -31,11 +31,12 @@ export interface IDIDOptions {
31
31
  export interface IIdentifierOpts {
32
32
  identifier: IIdentifier | string;
33
33
  verificationMethodSection?: DIDDocumentSection;
34
- kid?: string;
34
+ kmsKeyRef?: string;
35
35
  }
36
36
  export type IdentifierProviderOpts = {
37
37
  type?: TKeyType;
38
38
  use?: string;
39
+ method?: SupportedDidMethodEnum;
39
40
  [x: string]: any;
40
41
  };
41
42
  export type CreateIdentifierOpts = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE1D,oBAAY,sBAAsB;IAChC,QAAQ,SAAS;IACjB,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,QAAQ,SAAS;IACjB,OAAO,QAAQ;CAChB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;CACpB;AAED,oBAAY,uBAAuB;IACjC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,eAAe,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,WAAW,GAAG,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,kBAAkB,CAAA;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,CAAC,EAAE,uBAAuB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAA;CACV"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE1D,oBAAY,sBAAsB;IAChC,QAAQ,SAAS;IACjB,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,OAAO,QAAQ;IACf,QAAQ,SAAS;IACjB,OAAO,QAAQ;CAChB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;CACpB;AAED,oBAAY,uBAAuB;IACjC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,EAAE,eAAe,CAAA;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,WAAW,GAAG,MAAM,CAAA;IAChC,yBAAyB,CAAC,EAAE,kBAAkB,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,CAAC,EAAE,uBAAuB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,sBAAsB,CAAA;IAC9B,UAAU,CAAC,EAAE,0BAA0B,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,UAAU,SAAS,CAAA;AAEhC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,CAAC,CAAA;CACV"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACjB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;AACrB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAED,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;AACjB,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC;AA4CY,QAAA,UAAU,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,2CAAiB,CAAA;IACjB,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,yCAAe,CAAA;AACjB,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAED,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;AACrB,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B;AAED,IAAY,uBAEX;AAFD,WAAY,uBAAuB;IACjC,0CAAe,CAAA;AACjB,CAAC,EAFW,uBAAuB,uCAAvB,uBAAuB,QAElC;AA6CY,QAAA,UAAU,GAAG,MAAM,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk-ext.did-utils",
3
3
  "description": "DID Utils",
4
- "version": "0.22.1-unstable.8+32494e4",
4
+ "version": "0.23.1-next.3+a9dbfa6",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "@ethersproject/networks": "^5.7.1",
14
14
  "@ethersproject/transactions": "^5.7.0",
15
15
  "@sphereon/did-uni-client": "^0.6.3",
16
- "@sphereon/ssi-sdk-ext.key-utils": "0.22.1-unstable.8+32494e4",
17
- "@sphereon/ssi-sdk.core": "0.25.0",
16
+ "@sphereon/ssi-sdk-ext.key-utils": "0.23.1-next.3+a9dbfa6",
17
+ "@sphereon/ssi-sdk.core": "0.27.0",
18
18
  "@stablelib/ed25519": "^1.0.3",
19
19
  "@veramo/core": "4.2.0",
20
20
  "@veramo/utils": "4.2.0",
@@ -38,5 +38,5 @@
38
38
  "author": "Sphereon <dev@sphereon.com>",
39
39
  "license": "Apache-2.0",
40
40
  "keywords": [],
41
- "gitHead": "32494e4c4900e0793efc825ce8000e3c0c2459ce"
41
+ "gitHead": "a9dbfa67d0db3283326e1f7185b50a973e677126"
42
42
  }
@@ -3,16 +3,7 @@ import { UniResolver } from '@sphereon/did-uni-client'
3
3
  import { base64ToHex, ENC_KEY_ALGS, hexKeyFromPEMBasedJwk, JwkKeyUse, TKeyType, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'
4
4
  import { base58ToBytes, base64ToBytes, bytesToHex, hexToBytes, multibaseKeyToBytes } from '@sphereon/ssi-sdk.core'
5
5
  import { convertPublicKeyToX25519 } from '@stablelib/ed25519'
6
- import {
7
- DIDDocument,
8
- DIDDocumentSection,
9
- DIDResolutionResult,
10
- IAgentContext,
11
- IDIDManager,
12
- IIdentifier,
13
- IKey,
14
- IResolver,
15
- } from '@veramo/core'
6
+ import { DIDDocument, DIDDocumentSection, DIDResolutionResult, IAgentContext, IDIDManager, IIdentifier, IKey, IResolver } from '@veramo/core'
16
7
  import {
17
8
  _ExtendedIKey,
18
9
  _ExtendedVerificationMethod,
@@ -40,34 +31,117 @@ import {
40
31
  SupportedDidMethodEnum,
41
32
  } from './types'
42
33
 
43
-
44
- export const getAuthenticationKey = async (identifier: IIdentifier,
45
- context: IAgentContext<IResolver & IDIDManager>,
46
- offlineWhenNoDIDRegistered?: boolean,
47
- noVerificationMethodFallback?: boolean): Promise<_ExtendedIKey> => {
48
-
34
+ export const getAuthenticationKey = async (
35
+ {
36
+ identifier,
37
+ offlineWhenNoDIDRegistered,
38
+ noVerificationMethodFallback,
39
+ keyType,
40
+ controllerKey,
41
+ }: {
42
+ identifier: IIdentifier
43
+ keyType?: TKeyType
44
+ offlineWhenNoDIDRegistered?: boolean
45
+ noVerificationMethodFallback?: boolean
46
+ controllerKey?: boolean
47
+ },
48
+ context: IAgentContext<IResolver & IDIDManager>
49
+ ): Promise<_ExtendedIKey> => {
50
+ return await getFirstKeyWithRelation(
51
+ {
52
+ identifier,
53
+ offlineWhenNoDIDRegistered,
54
+ noVerificationMethodFallback,
55
+ keyType,
56
+ controllerKey,
57
+ vmRelationship: 'authentication',
58
+ },
59
+ context
60
+ )
61
+ }
62
+ export const getFirstKeyWithRelation = async (
63
+ {
64
+ identifier,
65
+ offlineWhenNoDIDRegistered,
66
+ noVerificationMethodFallback,
67
+ keyType,
68
+ controllerKey,
69
+ vmRelationship,
70
+ }: {
71
+ identifier: IIdentifier
72
+ keyType?: TKeyType
73
+ offlineWhenNoDIDRegistered?: boolean
74
+ noVerificationMethodFallback?: boolean
75
+ controllerKey?: boolean
76
+ vmRelationship: DIDDocumentSection
77
+ },
78
+ context: IAgentContext<IResolver & IDIDManager>
79
+ ): Promise<_ExtendedIKey> => {
49
80
  let key: _ExtendedIKey | undefined = undefined
50
81
  try {
51
82
  key =
52
- (await getFirstKeyWithRelation(identifier, context, 'authentication', false)) ??
53
- (noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false))
83
+ (await getFirstKeyWithRelationFromDIDDoc(
84
+ {
85
+ identifier,
86
+ vmRelationship,
87
+ errorOnNotFound: false,
88
+ keyType,
89
+ controllerKey,
90
+ },
91
+ context
92
+ )) ??
93
+ (noVerificationMethodFallback
94
+ ? undefined
95
+ : await getFirstKeyWithRelationFromDIDDoc(
96
+ {
97
+ identifier,
98
+ vmRelationship: 'verificationMethod',
99
+ errorOnNotFound: false,
100
+ keyType,
101
+ controllerKey,
102
+ },
103
+ context
104
+ ))
54
105
  } catch (e) {
55
106
  if (e instanceof Error) {
56
107
  if (!e.message.includes('404') || !offlineWhenNoDIDRegistered) {
57
- throw e;
108
+ throw e
58
109
  }
59
110
  } else {
60
- throw e;
111
+ throw e
61
112
  }
62
113
  }
63
114
  if (!key && offlineWhenNoDIDRegistered) {
64
115
  const offlineDID = toDidDocument(identifier)
65
116
  key =
66
- (await getFirstKeyWithRelation(identifier, context, 'authentication', false, offlineDID)) ??
67
- (noVerificationMethodFallback ? undefined : await getFirstKeyWithRelation(identifier, context, 'verificationMethod', false, offlineDID))
117
+ (await getFirstKeyWithRelationFromDIDDoc(
118
+ {
119
+ identifier,
120
+ vmRelationship,
121
+ errorOnNotFound: false,
122
+ didDocument: offlineDID,
123
+ keyType,
124
+ controllerKey,
125
+ },
126
+ context
127
+ )) ??
128
+ (noVerificationMethodFallback
129
+ ? undefined
130
+ : await getFirstKeyWithRelationFromDIDDoc(
131
+ {
132
+ identifier,
133
+ vmRelationship: 'verificationMethod',
134
+ errorOnNotFound: false,
135
+ didDocument: offlineDID,
136
+ keyType,
137
+ controllerKey,
138
+ },
139
+ context
140
+ ))
68
141
  if (!key) {
69
142
  key = identifier.keys
70
143
  .map((key) => key as _ExtendedIKey)
144
+ .filter((key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId))
71
145
  .find((key) => key.meta.verificationMethod?.type.includes('authentication') || key.meta.purposes?.includes('authentication'))
72
146
  }
73
147
  }
@@ -77,8 +151,11 @@ export const getAuthenticationKey = async (identifier: IIdentifier,
77
151
  return key
78
152
  }
79
153
 
80
- export const getOrCreatePrimaryIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateOrGetIdentifierOpts): Promise<GetOrCreateResult<IIdentifier>> => {
81
- const primaryIdentifier = await getPrimaryIdentifier(context, opts?.createOpts?.options)
154
+ export const getOrCreatePrimaryIdentifier = async (
155
+ context: IAgentContext<IDIDManager>,
156
+ opts?: CreateOrGetIdentifierOpts
157
+ ): Promise<GetOrCreateResult<IIdentifier>> => {
158
+ const primaryIdentifier = await getPrimaryIdentifier(context, { ...opts?.createOpts?.options, ...(opts?.method && { method: opts.method }) })
82
159
  if (primaryIdentifier !== undefined) {
83
160
  return {
84
161
  created: false,
@@ -99,49 +176,65 @@ export const getOrCreatePrimaryIdentifier = async (context: IAgentContext<IDIDMa
99
176
  }
100
177
 
101
178
  export const getPrimaryIdentifier = async (context: IAgentContext<IDIDManager>, opts?: IdentifierProviderOpts): Promise<IIdentifier | undefined> => {
102
- const identifiers = (await context.agent.didManagerFind(opts?.method ? { provider: `${DID_PREFIX}:${opts?.method}` } : {})).filter(
103
- (identifier: IIdentifier) =>
104
- opts?.type === undefined || identifier.keys.some((key: IKey) => key.type === opts?.type),
179
+ const identifiers = (await context.agent.didManagerFind(opts?.method ? { provider: `${DID_PREFIX}${opts?.method}` } : {})).filter(
180
+ (identifier: IIdentifier) => opts?.type === undefined || identifier.keys.some((key: IKey) => key.type === opts?.type)
105
181
  )
106
182
 
107
- return (identifiers && identifiers.length > 0) ? identifiers[0] : undefined
183
+ return identifiers && identifiers.length > 0 ? identifiers[0] : undefined
108
184
  }
109
185
 
110
186
  export const createIdentifier = async (context: IAgentContext<IDIDManager>, opts?: CreateIdentifierOpts): Promise<IIdentifier> => {
111
187
  const identifier = await context.agent.didManagerCreate({
112
188
  kms: opts?.createOpts?.kms ?? KeyManagementSystemEnum.LOCAL,
113
- ...(opts?.method && { provider: `${DID_PREFIX}:${opts?.method}` }),
189
+ ...(opts?.method && { provider: `${DID_PREFIX}${opts?.method}` }),
114
190
  alias: opts?.createOpts?.alias ?? `${IdentifierAliasEnum.PRIMARY}-${opts?.method}-${opts?.createOpts?.options?.type}-${new Date().toUTCString()}`,
115
191
  options: opts?.createOpts?.options,
116
192
  })
117
193
  return identifier
118
194
  }
119
195
 
120
- export const getFirstKeyWithRelation = async (
121
- identifier: IIdentifier,
122
- context: IAgentContext<IResolver & IDIDManager>,
123
- vmRelationship?: DIDDocumentSection,
124
- errorOnNotFound?: boolean,
125
- didDocument?: DIDDocument
196
+ export const getFirstKeyWithRelationFromDIDDoc = async (
197
+ {
198
+ identifier,
199
+ vmRelationship = 'verificationMethod',
200
+ keyType,
201
+ errorOnNotFound = false,
202
+ didDocument,
203
+ controllerKey,
204
+ }: {
205
+ identifier: IIdentifier
206
+ controllerKey?: boolean
207
+ vmRelationship?: DIDDocumentSection
208
+ keyType?: TKeyType
209
+ errorOnNotFound?: boolean
210
+ didDocument?: DIDDocument
211
+ },
212
+ context: IAgentContext<IResolver & IDIDManager>
126
213
  ): Promise<_ExtendedIKey | undefined> => {
127
- const section = vmRelationship ?? 'verificationMethod' // search all VMs in case no relationship is provided
128
- const matchedKeys = await mapIdentifierKeysToDocWithJwkSupport(identifier, section, context, didDocument)
214
+ const matchedKeys = await mapIdentifierKeysToDocWithJwkSupport({ identifier, vmRelationship, didDocument }, context)
129
215
  if (Array.isArray(matchedKeys) && matchedKeys.length > 0) {
130
- return matchedKeys[0]
216
+ const result = matchedKeys.find(
217
+ (key) => keyType === undefined || key.type === keyType || (controllerKey && key.kid === identifier.controllerKeyId)
218
+ )
219
+ if (result) {
220
+ return result
221
+ }
131
222
  }
132
- if (errorOnNotFound === true) {
133
- throw new Error(`Could not find key with relationship ${section} in DID document for ${identifier.did}`)
223
+ if (errorOnNotFound) {
224
+ throw new Error(
225
+ `Could not find key with relationship ${vmRelationship} in DID document for ${identifier.did}${keyType ? ' and key type: ' + keyType : ''}`
226
+ )
134
227
  }
135
228
  return undefined
136
229
  }
137
230
 
138
231
  export const getEthereumAddressFromKey = ({ key }: { key: IKey }) => {
139
232
  if (key.type !== 'Secp256k1') {
140
- throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for kid: ${key.kid}`)
233
+ throw Error(`Can only get ethereum address from a Secp256k1 key. Type is ${key.type} for keyRef: ${key.kid}`)
141
234
  }
142
235
  const ethereumAddress = key.meta?.ethereumAddress ?? key.meta?.account?.toLowerCase() ?? computeAddress(`0x${key.publicKeyHex}`).toLowerCase()
143
236
  if (!ethereumAddress) {
144
- throw Error(`Could not get or generate ethereum address from key ${key.kid}`)
237
+ throw Error(`Could not get or generate ethereum address from key with keyRef ${key.kid}`)
145
238
  }
146
239
  return ethereumAddress
147
240
  }
@@ -158,12 +251,12 @@ export const getKeys = ({
158
251
  jwkThumbprint,
159
252
  kms,
160
253
  identifier,
161
- kid,
254
+ kmsKeyRef,
162
255
  keyType,
163
256
  controllerKey,
164
257
  }: {
165
258
  identifier: IIdentifier
166
- kid?: string
259
+ kmsKeyRef?: string
167
260
  keyType?: TKeyType
168
261
  kms?: string
169
262
  jwkThumbprint?: string
@@ -172,7 +265,7 @@ export const getKeys = ({
172
265
  return identifier.keys
173
266
  .filter((key) => !keyType || key.type === keyType)
174
267
  .filter((key) => !kms || key.kms === kms)
175
- .filter((key) => !kid || key.kid === kid)
268
+ .filter((key) => !kmsKeyRef || key.kid === kmsKeyRef)
176
269
  .filter((key) => !jwkThumbprint || key.meta?.jwkThumbprint === jwkThumbprint)
177
270
  .filter((key) => !controllerKey || identifier.controllerKeyId === key.kid)
178
271
  }
@@ -331,6 +424,7 @@ function extractPublicKeyBytes(pk: VerificationMethod): Uint8Array {
331
424
  * @param section - the section of the DID document to be mapped (see
332
425
  * {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships}), but can also be
333
426
  * `verificationMethod` to map all the keys.
427
+ * @param didDocument
334
428
  * @param context - the veramo agent context, which must contain a {@link @veramo/core#IResolver | IResolver}
335
429
  * implementation that can resolve the DID document of the identifier.
336
430
  *
@@ -340,10 +434,16 @@ function extractPublicKeyBytes(pk: VerificationMethod): Uint8Array {
340
434
  * @beta This API may change without a BREAKING CHANGE notice.
341
435
  */
342
436
  export async function mapIdentifierKeysToDocWithJwkSupport(
343
- identifier: IIdentifier,
344
- section: DIDDocumentSection = 'keyAgreement',
345
- context: IAgentContext<IResolver & IDIDManager>,
346
- didDocument?: DIDDocument
437
+ {
438
+ identifier,
439
+ vmRelationship = 'verificationMethod',
440
+ didDocument,
441
+ }: {
442
+ identifier: IIdentifier
443
+ vmRelationship?: DIDDocumentSection
444
+ didDocument?: DIDDocument
445
+ },
446
+ context: IAgentContext<IResolver & IDIDManager>
347
447
  ): Promise<_ExtendedIKey[]> {
348
448
  const didDoc =
349
449
  didDocument ??
@@ -357,19 +457,19 @@ export async function mapIdentifierKeysToDocWithJwkSupport(
357
457
  // const rsaDidWeb = identifier.keys && identifier.keys.length > 0 && identifier.keys.find((key) => key.type === 'RSA') && didDocument
358
458
 
359
459
  // We skip mapping in case the identifier is RSA and a did document is supplied.
360
- const keys = didDoc ? [] : await mapIdentifierKeysToDoc(identifier, section, context)
460
+ const keys = didDoc ? [] : await mapIdentifierKeysToDoc(identifier, vmRelationship, context)
361
461
 
362
462
  // dereference all key agreement keys from DID document and normalize
363
- const documentKeys: VerificationMethod[] = await dereferenceDidKeysWithJwkSupport(didDoc, section, context)
463
+ const documentKeys: VerificationMethod[] = await dereferenceDidKeysWithJwkSupport(didDoc, vmRelationship, context)
364
464
 
365
- const localKeys = section === 'keyAgreement' ? convertIdentifierEncryptionKeys(identifier) : compressIdentifierSecp256k1Keys(identifier)
465
+ const localKeys = vmRelationship === 'keyAgreement' ? convertIdentifierEncryptionKeys(identifier) : compressIdentifierSecp256k1Keys(identifier)
366
466
 
367
467
  // finally map the didDocument keys to the identifier keys by comparing `publicKeyHex`
368
468
  const extendedKeys: _ExtendedIKey[] = documentKeys
369
469
  .map((verificationMethod) => {
370
470
  /*if (verificationMethod.type !== 'JsonWebKey2020') {
371
- return null
372
- }*/
471
+ return null
472
+ }*/
373
473
  const localKey = localKeys.find(
374
474
  (localKey) =>
375
475
  localKey.publicKeyHex === verificationMethod.publicKeyHex ||
@@ -455,32 +555,38 @@ export function toDIDs(identifiers?: (string | IIdentifier | Partial<IIdentifier
455
555
  }
456
556
 
457
557
  export async function getKey(
458
- identifier: IIdentifier,
459
- verificationMethodSection: DIDDocumentSection = 'authentication',
460
- context: IAgentContext<IResolver & IDIDManager>,
461
- keyId?: string
558
+ {
559
+ identifier,
560
+ vmRelationship = 'authentication',
561
+ kmsKeyRef,
562
+ }: {
563
+ identifier: IIdentifier
564
+ vmRelationship?: DIDDocumentSection
565
+ kmsKeyRef?: string
566
+ },
567
+ context: IAgentContext<IResolver & IDIDManager>
462
568
  ): Promise<IKey> {
463
569
  if (!identifier) {
464
570
  return Promise.reject(new Error(`No identifier provided to getKey method!`))
465
571
  }
466
572
  // normalize to kid, in case keyId was passed in as did#vm or #vm
467
- const kidVals = keyId?.split(`#`)
468
- const kid = kidVals ? (kidVals?.length === 2 ? kidVals[1] : kidVals[0]) : undefined
469
- let identifierKey = keyId ? identifier.keys.find((key: IKey) => key.kid === kid || key?.meta?.jwkThumbprint === kid) : undefined
573
+ const kmsKeyRefParts = kmsKeyRef?.split(`#`)
574
+ const kid = kmsKeyRefParts ? (kmsKeyRefParts?.length === 2 ? kmsKeyRefParts[1] : kmsKeyRefParts[0]) : undefined
575
+ // todo: We really should do a keyRef and external kid here
576
+ let identifierKey = kmsKeyRef ? identifier.keys.find((key: IKey) => key.kid === kid || key?.meta?.jwkThumbprint === kid) : undefined
470
577
  if (!identifierKey) {
471
- const keys = await mapIdentifierKeysToDocWithJwkSupport(identifier, verificationMethodSection, context)
578
+ const keys = await mapIdentifierKeysToDocWithJwkSupport({ identifier, vmRelationship: vmRelationship }, context)
472
579
  if (!keys || keys.length === 0) {
473
- throw new Error(`No keys found for verificationMethodSection: ${verificationMethodSection} and did ${identifier.did}`)
580
+ throw new Error(`No keys found for verificationMethodSection: ${vmRelationship} and did ${identifier.did}`)
474
581
  }
475
- if (keyId) {
582
+ if (kmsKeyRef) {
476
583
  identifierKey = keys.find(
477
- (key: _ExtendedIKey) => key.meta.verificationMethod?.id === keyId || (kid && key.meta.verificationMethod?.id?.includes(kid))
584
+ (key: _ExtendedIKey) => key.meta.verificationMethod?.id === kmsKeyRef || (kid && key.meta.verificationMethod?.id?.includes(kid))
478
585
  )
479
586
  }
480
587
  if (!identifierKey) {
481
588
  identifierKey = keys.find(
482
- (key: _ExtendedIKey) =>
483
- key.meta.verificationMethod?.type === verificationMethodSection || key.meta.purposes?.includes(verificationMethodSection)
589
+ (key: _ExtendedIKey) => key.meta.verificationMethod?.type === vmRelationship || key.meta.purposes?.includes(vmRelationship)
484
590
  )
485
591
  }
486
592
  if (!identifierKey) {
@@ -489,7 +595,7 @@ export async function getKey(
489
595
  }
490
596
  if (!identifierKey) {
491
597
  throw new Error(
492
- `No matching verificationMethodSection key found for keyId: ${keyId} and vmSection: ${verificationMethodSection} for id ${identifier.did}`
598
+ `No matching verificationMethodSection key found for keyId: ${kmsKeyRef} and vmSection: ${vmRelationship} for id ${identifier.did}`
493
599
  )
494
600
  }
495
601
 
@@ -501,8 +607,33 @@ export async function getKey(
501
607
  * @param key
502
608
  * @param idOpts
503
609
  */
504
- export function determineKid(key: IKey, idOpts: IIdentifierOpts): string {
505
- return key.meta?.verificationMethod?.id ?? key.meta?.jwkThumbprint ?? idOpts.kid ?? key.kid
610
+ export async function determineKid(
611
+ {
612
+ key,
613
+ idOpts,
614
+ }: {
615
+ key: IKey
616
+ idOpts: IIdentifierOpts
617
+ },
618
+ context: IAgentContext<IResolver & IDIDManager>
619
+ ): Promise<string> {
620
+ if (key.meta?.verificationMethod?.id) {
621
+ return key.meta?.verificationMethod?.id
622
+ }
623
+ const identifier = await getIdentifier(idOpts, context)
624
+ const mappedKeys = await mapIdentifierKeysToDocWithJwkSupport(
625
+ {
626
+ identifier,
627
+ vmRelationship: 'verificationMethod',
628
+ },
629
+ context
630
+ )
631
+ const vmKey = mappedKeys.find((extendedKey) => extendedKey.kid === key.kid)
632
+ if (vmKey) {
633
+ return vmKey.meta?.verificationMethod?.id ?? vmKey.meta?.jwkThumbprint ?? idOpts.kmsKeyRef ?? vmKey.kid
634
+ }
635
+
636
+ return key.meta?.jwkThumbprint ?? idOpts.kmsKeyRef ?? key.kid
506
637
  }
507
638
 
508
639
  export async function getSupportedDIDMethods(didOpts: IDIDOptions, context: IAgentContext<IDIDManager>) {
@@ -610,7 +741,7 @@ export class AgentDIDResolver implements Resolvable {
610
741
  *
611
742
  * We try to do our best, to map keys onto relevant verification methods and relationships, but we simply lack the context
612
743
  * of the actual DID method here. Do not relly on this method for DID resolution. It is only handy for offline use cases
613
- * when no DID Document is cached.
744
+ * when no DID Document is cached. For DID:WEB it does provide an accurate representation!
614
745
  *
615
746
  * @param identifier
616
747
  * @param opts
@@ -623,6 +754,7 @@ export function toDidDocument(
623
754
  }
624
755
  ): DIDDocument | undefined {
625
756
  let didDocument: DIDDocument | undefined = undefined
757
+ // TODO: Introduce jwk thumbprints here
626
758
  if (identifier) {
627
759
  const did = identifier.did ?? opts?.did
628
760
  didDocument = {
@@ -640,43 +772,63 @@ export function toDidDocument(
640
772
  }
641
773
  return vm
642
774
  }),
643
- ...((!opts?.use || opts?.use?.includes(JwkKeyUse.Signature)) &&
775
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Signature)) &&
644
776
  identifier.keys && {
645
777
  assertionMethod: identifier.keys
646
- .filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'assertionMethod')
778
+ .filter(
779
+ (key) =>
780
+ key?.meta?.purpose === undefined || key?.meta?.purpose === 'assertionMethod' || key?.meta?.purposes?.includes('assertionMethod')
781
+ )
647
782
  .map((key) => {
783
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
784
+ return key.kid
785
+ }
648
786
  return `${did}#${key.kid}`
649
787
  }),
788
+ }),
789
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Signature)) &&
790
+ identifier.keys && {
650
791
  authentication: identifier.keys
651
- .filter((key) => key?.meta?.purpose || key?.meta?.purpose === 'authentication')
792
+ .filter(
793
+ (key) => key?.meta?.purpose === undefined || key?.meta?.purpose === 'authentication' || key?.meta?.purposes?.includes('authentication')
794
+ )
652
795
  .map((key) => {
796
+ if (key.kid.startsWith(did) && key.kid.includes('#')) {
797
+ return key.kid
798
+ }
653
799
  return `${did}#${key.kid}`
654
800
  }),
655
801
  }),
656
- ...((!opts?.use || opts?.use?.includes(JwkKeyUse.Encryption)) &&
802
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
657
803
  identifier.keys && {
658
804
  keyAgreement: identifier.keys
659
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'keyAgreement')
805
+ .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'keyAgreement' || key?.meta?.purposes?.includes('keyAgreement'))
660
806
  .map((key) => {
661
807
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
662
808
  return key.kid
663
809
  }
664
810
  return `${did}#${key.kid}`
665
811
  }),
666
- } &&
812
+ }),
813
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
667
814
  identifier.keys && {
668
815
  capabilityInvocation: identifier.keys
669
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityInvocation')
816
+ .filter(
817
+ (key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityInvocation' || key?.meta?.purposes?.includes('capabilityInvocation')
818
+ )
670
819
  .map((key) => {
671
820
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
672
821
  return key.kid
673
822
  }
674
823
  return `${did}#${key.kid}`
675
824
  }),
676
- } &&
825
+ }),
826
+ ...((opts?.use === undefined || opts?.use?.includes(JwkKeyUse.Encryption)) &&
677
827
  identifier.keys && {
678
828
  capabilityDelegation: identifier.keys
679
- .filter((key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityDelegation')
829
+ .filter(
830
+ (key) => key.type === 'X25519' || key?.meta?.purpose === 'capabilityDelegation' || key?.meta?.purposes?.includes('capabilityDelegation')
831
+ )
680
832
  .map((key) => {
681
833
  if (key.kid.startsWith(did) && key.kid.includes('#')) {
682
834
  return key.kid
package/src/types.ts CHANGED
@@ -37,12 +37,13 @@ export interface IDIDOptions {
37
37
  export interface IIdentifierOpts {
38
38
  identifier: IIdentifier | string
39
39
  verificationMethodSection?: DIDDocumentSection
40
- kid?: string
40
+ kmsKeyRef?: string
41
41
  }
42
42
 
43
43
  export type IdentifierProviderOpts = {
44
44
  type?: TKeyType
45
45
  use?: string
46
+ method?: SupportedDidMethodEnum
46
47
  [x: string]: any
47
48
  }
48
49