@kya-os/mcp-i-core 1.3.13 → 1.3.15

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 (255) hide show
  1. package/dist/config/remote-config.js +9 -12
  2. package/dist/runtime/base.d.ts +2 -1
  3. package/dist/runtime/base.js +34 -6
  4. package/dist/services/access-control.service.js +5 -0
  5. package/dist/services/tool-protection.service.js +17 -8
  6. package/package.json +2 -2
  7. package/.turbo/turbo-build.log +0 -4
  8. package/.turbo/turbo-test$colon$coverage.log +0 -4586
  9. package/.turbo/turbo-test.log +0 -4631
  10. package/COMPLIANCE_IMPROVEMENT_REPORT.md +0 -483
  11. package/Composer 3.md +0 -615
  12. package/GPT-5.md +0 -1169
  13. package/OPUS-plan.md +0 -352
  14. package/PHASE_3_AND_4.1_SUMMARY.md +0 -585
  15. package/PHASE_3_SUMMARY.md +0 -317
  16. package/PHASE_4.1.3_SUMMARY.md +0 -428
  17. package/PHASE_4.1_COMPLETE.md +0 -525
  18. package/PHASE_4_USER_DID_IDENTITY_LINKING_PLAN.md +0 -1240
  19. package/SCHEMA_COMPLIANCE_REPORT.md +0 -275
  20. package/TEST_PLAN.md +0 -571
  21. package/coverage/coverage-final.json +0 -60
  22. package/dist/cache/oauth-config-cache.d.ts.map +0 -1
  23. package/dist/cache/oauth-config-cache.js.map +0 -1
  24. package/dist/cache/tool-protection-cache.d.ts.map +0 -1
  25. package/dist/cache/tool-protection-cache.js.map +0 -1
  26. package/dist/compliance/index.d.ts.map +0 -1
  27. package/dist/compliance/index.js.map +0 -1
  28. package/dist/compliance/schema-registry.d.ts.map +0 -1
  29. package/dist/compliance/schema-registry.js.map +0 -1
  30. package/dist/compliance/schema-verifier.d.ts.map +0 -1
  31. package/dist/compliance/schema-verifier.js.map +0 -1
  32. package/dist/config/remote-config.d.ts.map +0 -1
  33. package/dist/config/remote-config.js.map +0 -1
  34. package/dist/config.d.ts.map +0 -1
  35. package/dist/config.js.map +0 -1
  36. package/dist/delegation/audience-validator.d.ts.map +0 -1
  37. package/dist/delegation/audience-validator.js.map +0 -1
  38. package/dist/delegation/bitstring.d.ts.map +0 -1
  39. package/dist/delegation/bitstring.js.map +0 -1
  40. package/dist/delegation/cascading-revocation.d.ts.map +0 -1
  41. package/dist/delegation/cascading-revocation.js.map +0 -1
  42. package/dist/delegation/delegation-graph.d.ts.map +0 -1
  43. package/dist/delegation/delegation-graph.js.map +0 -1
  44. package/dist/delegation/did-key-resolver.d.ts.map +0 -1
  45. package/dist/delegation/did-key-resolver.js.map +0 -1
  46. package/dist/delegation/index.d.ts.map +0 -1
  47. package/dist/delegation/index.js.map +0 -1
  48. package/dist/delegation/statuslist-manager.d.ts.map +0 -1
  49. package/dist/delegation/statuslist-manager.js.map +0 -1
  50. package/dist/delegation/storage/index.d.ts.map +0 -1
  51. package/dist/delegation/storage/index.js.map +0 -1
  52. package/dist/delegation/storage/memory-graph-storage.d.ts.map +0 -1
  53. package/dist/delegation/storage/memory-graph-storage.js.map +0 -1
  54. package/dist/delegation/storage/memory-statuslist-storage.d.ts.map +0 -1
  55. package/dist/delegation/storage/memory-statuslist-storage.js.map +0 -1
  56. package/dist/delegation/utils.d.ts.map +0 -1
  57. package/dist/delegation/utils.js.map +0 -1
  58. package/dist/delegation/vc-issuer.d.ts.map +0 -1
  59. package/dist/delegation/vc-issuer.js.map +0 -1
  60. package/dist/delegation/vc-verifier.d.ts.map +0 -1
  61. package/dist/delegation/vc-verifier.js.map +0 -1
  62. package/dist/identity/idp-token-resolver.d.ts.map +0 -1
  63. package/dist/identity/idp-token-resolver.js.map +0 -1
  64. package/dist/identity/idp-token-storage.interface.d.ts.map +0 -1
  65. package/dist/identity/idp-token-storage.interface.js.map +0 -1
  66. package/dist/identity/user-did-manager.d.ts.map +0 -1
  67. package/dist/identity/user-did-manager.js.map +0 -1
  68. package/dist/index.d.ts.map +0 -1
  69. package/dist/index.js.map +0 -1
  70. package/dist/providers/base.d.ts.map +0 -1
  71. package/dist/providers/base.js.map +0 -1
  72. package/dist/providers/memory.d.ts.map +0 -1
  73. package/dist/providers/memory.js.map +0 -1
  74. package/dist/runtime/audit-logger.d.ts.map +0 -1
  75. package/dist/runtime/audit-logger.js.map +0 -1
  76. package/dist/runtime/base.d.ts.map +0 -1
  77. package/dist/runtime/base.js.map +0 -1
  78. package/dist/services/access-control.service.d.ts.map +0 -1
  79. package/dist/services/access-control.service.js.map +0 -1
  80. package/dist/services/authorization/authorization-registry.d.ts.map +0 -1
  81. package/dist/services/authorization/authorization-registry.js.map +0 -1
  82. package/dist/services/authorization/types.d.ts.map +0 -1
  83. package/dist/services/authorization/types.js.map +0 -1
  84. package/dist/services/batch-delegation.service.d.ts.map +0 -1
  85. package/dist/services/batch-delegation.service.js.map +0 -1
  86. package/dist/services/crypto.service.d.ts.map +0 -1
  87. package/dist/services/crypto.service.js.map +0 -1
  88. package/dist/services/errors.d.ts.map +0 -1
  89. package/dist/services/errors.js.map +0 -1
  90. package/dist/services/index.d.ts.map +0 -1
  91. package/dist/services/index.js.map +0 -1
  92. package/dist/services/oauth-config.service.d.ts.map +0 -1
  93. package/dist/services/oauth-config.service.js.map +0 -1
  94. package/dist/services/oauth-provider-registry.d.ts.map +0 -1
  95. package/dist/services/oauth-provider-registry.js.map +0 -1
  96. package/dist/services/oauth-service.d.ts.map +0 -1
  97. package/dist/services/oauth-service.js.map +0 -1
  98. package/dist/services/oauth-token-retrieval.service.d.ts.map +0 -1
  99. package/dist/services/oauth-token-retrieval.service.js.map +0 -1
  100. package/dist/services/proof-verifier.d.ts.map +0 -1
  101. package/dist/services/proof-verifier.js.map +0 -1
  102. package/dist/services/provider-resolver.d.ts.map +0 -1
  103. package/dist/services/provider-resolver.js.map +0 -1
  104. package/dist/services/provider-validator.d.ts.map +0 -1
  105. package/dist/services/provider-validator.js.map +0 -1
  106. package/dist/services/session-registration.service.d.ts.map +0 -1
  107. package/dist/services/session-registration.service.js.map +0 -1
  108. package/dist/services/storage.service.d.ts.map +0 -1
  109. package/dist/services/storage.service.js.map +0 -1
  110. package/dist/services/tool-context-builder.d.ts.map +0 -1
  111. package/dist/services/tool-context-builder.js.map +0 -1
  112. package/dist/services/tool-protection.service.d.ts.map +0 -1
  113. package/dist/services/tool-protection.service.js.map +0 -1
  114. package/dist/types/oauth-required-error.d.ts.map +0 -1
  115. package/dist/types/oauth-required-error.js.map +0 -1
  116. package/dist/types/tool-protection.d.ts.map +0 -1
  117. package/dist/types/tool-protection.js.map +0 -1
  118. package/dist/utils/base58.d.ts.map +0 -1
  119. package/dist/utils/base58.js.map +0 -1
  120. package/dist/utils/base64.d.ts.map +0 -1
  121. package/dist/utils/base64.js.map +0 -1
  122. package/dist/utils/cors.d.ts.map +0 -1
  123. package/dist/utils/cors.js.map +0 -1
  124. package/dist/utils/did-helpers.d.ts.map +0 -1
  125. package/dist/utils/did-helpers.js.map +0 -1
  126. package/dist/utils/index.d.ts.map +0 -1
  127. package/dist/utils/index.js.map +0 -1
  128. package/dist/utils/storage-keys.d.ts.map +0 -1
  129. package/dist/utils/storage-keys.js.map +0 -1
  130. package/docs/API_REFERENCE.md +0 -1362
  131. package/docs/COMPLIANCE_MATRIX.md +0 -691
  132. package/docs/STATUSLIST2021_GUIDE.md +0 -696
  133. package/docs/W3C_VC_DELEGATION_GUIDE.md +0 -710
  134. package/src/__tests__/cache/tool-protection-cache.test.ts +0 -640
  135. package/src/__tests__/config/provider-runtime-config.test.ts +0 -309
  136. package/src/__tests__/delegation-e2e.test.ts +0 -690
  137. package/src/__tests__/identity/user-did-manager.test.ts +0 -232
  138. package/src/__tests__/index.test.ts +0 -56
  139. package/src/__tests__/integration/full-flow.test.ts +0 -789
  140. package/src/__tests__/integration.test.ts +0 -281
  141. package/src/__tests__/providers/base.test.ts +0 -173
  142. package/src/__tests__/providers/memory.test.ts +0 -319
  143. package/src/__tests__/regression/phase2-regression.test.ts +0 -429
  144. package/src/__tests__/runtime/audit-logger.test.ts +0 -154
  145. package/src/__tests__/runtime/base-extensions.test.ts +0 -595
  146. package/src/__tests__/runtime/base.test.ts +0 -869
  147. package/src/__tests__/runtime/delegation-flow.test.ts +0 -164
  148. package/src/__tests__/runtime/proof-client-did.test.ts +0 -376
  149. package/src/__tests__/runtime/route-interception.test.ts +0 -686
  150. package/src/__tests__/runtime/tool-protection-enforcement.test.ts +0 -908
  151. package/src/__tests__/services/agentshield-integration.test.ts +0 -791
  152. package/src/__tests__/services/cache-busting.test.ts +0 -125
  153. package/src/__tests__/services/oauth-service-pkce.test.ts +0 -556
  154. package/src/__tests__/services/provider-resolver-edge-cases.test.ts +0 -591
  155. package/src/__tests__/services/tool-protection-merged-config.test.ts +0 -485
  156. package/src/__tests__/services/tool-protection-oauth-provider.test.ts +0 -480
  157. package/src/__tests__/services/tool-protection.service.test.ts +0 -1373
  158. package/src/__tests__/utils/mock-providers.ts +0 -340
  159. package/src/cache/oauth-config-cache.d.ts +0 -69
  160. package/src/cache/oauth-config-cache.d.ts.map +0 -1
  161. package/src/cache/oauth-config-cache.js.map +0 -1
  162. package/src/cache/oauth-config-cache.ts +0 -123
  163. package/src/cache/tool-protection-cache.ts +0 -171
  164. package/src/compliance/EXAMPLE.md +0 -412
  165. package/src/compliance/__tests__/schema-verifier.test.ts +0 -797
  166. package/src/compliance/index.ts +0 -8
  167. package/src/compliance/schema-registry.ts +0 -460
  168. package/src/compliance/schema-verifier.ts +0 -708
  169. package/src/config/__tests__/merged-config.spec.ts +0 -445
  170. package/src/config/__tests__/remote-config.spec.ts +0 -268
  171. package/src/config/remote-config.ts +0 -264
  172. package/src/config.ts +0 -312
  173. package/src/delegation/__tests__/audience-validator.test.ts +0 -112
  174. package/src/delegation/__tests__/bitstring.test.ts +0 -346
  175. package/src/delegation/__tests__/cascading-revocation.test.ts +0 -628
  176. package/src/delegation/__tests__/delegation-graph.test.ts +0 -584
  177. package/src/delegation/__tests__/did-key-resolver.test.ts +0 -265
  178. package/src/delegation/__tests__/utils.test.ts +0 -152
  179. package/src/delegation/__tests__/vc-issuer.test.ts +0 -442
  180. package/src/delegation/__tests__/vc-verifier.test.ts +0 -922
  181. package/src/delegation/audience-validator.ts +0 -52
  182. package/src/delegation/bitstring.ts +0 -278
  183. package/src/delegation/cascading-revocation.ts +0 -370
  184. package/src/delegation/delegation-graph.ts +0 -299
  185. package/src/delegation/did-key-resolver.ts +0 -179
  186. package/src/delegation/index.ts +0 -14
  187. package/src/delegation/statuslist-manager.ts +0 -353
  188. package/src/delegation/storage/__tests__/memory-graph-storage.test.ts +0 -366
  189. package/src/delegation/storage/__tests__/memory-statuslist-storage.test.ts +0 -228
  190. package/src/delegation/storage/index.ts +0 -9
  191. package/src/delegation/storage/memory-graph-storage.ts +0 -178
  192. package/src/delegation/storage/memory-statuslist-storage.ts +0 -77
  193. package/src/delegation/utils.ts +0 -221
  194. package/src/delegation/vc-issuer.ts +0 -232
  195. package/src/delegation/vc-verifier.ts +0 -568
  196. package/src/identity/idp-token-resolver.ts +0 -181
  197. package/src/identity/idp-token-storage.interface.ts +0 -94
  198. package/src/identity/user-did-manager.ts +0 -526
  199. package/src/index.ts +0 -310
  200. package/src/providers/base.d.ts +0 -91
  201. package/src/providers/base.d.ts.map +0 -1
  202. package/src/providers/base.js.map +0 -1
  203. package/src/providers/base.ts +0 -96
  204. package/src/providers/memory.ts +0 -142
  205. package/src/runtime/audit-logger.ts +0 -39
  206. package/src/runtime/base.ts +0 -1392
  207. package/src/services/__tests__/access-control.integration.test.ts +0 -443
  208. package/src/services/__tests__/access-control.proof-response-validation.test.ts +0 -578
  209. package/src/services/__tests__/access-control.service.test.ts +0 -970
  210. package/src/services/__tests__/batch-delegation.service.test.ts +0 -351
  211. package/src/services/__tests__/crypto.service.test.ts +0 -531
  212. package/src/services/__tests__/oauth-provider-registry.test.ts +0 -142
  213. package/src/services/__tests__/proof-verifier.integration.test.ts +0 -485
  214. package/src/services/__tests__/proof-verifier.test.ts +0 -489
  215. package/src/services/__tests__/provider-resolution.integration.test.ts +0 -202
  216. package/src/services/__tests__/provider-resolver.test.ts +0 -213
  217. package/src/services/__tests__/storage.service.test.ts +0 -358
  218. package/src/services/access-control.service.ts +0 -990
  219. package/src/services/authorization/authorization-registry.ts +0 -66
  220. package/src/services/authorization/types.ts +0 -71
  221. package/src/services/batch-delegation.service.ts +0 -137
  222. package/src/services/crypto.service.ts +0 -302
  223. package/src/services/errors.ts +0 -76
  224. package/src/services/index.ts +0 -18
  225. package/src/services/oauth-config.service.d.ts +0 -53
  226. package/src/services/oauth-config.service.d.ts.map +0 -1
  227. package/src/services/oauth-config.service.js.map +0 -1
  228. package/src/services/oauth-config.service.ts +0 -192
  229. package/src/services/oauth-provider-registry.d.ts +0 -57
  230. package/src/services/oauth-provider-registry.d.ts.map +0 -1
  231. package/src/services/oauth-provider-registry.js.map +0 -1
  232. package/src/services/oauth-provider-registry.ts +0 -141
  233. package/src/services/oauth-service.ts +0 -544
  234. package/src/services/oauth-token-retrieval.service.ts +0 -245
  235. package/src/services/proof-verifier.ts +0 -478
  236. package/src/services/provider-resolver.d.ts +0 -48
  237. package/src/services/provider-resolver.d.ts.map +0 -1
  238. package/src/services/provider-resolver.js.map +0 -1
  239. package/src/services/provider-resolver.ts +0 -146
  240. package/src/services/provider-validator.ts +0 -170
  241. package/src/services/session-registration.service.ts +0 -251
  242. package/src/services/storage.service.ts +0 -566
  243. package/src/services/tool-context-builder.ts +0 -237
  244. package/src/services/tool-protection.service.ts +0 -1070
  245. package/src/types/oauth-required-error.ts +0 -63
  246. package/src/types/tool-protection.ts +0 -155
  247. package/src/utils/__tests__/did-helpers.test.ts +0 -156
  248. package/src/utils/base58.ts +0 -109
  249. package/src/utils/base64.ts +0 -148
  250. package/src/utils/cors.ts +0 -83
  251. package/src/utils/did-helpers.ts +0 -210
  252. package/src/utils/index.ts +0 -8
  253. package/src/utils/storage-keys.ts +0 -278
  254. package/tsconfig.json +0 -21
  255. package/vitest.config.ts +0 -56
@@ -1,181 +0,0 @@
1
- /**
2
- * IDP Token Resolver
3
- *
4
- * Resolves User DID to IDP access token (MH-7 requirement).
5
- * Handles token lookup, expiration checking, and automatic refresh.
6
- *
7
- * Updated for CRED-003: Returns full token data including usage metadata
8
- * to support credential providers with custom token usage patterns.
9
- *
10
- * @package @kya-os/mcp-i-core
11
- */
12
-
13
- import type { IdpTokens } from "@kya-os/contracts/config";
14
- import type { IIdpTokenStorage, IdpTokensWithMetadata } from "./idp-token-storage.interface.js";
15
-
16
- export interface IdpTokenResolverConfig {
17
- /** Token storage implementation */
18
- tokenStorage: IIdpTokenStorage;
19
-
20
- /** OAuth service for token refresh */
21
- oauthService: {
22
- refreshToken(provider: string, refreshToken: string): Promise<IdpTokens | null>;
23
- };
24
-
25
- /** Optional logger callback for diagnostics */
26
- logger?: (message: string, data?: unknown) => void;
27
- }
28
-
29
- /**
30
- * Service for resolving User DID to IDP access token
31
- *
32
- * MH-7 Requirement: resolveTokenFromDid(userDid: string): Promise<string>
33
- *
34
- * This service implements the core MH-7 functionality:
35
- * - Resolves User DID to IDP access token
36
- * - Handles token expiration and automatic refresh
37
- * - Supports multiple IDP providers
38
- */
39
- export class IdpTokenResolver {
40
- private config: Required<Omit<IdpTokenResolverConfig, "logger">> & {
41
- logger: (message: string, data?: unknown) => void;
42
- };
43
-
44
- constructor(config: IdpTokenResolverConfig) {
45
- this.config = {
46
- tokenStorage: config.tokenStorage,
47
- oauthService: config.oauthService,
48
- logger: config.logger || (() => {}),
49
- };
50
- }
51
-
52
- /**
53
- * Resolve User DID to IDP access token
54
- *
55
- * MH-7 Requirement: resolveTokenFromDid(userDid: string): Promise<string>
56
- *
57
- * Flow:
58
- * 1. Look up token from storage
59
- * 2. Check expiration
60
- * 3. Auto-refresh if expired and refresh_token available
61
- * 4. Update storage after refresh
62
- * 5. Return access_token or null
63
- *
64
- * @param userDid - User DID to resolve
65
- * @param provider - OAuth provider name (e.g., "github", "google")
66
- * @param scopes - Required scopes for token
67
- * @returns Access token or null if not found/expired
68
- */
69
- async resolveTokenFromDid(
70
- userDid: string,
71
- provider: string,
72
- scopes: string[]
73
- ): Promise<string | null> {
74
- const tokenData = await this.resolveTokenDataFromDid(userDid, provider, scopes);
75
- return tokenData?.access_token ?? null;
76
- }
77
-
78
- /**
79
- * Resolve User DID to full IDP token data (CRED-003)
80
- *
81
- * Returns the full token data including usage metadata for credential providers.
82
- * This allows ToolContextBuilder to construct appropriate headers based on
83
- * tokenUsage (cookie/bearer/header) and cookieFormat.
84
- *
85
- * @param userDid - User DID to resolve
86
- * @param provider - OAuth provider name or credential provider
87
- * @param scopes - Required scopes for token
88
- * @returns Full token data with metadata or null if not found/expired
89
- */
90
- async resolveTokenDataFromDid(
91
- userDid: string,
92
- provider: string,
93
- scopes: string[]
94
- ): Promise<IdpTokensWithMetadata | null> {
95
- // 1. Look up token from storage
96
- const storedToken = await this.config.tokenStorage.getToken(
97
- userDid,
98
- provider,
99
- scopes
100
- );
101
-
102
- if (!storedToken) {
103
- this.config.logger("[IdpTokenResolver] Token not found", {
104
- userDid: userDid.substring(0, 20) + "...",
105
- provider,
106
- scopes,
107
- });
108
- return null;
109
- }
110
-
111
- // 2. Check expiration
112
- const now = Date.now();
113
- if (storedToken.expires_at < now) {
114
- this.config.logger("[IdpTokenResolver] Token expired, attempting refresh", {
115
- userDid: userDid.substring(0, 20) + "...",
116
- provider,
117
- expiresAt: new Date(storedToken.expires_at).toISOString(),
118
- hasRefreshToken: !!storedToken.refresh_token,
119
- });
120
-
121
- // 3. Refresh if refresh_token available
122
- // Note: Credential tokens don't support refresh - they require re-authentication
123
- if (storedToken.refresh_token) {
124
- const refreshed = await this.config.oauthService.refreshToken(
125
- provider,
126
- storedToken.refresh_token
127
- );
128
-
129
- if (refreshed) {
130
- // 4. Update storage with new tokens, preserving usage metadata
131
- const refreshedWithMetadata: IdpTokensWithMetadata = {
132
- ...refreshed,
133
- tokenUsage: storedToken.tokenUsage,
134
- tokenHeader: storedToken.tokenHeader,
135
- cookieFormat: storedToken.cookieFormat,
136
- apiHeaders: storedToken.apiHeaders,
137
- };
138
-
139
- await this.config.tokenStorage.storeToken(
140
- userDid,
141
- provider,
142
- scopes,
143
- refreshedWithMetadata
144
- );
145
-
146
- this.config.logger("[IdpTokenResolver] Token refreshed successfully", {
147
- userDid: userDid.substring(0, 20) + "...",
148
- provider,
149
- expiresAt: new Date(refreshed.expires_at).toISOString(),
150
- });
151
-
152
- // 5. Return new token data
153
- return refreshedWithMetadata;
154
- } else {
155
- this.config.logger("[IdpTokenResolver] Token refresh failed", {
156
- userDid: userDid.substring(0, 20) + "...",
157
- provider,
158
- });
159
- return null;
160
- }
161
- } else {
162
- this.config.logger("[IdpTokenResolver] Token expired and no refresh token", {
163
- userDid: userDid.substring(0, 20) + "...",
164
- provider,
165
- });
166
- return null;
167
- }
168
- }
169
-
170
- // 4. Return valid token data
171
- this.config.logger("[IdpTokenResolver] Token resolved successfully", {
172
- userDid: userDid.substring(0, 20) + "...",
173
- provider,
174
- expiresAt: new Date(storedToken.expires_at).toISOString(),
175
- tokenUsage: storedToken.tokenUsage,
176
- });
177
-
178
- return storedToken;
179
- }
180
- }
181
-
@@ -1,94 +0,0 @@
1
- /**
2
- * IDP Token Storage Interface
3
- *
4
- * Platform-agnostic interface for storing and retrieving IDP tokens.
5
- * Platform-specific implementations (Cloudflare KV, Node.js database, etc.)
6
- * implement this interface.
7
- *
8
- * Supports both OAuth tokens and credential-based session tokens (CRED-003).
9
- *
10
- * @package @kya-os/mcp-i-core
11
- */
12
-
13
- import type { IdpTokens } from "@kya-os/contracts/config";
14
-
15
- /**
16
- * Token usage metadata for credential providers (CRED-003)
17
- *
18
- * Specifies how the token should be used in subsequent API calls.
19
- */
20
- export interface TokenUsageMetadata {
21
- /**
22
- * How to use the token in requests
23
- * - "cookie": Send as Cookie header
24
- * - "bearer": Send as Authorization: Bearer xxx
25
- * - "header": Send as custom header (specify tokenHeader)
26
- */
27
- tokenUsage?: "cookie" | "bearer" | "header";
28
-
29
- /** Custom header name when tokenUsage is "header" */
30
- tokenHeader?: string;
31
-
32
- /**
33
- * Cookie format template when tokenUsage is "cookie"
34
- * Use {{token}} placeholder for the token value
35
- * @example "CIX={{token}}; customerCookie={{token}}"
36
- */
37
- cookieFormat?: string;
38
-
39
- /** Additional headers to include in API calls */
40
- apiHeaders?: Record<string, string>;
41
- }
42
-
43
- /**
44
- * Extended IdpTokens with usage metadata (CRED-003)
45
- */
46
- export interface IdpTokensWithMetadata extends IdpTokens, TokenUsageMetadata {}
47
-
48
- /**
49
- * Interface for IDP token storage
50
- */
51
- export interface IIdpTokenStorage {
52
- /**
53
- * Store IDP tokens
54
- *
55
- * @param userDid - User DID to associate tokens with
56
- * @param provider - OAuth provider name or credential provider
57
- * @param scopes - Scopes granted for these tokens
58
- * @param tokens - IDP tokens to store (may include usage metadata for credentials)
59
- */
60
- storeToken(
61
- userDid: string,
62
- provider: string,
63
- scopes: string[],
64
- tokens: IdpTokens | IdpTokensWithMetadata
65
- ): Promise<void>;
66
-
67
- /**
68
- * Retrieve IDP tokens
69
- *
70
- * @param userDid - User DID to retrieve tokens for
71
- * @param provider - OAuth provider name or credential provider
72
- * @param scopes - Scopes to retrieve tokens for
73
- * @returns IDP tokens with optional usage metadata or null if not found
74
- */
75
- getToken(
76
- userDid: string,
77
- provider: string,
78
- scopes: string[]
79
- ): Promise<IdpTokensWithMetadata | null>;
80
-
81
- /**
82
- * Delete IDP tokens
83
- *
84
- * @param userDid - User DID
85
- * @param provider - OAuth provider name or credential provider
86
- * @param scopes - Scopes
87
- */
88
- deleteToken(
89
- userDid: string,
90
- provider: string,
91
- scopes: string[]
92
- ): Promise<void>;
93
- }
94
-