@kya-os/mcp 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README.md +219 -3
  3. package/dist/card/build.d.ts +41 -0
  4. package/dist/card/build.d.ts.map +1 -0
  5. package/dist/card/build.js +47 -0
  6. package/dist/card/build.js.map +1 -0
  7. package/dist/card/builder.d.ts +99 -0
  8. package/dist/card/builder.d.ts.map +1 -0
  9. package/dist/card/builder.js +147 -0
  10. package/dist/card/builder.js.map +1 -0
  11. package/dist/card/cimd.d.ts +92 -0
  12. package/dist/card/cimd.d.ts.map +1 -0
  13. package/dist/card/cimd.js +225 -0
  14. package/dist/card/cimd.js.map +1 -0
  15. package/dist/card/delegation.d.ts +145 -0
  16. package/dist/card/delegation.d.ts.map +1 -0
  17. package/dist/card/delegation.js +293 -0
  18. package/dist/card/delegation.js.map +1 -0
  19. package/dist/card/emit.d.ts +133 -0
  20. package/dist/card/emit.d.ts.map +1 -0
  21. package/dist/card/emit.js +127 -0
  22. package/dist/card/emit.js.map +1 -0
  23. package/dist/card/index.d.ts +43 -0
  24. package/dist/card/index.d.ts.map +1 -0
  25. package/dist/card/index.js +46 -0
  26. package/dist/card/index.js.map +1 -0
  27. package/dist/card/middleware.d.ts +112 -0
  28. package/dist/card/middleware.d.ts.map +1 -0
  29. package/dist/card/middleware.js +121 -0
  30. package/dist/card/middleware.js.map +1 -0
  31. package/dist/card/proof/build.d.ts +22 -0
  32. package/dist/card/proof/build.d.ts.map +1 -0
  33. package/dist/card/proof/build.js +55 -0
  34. package/dist/card/proof/build.js.map +1 -0
  35. package/dist/card/proof/canonical.d.ts +66 -0
  36. package/dist/card/proof/canonical.d.ts.map +1 -0
  37. package/dist/card/proof/canonical.js +131 -0
  38. package/dist/card/proof/canonical.js.map +1 -0
  39. package/dist/card/proof/http-sig.d.ts +69 -0
  40. package/dist/card/proof/http-sig.d.ts.map +1 -0
  41. package/dist/card/proof/http-sig.js +101 -0
  42. package/dist/card/proof/http-sig.js.map +1 -0
  43. package/dist/card/proof/index.d.ts +25 -0
  44. package/dist/card/proof/index.d.ts.map +1 -0
  45. package/dist/card/proof/index.js +25 -0
  46. package/dist/card/proof/index.js.map +1 -0
  47. package/dist/card/proof/nonce-cache.d.ts +67 -0
  48. package/dist/card/proof/nonce-cache.d.ts.map +1 -0
  49. package/dist/card/proof/nonce-cache.js +88 -0
  50. package/dist/card/proof/nonce-cache.js.map +1 -0
  51. package/dist/card/proof/signer.d.ts +32 -0
  52. package/dist/card/proof/signer.d.ts.map +1 -0
  53. package/dist/card/proof/signer.js +59 -0
  54. package/dist/card/proof/signer.js.map +1 -0
  55. package/dist/card/proof/types.d.ts +219 -0
  56. package/dist/card/proof/types.d.ts.map +1 -0
  57. package/dist/card/proof/types.js +87 -0
  58. package/dist/card/proof/types.js.map +1 -0
  59. package/dist/card/proof/verify.d.ts +27 -0
  60. package/dist/card/proof/verify.d.ts.map +1 -0
  61. package/dist/card/proof/verify.js +236 -0
  62. package/dist/card/proof/verify.js.map +1 -0
  63. package/dist/card/resolve.d.ts +97 -0
  64. package/dist/card/resolve.d.ts.map +1 -0
  65. package/dist/card/resolve.js +223 -0
  66. package/dist/card/resolve.js.map +1 -0
  67. package/dist/card/revocation.d.ts +96 -0
  68. package/dist/card/revocation.d.ts.map +1 -0
  69. package/dist/card/revocation.js +190 -0
  70. package/dist/card/revocation.js.map +1 -0
  71. package/dist/card/schema.d.ts +177 -0
  72. package/dist/card/schema.d.ts.map +1 -0
  73. package/dist/card/schema.js +119 -0
  74. package/dist/card/schema.js.map +1 -0
  75. package/dist/card/verify.d.ts +144 -0
  76. package/dist/card/verify.d.ts.map +1 -0
  77. package/dist/card/verify.js +132 -0
  78. package/dist/card/verify.js.map +1 -0
  79. package/dist/delegation/bitstring.d.ts +9 -7
  80. package/dist/delegation/bitstring.d.ts.map +1 -1
  81. package/dist/delegation/bitstring.js +70 -37
  82. package/dist/delegation/bitstring.js.map +1 -1
  83. package/dist/delegation/did-linkage.d.ts +23 -0
  84. package/dist/delegation/did-linkage.d.ts.map +1 -0
  85. package/dist/delegation/did-linkage.js +57 -0
  86. package/dist/delegation/did-linkage.js.map +1 -0
  87. package/dist/delegation/did-resolver-registry.d.ts +7 -0
  88. package/dist/delegation/did-resolver-registry.d.ts.map +1 -0
  89. package/dist/delegation/did-resolver-registry.js +20 -0
  90. package/dist/delegation/did-resolver-registry.js.map +1 -0
  91. package/dist/delegation/did-web-resolver.d.ts +29 -18
  92. package/dist/delegation/did-web-resolver.d.ts.map +1 -1
  93. package/dist/delegation/did-web-resolver.js +65 -35
  94. package/dist/delegation/did-web-resolver.js.map +1 -1
  95. package/dist/delegation/index.d.ts +3 -0
  96. package/dist/delegation/index.d.ts.map +1 -1
  97. package/dist/delegation/index.js +3 -0
  98. package/dist/delegation/index.js.map +1 -1
  99. package/dist/delegation/statuslist-manager.d.ts.map +1 -1
  100. package/dist/delegation/statuslist-manager.js +16 -1
  101. package/dist/delegation/statuslist-manager.js.map +1 -1
  102. package/dist/delegation/vc-jwt-verify.d.ts +61 -0
  103. package/dist/delegation/vc-jwt-verify.d.ts.map +1 -0
  104. package/dist/delegation/vc-jwt-verify.js +131 -0
  105. package/dist/delegation/vc-jwt-verify.js.map +1 -0
  106. package/dist/delegation/vc-verification-checks.d.ts +50 -0
  107. package/dist/delegation/vc-verification-checks.d.ts.map +1 -0
  108. package/dist/delegation/vc-verification-checks.js +212 -0
  109. package/dist/delegation/vc-verification-checks.js.map +1 -0
  110. package/dist/delegation/vc-verifier.d.ts +24 -61
  111. package/dist/delegation/vc-verifier.d.ts.map +1 -1
  112. package/dist/delegation/vc-verifier.js +57 -180
  113. package/dist/delegation/vc-verifier.js.map +1 -1
  114. package/dist/delegation/vc-verifier.types.d.ts +88 -0
  115. package/dist/delegation/vc-verifier.types.d.ts.map +1 -0
  116. package/dist/delegation/vc-verifier.types.js +9 -0
  117. package/dist/delegation/vc-verifier.types.js.map +1 -0
  118. package/dist/index.d.ts +3 -1
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +2 -0
  121. package/dist/index.js.map +1 -1
  122. package/dist/integrations/cheqd/dlr.d.ts +44 -0
  123. package/dist/integrations/cheqd/dlr.d.ts.map +1 -0
  124. package/dist/integrations/cheqd/dlr.js +86 -0
  125. package/dist/integrations/cheqd/dlr.js.map +1 -0
  126. package/dist/integrations/cheqd/index.d.ts +5 -0
  127. package/dist/integrations/cheqd/index.d.ts.map +1 -0
  128. package/dist/integrations/cheqd/index.js +5 -0
  129. package/dist/integrations/cheqd/index.js.map +1 -0
  130. package/dist/integrations/cheqd/linkage.d.ts +20 -0
  131. package/dist/integrations/cheqd/linkage.d.ts.map +1 -0
  132. package/dist/integrations/cheqd/linkage.js +32 -0
  133. package/dist/integrations/cheqd/linkage.js.map +1 -0
  134. package/dist/integrations/cheqd/registrar.d.ts +85 -0
  135. package/dist/integrations/cheqd/registrar.d.ts.map +1 -0
  136. package/dist/integrations/cheqd/registrar.js +304 -0
  137. package/dist/integrations/cheqd/registrar.js.map +1 -0
  138. package/dist/integrations/cheqd/resolver.d.ts +38 -0
  139. package/dist/integrations/cheqd/resolver.d.ts.map +1 -0
  140. package/dist/integrations/cheqd/resolver.js +156 -0
  141. package/dist/integrations/cheqd/resolver.js.map +1 -0
  142. package/dist/middleware/index.d.ts +2 -0
  143. package/dist/middleware/index.d.ts.map +1 -1
  144. package/dist/middleware/index.js +5 -0
  145. package/dist/middleware/index.js.map +1 -1
  146. package/dist/middleware/with-kya-os.config-types.d.ts +139 -0
  147. package/dist/middleware/with-kya-os.config-types.d.ts.map +1 -0
  148. package/dist/middleware/with-kya-os.config-types.js +9 -0
  149. package/dist/middleware/with-kya-os.config-types.js.map +1 -0
  150. package/dist/middleware/with-kya-os.d.ts +3 -267
  151. package/dist/middleware/with-kya-os.d.ts.map +1 -1
  152. package/dist/middleware/with-kya-os.delegation-gate.d.ts +19 -0
  153. package/dist/middleware/with-kya-os.delegation-gate.d.ts.map +1 -0
  154. package/dist/middleware/with-kya-os.delegation-gate.js +175 -0
  155. package/dist/middleware/with-kya-os.delegation-gate.js.map +1 -0
  156. package/dist/middleware/with-kya-os.delegation-verify.d.ts +51 -0
  157. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -0
  158. package/dist/middleware/with-kya-os.delegation-verify.js +165 -0
  159. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -0
  160. package/dist/middleware/with-kya-os.deps.d.ts +40 -0
  161. package/dist/middleware/with-kya-os.deps.d.ts.map +1 -0
  162. package/dist/middleware/with-kya-os.deps.js +9 -0
  163. package/dist/middleware/with-kya-os.deps.js.map +1 -0
  164. package/dist/middleware/with-kya-os.grants.d.ts +30 -0
  165. package/dist/middleware/with-kya-os.grants.d.ts.map +1 -0
  166. package/dist/middleware/with-kya-os.grants.js +145 -0
  167. package/dist/middleware/with-kya-os.grants.js.map +1 -0
  168. package/dist/middleware/with-kya-os.helpers.d.ts +24 -0
  169. package/dist/middleware/with-kya-os.helpers.d.ts.map +1 -0
  170. package/dist/middleware/with-kya-os.helpers.js +57 -0
  171. package/dist/middleware/with-kya-os.helpers.js.map +1 -0
  172. package/dist/middleware/with-kya-os.js +45 -891
  173. package/dist/middleware/with-kya-os.js.map +1 -1
  174. package/dist/middleware/with-kya-os.policy-gate.d.ts +16 -0
  175. package/dist/middleware/with-kya-os.policy-gate.d.ts.map +1 -0
  176. package/dist/middleware/with-kya-os.policy-gate.js +98 -0
  177. package/dist/middleware/with-kya-os.policy-gate.js.map +1 -0
  178. package/dist/middleware/with-kya-os.protocol.d.ts +29 -0
  179. package/dist/middleware/with-kya-os.protocol.d.ts.map +1 -0
  180. package/dist/middleware/with-kya-os.protocol.js +121 -0
  181. package/dist/middleware/with-kya-os.protocol.js.map +1 -0
  182. package/dist/middleware/with-kya-os.session.d.ts +32 -0
  183. package/dist/middleware/with-kya-os.session.d.ts.map +1 -0
  184. package/dist/middleware/with-kya-os.session.js +201 -0
  185. package/dist/middleware/with-kya-os.session.js.map +1 -0
  186. package/dist/middleware/with-kya-os.types.d.ts +178 -0
  187. package/dist/middleware/with-kya-os.types.d.ts.map +1 -0
  188. package/dist/middleware/with-kya-os.types.js +13 -0
  189. package/dist/middleware/with-kya-os.types.js.map +1 -0
  190. package/dist/providers/runtime-fetch.d.ts +8 -0
  191. package/dist/providers/runtime-fetch.d.ts.map +1 -1
  192. package/dist/providers/runtime-fetch.js +17 -0
  193. package/dist/providers/runtime-fetch.js.map +1 -1
  194. package/dist/providers/web-crypto.d.ts.map +1 -1
  195. package/dist/providers/web-crypto.js +15 -7
  196. package/dist/providers/web-crypto.js.map +1 -1
  197. package/dist/utils/guards.d.ts +2 -0
  198. package/dist/utils/guards.d.ts.map +1 -0
  199. package/dist/utils/guards.js +4 -0
  200. package/dist/utils/guards.js.map +1 -0
  201. package/dist/utils/index.d.ts +3 -0
  202. package/dist/utils/index.d.ts.map +1 -1
  203. package/dist/utils/index.js +3 -0
  204. package/dist/utils/index.js.map +1 -1
  205. package/dist/utils/ip-classifier.d.ts +12 -0
  206. package/dist/utils/ip-classifier.d.ts.map +1 -0
  207. package/dist/utils/ip-classifier.js +153 -0
  208. package/dist/utils/ip-classifier.js.map +1 -0
  209. package/dist/utils/safe-fetch-transports.d.ts +40 -0
  210. package/dist/utils/safe-fetch-transports.d.ts.map +1 -0
  211. package/dist/utils/safe-fetch-transports.js +121 -0
  212. package/dist/utils/safe-fetch-transports.js.map +1 -0
  213. package/dist/utils/safe-fetch-types.d.ts +66 -0
  214. package/dist/utils/safe-fetch-types.d.ts.map +1 -0
  215. package/dist/utils/safe-fetch-types.js +10 -0
  216. package/dist/utils/safe-fetch-types.js.map +1 -0
  217. package/dist/utils/safe-fetch.d.ts +40 -0
  218. package/dist/utils/safe-fetch.d.ts.map +1 -0
  219. package/dist/utils/safe-fetch.js +188 -0
  220. package/dist/utils/safe-fetch.js.map +1 -0
  221. package/dist/utils/statuslist-purpose.d.ts +12 -0
  222. package/dist/utils/statuslist-purpose.d.ts.map +1 -0
  223. package/dist/utils/statuslist-purpose.js +19 -0
  224. package/dist/utils/statuslist-purpose.js.map +1 -0
  225. package/dist/utils/url.d.ts +2 -0
  226. package/dist/utils/url.d.ts.map +1 -0
  227. package/dist/utils/url.js +8 -0
  228. package/dist/utils/url.js.map +1 -0
  229. package/package.json +25 -5
  230. package/schemas/README.md +2 -1
  231. package/schemas/card-delegation-credential.json +239 -0
  232. package/schemas/kya-os-card.schema.json +284 -0
@@ -0,0 +1,44 @@
1
+ import type { CryptoProvider } from '../../providers/base.js';
2
+ import type { CheqdCreateResourceBody } from './registrar.js';
3
+ export declare const CHEQD_DLR_ARTIFACT_TYPES: readonly ["CapabilityManifest", "ConformanceManifest", "AccessHashManifest", "TrustConfigManifest"];
4
+ export type CheqdDlrArtifactType = (typeof CHEQD_DLR_ARTIFACT_TYPES)[number];
5
+ export interface CheqdDlrArtifact {
6
+ id?: string;
7
+ type: CheqdDlrArtifactType;
8
+ version?: string;
9
+ subjectDid: string;
10
+ createdAt?: string;
11
+ contentHash?: string;
12
+ content: unknown;
13
+ name?: string;
14
+ resourceType?: string;
15
+ mediaType?: string;
16
+ metadata?: Record<string, unknown>;
17
+ }
18
+ export interface CheqdDlrReference {
19
+ did: string;
20
+ resourceId?: string;
21
+ resourceName: string;
22
+ resourceType: string;
23
+ url: string;
24
+ }
25
+ export interface PreparedCheqdDlrResource {
26
+ artifact: CheqdDlrArtifact;
27
+ resource: CheqdCreateResourceBody;
28
+ contentHash: string;
29
+ canonicalContent: string;
30
+ }
31
+ export declare function validateCheqdDlrArtifact(artifact: unknown): {
32
+ valid: boolean;
33
+ reason?: string;
34
+ };
35
+ export declare function isSupportedCheqdDlrArtifactType(value: unknown): value is CheqdDlrArtifactType;
36
+ export declare function prepareCheqdDlrResource(artifact: CheqdDlrArtifact, cryptoProvider: CryptoProvider): Promise<PreparedCheqdDlrResource>;
37
+ export declare function buildCheqdDlrReference(options: {
38
+ did: string;
39
+ resolverUrl?: string;
40
+ resourceId?: string;
41
+ resourceName: string;
42
+ resourceType: string;
43
+ }): CheqdDlrReference;
44
+ //# sourceMappingURL=dlr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlr.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/dlr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,eAAO,MAAM,wBAAwB,qGAK3B,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAKD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,OAAO,GAChB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA6BrC;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAG/B;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,wBAAwB,CAAC,CAgCnC;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,iBAAiB,CAoBpB"}
@@ -0,0 +1,86 @@
1
+ import { canonicalize } from 'json-canonicalize';
2
+ import { bytesToBase64 } from '../../utils/base64.js';
3
+ import { isRecord, stripTrailingSlashes } from '../../utils/index.js';
4
+ export const CHEQD_DLR_ARTIFACT_TYPES = [
5
+ 'CapabilityManifest',
6
+ 'ConformanceManifest',
7
+ 'AccessHashManifest',
8
+ 'TrustConfigManifest',
9
+ ];
10
+ const SHA256_HASH_REGEX = /^sha256:[a-f0-9]{64}$/;
11
+ const RESOURCE_ID_REGEX = /^[a-z0-9-]{36}$/;
12
+ export function validateCheqdDlrArtifact(artifact) {
13
+ if (!isRecord(artifact)) {
14
+ return { valid: false, reason: 'DLR artifact must be an object' };
15
+ }
16
+ if (!isSupportedCheqdDlrArtifactType(artifact['type'])) {
17
+ return { valid: false, reason: 'Unsupported DLR artifact type' };
18
+ }
19
+ if (typeof artifact['subjectDid'] !== 'string' || artifact['subjectDid'].trim().length === 0) {
20
+ return { valid: false, reason: 'DLR artifact subjectDid is required' };
21
+ }
22
+ if (artifact['content'] === undefined) {
23
+ return { valid: false, reason: 'DLR artifact content is required' };
24
+ }
25
+ if (artifact['contentHash'] !== undefined &&
26
+ (typeof artifact['contentHash'] !== 'string' || !SHA256_HASH_REGEX.test(artifact['contentHash']))) {
27
+ return { valid: false, reason: 'DLR artifact contentHash must match sha256:<64 hex chars>' };
28
+ }
29
+ if (artifact['id'] !== undefined && (typeof artifact['id'] !== 'string' || !RESOURCE_ID_REGEX.test(artifact['id']))) {
30
+ return { valid: false, reason: 'DLR artifact id must be a 36-character lowercase resource id' };
31
+ }
32
+ return { valid: true };
33
+ }
34
+ export function isSupportedCheqdDlrArtifactType(value) {
35
+ return typeof value === 'string' &&
36
+ CHEQD_DLR_ARTIFACT_TYPES.includes(value);
37
+ }
38
+ export async function prepareCheqdDlrResource(artifact, cryptoProvider) {
39
+ const validation = validateCheqdDlrArtifact(artifact);
40
+ if (!validation.valid) {
41
+ throw new Error(validation.reason ?? 'Invalid DLR artifact');
42
+ }
43
+ const canonicalContent = canonicalize(artifact.content);
44
+ const contentBytes = new TextEncoder().encode(canonicalContent);
45
+ const contentHash = artifact.contentHash ?? await cryptoProvider.hash(contentBytes);
46
+ if (!SHA256_HASH_REGEX.test(contentHash)) {
47
+ throw new Error('DLR content hash must match sha256:<64 hex chars>');
48
+ }
49
+ const normalizedArtifact = {
50
+ ...artifact,
51
+ contentHash,
52
+ };
53
+ return {
54
+ artifact: normalizedArtifact,
55
+ resource: {
56
+ name: artifact.name ?? artifact.type,
57
+ type: artifact.resourceType ?? artifact.type,
58
+ data: bytesToBase64(contentBytes),
59
+ ...(artifact.version ? { version: artifact.version } : {}),
60
+ ...(artifact.mediaType ? { mediaType: artifact.mediaType } : { mediaType: 'application/json' }),
61
+ ...(artifact.metadata ? { metadata: artifact.metadata } : {}),
62
+ },
63
+ contentHash,
64
+ canonicalContent,
65
+ };
66
+ }
67
+ export function buildCheqdDlrReference(options) {
68
+ if (options.resourceId !== undefined && !RESOURCE_ID_REGEX.test(options.resourceId)) {
69
+ throw new Error('resourceId must be a 36-character lowercase resource id');
70
+ }
71
+ const base = stripTrailingSlashes(options.resolverUrl ?? 'https://resolver.cheqd.net');
72
+ const identifiersBase = base.endsWith('/1.0/identifiers')
73
+ ? base
74
+ : `${base}/1.0/identifiers`;
75
+ const url = options.resourceId
76
+ ? `${identifiersBase}/${options.did}/resources/${options.resourceId}`
77
+ : `${identifiersBase}/${options.did}?resourceName=${encodeURIComponent(options.resourceName)}&resourceType=${encodeURIComponent(options.resourceType)}`;
78
+ return {
79
+ did: options.did,
80
+ ...(options.resourceId ? { resourceId: options.resourceId } : {}),
81
+ resourceName: options.resourceName,
82
+ resourceType: options.resourceType,
83
+ url,
84
+ };
85
+ }
86
+ //# sourceMappingURL=dlr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlr.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/dlr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { DidCheqdResolver, cheqdResolver, createDidCheqdResolver, didCheqdToResolverUrl, isDidCheqd, parseDidCheqd, type DidCheqdNetwork, type DidCheqdResolverOptions, type ParsedDidCheqd, } from './resolver.js';
2
+ export { CheqdDidRegistrarClient, createLocalEd25519CheqdRegistrarSigner, type CheqdCreateResourceBody, type CheqdRegistrarClientOptions, type CheqdRegistrarOperation, type CheqdRegistrarResult, type CheqdRegistrarSigner, type CheqdRegistrarSigningRequest, type CheqdRegistrarSigningResponse, type CreateCheqdDidOptions, type CreateCheqdResourceOptions, type LocalCheqdRegistrarSignerOptions, type UpdateCheqdDidOptions, } from './registrar.js';
3
+ export { updateCheqdAlsoKnownAs, type UpdateCheqdAlsoKnownAsOptions, type UpdateCheqdAlsoKnownAsResult, } from './linkage.js';
4
+ export { CHEQD_DLR_ARTIFACT_TYPES, buildCheqdDlrReference, isSupportedCheqdDlrArtifactType, prepareCheqdDlrResource, validateCheqdDlrArtifact, type CheqdDlrArtifact, type CheqdDlrArtifactType, type CheqdDlrReference, type PreparedCheqdDlrResource, } from './dlr.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,uBAAuB,EACvB,sCAAsC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,gCAAgC,EACrC,KAAK,qBAAqB,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,GAClC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,UAAU,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { DidCheqdResolver, cheqdResolver, createDidCheqdResolver, didCheqdToResolverUrl, isDidCheqd, parseDidCheqd, } from './resolver.js';
2
+ export { CheqdDidRegistrarClient, createLocalEd25519CheqdRegistrarSigner, } from './registrar.js';
3
+ export { updateCheqdAlsoKnownAs, } from './linkage.js';
4
+ export { CHEQD_DLR_ARTIFACT_TYPES, buildCheqdDlrReference, isSupportedCheqdDlrArtifactType, prepareCheqdDlrResource, validateCheqdDlrArtifact, } from './dlr.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,EACV,aAAa,GAId,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,uBAAuB,EACvB,sCAAsC,GAYvC,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,GAGvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,GAKzB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { DIDDocument } from '../../delegation/vc-verifier.js';
2
+ import type { CheqdDidRegistrarClient, CheqdRegistrarResult, CheqdRegistrarSigner } from './registrar.js';
3
+ export interface UpdateCheqdAlsoKnownAsOptions {
4
+ didWeb: string;
5
+ didCheqd: string;
6
+ resolver: {
7
+ resolve(did: string): Promise<DIDDocument | null>;
8
+ };
9
+ registrar: CheqdDidRegistrarClient;
10
+ signer: CheqdRegistrarSigner;
11
+ verificationMethodId?: string;
12
+ }
13
+ export interface UpdateCheqdAlsoKnownAsResult {
14
+ changed: boolean;
15
+ didDocument?: DIDDocument;
16
+ registrarResult?: CheqdRegistrarResult;
17
+ reason?: string;
18
+ }
19
+ export declare function updateCheqdAlsoKnownAs(options: UpdateCheqdAlsoKnownAsOptions): Promise<UpdateCheqdAlsoKnownAsResult>;
20
+ //# sourceMappingURL=linkage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/linkage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAMnE,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QAAE,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IAChE,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC,CAkCvC"}
@@ -0,0 +1,32 @@
1
+ import { hasAlsoKnownAs, isDidDocument, normalizeDid, } from '../../delegation/did-linkage.js';
2
+ export async function updateCheqdAlsoKnownAs(options) {
3
+ const didCheqd = normalizeDid(options.didCheqd);
4
+ const didWeb = normalizeDid(options.didWeb);
5
+ const didDocument = await options.resolver.resolve(didCheqd);
6
+ if (!isDidDocument(didDocument) || normalizeDid(didDocument.id) !== didCheqd) {
7
+ return {
8
+ changed: false,
9
+ reason: `Could not resolve DID Document for ${didCheqd}`,
10
+ };
11
+ }
12
+ if (hasAlsoKnownAs(didDocument, didWeb)) {
13
+ return { changed: false, didDocument };
14
+ }
15
+ const nextDocument = {
16
+ ...didDocument,
17
+ alsoKnownAs: [...(didDocument.alsoKnownAs ?? []), didWeb],
18
+ };
19
+ const registrarResult = await options.registrar.updateDid({
20
+ did: didCheqd,
21
+ didDocument: nextDocument,
22
+ signer: options.signer,
23
+ verificationMethodId: options.verificationMethodId,
24
+ });
25
+ return {
26
+ changed: registrarResult.success,
27
+ didDocument: nextDocument,
28
+ registrarResult,
29
+ ...(registrarResult.success ? {} : { reason: registrarResult.reason }),
30
+ };
31
+ }
32
+ //# sourceMappingURL=linkage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/linkage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,iCAAiC,CAAC;AAuBzC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAsC;IAEtC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7D,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,sCAAsC,QAAQ,EAAE;SACzD,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,YAAY,GAAgB;QAChC,GAAG,WAAW;QACd,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC;KAC1D,CAAC;IAEF,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QACxD,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;KACnD,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,WAAW,EAAE,YAAY;QACzB,eAAe;QACf,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,85 @@
1
+ import type { CryptoProvider, FetchProvider } from '../../providers/base.js';
2
+ import type { DIDDocument } from '../../delegation/vc-verifier.js';
3
+ export type CheqdRegistrarOperation = 'create' | 'update' | 'create-resource';
4
+ export interface CheqdRegistrarClientOptions {
5
+ registrarUrl: string;
6
+ fetchProvider: FetchProvider;
7
+ headers?: Record<string, string> | (() => Promise<Record<string, string>>);
8
+ }
9
+ export interface CheqdRegistrarSigningRequest {
10
+ requestId?: string;
11
+ operation: CheqdRegistrarOperation;
12
+ did?: string;
13
+ verificationMethodId: string;
14
+ serializedPayload: string;
15
+ algorithm: 'Ed25519';
16
+ encoding: 'base64';
17
+ requestBody: unknown;
18
+ }
19
+ export interface CheqdRegistrarSigningResponse {
20
+ requestId?: string;
21
+ verificationMethodId: string;
22
+ signature: string;
23
+ alg?: string;
24
+ purpose?: string;
25
+ }
26
+ export type CheqdRegistrarSigner = (request: CheqdRegistrarSigningRequest) => Promise<CheqdRegistrarSigningResponse | CheqdRegistrarSigningResponse[]>;
27
+ export interface CheqdRegistrarResult {
28
+ success: boolean;
29
+ operation: CheqdRegistrarOperation;
30
+ stage: 'request' | 'sign' | 'submit' | 'complete';
31
+ jobId?: string;
32
+ action?: string;
33
+ response?: unknown;
34
+ reason?: string;
35
+ }
36
+ export interface CreateCheqdDidOptions {
37
+ didDocument: DIDDocument;
38
+ signer: CheqdRegistrarSigner;
39
+ verificationMethodId?: string;
40
+ options?: Record<string, unknown>;
41
+ }
42
+ export interface UpdateCheqdDidOptions {
43
+ did: string;
44
+ didDocument: DIDDocument;
45
+ signer: CheqdRegistrarSigner;
46
+ verificationMethodId?: string;
47
+ options?: Record<string, unknown>;
48
+ }
49
+ export interface CheqdCreateResourceBody {
50
+ name: string;
51
+ type: string;
52
+ data: string;
53
+ version?: string;
54
+ mediaType?: string;
55
+ encoding?: string;
56
+ metadata?: Record<string, unknown>;
57
+ [key: string]: unknown;
58
+ }
59
+ export interface CreateCheqdResourceOptions {
60
+ did: string;
61
+ resource: CheqdCreateResourceBody;
62
+ signer: CheqdRegistrarSigner;
63
+ verificationMethodId?: string;
64
+ options?: Record<string, unknown>;
65
+ }
66
+ export interface LocalCheqdRegistrarSignerOptions {
67
+ cryptoProvider: CryptoProvider;
68
+ privateKey: string;
69
+ verificationMethodId: string;
70
+ signatureEncoding?: 'base64' | 'base64url';
71
+ }
72
+ export declare class CheqdDidRegistrarClient {
73
+ private readonly registrarUrl;
74
+ private readonly fetchProvider;
75
+ private readonly headers?;
76
+ constructor(options: CheqdRegistrarClientOptions);
77
+ createDid(options: CreateCheqdDidOptions): Promise<CheqdRegistrarResult>;
78
+ updateDid(options: UpdateCheqdDidOptions): Promise<CheqdRegistrarResult>;
79
+ createResource(options: CreateCheqdResourceOptions): Promise<CheqdRegistrarResult>;
80
+ private runClientManagedSecretFlow;
81
+ private post;
82
+ private resolveHeaders;
83
+ }
84
+ export declare function createLocalEd25519CheqdRegistrarSigner(options: LocalCheqdRegistrarSignerOptions): CheqdRegistrarSigner;
85
+ //# sourceMappingURL=registrar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../../src/integrations/cheqd/registrar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,304 @@
1
+ import { base64ToBytes, base64urlEncodeFromBytes, bytesToBase64 } from '../../utils/base64.js';
2
+ import { isRecord, stripTrailingSlashes } from '../../utils/index.js';
3
+ export class CheqdDidRegistrarClient {
4
+ registrarUrl;
5
+ fetchProvider;
6
+ headers;
7
+ constructor(options) {
8
+ this.registrarUrl = stripTrailingSlashes(options.registrarUrl);
9
+ this.fetchProvider = options.fetchProvider;
10
+ this.headers = options.headers;
11
+ }
12
+ async createDid(options) {
13
+ const body = {
14
+ didDocument: options.didDocument,
15
+ ...(options.options ? { options: options.options } : {}),
16
+ };
17
+ return this.runClientManagedSecretFlow({
18
+ operation: 'create',
19
+ did: options.didDocument.id,
20
+ path: '/create',
21
+ body,
22
+ signer: options.signer,
23
+ verificationMethodId: options.verificationMethodId,
24
+ });
25
+ }
26
+ async updateDid(options) {
27
+ const body = {
28
+ did: options.did,
29
+ didDocumentOperation: ['setDidDocument'],
30
+ didDocument: [options.didDocument],
31
+ ...(options.options ? { options: options.options } : {}),
32
+ };
33
+ return this.runClientManagedSecretFlow({
34
+ operation: 'update',
35
+ did: options.did,
36
+ path: '/update',
37
+ body,
38
+ signer: options.signer,
39
+ verificationMethodId: options.verificationMethodId,
40
+ });
41
+ }
42
+ async createResource(options) {
43
+ const body = {
44
+ ...options.resource,
45
+ ...(options.options ? { options: options.options } : {}),
46
+ };
47
+ return this.runClientManagedSecretFlow({
48
+ operation: 'create-resource',
49
+ did: options.did,
50
+ path: `/${options.did}/create-resource`,
51
+ body,
52
+ signer: options.signer,
53
+ verificationMethodId: options.verificationMethodId,
54
+ });
55
+ }
56
+ async runClientManagedSecretFlow(options) {
57
+ const requestResponse = await this.post(options.path, options.body);
58
+ if (!requestResponse.ok) {
59
+ return {
60
+ success: false,
61
+ operation: options.operation,
62
+ stage: 'request',
63
+ reason: `Registrar request failed with HTTP ${requestResponse.status}`,
64
+ response: requestResponse.body,
65
+ };
66
+ }
67
+ const jobId = findStringByKey(requestResponse.body, 'jobId');
68
+ const signingRequests = extractSigningRequests(requestResponse.body, options.operation, options.did, options.body, options.verificationMethodId);
69
+ const action = findStringByKey(requestResponse.body, 'action');
70
+ if (isFinished(requestResponse.body)) {
71
+ return {
72
+ success: true,
73
+ operation: options.operation,
74
+ stage: 'complete',
75
+ ...(jobId ? { jobId } : {}),
76
+ response: requestResponse.body,
77
+ };
78
+ }
79
+ if (!jobId) {
80
+ return {
81
+ success: false,
82
+ operation: options.operation,
83
+ stage: 'request',
84
+ action,
85
+ response: requestResponse.body,
86
+ reason: 'Registrar response did not include a jobId',
87
+ };
88
+ }
89
+ if (signingRequests.length === 0) {
90
+ return {
91
+ success: false,
92
+ operation: options.operation,
93
+ stage: 'request',
94
+ jobId,
95
+ action,
96
+ response: requestResponse.body,
97
+ reason: 'Registrar response did not include a serialized payload to sign',
98
+ };
99
+ }
100
+ let signingResponse;
101
+ try {
102
+ signingResponse = (await Promise.all(signingRequests.map(async (request) => flattenSigningResponses(await options.signer(request)).map((response) => ({
103
+ ...response,
104
+ requestId: response.requestId ?? request.requestId,
105
+ }))))).flat();
106
+ }
107
+ catch (error) {
108
+ return {
109
+ success: false,
110
+ operation: options.operation,
111
+ stage: 'sign',
112
+ jobId,
113
+ action,
114
+ response: requestResponse.body,
115
+ reason: `Signing failed: ${error instanceof Error ? error.message : String(error)}`,
116
+ };
117
+ }
118
+ const submitBody = {
119
+ jobId,
120
+ secret: {
121
+ signingResponse: formatSigningResponseForRegistrar(signingResponse),
122
+ },
123
+ };
124
+ const submitResponse = await this.post(options.path, submitBody);
125
+ const success = submitResponse.ok && isFinished(submitResponse.body);
126
+ return {
127
+ success,
128
+ operation: options.operation,
129
+ stage: success ? 'complete' : 'submit',
130
+ jobId,
131
+ action,
132
+ response: submitResponse.body,
133
+ ...(success
134
+ ? {}
135
+ : {
136
+ reason: submitResponse.ok
137
+ ? 'Registrar did not finish the operation after signature submission'
138
+ : `Registrar signature submission failed with HTTP ${submitResponse.status}`,
139
+ }),
140
+ };
141
+ }
142
+ async post(path, body) {
143
+ const response = await this.fetchProvider.fetch(`${this.registrarUrl}${path}`, {
144
+ method: 'POST',
145
+ headers: {
146
+ 'Content-Type': 'application/json',
147
+ ...(await this.resolveHeaders()),
148
+ },
149
+ body: JSON.stringify(body),
150
+ });
151
+ let responseBody;
152
+ try {
153
+ responseBody = await response.json();
154
+ }
155
+ catch {
156
+ responseBody = undefined;
157
+ }
158
+ return {
159
+ ok: response.ok,
160
+ status: response.status,
161
+ body: responseBody,
162
+ };
163
+ }
164
+ async resolveHeaders() {
165
+ if (!this.headers) {
166
+ return {};
167
+ }
168
+ return typeof this.headers === 'function' ? this.headers() : this.headers;
169
+ }
170
+ }
171
+ export function createLocalEd25519CheqdRegistrarSigner(options) {
172
+ return async (request) => {
173
+ const payloadBytes = base64ToBytes(request.serializedPayload);
174
+ const signatureBytes = await options.cryptoProvider.sign(payloadBytes, options.privateKey);
175
+ const signature = options.signatureEncoding === 'base64url'
176
+ ? base64urlEncodeFromBytes(signatureBytes)
177
+ : bytesToBase64(signatureBytes);
178
+ return {
179
+ verificationMethodId: request.verificationMethodId || options.verificationMethodId,
180
+ signature,
181
+ };
182
+ };
183
+ }
184
+ function extractSigningRequests(response, operation, did, requestBody, fallbackVerificationMethodId) {
185
+ const candidates = [];
186
+ collectSigningRequestCandidates(response, candidates);
187
+ const completeCandidates = candidates.filter((candidate) => candidate.serializedPayload);
188
+ if (completeCandidates.length === 0) {
189
+ const serializedPayload = findStringByKey(response, 'serializedPayload');
190
+ if (serializedPayload) {
191
+ completeCandidates.push({
192
+ serializedPayload,
193
+ verificationMethodId: fallbackVerificationMethodId,
194
+ });
195
+ }
196
+ }
197
+ return completeCandidates
198
+ .filter((candidate) => candidate.serializedPayload)
199
+ .map((candidate) => ({
200
+ operation,
201
+ did,
202
+ ...(candidate.requestId ? { requestId: candidate.requestId } : {}),
203
+ verificationMethodId: candidate.verificationMethodId ??
204
+ candidate.kid ??
205
+ fallbackVerificationMethodId ??
206
+ inferVerificationMethodId(requestBody) ??
207
+ '',
208
+ serializedPayload: candidate.serializedPayload,
209
+ algorithm: 'Ed25519',
210
+ encoding: 'base64',
211
+ requestBody,
212
+ }))
213
+ .filter((request) => request.verificationMethodId.length > 0);
214
+ }
215
+ function collectSigningRequestCandidates(value, out, requestId) {
216
+ if (Array.isArray(value)) {
217
+ for (const entry of value) {
218
+ collectSigningRequestCandidates(entry, out);
219
+ }
220
+ return;
221
+ }
222
+ if (!isRecord(value)) {
223
+ return;
224
+ }
225
+ if (typeof value['serializedPayload'] === 'string') {
226
+ out.push({
227
+ ...value,
228
+ ...(requestId ? { requestId } : {}),
229
+ });
230
+ }
231
+ for (const [key, nested] of Object.entries(value)) {
232
+ const nestedRequestId = isRecord(nested) && typeof nested['serializedPayload'] === 'string'
233
+ ? key
234
+ : undefined;
235
+ collectSigningRequestCandidates(nested, out, nestedRequestId);
236
+ }
237
+ }
238
+ function flattenSigningResponses(response) {
239
+ return Array.isArray(response) ? response : [response];
240
+ }
241
+ function formatSigningResponseForRegistrar(responses) {
242
+ const formatted = responses.map(formatSingleSigningResponseForRegistrar);
243
+ if (!responses.some((response) => response.requestId)) {
244
+ return formatted;
245
+ }
246
+ return Object.fromEntries(responses.map((response, index) => [
247
+ response.requestId ?? `signingRequest${index}`,
248
+ formatSingleSigningResponseForRegistrar(response),
249
+ ]));
250
+ }
251
+ function formatSingleSigningResponseForRegistrar(response) {
252
+ return {
253
+ kid: response.verificationMethodId,
254
+ signature: response.signature,
255
+ ...(response.alg ? { alg: response.alg } : {}),
256
+ ...(response.purpose ? { purpose: response.purpose } : {}),
257
+ };
258
+ }
259
+ function findStringByKey(value, key) {
260
+ if (Array.isArray(value)) {
261
+ for (const entry of value) {
262
+ const found = findStringByKey(entry, key);
263
+ if (found) {
264
+ return found;
265
+ }
266
+ }
267
+ return undefined;
268
+ }
269
+ if (!isRecord(value)) {
270
+ return undefined;
271
+ }
272
+ const maybeString = value[key];
273
+ if (typeof maybeString === 'string') {
274
+ return maybeString;
275
+ }
276
+ for (const nested of Object.values(value)) {
277
+ const found = findStringByKey(nested, key);
278
+ if (found) {
279
+ return found;
280
+ }
281
+ }
282
+ return undefined;
283
+ }
284
+ function inferVerificationMethodId(value) {
285
+ if (!isRecord(value)) {
286
+ return undefined;
287
+ }
288
+ const didDocument = value['didDocument'];
289
+ if (isRecord(didDocument)) {
290
+ const verificationMethod = didDocument['verificationMethod'];
291
+ if (Array.isArray(verificationMethod)) {
292
+ const first = verificationMethod[0];
293
+ if (isRecord(first) && typeof first['id'] === 'string') {
294
+ return first['id'];
295
+ }
296
+ }
297
+ }
298
+ return undefined;
299
+ }
300
+ function isFinished(value) {
301
+ const state = findStringByKey(value, 'state');
302
+ return state === 'finished';
303
+ }
304
+ //# sourceMappingURL=registrar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../../src/integrations/cheqd/registrar.ts"],"names":[],"mappings":"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"}