@memberjunction/server 3.3.0 → 4.0.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 (296) hide show
  1. package/README.md +59 -0
  2. package/dist/agents/skip-agent.d.ts +65 -0
  3. package/dist/agents/skip-agent.d.ts.map +1 -1
  4. package/dist/agents/skip-agent.js +63 -5
  5. package/dist/agents/skip-agent.js.map +1 -1
  6. package/dist/agents/skip-sdk.d.ts +163 -0
  7. package/dist/agents/skip-sdk.d.ts.map +1 -1
  8. package/dist/agents/skip-sdk.js +143 -12
  9. package/dist/agents/skip-sdk.js.map +1 -1
  10. package/dist/apolloServer/TransactionPlugin.d.ts +4 -0
  11. package/dist/apolloServer/TransactionPlugin.d.ts.map +1 -0
  12. package/dist/apolloServer/TransactionPlugin.js +46 -0
  13. package/dist/apolloServer/TransactionPlugin.js.map +1 -0
  14. package/dist/apolloServer/index.d.ts +0 -1
  15. package/dist/apolloServer/index.d.ts.map +1 -1
  16. package/dist/auth/APIKeyScopeAuth.d.ts +82 -0
  17. package/dist/auth/APIKeyScopeAuth.d.ts.map +1 -1
  18. package/dist/auth/APIKeyScopeAuth.js +78 -0
  19. package/dist/auth/APIKeyScopeAuth.js.map +1 -1
  20. package/dist/auth/AuthProviderFactory.d.ts +35 -0
  21. package/dist/auth/AuthProviderFactory.d.ts.map +1 -1
  22. package/dist/auth/AuthProviderFactory.js +51 -4
  23. package/dist/auth/AuthProviderFactory.js.map +1 -1
  24. package/dist/auth/BaseAuthProvider.d.ts +22 -0
  25. package/dist/auth/BaseAuthProvider.d.ts.map +1 -1
  26. package/dist/auth/BaseAuthProvider.js +25 -8
  27. package/dist/auth/BaseAuthProvider.js.map +1 -1
  28. package/dist/auth/IAuthProvider.d.ts +33 -0
  29. package/dist/auth/IAuthProvider.d.ts.map +1 -1
  30. package/dist/auth/__tests__/backward-compatibility.test.d.ts +2 -0
  31. package/dist/auth/__tests__/backward-compatibility.test.d.ts.map +1 -0
  32. package/dist/auth/__tests__/backward-compatibility.test.js +135 -0
  33. package/dist/auth/__tests__/backward-compatibility.test.js.map +1 -0
  34. package/dist/auth/exampleNewUserSubClass.d.ts +5 -1
  35. package/dist/auth/exampleNewUserSubClass.d.ts.map +1 -1
  36. package/dist/auth/exampleNewUserSubClass.js +21 -6
  37. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  38. package/dist/auth/index.d.ts +14 -0
  39. package/dist/auth/index.d.ts.map +1 -1
  40. package/dist/auth/index.js +35 -22
  41. package/dist/auth/index.js.map +1 -1
  42. package/dist/auth/initializeProviders.d.ts +3 -0
  43. package/dist/auth/initializeProviders.d.ts.map +1 -1
  44. package/dist/auth/initializeProviders.js +6 -0
  45. package/dist/auth/initializeProviders.js.map +1 -1
  46. package/dist/auth/newUsers.js +11 -2
  47. package/dist/auth/newUsers.js.map +1 -1
  48. package/dist/auth/providers/Auth0Provider.d.ts +9 -0
  49. package/dist/auth/providers/Auth0Provider.d.ts.map +1 -1
  50. package/dist/auth/providers/Auth0Provider.js +10 -0
  51. package/dist/auth/providers/Auth0Provider.js.map +1 -1
  52. package/dist/auth/providers/CognitoProvider.d.ts +9 -0
  53. package/dist/auth/providers/CognitoProvider.d.ts.map +1 -1
  54. package/dist/auth/providers/CognitoProvider.js +10 -0
  55. package/dist/auth/providers/CognitoProvider.js.map +1 -1
  56. package/dist/auth/providers/GoogleProvider.d.ts +9 -0
  57. package/dist/auth/providers/GoogleProvider.d.ts.map +1 -1
  58. package/dist/auth/providers/GoogleProvider.js +11 -1
  59. package/dist/auth/providers/GoogleProvider.js.map +1 -1
  60. package/dist/auth/providers/MSALProvider.d.ts +9 -0
  61. package/dist/auth/providers/MSALProvider.d.ts.map +1 -1
  62. package/dist/auth/providers/MSALProvider.js +10 -0
  63. package/dist/auth/providers/MSALProvider.js.map +1 -1
  64. package/dist/auth/providers/OktaProvider.d.ts +9 -0
  65. package/dist/auth/providers/OktaProvider.d.ts.map +1 -1
  66. package/dist/auth/providers/OktaProvider.js +10 -0
  67. package/dist/auth/providers/OktaProvider.js.map +1 -1
  68. package/dist/config.d.ts +12 -0
  69. package/dist/config.d.ts.map +1 -1
  70. package/dist/config.js +44 -10
  71. package/dist/config.js.map +1 -1
  72. package/dist/context.d.ts +8 -1
  73. package/dist/context.d.ts.map +1 -1
  74. package/dist/context.js +26 -4
  75. package/dist/context.js.map +1 -1
  76. package/dist/directives/Public.js +2 -0
  77. package/dist/directives/Public.js.map +1 -1
  78. package/dist/entitySubclasses/entityPermissions.server.d.ts +7 -2
  79. package/dist/entitySubclasses/entityPermissions.server.d.ts.map +1 -1
  80. package/dist/entitySubclasses/entityPermissions.server.js +26 -8
  81. package/dist/entitySubclasses/entityPermissions.server.js.map +1 -1
  82. package/dist/generated/generated.d.ts +954 -2
  83. package/dist/generated/generated.d.ts.map +1 -1
  84. package/dist/generated/generated.js +12183 -14532
  85. package/dist/generated/generated.js.map +1 -1
  86. package/dist/generic/DeleteOptionsInput.d.ts +3 -0
  87. package/dist/generic/DeleteOptionsInput.d.ts.map +1 -1
  88. package/dist/generic/DeleteOptionsInput.js +3 -2
  89. package/dist/generic/DeleteOptionsInput.js.map +1 -1
  90. package/dist/generic/KeyInputOutputTypes.js +0 -6
  91. package/dist/generic/KeyInputOutputTypes.js.map +1 -1
  92. package/dist/generic/KeyValuePairInput.d.ts +4 -0
  93. package/dist/generic/KeyValuePairInput.d.ts.map +1 -1
  94. package/dist/generic/KeyValuePairInput.js +4 -2
  95. package/dist/generic/KeyValuePairInput.js.map +1 -1
  96. package/dist/generic/PushStatusResolver.js +0 -3
  97. package/dist/generic/PushStatusResolver.js.map +1 -1
  98. package/dist/generic/ResolverBase.d.ts +59 -0
  99. package/dist/generic/ResolverBase.d.ts.map +1 -1
  100. package/dist/generic/ResolverBase.js +233 -18
  101. package/dist/generic/ResolverBase.js.map +1 -1
  102. package/dist/generic/RunViewResolver.d.ts +22 -0
  103. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  104. package/dist/generic/RunViewResolver.js +42 -108
  105. package/dist/generic/RunViewResolver.js.map +1 -1
  106. package/dist/index.d.ts +2 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +84 -39
  109. package/dist/index.js.map +1 -1
  110. package/dist/orm.d.ts.map +1 -1
  111. package/dist/orm.js +2 -1
  112. package/dist/orm.js.map +1 -1
  113. package/dist/resolvers/APIKeyResolver.d.ts +76 -1
  114. package/dist/resolvers/APIKeyResolver.d.ts.map +1 -1
  115. package/dist/resolvers/APIKeyResolver.js +53 -11
  116. package/dist/resolvers/APIKeyResolver.js.map +1 -1
  117. package/dist/resolvers/ActionResolver.d.ts +191 -1
  118. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  119. package/dist/resolvers/ActionResolver.js +156 -22
  120. package/dist/resolvers/ActionResolver.js.map +1 -1
  121. package/dist/resolvers/ColorResolver.js +0 -5
  122. package/dist/resolvers/ColorResolver.js.map +1 -1
  123. package/dist/resolvers/ComponentRegistryResolver.d.ts +65 -0
  124. package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
  125. package/dist/resolvers/ComponentRegistryResolver.js +118 -40
  126. package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
  127. package/dist/resolvers/CreateQueryResolver.d.ts +47 -0
  128. package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
  129. package/dist/resolvers/CreateQueryResolver.js +92 -116
  130. package/dist/resolvers/CreateQueryResolver.js.map +1 -1
  131. package/dist/resolvers/DatasetResolver.d.ts +5 -4
  132. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  133. package/dist/resolvers/DatasetResolver.js +9 -18
  134. package/dist/resolvers/DatasetResolver.js.map +1 -1
  135. package/dist/resolvers/EntityCommunicationsResolver.d.ts +42 -1
  136. package/dist/resolvers/EntityCommunicationsResolver.d.ts.map +1 -1
  137. package/dist/resolvers/EntityCommunicationsResolver.js +5 -37
  138. package/dist/resolvers/EntityCommunicationsResolver.js.map +1 -1
  139. package/dist/resolvers/EntityRecordNameResolver.js +0 -7
  140. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  141. package/dist/resolvers/FileCategoryResolver.js +13 -1
  142. package/dist/resolvers/FileCategoryResolver.js.map +1 -1
  143. package/dist/resolvers/FileResolver.d.ts +16 -0
  144. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  145. package/dist/resolvers/FileResolver.js +59 -74
  146. package/dist/resolvers/FileResolver.js.map +1 -1
  147. package/dist/resolvers/GetDataContextDataResolver.d.ts +20 -2
  148. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  149. package/dist/resolvers/GetDataContextDataResolver.js +27 -12
  150. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  151. package/dist/resolvers/GetDataResolver.d.ts +19 -0
  152. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  153. package/dist/resolvers/GetDataResolver.js +35 -35
  154. package/dist/resolvers/GetDataResolver.js.map +1 -1
  155. package/dist/resolvers/InfoResolver.d.ts.map +1 -1
  156. package/dist/resolvers/InfoResolver.js +4 -7
  157. package/dist/resolvers/InfoResolver.js.map +1 -1
  158. package/dist/resolvers/MCPResolver.d.ts +361 -0
  159. package/dist/resolvers/MCPResolver.d.ts.map +1 -0
  160. package/dist/resolvers/MCPResolver.js +1270 -0
  161. package/dist/resolvers/MCPResolver.js.map +1 -0
  162. package/dist/resolvers/MergeRecordsResolver.d.ts +2 -1
  163. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  164. package/dist/resolvers/MergeRecordsResolver.js +6 -30
  165. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  166. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +1 -1
  167. package/dist/resolvers/PotentialDuplicateRecordResolver.js +0 -3
  168. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
  169. package/dist/resolvers/QueryResolver.d.ts +22 -1
  170. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  171. package/dist/resolvers/QueryResolver.js +50 -37
  172. package/dist/resolvers/QueryResolver.js.map +1 -1
  173. package/dist/resolvers/ReportResolver.d.ts +5 -1
  174. package/dist/resolvers/ReportResolver.d.ts.map +1 -1
  175. package/dist/resolvers/ReportResolver.js +13 -11
  176. package/dist/resolvers/ReportResolver.js.map +1 -1
  177. package/dist/resolvers/RunAIAgentResolver.d.ts +54 -0
  178. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  179. package/dist/resolvers/RunAIAgentResolver.js +118 -40
  180. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  181. package/dist/resolvers/RunAIPromptResolver.d.ts +42 -0
  182. package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
  183. package/dist/resolvers/RunAIPromptResolver.js +98 -22
  184. package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
  185. package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
  186. package/dist/resolvers/RunTemplateResolver.js +10 -6
  187. package/dist/resolvers/RunTemplateResolver.js.map +1 -1
  188. package/dist/resolvers/RunTestResolver.d.ts +12 -0
  189. package/dist/resolvers/RunTestResolver.d.ts.map +1 -1
  190. package/dist/resolvers/RunTestResolver.js +35 -21
  191. package/dist/resolvers/RunTestResolver.js.map +1 -1
  192. package/dist/resolvers/SqlLoggingConfigResolver.d.ts +312 -0
  193. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  194. package/dist/resolvers/SqlLoggingConfigResolver.js +295 -45
  195. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  196. package/dist/resolvers/SyncDataResolver.d.ts +21 -0
  197. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  198. package/dist/resolvers/SyncDataResolver.js +36 -22
  199. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  200. package/dist/resolvers/SyncRolesUsersResolver.d.ts +14 -0
  201. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  202. package/dist/resolvers/SyncRolesUsersResolver.js +54 -21
  203. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  204. package/dist/resolvers/TaskResolver.d.ts +13 -0
  205. package/dist/resolvers/TaskResolver.d.ts.map +1 -1
  206. package/dist/resolvers/TaskResolver.js +23 -7
  207. package/dist/resolvers/TaskResolver.js.map +1 -1
  208. package/dist/resolvers/TelemetryResolver.d.ts +22 -0
  209. package/dist/resolvers/TelemetryResolver.d.ts.map +1 -1
  210. package/dist/resolvers/TelemetryResolver.js +45 -79
  211. package/dist/resolvers/TelemetryResolver.js.map +1 -1
  212. package/dist/resolvers/TransactionGroupResolver.js +11 -13
  213. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  214. package/dist/resolvers/UserFavoriteResolver.js +3 -12
  215. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  216. package/dist/resolvers/UserResolver.d.ts.map +1 -1
  217. package/dist/resolvers/UserResolver.js +14 -0
  218. package/dist/resolvers/UserResolver.js.map +1 -1
  219. package/dist/resolvers/UserViewResolver.js +4 -0
  220. package/dist/resolvers/UserViewResolver.js.map +1 -1
  221. package/dist/resolvers/VersionHistoryResolver.d.ts +39 -0
  222. package/dist/resolvers/VersionHistoryResolver.d.ts.map +1 -0
  223. package/dist/resolvers/VersionHistoryResolver.js +208 -0
  224. package/dist/resolvers/VersionHistoryResolver.js.map +1 -0
  225. package/dist/rest/EntityCRUDHandler.d.ts +19 -0
  226. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  227. package/dist/rest/EntityCRUDHandler.js +55 -0
  228. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  229. package/dist/rest/OAuthCallbackHandler.d.ts +143 -0
  230. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -0
  231. package/dist/rest/OAuthCallbackHandler.js +634 -0
  232. package/dist/rest/OAuthCallbackHandler.js.map +1 -0
  233. package/dist/rest/RESTEndpointHandler.d.ts +120 -0
  234. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  235. package/dist/rest/RESTEndpointHandler.js +213 -24
  236. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  237. package/dist/rest/ViewOperationsHandler.d.ts +19 -0
  238. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  239. package/dist/rest/ViewOperationsHandler.js +39 -0
  240. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  241. package/dist/rest/index.d.ts +1 -0
  242. package/dist/rest/index.d.ts.map +1 -1
  243. package/dist/rest/index.js +1 -0
  244. package/dist/rest/index.js.map +1 -1
  245. package/dist/rest/setupRESTEndpoints.d.ts +35 -0
  246. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  247. package/dist/rest/setupRESTEndpoints.js +15 -1
  248. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  249. package/dist/services/ScheduledJobsService.d.ts +31 -0
  250. package/dist/services/ScheduledJobsService.d.ts.map +1 -1
  251. package/dist/services/ScheduledJobsService.js +38 -4
  252. package/dist/services/ScheduledJobsService.js.map +1 -1
  253. package/dist/services/TaskOrchestrator.d.ts +73 -0
  254. package/dist/services/TaskOrchestrator.d.ts.map +1 -1
  255. package/dist/services/TaskOrchestrator.js +137 -15
  256. package/dist/services/TaskOrchestrator.js.map +1 -1
  257. package/dist/types.d.ts +14 -0
  258. package/dist/types.d.ts.map +1 -1
  259. package/dist/types.js +0 -13
  260. package/dist/types.js.map +1 -1
  261. package/dist/util.d.ts +37 -1
  262. package/dist/util.d.ts.map +1 -1
  263. package/dist/util.js +55 -8
  264. package/dist/util.js.map +1 -1
  265. package/package.json +79 -77
  266. package/src/auth/BaseAuthProvider.ts +3 -0
  267. package/src/auth/IAuthProvider.ts +5 -0
  268. package/src/auth/exampleNewUserSubClass.ts +1 -5
  269. package/src/config.ts +2 -2
  270. package/src/entitySubclasses/entityPermissions.server.ts +1 -3
  271. package/src/generated/generated.ts +6245 -2558
  272. package/src/generic/ResolverBase.ts +89 -3
  273. package/src/index.ts +71 -64
  274. package/src/resolvers/APIKeyResolver.ts +8 -1
  275. package/src/resolvers/ActionResolver.ts +8 -1
  276. package/src/resolvers/DatasetResolver.ts +11 -4
  277. package/src/resolvers/EntityCommunicationsResolver.ts +5 -1
  278. package/src/resolvers/GetDataContextDataResolver.ts +14 -6
  279. package/src/resolvers/InfoResolver.ts +5 -1
  280. package/src/resolvers/MCPResolver.ts +1380 -0
  281. package/src/resolvers/MergeRecordsResolver.ts +5 -1
  282. package/src/resolvers/PotentialDuplicateRecordResolver.ts +0 -4
  283. package/src/resolvers/QueryResolver.ts +17 -3
  284. package/src/resolvers/ReportResolver.ts +8 -1
  285. package/src/resolvers/RunAIAgentResolver.ts +6 -0
  286. package/src/resolvers/RunAIPromptResolver.ts +10 -1
  287. package/src/resolvers/RunTemplateResolver.ts +4 -1
  288. package/src/resolvers/TaskResolver.ts +3 -0
  289. package/src/resolvers/UserResolver.ts +15 -3
  290. package/src/resolvers/VersionHistoryResolver.ts +177 -0
  291. package/src/rest/OAuthCallbackHandler.ts +766 -0
  292. package/src/rest/RESTEndpointHandler.ts +58 -35
  293. package/src/rest/index.ts +2 -1
  294. package/src/rest/setupRESTEndpoints.ts +13 -12
  295. package/src/resolvers/AskSkipResolver.ts +0 -3446
  296. package/src/scheduler/LearningCycleScheduler.ts +0 -320
@@ -1,23 +1,98 @@
1
1
  import { AppContext } from "../types.js";
2
+ import { ResolverBase } from "../generic/ResolverBase.js";
3
+ /**
4
+ * Input type for creating a new API key
5
+ */
2
6
  export declare class CreateAPIKeyInput {
7
+ /**
8
+ * Human-readable label for the API key
9
+ */
3
10
  Label: string;
11
+ /**
12
+ * Optional description of what the key is used for
13
+ */
4
14
  Description?: string;
15
+ /**
16
+ * Optional expiration date for the key
17
+ */
5
18
  ExpiresAt?: Date;
19
+ /**
20
+ * Optional array of scope IDs to assign to this key
21
+ */
6
22
  ScopeIDs?: string[];
7
23
  }
24
+ /**
25
+ * Result type for API key creation
26
+ * Returns the raw key ONCE - it cannot be recovered after this
27
+ */
8
28
  export declare class CreateAPIKeyResult {
29
+ /**
30
+ * Whether the key was created successfully
31
+ */
9
32
  Success: boolean;
33
+ /**
34
+ * The raw API key - show this to the user ONCE
35
+ * This cannot be recovered after the initial response
36
+ */
10
37
  RawKey?: string;
38
+ /**
39
+ * The database ID of the created API key
40
+ */
11
41
  APIKeyID?: string;
42
+ /**
43
+ * Error message if creation failed
44
+ */
12
45
  Error?: string;
13
46
  }
47
+ /**
48
+ * Result type for API key revocation
49
+ */
14
50
  export declare class RevokeAPIKeyResult {
51
+ /**
52
+ * Whether the key was revoked successfully
53
+ */
15
54
  Success: boolean;
55
+ /**
56
+ * Error message if revocation failed
57
+ */
16
58
  Error?: string;
17
59
  }
18
- export declare class APIKeyResolver {
60
+ /**
61
+ * Resolver for API key operations
62
+ * Handles secure server-side API key generation
63
+ */
64
+ export declare class APIKeyResolver extends ResolverBase {
65
+ /**
66
+ * Creates a new API key with proper server-side cryptographic hashing.
67
+ *
68
+ * This mutation:
69
+ * 1. Generates a cryptographically secure API key using APIKeyEngine
70
+ * 2. Stores only the SHA-256 hash in the database (never the raw key)
71
+ * 3. Returns the raw key ONCE - it cannot be recovered after this call
72
+ * 4. Optionally assigns scope permissions to the key
73
+ *
74
+ * @param input The creation parameters
75
+ * @param ctx The GraphQL context with authenticated user
76
+ * @returns The raw key (show once!) and database ID
77
+ */
19
78
  CreateAPIKey(input: CreateAPIKeyInput, ctx: AppContext): Promise<CreateAPIKeyResult>;
79
+ /**
80
+ * Revokes an API key, permanently disabling it.
81
+ *
82
+ * Once revoked, an API key cannot be reactivated. Users must create a new key.
83
+ * This uses APIKeyEngine.RevokeAPIKey() for consistency.
84
+ *
85
+ * @param apiKeyId The database ID of the API key to revoke
86
+ * @param ctx The GraphQL context with authenticated user
87
+ * @returns Success status
88
+ */
20
89
  RevokeAPIKey(apiKeyId: string, ctx: AppContext): Promise<RevokeAPIKeyResult>;
90
+ /**
91
+ * Saves scope associations for the newly created API key
92
+ * @param apiKeyId The ID of the created API key
93
+ * @param scopeIds Array of scope IDs to associate
94
+ * @param user The context user
95
+ */
21
96
  private saveScopeAssociations;
22
97
  }
23
98
  //# sourceMappingURL=APIKeyResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"APIKeyResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/APIKeyResolver.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,qBACa,iBAAiB;IAK1B,KAAK,EAAE,MAAM,CAAC;IAMd,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,SAAS,CAAC,EAAE,IAAI,CAAC;IAMjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAMD,qBACa,kBAAkB;IAK3B,OAAO,EAAE,OAAO,CAAC;IAOjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBACa,kBAAkB;IAK3B,OAAO,EAAE,OAAO,CAAC;IAMjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBACa,cAAc;IAejB,YAAY,CACA,KAAK,EAAE,iBAAiB,EAC/B,GAAG,EAAE,UAAU,GACvB,OAAO,CAAC,kBAAkB,CAAC;IA6DxB,YAAY,CACG,QAAQ,EAAE,MAAM,EAC1B,GAAG,EAAE,UAAU,GACvB,OAAO,CAAC,kBAAkB,CAAC;YAqChB,qBAAqB;CAsBtC"}
1
+ {"version":3,"file":"APIKeyResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/APIKeyResolver.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;GAEG;AACH,qBACa,iBAAiB;IAC1B;;OAEG;IAEH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IAEH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IAEH,SAAS,CAAC,EAAE,IAAI,CAAC;IAEjB;;OAEG;IAEH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,qBACa,kBAAkB;IAC3B;;OAEG;IAEH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBACa,kBAAkB;IAC3B;;OAEG;IAEH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,qBACa,cAAe,SAAQ,YAAY;IAC5C;;;;;;;;;;;;OAYG;IAEG,YAAY,CACA,KAAK,EAAE,iBAAiB,EAC/B,GAAG,EAAE,UAAU,GACvB,OAAO,CAAC,kBAAkB,CAAC;IAqD9B;;;;;;;;;OASG;IAEG,YAAY,CACG,QAAQ,EAAE,MAAM,EAC1B,GAAG,EAAE,UAAU,GACvB,OAAO,CAAC,kBAAkB,CAAC;IAkC9B;;;;;OAKG;YACW,qBAAqB;CAsBtC"}
@@ -14,11 +14,11 @@ import { Resolver, Mutation, Arg, Ctx } from "type-graphql";
14
14
  import { Field, InputType, ObjectType } from "type-graphql";
15
15
  import { LogError, Metadata } from "@memberjunction/core";
16
16
  import { GetAPIKeyEngine } from "@memberjunction/api-keys";
17
+ import { ResolverBase } from "../generic/ResolverBase.js";
18
+ /**
19
+ * Input type for creating a new API key
20
+ */
17
21
  let CreateAPIKeyInput = class CreateAPIKeyInput {
18
- Label;
19
- Description;
20
- ExpiresAt;
21
- ScopeIDs;
22
22
  };
23
23
  __decorate([
24
24
  Field(),
@@ -40,11 +40,11 @@ CreateAPIKeyInput = __decorate([
40
40
  InputType()
41
41
  ], CreateAPIKeyInput);
42
42
  export { CreateAPIKeyInput };
43
+ /**
44
+ * Result type for API key creation
45
+ * Returns the raw key ONCE - it cannot be recovered after this
46
+ */
43
47
  let CreateAPIKeyResult = class CreateAPIKeyResult {
44
- Success;
45
- RawKey;
46
- APIKeyID;
47
- Error;
48
48
  };
49
49
  __decorate([
50
50
  Field(),
@@ -66,9 +66,10 @@ CreateAPIKeyResult = __decorate([
66
66
  ObjectType()
67
67
  ], CreateAPIKeyResult);
68
68
  export { CreateAPIKeyResult };
69
+ /**
70
+ * Result type for API key revocation
71
+ */
69
72
  let RevokeAPIKeyResult = class RevokeAPIKeyResult {
70
- Success;
71
- Error;
72
73
  };
73
74
  __decorate([
74
75
  Field(),
@@ -82,9 +83,29 @@ RevokeAPIKeyResult = __decorate([
82
83
  ObjectType()
83
84
  ], RevokeAPIKeyResult);
84
85
  export { RevokeAPIKeyResult };
85
- let APIKeyResolver = class APIKeyResolver {
86
+ /**
87
+ * Resolver for API key operations
88
+ * Handles secure server-side API key generation
89
+ */
90
+ let APIKeyResolver = class APIKeyResolver extends ResolverBase {
91
+ /**
92
+ * Creates a new API key with proper server-side cryptographic hashing.
93
+ *
94
+ * This mutation:
95
+ * 1. Generates a cryptographically secure API key using APIKeyEngine
96
+ * 2. Stores only the SHA-256 hash in the database (never the raw key)
97
+ * 3. Returns the raw key ONCE - it cannot be recovered after this call
98
+ * 4. Optionally assigns scope permissions to the key
99
+ *
100
+ * @param input The creation parameters
101
+ * @param ctx The GraphQL context with authenticated user
102
+ * @returns The raw key (show once!) and database ID
103
+ */
86
104
  async CreateAPIKey(input, ctx) {
105
+ // Check API key scope authorization for API key creation
106
+ await this.CheckAPIKeyScopeAuthorization('apikey:create', '*', ctx.userPayload);
87
107
  try {
108
+ // Get the authenticated user
88
109
  const user = ctx.userPayload.userRecord;
89
110
  if (!user) {
90
111
  return {
@@ -92,6 +113,7 @@ let APIKeyResolver = class APIKeyResolver {
92
113
  Error: "User is not authenticated"
93
114
  };
94
115
  }
116
+ // Use APIKeyEngine to create the API key with proper server-side crypto
95
117
  const apiKeyEngine = GetAPIKeyEngine();
96
118
  const result = await apiKeyEngine.CreateAPIKey({
97
119
  UserId: user.ID,
@@ -105,6 +127,7 @@ let APIKeyResolver = class APIKeyResolver {
105
127
  Error: result.Error || "Failed to create API key"
106
128
  };
107
129
  }
130
+ // Save scope associations if provided
108
131
  if (input.ScopeIDs && input.ScopeIDs.length > 0 && result.APIKeyId) {
109
132
  await this.saveScopeAssociations(result.APIKeyId, input.ScopeIDs, user);
110
133
  }
@@ -123,7 +146,19 @@ let APIKeyResolver = class APIKeyResolver {
123
146
  };
124
147
  }
125
148
  }
149
+ /**
150
+ * Revokes an API key, permanently disabling it.
151
+ *
152
+ * Once revoked, an API key cannot be reactivated. Users must create a new key.
153
+ * This uses APIKeyEngine.RevokeAPIKey() for consistency.
154
+ *
155
+ * @param apiKeyId The database ID of the API key to revoke
156
+ * @param ctx The GraphQL context with authenticated user
157
+ * @returns Success status
158
+ */
126
159
  async RevokeAPIKey(apiKeyId, ctx) {
160
+ // Check API key scope authorization for API key revocation
161
+ await this.CheckAPIKeyScopeAuthorization('apikey:revoke', apiKeyId, ctx.userPayload);
127
162
  try {
128
163
  const user = ctx.userPayload.userRecord;
129
164
  if (!user) {
@@ -153,6 +188,12 @@ let APIKeyResolver = class APIKeyResolver {
153
188
  };
154
189
  }
155
190
  }
191
+ /**
192
+ * Saves scope associations for the newly created API key
193
+ * @param apiKeyId The ID of the created API key
194
+ * @param scopeIds Array of scope IDs to associate
195
+ * @param user The context user
196
+ */
156
197
  async saveScopeAssociations(apiKeyId, scopeIds, user) {
157
198
  const md = new Metadata();
158
199
  for (const scopeId of scopeIds) {
@@ -164,6 +205,7 @@ let APIKeyResolver = class APIKeyResolver {
164
205
  }
165
206
  catch (error) {
166
207
  LogError(`Error saving scope association for API key ${apiKeyId}, scope ${scopeId}: ${error}`);
208
+ // Continue with other scopes even if one fails
167
209
  }
168
210
  }
169
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"APIKeyResolver.js","sourceRoot":"","sources":["../../src/resolvers/APIKeyResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIKeyResolver.js","sourceRoot":"","sources":["../../src/resolvers/APIKeyResolver.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,239 @@
1
1
  import { KeyValuePairInput } from "../generic/KeyValuePairInput.js";
2
2
  import { AppContext } from "../types.js";
3
+ import { ResolverBase } from "../generic/ResolverBase.js";
4
+ /**
5
+ * Input type for action parameters
6
+ * Used to pass parameters to actions when invoking them
7
+ */
3
8
  export declare class ActionParamInput {
9
+ /**
10
+ * The name of the parameter
11
+ */
4
12
  Name: string;
13
+ /**
14
+ * The value of the parameter
15
+ * Complex objects should be serialized to JSON strings
16
+ */
5
17
  Value: string;
18
+ /**
19
+ * The data type of the parameter
20
+ * Used for type conversion on the server
21
+ */
6
22
  Type: string;
7
23
  }
24
+ /**
25
+ * Input type for running an action
26
+ */
8
27
  export declare class RunActionInput {
28
+ /**
29
+ * The ID of the action to run
30
+ */
9
31
  ActionID: string;
32
+ /**
33
+ * Parameters to pass to the action
34
+ */
10
35
  Params?: ActionParamInput[];
36
+ /**
37
+ * Whether to skip logging the action execution
38
+ * Defaults to false
39
+ */
11
40
  SkipActionLog?: boolean;
12
41
  }
42
+ /**
43
+ * Represents a collection of key-value pairs that make up a composite key
44
+ * Used for both primary keys and foreign keys
45
+ */
13
46
  export declare class CompositeKeyInput {
47
+ /**
48
+ * The collection of key-value pairs that make up the composite key
49
+ */
14
50
  KeyValuePairs: KeyValuePairInput[];
15
51
  }
52
+ /**
53
+ * Input type for running entity actions
54
+ */
16
55
  export declare class EntityActionInput {
56
+ /**
57
+ * The ID of the entity action to run
58
+ */
17
59
  EntityActionID: string;
60
+ /**
61
+ * The type of invocation (SingleRecord, View, List, etc.)
62
+ */
18
63
  InvocationType: string;
64
+ /**
65
+ * The name of the entity
66
+ * This is the preferred way to identify an entity as it's more human-readable than EntityID
67
+ */
19
68
  EntityName?: string;
69
+ /**
70
+ * The ID of the entity
71
+ * Use EntityName instead when possible for better code readability
72
+ * @deprecated Use EntityName instead when possible
73
+ */
20
74
  EntityID?: string;
75
+ /**
76
+ * The primary key of the entity record to act on
77
+ * This is used for SingleRecord invocation types
78
+ */
21
79
  PrimaryKey?: CompositeKeyInput;
80
+ /**
81
+ * The ID of the list to operate on
82
+ * This is used for List invocation types
83
+ */
22
84
  ListID?: string;
85
+ /**
86
+ * The ID of the view to operate on
87
+ * This is used for View invocation types
88
+ */
23
89
  ViewID?: string;
90
+ /**
91
+ * Additional parameters to pass to the action
92
+ */
24
93
  Params?: ActionParamInput[];
25
94
  }
95
+ /**
96
+ * Output type for action results
97
+ * Used to return results from actions to clients
98
+ */
26
99
  export declare class ActionResultOutput {
100
+ /**
101
+ * Whether the action was executed successfully
102
+ */
27
103
  Success: boolean;
104
+ /**
105
+ * Optional message describing the result of the action
106
+ */
28
107
  Message?: string;
108
+ /**
109
+ * Optional result code from the action
110
+ */
29
111
  ResultCode?: string;
112
+ /**
113
+ * Optional result data from the action
114
+ * Complex objects are serialized to JSON strings
115
+ */
30
116
  ResultData?: string;
31
117
  }
32
- export declare class ActionResolver {
118
+ /**
119
+ * Resolver for action-related GraphQL operations
120
+ * Handles running actions and entity actions through GraphQL
121
+ */
122
+ export declare class ActionResolver extends ResolverBase {
123
+ /**
124
+ * Mutation for running an action
125
+ * @param input The input parameters for running the action
126
+ * @param ctx The GraphQL context containing user authentication information
127
+ * @returns The result of running the action
128
+ */
33
129
  RunAction(input: RunActionInput, ctx: AppContext): Promise<ActionResultOutput>;
130
+ /**
131
+ * Finds an action by its ID
132
+ * @param actionID The ID of the action to find
133
+ * @returns The action
134
+ * @throws Error if the action is not found
135
+ * @private
136
+ */
34
137
  private findActionById;
138
+ /**
139
+ * Parses action parameters from the input
140
+ * @param inputParams The input parameters
141
+ * @returns The parsed parameters
142
+ * @private
143
+ */
35
144
  private parseActionParameters;
145
+ /**
146
+ * Executes an action
147
+ * @param action The action to execute
148
+ * @param user The user context
149
+ * @param params The action parameters
150
+ * @param skipActionLog Whether to skip action logging
151
+ * @returns The action result
152
+ * @private
153
+ */
36
154
  private executeAction;
155
+ /**
156
+ * Creates an action result from the execution result
157
+ * @param result The execution result
158
+ * @returns The formatted action result
159
+ * @private
160
+ */
37
161
  private createActionResult;
162
+ /**
163
+ * Handles errors in the action resolver
164
+ * @param e The error
165
+ * @returns An error result
166
+ * @private
167
+ */
38
168
  private handleActionError;
169
+ /**
170
+ * Mutation for running an entity action
171
+ * @param input The input parameters for running the entity action
172
+ * @param ctx The GraphQL context containing user authentication information
173
+ * @returns The result of running the entity action
174
+ */
39
175
  RunEntityAction(input: EntityActionInput, ctx: AppContext): Promise<ActionResultOutput>;
176
+ /**
177
+ * Gets an entity action by ID
178
+ * @param actionID The ID of the entity action
179
+ * @returns The entity action
180
+ * @throws Error if entity action is not found
181
+ * @private
182
+ */
40
183
  private getEntityAction;
184
+ /**
185
+ * Creates the base parameters for the entity action
186
+ * @param entityAction The entity action
187
+ * @param invocationTypeName The invocation type name
188
+ * @param user The authenticated user
189
+ * @returns The base parameters
190
+ * @private
191
+ */
41
192
  private createBaseParams;
193
+ /**
194
+ * Adds the entity object to the parameters
195
+ * @param params The parameters to add to
196
+ * @param input The input parameters
197
+ * @param user The authenticated user
198
+ * @private
199
+ */
42
200
  private addEntityObject;
201
+ /**
202
+ * Creates a composite key from the input
203
+ * @param entity The entity information
204
+ * @param primaryKey The primary key input
205
+ * @returns The composite key
206
+ * @private
207
+ */
43
208
  private createCompositeKey;
209
+ /**
210
+ * Converts a value to the proper type based on the field information
211
+ * @param value The value to convert
212
+ * @param field The field information
213
+ * @returns The converted value
214
+ * @private
215
+ */
44
216
  private convertValueToProperType;
217
+ /**
218
+ * Adds optional parameters to the entity action parameters
219
+ * @param params The parameters to add to
220
+ * @param input The input parameters
221
+ * @private
222
+ */
45
223
  private addOptionalParams;
224
+ /**
225
+ * Converts a parameter value to the proper format
226
+ * @param p The parameter to convert
227
+ * @returns The converted parameter
228
+ * @private
229
+ */
46
230
  private convertParameterValue;
231
+ /**
232
+ * Handles errors in the entity action resolver
233
+ * @param e The error
234
+ * @returns An error result
235
+ * @private
236
+ */
47
237
  private handleError;
48
238
  }
49
239
  //# sourceMappingURL=ActionResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ActionResolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AAQvD,qBACa,gBAAgB;IAK3B,IAAI,EAAE,MAAM,CAAC;IAOb,KAAK,EAAE,MAAM,CAAC;IAOd,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,qBACa,cAAc;IAKzB,QAAQ,EAAE,MAAM,CAAC;IAMjB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAO5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAMD,qBACa,iBAAiB;IAK5B,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAKD,qBACa,iBAAiB;IAK5B,cAAc,EAAE,MAAM,CAAC;IAMvB,cAAc,EAAE,MAAM,CAAC;IAOvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAQpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAO/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAMhB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAMD,qBACa,kBAAkB;IAK7B,OAAO,EAAE,OAAO,CAAC;IAMjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAOpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAMD,qBACa,cAAc;IAQnB,SAAS,CACC,KAAK,EAAE,cAAc,EAC5B,GAAG,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAkC9B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,qBAAqB;YAoCf,aAAa;IAqB3B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,iBAAiB;IAgBnB,eAAe,CACL,KAAK,EAAE,iBAAiB,EAC/B,GAAG,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC;IA6C9B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;YAgBV,eAAe;IAmC7B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,WAAW;CAQpB"}
1
+ {"version":3,"file":"ActionResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ActionResolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgB,MAAM,aAAa,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;;GAGG;AACH,qBACa,gBAAgB;IAC3B;;OAEG;IAEH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IAEH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IAEH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBACa,cAAc;IACzB;;OAEG;IAEH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IAEH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE5B;;;OAGG;IAEH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,qBACa,iBAAiB;IAC5B;;OAEG;IAEH,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,qBACa,iBAAiB;IAC5B;;OAEG;IAEH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IAEH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IAEH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IAEH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;;OAGG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IAEH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,qBACa,kBAAkB;IAC7B;;OAEG;IAEH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IAEH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IAEH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IAEH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBACa,cAAe,SAAQ,YAAY;IAC9C;;;;;OAKG;IAEG,SAAS,CACC,KAAK,EAAE,cAAc,EAC5B,GAAG,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC;IA8B9B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;;;;;;OAQG;YACW,aAAa;IAe3B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;;;OAKG;IAEG,eAAe,CACL,KAAK,EAAE,iBAAiB,EAC/B,GAAG,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC;IAyC9B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;OAMG;YACW,eAAe;IA4B7B;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAQpB"}