@vess-id/ai-identity 0.0.0-dev-20260902121045

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 (173) hide show
  1. package/README.md +265 -0
  2. package/dist/agent/agent-did-manager.d.ts +97 -0
  3. package/dist/agent/agent-did-manager.d.ts.map +1 -0
  4. package/dist/auth/auth-provider.d.ts +51 -0
  5. package/dist/auth/auth-provider.d.ts.map +1 -0
  6. package/dist/auth/index.d.ts +2 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/client.d.ts +63 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/config/index.d.ts +84 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/constraint/constraint-evaluator.d.ts +103 -0
  13. package/dist/constraint/constraint-evaluator.d.ts.map +1 -0
  14. package/dist/constraint/index.d.ts +5 -0
  15. package/dist/constraint/index.d.ts.map +1 -0
  16. package/dist/did/agent.d.ts +58 -0
  17. package/dist/did/agent.d.ts.map +1 -0
  18. package/dist/did/did-utils.d.ts +82 -0
  19. package/dist/did/did-utils.d.ts.map +1 -0
  20. package/dist/did/key-manager.d.ts +19 -0
  21. package/dist/did/key-manager.d.ts.map +1 -0
  22. package/dist/gateway/gateway-client.d.ts +103 -0
  23. package/dist/gateway/gateway-client.d.ts.map +1 -0
  24. package/dist/gateway/index.d.ts +2 -0
  25. package/dist/gateway/index.d.ts.map +1 -0
  26. package/dist/grant/grant-manager.d.ts +140 -0
  27. package/dist/grant/grant-manager.d.ts.map +1 -0
  28. package/dist/grant/index.d.ts +2 -0
  29. package/dist/grant/index.d.ts.map +1 -0
  30. package/dist/identity/device-enroll-manager.d.ts +117 -0
  31. package/dist/identity/device-enroll-manager.d.ts.map +1 -0
  32. package/dist/identity/user-identity-manager.d.ts +123 -0
  33. package/dist/identity/user-identity-manager.d.ts.map +1 -0
  34. package/dist/identity/user-key-pair-manager.d.ts +22 -0
  35. package/dist/identity/user-key-pair-manager.d.ts.map +1 -0
  36. package/dist/index.d.mts +42685 -0
  37. package/dist/index.d.ts +57 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +19534 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/index.mjs +19347 -0
  42. package/dist/index.mjs.map +1 -0
  43. package/dist/internal-signature/canonical.d.ts +80 -0
  44. package/dist/internal-signature/canonical.d.ts.map +1 -0
  45. package/dist/internal-signature/index.d.ts +17 -0
  46. package/dist/internal-signature/index.d.ts.map +1 -0
  47. package/dist/internal-signature/signer.d.ts +76 -0
  48. package/dist/internal-signature/signer.d.ts.map +1 -0
  49. package/dist/policy/cedar-engine.d.ts +334 -0
  50. package/dist/policy/cedar-engine.d.ts.map +1 -0
  51. package/dist/policy/cedar-entities.d.ts +59 -0
  52. package/dist/policy/cedar-entities.d.ts.map +1 -0
  53. package/dist/policy/decision.d.ts +46 -0
  54. package/dist/policy/decision.d.ts.map +1 -0
  55. package/dist/policy/index.d.ts +15 -0
  56. package/dist/policy/index.d.ts.map +1 -0
  57. package/dist/registry/access-orchestrator.d.ts +184 -0
  58. package/dist/registry/access-orchestrator.d.ts.map +1 -0
  59. package/dist/registry/action-aliases.d.ts +37 -0
  60. package/dist/registry/action-aliases.d.ts.map +1 -0
  61. package/dist/registry/action-input-validator.d.ts +19 -0
  62. package/dist/registry/action-input-validator.d.ts.map +1 -0
  63. package/dist/registry/action-normalizer.d.ts +47 -0
  64. package/dist/registry/action-normalizer.d.ts.map +1 -0
  65. package/dist/registry/action-registry-json.d.ts +35897 -0
  66. package/dist/registry/action-registry-json.d.ts.map +1 -0
  67. package/dist/registry/action-registry.d.ts +101 -0
  68. package/dist/registry/action-registry.d.ts.map +1 -0
  69. package/dist/registry/action-risk.d.ts +109 -0
  70. package/dist/registry/action-risk.d.ts.map +1 -0
  71. package/dist/registry/action-summary.d.ts +16 -0
  72. package/dist/registry/action-summary.d.ts.map +1 -0
  73. package/dist/registry/index.d.ts +14 -0
  74. package/dist/registry/index.d.ts.map +1 -0
  75. package/dist/registry/providers.d.ts +32 -0
  76. package/dist/registry/providers.d.ts.map +1 -0
  77. package/dist/registry/reauth-constants.d.ts +56 -0
  78. package/dist/registry/reauth-constants.d.ts.map +1 -0
  79. package/dist/registry/resource-type-labels.d.ts +15 -0
  80. package/dist/registry/resource-type-labels.d.ts.map +1 -0
  81. package/dist/registry/resource-types.d.ts +47 -0
  82. package/dist/registry/resource-types.d.ts.map +1 -0
  83. package/dist/resolver/approval-time-resolution.d.ts +72 -0
  84. package/dist/resolver/approval-time-resolution.d.ts.map +1 -0
  85. package/dist/resolver/canonical-resource-id.d.ts +37 -0
  86. package/dist/resolver/canonical-resource-id.d.ts.map +1 -0
  87. package/dist/resolver/compare-resource-id.d.ts +37 -0
  88. package/dist/resolver/compare-resource-id.d.ts.map +1 -0
  89. package/dist/resolver/salient-digest.d.ts +48 -0
  90. package/dist/resolver/salient-digest.d.ts.map +1 -0
  91. package/dist/resolver/target-resolver.d.ts +28 -0
  92. package/dist/resolver/target-resolver.d.ts.map +1 -0
  93. package/dist/state/index.d.ts +3 -0
  94. package/dist/state/index.d.ts.map +1 -0
  95. package/dist/state/json-state-store.d.ts +24 -0
  96. package/dist/state/json-state-store.d.ts.map +1 -0
  97. package/dist/state/state-store.interface.d.ts +37 -0
  98. package/dist/state/state-store.interface.d.ts.map +1 -0
  99. package/dist/storage/filesystem-key-storage.d.ts +16 -0
  100. package/dist/storage/filesystem-key-storage.d.ts.map +1 -0
  101. package/dist/storage/index.d.ts +4 -0
  102. package/dist/storage/index.d.ts.map +1 -0
  103. package/dist/storage/key-storage.interface.d.ts +42 -0
  104. package/dist/storage/key-storage.interface.d.ts.map +1 -0
  105. package/dist/storage/memory-key-storage.d.ts +17 -0
  106. package/dist/storage/memory-key-storage.d.ts.map +1 -0
  107. package/dist/tool/tool-manager.d.ts +44 -0
  108. package/dist/tool/tool-manager.d.ts.map +1 -0
  109. package/dist/types/agent.d.ts +139 -0
  110. package/dist/types/agent.d.ts.map +1 -0
  111. package/dist/types/audit.d.ts +23 -0
  112. package/dist/types/audit.d.ts.map +1 -0
  113. package/dist/types/cedar-policy.d.ts +60 -0
  114. package/dist/types/cedar-policy.d.ts.map +1 -0
  115. package/dist/types/connector-plugin.d.ts +252 -0
  116. package/dist/types/connector-plugin.d.ts.map +1 -0
  117. package/dist/types/connectors.d.ts +39 -0
  118. package/dist/types/connectors.d.ts.map +1 -0
  119. package/dist/types/context.d.ts +152 -0
  120. package/dist/types/context.d.ts.map +1 -0
  121. package/dist/types/did.d.ts +18 -0
  122. package/dist/types/did.d.ts.map +1 -0
  123. package/dist/types/errors.d.ts +24 -0
  124. package/dist/types/errors.d.ts.map +1 -0
  125. package/dist/types/grant.d.ts +522 -0
  126. package/dist/types/grant.d.ts.map +1 -0
  127. package/dist/types/index.d.ts +22 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/intent.d.ts +133 -0
  130. package/dist/types/intent.d.ts.map +1 -0
  131. package/dist/types/invitation.d.ts +97 -0
  132. package/dist/types/invitation.d.ts.map +1 -0
  133. package/dist/types/jira.d.ts +348 -0
  134. package/dist/types/jira.d.ts.map +1 -0
  135. package/dist/types/oauth.d.ts +72 -0
  136. package/dist/types/oauth.d.ts.map +1 -0
  137. package/dist/types/organization.d.ts +77 -0
  138. package/dist/types/organization.d.ts.map +1 -0
  139. package/dist/types/permission-mode.d.ts +138 -0
  140. package/dist/types/permission-mode.d.ts.map +1 -0
  141. package/dist/types/permission-vc.d.ts +800 -0
  142. package/dist/types/permission-vc.d.ts.map +1 -0
  143. package/dist/types/receipt.d.ts +133 -0
  144. package/dist/types/receipt.d.ts.map +1 -0
  145. package/dist/types/target-binding.d.ts +163 -0
  146. package/dist/types/target-binding.d.ts.map +1 -0
  147. package/dist/types/tier.d.ts +13 -0
  148. package/dist/types/tier.d.ts.map +1 -0
  149. package/dist/types/vc.d.ts +213 -0
  150. package/dist/types/vc.d.ts.map +1 -0
  151. package/dist/types/vp.d.ts +25 -0
  152. package/dist/types/vp.d.ts.map +1 -0
  153. package/dist/utils/action-classifier.d.ts +13 -0
  154. package/dist/utils/action-classifier.d.ts.map +1 -0
  155. package/dist/utils/crypto.d.ts +22 -0
  156. package/dist/utils/crypto.d.ts.map +1 -0
  157. package/dist/utils/freemail-domains.d.ts +13 -0
  158. package/dist/utils/freemail-domains.d.ts.map +1 -0
  159. package/dist/utils/sdjwt-client.d.ts +415 -0
  160. package/dist/utils/sdjwt-client.d.ts.map +1 -0
  161. package/dist/utils/sdjwt-disclosure.d.ts +13 -0
  162. package/dist/utils/sdjwt-disclosure.d.ts.map +1 -0
  163. package/dist/utils/tier-utils.d.ts +15 -0
  164. package/dist/utils/tier-utils.d.ts.map +1 -0
  165. package/dist/vc/api-vc-manager.d.ts +43 -0
  166. package/dist/vc/api-vc-manager.d.ts.map +1 -0
  167. package/dist/vc/vc-manager.d.ts +55 -0
  168. package/dist/vc/vc-manager.d.ts.map +1 -0
  169. package/dist/vp/kb-jwt-builder.d.ts +89 -0
  170. package/dist/vp/kb-jwt-builder.d.ts.map +1 -0
  171. package/dist/vp/vp-manager.d.ts +75 -0
  172. package/dist/vp/vp-manager.d.ts.map +1 -0
  173. package/package.json +66 -0
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Device Enrollment Manager
3
+ *
4
+ * Handles the device code flow for registering a User Root DID
5
+ * without requiring an API key. Supports two modes:
6
+ *
7
+ * Client-generated (local mode):
8
+ * 1. Client calls startDeviceEnrollment() with rootDid + publicKeyJwk
9
+ * 2. Client presents user_code and verification_url to the user
10
+ * 3. User approves in browser
11
+ * 4. Client polls until approved, receives device_session_token
12
+ *
13
+ * Server-generated (remote mode):
14
+ * 1. Client calls startServerSideEnrollment() with clientInfo only
15
+ * 2. Server returns user_code + verification_url (DID generated on approval)
16
+ * 3. User approves in browser
17
+ * 4. Client polls until approved, receives rootDid + device_session_token
18
+ */
19
+ export interface DeviceEnrollStartParams {
20
+ rootDid: string;
21
+ publicKeyJwk: {
22
+ kty: string;
23
+ crv: string;
24
+ x: string;
25
+ y?: string;
26
+ use?: string;
27
+ alg?: string;
28
+ };
29
+ clientInfo?: {
30
+ deviceName?: string;
31
+ os?: string;
32
+ appVersion?: string;
33
+ hostname?: string;
34
+ [key: string]: any;
35
+ };
36
+ purpose?: string;
37
+ }
38
+ export interface DeviceEnrollServerSideParams {
39
+ clientInfo?: {
40
+ deviceName?: string;
41
+ os?: string;
42
+ appVersion?: string;
43
+ hostname?: string;
44
+ [key: string]: any;
45
+ };
46
+ purpose?: string;
47
+ }
48
+ export interface DeviceEnrollStartResult {
49
+ requestId: string;
50
+ userCode: string;
51
+ verificationUrl: string;
52
+ expiresAt: string;
53
+ }
54
+ export interface DeviceEnrollPollResult {
55
+ status: 'pending' | 'approved' | 'expired' | 'denied';
56
+ deviceSessionToken?: string;
57
+ expiresAt?: string;
58
+ rootDid?: string;
59
+ }
60
+ export declare class DeviceEnrollManager {
61
+ private baseUrl;
62
+ constructor(baseUrl: string);
63
+ /**
64
+ * Build common headers for all API requests.
65
+ * Includes User-Agent and ngrok-skip-browser-warning to avoid
66
+ * ngrok free-tier interstitial pages blocking programmatic access.
67
+ */
68
+ private buildHeaders;
69
+ /**
70
+ * Start the device enrollment flow.
71
+ * Sends the root DID public key to the Gateway and gets a user code.
72
+ *
73
+ * @param params - Root DID public info and client metadata
74
+ * @returns Request ID, user code, and verification URL
75
+ */
76
+ startDeviceEnrollment(params: DeviceEnrollStartParams): Promise<DeviceEnrollStartResult>;
77
+ /**
78
+ * Start the device enrollment flow with server-side DID generation.
79
+ * The server generates the real key pair on approval (not at start time).
80
+ * Use this for remote/cloud-managed mode.
81
+ *
82
+ * @param params - Client metadata (no DID or key needed)
83
+ * @returns Request ID, user code, and verification URL
84
+ */
85
+ startServerSideEnrollment(params: DeviceEnrollServerSideParams): Promise<DeviceEnrollStartResult>;
86
+ /**
87
+ * Poll for enrollment status.
88
+ * Call this periodically after startDeviceEnrollment() to check if
89
+ * the user has approved the enrollment in the web UI.
90
+ *
91
+ * @param requestId - The request ID from startDeviceEnrollment()
92
+ * @returns Current status and token if approved
93
+ */
94
+ pollDeviceEnrollment(requestId: string): Promise<DeviceEnrollPollResult>;
95
+ /**
96
+ * Convenience method: Start enrollment and poll until completion.
97
+ * Returns the final result (approved, expired, or denied).
98
+ *
99
+ * @param params - Enrollment parameters (client-generated mode)
100
+ * @param onUserCode - Callback when user code is available (present to user)
101
+ * @param pollIntervalMs - Polling interval in ms (default: 3000)
102
+ * @param maxPolls - Maximum number of poll attempts (default: 120)
103
+ */
104
+ enrollAndWait(params: DeviceEnrollStartParams, onUserCode: (info: DeviceEnrollStartResult) => void, pollIntervalMs?: number, maxPolls?: number): Promise<DeviceEnrollPollResult>;
105
+ /**
106
+ * Convenience method: Start server-side enrollment and poll until completion.
107
+ * Returns the final result including the server-generated rootDid on approval.
108
+ *
109
+ * @param params - Client metadata (server-generated mode)
110
+ * @param onUserCode - Callback when user code is available (present to user)
111
+ * @param pollIntervalMs - Polling interval in ms (default: 3000)
112
+ * @param maxPolls - Maximum number of poll attempts (default: 120)
113
+ */
114
+ enrollServerSideAndWait(params: DeviceEnrollServerSideParams, onUserCode: (info: DeviceEnrollStartResult) => void, pollIntervalMs?: number, maxPolls?: number): Promise<DeviceEnrollPollResult>;
115
+ private pollUntilComplete;
116
+ }
117
+ //# sourceMappingURL=device-enroll-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-enroll-manager.d.ts","sourceRoot":"","sources":["../../src/identity/device-enroll-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,CAAC,EAAE,MAAM,CAAA;QACT,CAAC,CAAC,EAAE,MAAM,CAAA;QACV,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,GAAG,CAAC,EAAE,MAAM,CAAA;KACb,CAAA;IACD,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAA;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,EAAE,MAAM;IAI3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;;OAMG;IACG,qBAAqB,CACzB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IA2BnC;;;;;;;OAOG;IACG,yBAAyB,CAC7B,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,uBAAuB,CAAC;IA0BnC;;;;;;;OAOG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAsB9E;;;;;;;;OAQG;IACG,aAAa,CACjB,MAAM,EAAE,uBAAuB,EAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,EACnD,cAAc,GAAE,MAAa,EAC7B,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,sBAAsB,CAAC;IAKlC;;;;;;;;OAQG;IACG,uBAAuB,CAC3B,MAAM,EAAE,4BAA4B,EACpC,UAAU,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,IAAI,EACnD,cAAc,GAAE,MAAa,EAC7B,QAAQ,GAAE,MAAY,GACrB,OAAO,CAAC,sBAAsB,CAAC;YAKpB,iBAAiB;CAoBhC"}
@@ -0,0 +1,123 @@
1
+ import { KeyManager } from '../did/key-manager';
2
+ import { DIDDocument } from '../types';
3
+ export interface UserIdentityManagerOptions {
4
+ /**
5
+ * Directory holding `user-did.txt`, the single file naming the DID this
6
+ * installation issues VCs as.
7
+ *
8
+ * 🔴 Omit this and the default stays exactly what it has always been —
9
+ * `~/.vess-aidentity/`. Note this is the config root itself, NOT a
10
+ * subdirectory: unlike `AgentDIDManager`, which owns the whole
11
+ * `agent-dids/` subtree, this manager owns one fixed filename inside a
12
+ * directory it shares with `keys/`, `agent-dids/` and `vc-cache.json`.
13
+ * Changing the default would orphan the existing user identity, and every
14
+ * VC already issued names that DID as its issuer.
15
+ *
16
+ * Supply it for either of two reasons:
17
+ *
18
+ * - **Tenant isolation.** With the path hard-coded to `os.homedir()`, one
19
+ * process serving several tenants has a single user DID for all of them.
20
+ * Worse than the agent case: agent IDs at least namespace the files, while
21
+ * the user DID is one fixed filename, so the last tenant to call
22
+ * `createUserDID` silently overwrites everyone else's issuer identity.
23
+ *
24
+ * - **Test isolation.** Tests could not otherwise steer this path away from
25
+ * the developer's real home. Under jest, `process.env.HOME = x` does not
26
+ * help: jest-environment-node replaces `process.env` with a plain object
27
+ * behind a Proxy, so the assignment never reaches `setenv(3)`, while
28
+ * `os.homedir()` goes through libuv to `getenv("HOME")` and reads the real
29
+ * environ. Both reads and writes therefore escape to the real home and the
30
+ * suite stays green while clobbering the developer's own user DID.
31
+ */
32
+ mappingDir?: string;
33
+ }
34
+ /**
35
+ * User Identity Manager
36
+ * Manages DID generation and lifecycle for Users (Issuers) specifically
37
+ * Separate from Agent management to avoid confusion
38
+ */
39
+ export declare class UserIdentityManager {
40
+ private keyManager;
41
+ private currentUserDID;
42
+ private readonly mappingDirOverride?;
43
+ constructor(keyManager?: KeyManager, options?: UserIdentityManagerOptions);
44
+ /**
45
+ * 🔴 The one place the user-DID directory is derived.
46
+ *
47
+ * It used to be derived independently in `saveUserDID` / `loadUserDID` /
48
+ * `clearUserDID`. That is the same shape `AgentDIDManager` was in before
49
+ * PR #1442, where the copies had actually drifted — load and delete looked
50
+ * at `~/.vess/` while save wrote to `~/.vess-aidentity/`. Nothing caught it
51
+ * in-process because the in-memory field answered first; across processes
52
+ * the load always missed. Here `currentUserDID` plays that same masking
53
+ * role, so a drift would likewise only show up after a restart.
54
+ *
55
+ * The default is the config root `~/.vess-aidentity/` and must stay that
56
+ * way — see the note on `UserIdentityManagerOptions.mappingDir`.
57
+ */
58
+ private userDidDir;
59
+ /**
60
+ * Absolute path of the file holding the user DID.
61
+ *
62
+ * Derived from `userDidDir()` so the filename cannot drift either — the
63
+ * three call sites used to spell `'user-did.txt'` out separately as well.
64
+ */
65
+ private userDidFile;
66
+ /**
67
+ * Get or create current user DID
68
+ * This represents the user who will be the issuer of VCs
69
+ */
70
+ getCurrentUserDID(): Promise<string>;
71
+ /**
72
+ * Create a new user DID (for issuing VCs)
73
+ */
74
+ createUserDID(): Promise<string>;
75
+ /**
76
+ * Get user's key pair
77
+ */
78
+ getUserKeyPair(): Promise<any>;
79
+ /**
80
+ * Resolve user DID to DID Document
81
+ */
82
+ resolveUserDID(did?: string): Promise<DIDDocument>;
83
+ /**
84
+ * Export user identity for backup
85
+ */
86
+ exportUserIdentity(): Promise<{
87
+ did: string;
88
+ privateKey: any;
89
+ didDocument: DIDDocument;
90
+ }>;
91
+ /**
92
+ * Import user identity from backup
93
+ */
94
+ importUserIdentity(backup: {
95
+ did: string;
96
+ privateKey: any;
97
+ }): Promise<void>;
98
+ /**
99
+ * Reset user identity (create new DID)
100
+ */
101
+ resetUserIdentity(): Promise<string>;
102
+ /**
103
+ * Resolve did:jwk locally
104
+ */
105
+ private resolveDidJwkLocally;
106
+ /**
107
+ * Create DID Document
108
+ */
109
+ private createDidDocument;
110
+ /**
111
+ * Save current user DID to persistent storage
112
+ */
113
+ private saveUserDID;
114
+ /**
115
+ * Load current user DID from persistent storage
116
+ */
117
+ private loadUserDID;
118
+ /**
119
+ * Clear saved user DID
120
+ */
121
+ private clearUserDID;
122
+ }
123
+ //# sourceMappingURL=user-identity-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-identity-manager.d.ts","sourceRoot":"","sources":["../../src/identity/user-identity-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAG/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAQ;gBAEhC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,0BAA0B;IAKzE;;;;;;;;;;;;;OAaG;YACW,UAAU;IASxB;;;;;OAKG;YACW,WAAW;IAMzB;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB1C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAiBtC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAcpC;;OAEG;IACG,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAUxD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,WAAW,CAAA;KAAE,CAAC;IAY/F;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASjF;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAW1C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;YACW,WAAW;IAUzB;;OAEG;YACW,WAAW;IAazB;;OAEG;YACW,YAAY;CAY3B"}
@@ -0,0 +1,22 @@
1
+ import type { JWK } from 'jose';
2
+ export interface KeyPairGenerationResult {
3
+ did: string;
4
+ publicKey: JWK;
5
+ privateKey: JWK;
6
+ }
7
+ /**
8
+ * Manages key pair generation for remote user issuer.
9
+ * Generates ES256 key pairs and creates did:jwk DIDs.
10
+ */
11
+ export declare class UserKeyPairManager {
12
+ /**
13
+ * Generate a new key pair and create a did:jwk DID
14
+ */
15
+ generateKeyPair(): Promise<KeyPairGenerationResult>;
16
+ /**
17
+ * Extract public key info from a did:jwk DID
18
+ * @throws Error if the DID is not in did:jwk format
19
+ */
20
+ extractPublicKeyInfo(did: string): JWK;
21
+ }
22
+ //# sourceMappingURL=user-key-pair-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-key-pair-manager.d.ts","sourceRoot":"","sources":["../../src/identity/user-key-pair-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE/B,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,GAAG,CAAA;IACd,UAAU,EAAE,GAAG,CAAA;CAChB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAWzD;;;OAGG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;CAMvC"}