@nlabs/metropolisjs 0.1.2 → 0.2.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 (329) hide show
  1. package/.github/copilot-instructions.md +167 -0
  2. package/AGENTS.md +13 -0
  3. package/CHANGELOG.md +112 -0
  4. package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
  5. package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
  6. package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
  7. package/README.md +1123 -112
  8. package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
  9. package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
  10. package/docs/ACTIONS.md +63 -0
  11. package/docs/COLLECTIONS.md +1038 -0
  12. package/docs/CONNECTIONS.md +1367 -0
  13. package/docs/CRUD_INTEGRATION.md +702 -0
  14. package/examples/connections-usage.tsx +909 -0
  15. package/examples/content-actions-usage.ts +144 -0
  16. package/examples/crud-usage.tsx +847 -0
  17. package/examples/extensibility-usage.tsx +889 -0
  18. package/examples/i18n-import-examples.ts +86 -0
  19. package/examples/i18n-namespace-usage.ts +118 -0
  20. package/examples/i18next-singleton-demo.ts +187 -0
  21. package/examples/permission-system-usage.tsx +415 -0
  22. package/examples/project-details.tsx +397 -0
  23. package/examples/shared-i18n-usage.tsx +203 -0
  24. package/examples/signup-error-handling.ts +100 -0
  25. package/examples/translation-types.ts +86 -0
  26. package/examples/translation-usage.tsx +336 -0
  27. package/index.js +1 -0
  28. package/jest.config.mjs +28 -0
  29. package/lex.config.mjs +11 -2
  30. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  31. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  36. package/lib/actions/appActions/appActions.d.ts +29 -0
  37. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  38. package/lib/actions/appActions/appActions.js +159 -0
  39. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  40. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  41. package/lib/actions/connectionActions/connectionActions.js +131 -0
  42. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  43. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  44. package/lib/actions/contentActions/contentActions.js +314 -0
  45. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  46. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  47. package/lib/actions/conversationActions/conversationActions.js +225 -0
  48. package/lib/actions/eventActions/eventActions.d.ts +27 -7
  49. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  50. package/lib/actions/eventActions/eventActions.js +436 -2
  51. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  52. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  53. package/lib/actions/groupActions/groupActions.js +229 -0
  54. package/lib/actions/imageActions/imageActions.d.ts +16 -10
  55. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  56. package/lib/actions/imageActions/imageActions.js +593 -2
  57. package/lib/actions/index.d.ts +21 -9
  58. package/lib/actions/index.d.ts.map +1 -0
  59. package/lib/actions/index.js +22 -2
  60. package/lib/actions/locationActions/locationActions.d.ts +11 -9
  61. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  62. package/lib/actions/locationActions/locationActions.js +388 -2
  63. package/lib/actions/messageActions/messageActions.d.ts +16 -32
  64. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  65. package/lib/actions/messageActions/messageActions.js +235 -2
  66. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  67. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  68. package/lib/actions/permissionActions/permissionActions.js +330 -0
  69. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  70. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  71. package/lib/actions/personaActions/personaActions.js +572 -0
  72. package/lib/actions/postActions/postActions.d.ts +12 -32
  73. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  74. package/lib/actions/postActions/postActions.js +447 -2
  75. package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
  76. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  77. package/lib/actions/reactionActions/reactionActions.js +413 -2
  78. package/lib/actions/sseActions/sseActions.d.ts +1 -0
  79. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  80. package/lib/actions/sseActions/sseActions.js +148 -2
  81. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  82. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  84. package/lib/actions/tagActions/tagActions.d.ts +13 -31
  85. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  86. package/lib/actions/tagActions/tagActions.js +347 -2
  87. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  88. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  89. package/lib/actions/translationActions/translationActions.js +189 -0
  90. package/lib/actions/userActions/userActions.d.ts +42 -95
  91. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  92. package/lib/actions/userActions/userActions.js +844 -2
  93. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  94. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  95. package/lib/actions/videoActions/videoActions.js +532 -0
  96. package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
  97. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  98. package/lib/actions/websocketActions/websocketActions.js +377 -2
  99. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  100. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  101. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  102. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
  103. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
  105. package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
  106. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
  108. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
  109. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
  111. package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
  112. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
  114. package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
  115. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
  117. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  118. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  120. package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
  121. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
  123. package/lib/adapters/index.d.ts +34 -16
  124. package/lib/adapters/index.d.ts.map +1 -0
  125. package/lib/adapters/index.js +19 -2
  126. package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
  127. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
  129. package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
  130. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
  132. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  133. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  135. package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
  136. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
  138. package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
  139. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  140. package/lib/adapters/postAdapter/postAdapter.js +115 -2
  141. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
  142. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
  144. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
  145. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
  147. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
  148. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
  150. package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
  151. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
  153. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  154. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  156. package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
  157. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  158. package/lib/adapters/userAdapter/userAdapter.js +302 -2
  159. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  160. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  162. package/lib/config/index.d.ts +19 -6
  163. package/lib/config/index.d.ts.map +1 -0
  164. package/lib/config/index.js +97 -2
  165. package/lib/constants/Collections.d.ts +44 -0
  166. package/lib/constants/Collections.d.ts.map +1 -0
  167. package/lib/constants/Collections.js +40 -0
  168. package/lib/constants/MetropolisConstants.d.ts +1 -0
  169. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  170. package/lib/constants/MetropolisConstants.js +15 -2
  171. package/lib/graphql/message.d.ts +1 -0
  172. package/lib/graphql/message.d.ts.map +1 -0
  173. package/lib/graphql/message.js +6 -4
  174. package/lib/graphql/notification.d.ts +1 -0
  175. package/lib/graphql/notification.d.ts.map +1 -0
  176. package/lib/graphql/notification.js +6 -4
  177. package/lib/graphql/session.d.ts +1 -0
  178. package/lib/graphql/session.d.ts.map +1 -0
  179. package/lib/graphql/session.js +4 -3
  180. package/lib/index.d.ts +45 -22
  181. package/lib/index.d.ts.map +1 -0
  182. package/lib/index.js +248 -2
  183. package/lib/stores/appStore.d.ts +1 -0
  184. package/lib/stores/appStore.d.ts.map +1 -0
  185. package/lib/stores/appStore.js +23 -2
  186. package/lib/stores/contentStore.d.ts +36 -0
  187. package/lib/stores/contentStore.d.ts.map +1 -0
  188. package/lib/stores/contentStore.js +139 -0
  189. package/lib/stores/conversationStore.d.ts +38 -0
  190. package/lib/stores/conversationStore.d.ts.map +1 -0
  191. package/lib/stores/conversationStore.js +117 -0
  192. package/lib/stores/eventStore.d.ts +4 -1
  193. package/lib/stores/eventStore.d.ts.map +1 -0
  194. package/lib/stores/eventStore.js +47 -2
  195. package/lib/stores/groupStore.d.ts +37 -0
  196. package/lib/stores/groupStore.d.ts.map +1 -0
  197. package/lib/stores/groupStore.js +68 -0
  198. package/lib/stores/imageStore.d.ts +6 -1
  199. package/lib/stores/imageStore.d.ts.map +1 -0
  200. package/lib/stores/imageStore.js +53 -2
  201. package/lib/stores/index.d.ts +20 -11
  202. package/lib/stores/index.d.ts.map +1 -0
  203. package/lib/stores/index.js +24 -2
  204. package/lib/stores/locationStore.d.ts +2 -1
  205. package/lib/stores/locationStore.d.ts.map +1 -0
  206. package/lib/stores/locationStore.js +42 -2
  207. package/lib/stores/messageStore.d.ts +19 -4
  208. package/lib/stores/messageStore.d.ts.map +1 -0
  209. package/lib/stores/messageStore.js +137 -2
  210. package/lib/stores/notificationStore.d.ts +33 -0
  211. package/lib/stores/notificationStore.d.ts.map +1 -0
  212. package/lib/stores/notificationStore.js +55 -0
  213. package/lib/stores/permissionStore.d.ts +37 -0
  214. package/lib/stores/permissionStore.d.ts.map +1 -0
  215. package/lib/stores/permissionStore.js +117 -0
  216. package/lib/stores/personaStore.d.ts +26 -0
  217. package/lib/stores/personaStore.d.ts.map +1 -0
  218. package/lib/stores/personaStore.js +118 -0
  219. package/lib/stores/postStore.d.ts +2 -1
  220. package/lib/stores/postStore.d.ts.map +1 -0
  221. package/lib/stores/postStore.js +53 -2
  222. package/lib/stores/reactionStore.d.ts +1 -0
  223. package/lib/stores/reactionStore.d.ts.map +1 -0
  224. package/lib/stores/reactionStore.js +28 -2
  225. package/lib/stores/subscriptionStore.d.ts +41 -0
  226. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  227. package/lib/stores/subscriptionStore.js +85 -0
  228. package/lib/stores/tagStore.d.ts +8 -5
  229. package/lib/stores/tagStore.d.ts.map +1 -0
  230. package/lib/stores/tagStore.js +87 -2
  231. package/lib/stores/translationStore.d.ts +42 -0
  232. package/lib/stores/translationStore.d.ts.map +1 -0
  233. package/lib/stores/translationStore.js +122 -0
  234. package/lib/stores/userStore.d.ts +5 -4
  235. package/lib/stores/userStore.d.ts.map +1 -0
  236. package/lib/stores/userStore.js +319 -2
  237. package/lib/stores/videoStore.d.ts +39 -0
  238. package/lib/stores/videoStore.d.ts.map +1 -0
  239. package/lib/stores/videoStore.js +132 -0
  240. package/lib/stores/websocketStore.d.ts +1 -0
  241. package/lib/stores/websocketStore.d.ts.map +1 -0
  242. package/lib/stores/websocketStore.js +51 -2
  243. package/lib/types/apps.types.d.ts +17 -0
  244. package/lib/types/apps.types.d.ts.map +1 -0
  245. package/lib/types/apps.types.js +6 -0
  246. package/lib/types/common.types.d.ts +31 -0
  247. package/lib/types/common.types.d.ts.map +1 -0
  248. package/lib/types/common.types.js +6 -0
  249. package/lib/types/conversations.types.d.ts +17 -0
  250. package/lib/types/conversations.types.d.ts.map +1 -0
  251. package/lib/types/conversations.types.js +6 -0
  252. package/lib/types/edges.types.d.ts +38 -0
  253. package/lib/types/edges.types.d.ts.map +1 -0
  254. package/lib/types/edges.types.js +6 -0
  255. package/lib/types/groups.types.d.ts +19 -0
  256. package/lib/types/groups.types.d.ts.map +1 -0
  257. package/lib/types/groups.types.js +6 -0
  258. package/lib/types/index.d.ts +12 -0
  259. package/lib/types/index.d.ts.map +1 -0
  260. package/lib/types/index.js +12 -0
  261. package/lib/types/subscriptions.types.d.ts +32 -0
  262. package/lib/types/subscriptions.types.d.ts.map +1 -0
  263. package/lib/types/subscriptions.types.js +6 -0
  264. package/lib/types/videos.types.d.ts +61 -0
  265. package/lib/types/videos.types.d.ts.map +1 -0
  266. package/lib/types/videos.types.js +6 -0
  267. package/lib/utils/MetropolisProvider.d.ts +39 -15
  268. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  269. package/lib/utils/MetropolisProvider.js +31 -2
  270. package/lib/utils/actionFactory.d.ts +21 -19
  271. package/lib/utils/actionFactory.d.ts.map +1 -0
  272. package/lib/utils/actionFactory.js +95 -2
  273. package/lib/utils/api.d.ts +5 -4
  274. package/lib/utils/api.d.ts.map +1 -0
  275. package/lib/utils/api.js +252 -6
  276. package/lib/utils/app.d.ts +1 -0
  277. package/lib/utils/app.d.ts.map +1 -0
  278. package/lib/utils/app.js +15 -2
  279. package/lib/utils/baseActionFactory.d.ts +5 -23
  280. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  281. package/lib/utils/baseActionFactory.js +72 -2
  282. package/lib/utils/configUtils.d.ts +11 -0
  283. package/lib/utils/configUtils.d.ts.map +1 -0
  284. package/lib/utils/configUtils.js +20 -0
  285. package/lib/utils/dateUtils.d.ts +1 -0
  286. package/lib/utils/dateUtils.d.ts.map +1 -0
  287. package/lib/utils/dateUtils.js +11 -2
  288. package/lib/utils/file.d.ts +3 -1
  289. package/lib/utils/file.d.ts.map +1 -0
  290. package/lib/utils/file.js +156 -2
  291. package/lib/utils/i18n.d.ts +7 -0
  292. package/lib/utils/i18n.d.ts.map +1 -0
  293. package/lib/utils/i18n.js +96 -0
  294. package/lib/utils/index.d.ts +20 -0
  295. package/lib/utils/index.d.ts.map +1 -0
  296. package/lib/utils/index.js +26 -0
  297. package/lib/utils/location.d.ts +4 -3
  298. package/lib/utils/location.d.ts.map +1 -0
  299. package/lib/utils/location.js +82 -2
  300. package/lib/utils/permissionUtils.d.ts +22 -0
  301. package/lib/utils/permissionUtils.d.ts.map +1 -0
  302. package/lib/utils/permissionUtils.js +72 -0
  303. package/lib/utils/requestCache.d.ts +8 -0
  304. package/lib/utils/requestCache.d.ts.map +1 -0
  305. package/lib/utils/requestCache.js +53 -0
  306. package/lib/utils/session.d.ts +14 -0
  307. package/lib/utils/session.d.ts.map +1 -0
  308. package/lib/utils/session.js +107 -0
  309. package/lib/utils/useConversationTyping.d.ts +26 -0
  310. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  311. package/lib/utils/useConversationTyping.js +117 -0
  312. package/lib/utils/useMetropolis.d.ts +67 -12
  313. package/lib/utils/useMetropolis.d.ts.map +1 -0
  314. package/lib/utils/useMetropolis.js +311 -2
  315. package/lib/utils/useTranslations.d.ts +16 -0
  316. package/lib/utils/useTranslations.d.ts.map +1 -0
  317. package/lib/utils/useTranslations.js +105 -0
  318. package/lib/utils/validatorFactory.d.ts +3 -2
  319. package/lib/utils/validatorFactory.d.ts.map +1 -0
  320. package/lib/utils/validatorFactory.js +95 -2
  321. package/package.json +58 -17
  322. package/temp_signin.ts +73 -0
  323. package/lib/actions/profileActions/profileActions.d.ts +0 -50
  324. package/lib/actions/profileActions/profileActions.js +0 -2
  325. package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
  326. package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
  327. package/lib/stores/profileStore.d.ts +0 -24
  328. package/lib/stores/profileStore.js +0 -2
  329. /package/{FACTORY_PATTERN_GUIDE.md → factoryPatternGuide.md} +0 -0
@@ -3,8 +3,9 @@
3
3
  * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
4
  */
5
5
  import type { FluxFramework } from '@nlabs/arkhamjs';
6
- import type { ConversationType } from '../../adapters/conversationAdapter/conversationAdapter';
7
- import type { MessageType } from '../../adapters/messageAdapter/messageAdapter';
6
+ import type { ConversationType } from '../../adapters/conversationAdapter/conversationAdapter.js';
7
+ import type { MessageType } from '../../adapters/messageAdapter/messageAdapter.js';
8
+ import type { ActionRequestOptions } from '../../utils/requestCache.js';
8
9
  export interface MessageAdapterOptions {
9
10
  strict?: boolean;
10
11
  allowPartial?: boolean;
@@ -16,39 +17,22 @@ export interface MessageActionsOptions {
16
17
  messageAdapterOptions?: MessageAdapterOptions;
17
18
  }
18
19
  export type MessageApiResultsType = {
19
- sendMessage: MessageType;
20
- getDirectConversation: ConversationType;
21
- getMessages: MessageType[];
22
- getConversations: ConversationType[];
20
+ messages?: {
21
+ addMessage?: MessageType;
22
+ conversations?: ConversationType[];
23
+ directConversation?: ConversationType;
24
+ getMessage?: MessageType;
25
+ getMessages?: MessageType[];
26
+ getConversations?: ConversationType[];
27
+ };
23
28
  };
24
29
  export interface MessageActions {
25
- sendMessage: (message: Partial<MessageType>, messageProps?: string[]) => Promise<MessageType>;
26
- getDirectConversation: (userId: string) => Promise<ConversationType>;
27
- getMessages: (conversationId: string, messageProps?: string[]) => Promise<MessageType[]>;
28
- getConversations: (from?: number, to?: number) => Promise<ConversationType[]>;
30
+ sendMessage: (message: Partial<MessageType>, messageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<MessageType>;
31
+ getDirectConversation: (userId: string, requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
32
+ getMessages: (conversationId: string, messageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<MessageType[]>;
33
+ getConversations: (from?: number, to?: number, requestOptions?: ActionRequestOptions) => Promise<ConversationType[]>;
29
34
  updateMessageAdapter: (adapter: (input: unknown, options?: MessageAdapterOptions) => any) => void;
30
35
  updateMessageAdapterOptions: (options: MessageAdapterOptions) => void;
31
36
  }
32
- /**
33
- * Factory function to create MessageActions with enhanced adapter injection capabilities.
34
- * Custom adapters are merged with default behavior, allowing partial overrides.
35
- *
36
- * @example
37
- * // Basic usage with default adapters
38
- * const messageActions = createMessageActions(flux);
39
- *
40
- * @example
41
- * // Custom adapter that extends default behavior
42
- * const customMessageAdapter = (input: unknown, options?: MessageAdapterOptions) => {
43
- * // input is already validated by default adapter
44
- * if (input.content && input.content.length > 1000) {
45
- * throw new Error('Message content too long');
46
- * }
47
- * return input;
48
- * };
49
- *
50
- * const messageActions = createMessageActions(flux, {
51
- * messageAdapter: customMessageAdapter
52
- * });
53
- */
54
37
  export declare const createMessageActions: (flux: FluxFramework, options?: MessageActionsOptions) => MessageActions;
38
+ //# sourceMappingURL=messageActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageActions.d.ts","sourceRoot":"","sources":["../../../src/actions/messageActions/messageActions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,2DAA2D,CAAC;AAChG,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iDAAiD,CAAC;AAEjF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC;IAC1E,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACnC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;QAC5B,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACrI,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5G,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAChI,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrH,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,KAAK,IAAI,CAAC;IAClG,2BAA2B,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACvE;AAuBD,eAAO,MAAM,oBAAoB,GAC/B,MAAM,aAAa,EACnB,UAAU,qBAAqB,KAC9B,cAqNF,CAAC"}
@@ -1,2 +1,235 @@
1
- import{validateMessageInput as v}from"../../adapters/messageAdapter/messageAdapter";import{MESSAGE_CONSTANTS as r}from"../../stores/messageStore";import{appMutation as A,appQuery as M}from"../../utils/api";const y="messages",l=(e,m)=>v(e),T=(e,m)=>(n,g)=>{const o={...m,...g};let c=l(n,o);return e&&(c=e(c,o)),o?.customValidation&&(c=o.customValidation(c)),c},h=(e,m)=>{let n=m?.messageAdapterOptions||{},g=m?.messageAdapter,o=T(g,n);return{sendMessage:async(t,a=[])=>{try{const s={message:{type:"MessageInput!",value:o(t,n)}},i=(d={})=>{const{sendMessage:u={}}=d;return e.dispatch({message:u,type:r.ADD_ITEM_SUCCESS})},{message:p}=await A(e,"sendMessage",y,s,["added","content","modified","messageId","user { userId, username }",...a],{onSuccess:i});return p}catch(s){throw e.dispatch({error:s,type:r.ADD_ITEM_ERROR}),s}},getDirectConversation:async t=>{try{const a={userId:{type:"ID!",value:t}},s=(p={})=>{const{directConversation:d={}}=p;return e.dispatch({conversation:d,type:r.GET_CONVO_LIST_SUCCESS})},{directConversation:i}=await M(e,"directConversation",y,a,["added","conversationId","modified","name","users { userId, username }"],{onSuccess:s});return i}catch(a){throw e.dispatch({error:a,type:r.GET_CONVO_LIST_ERROR}),a}},getMessages:async(t,a=[])=>{try{const s={conversationId:{type:"ID!",value:t}},i=(d={})=>{const{messages:u=[]}=d;return e.dispatch({conversationId:t,list:u,type:r.GET_LIST_SUCCESS})},{messages:p}=await M(e,"messages",y,s,["added","content","modified","messageId","user { userId, username }",...a],{onSuccess:i});return p}catch(s){throw e.dispatch({error:s,type:r.GET_LIST_ERROR}),s}},getConversations:async(t=0,a=10)=>{try{const s={from:{type:"Int",value:t},to:{type:"Int",value:a}},i=(d={})=>{const{conversations:u=[]}=d;return e.dispatch({conversations:u,type:r.GET_CONVO_LIST_SUCCESS})},{conversations:p}=await M(e,"conversations",y,s,["added","content","conversationId","modified","name","thumbUrl","users { userId, username }"],{onSuccess:i});return p}catch(s){throw e.dispatch({error:s,type:r.GET_CONVO_LIST_ERROR}),s}},updateMessageAdapter:t=>{g=t,o=T(g,n)},updateMessageAdapterOptions:t=>{n={...n,...t},o=T(g,n)}}};export{h as createMessageActions};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmltcG9ydCB7dmFsaWRhdGVNZXNzYWdlSW5wdXR9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyJztcbmltcG9ydCB7TUVTU0FHRV9DT05TVEFOVFN9IGZyb20gJy4uLy4uL3N0b3Jlcy9tZXNzYWdlU3RvcmUnO1xuaW1wb3J0IHthcHBNdXRhdGlvbiwgYXBwUXVlcnl9IGZyb20gJy4uLy4uL3V0aWxzL2FwaSc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlcic7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyJztcbmltcG9ydCB0eXBlIHtBcGlSZXN1bHRzVHlwZSwgUmVha3RvckRiQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpJztcblxuY29uc3QgREFUQV9UWVBFOiBSZWFrdG9yRGJDb2xsZWN0aW9uID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWRhcHRlck9wdGlvbnMge1xuICBzdHJpY3Q/OiBib29sZWFuO1xuICBhbGxvd1BhcnRpYWw/OiBib29sZWFuO1xuICBlbnZpcm9ubWVudD86ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbicgfCAndGVzdCc7XG4gIGN1c3RvbVZhbGlkYXRpb24/OiAoaW5wdXQ6IHVua25vd24pID0+IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUFjdGlvbnNPcHRpb25zIHtcbiAgbWVzc2FnZUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgbWVzc2FnZUFkYXB0ZXJPcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlQXBpUmVzdWx0c1R5cGUgPSB7XG4gIHNlbmRNZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlO1xuICBnZXRNZXNzYWdlczogTWVzc2FnZVR5cGVbXTtcbiAgZ2V0Q29udmVyc2F0aW9uczogQ29udmVyc2F0aW9uVHlwZVtdO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWN0aW9ucyB7XG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogUGFydGlhbDxNZXNzYWdlVHlwZT4sIG1lc3NhZ2VQcm9wcz86IHN0cmluZ1tdKSA9PiBQcm9taXNlPE1lc3NhZ2VUeXBlPjtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiAodXNlcklkOiBzdHJpbmcpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT47XG4gIGdldE1lc3NhZ2VzOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgbWVzc2FnZVByb3BzPzogc3RyaW5nW10pID0+IFByb21pc2U8TWVzc2FnZVR5cGVbXT47XG4gIGdldENvbnZlcnNhdGlvbnM6IChmcm9tPzogbnVtYmVyLCB0bz86IG51bWJlcikgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+O1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KSA9PiB2b2lkO1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbi8vIERlZmF1bHQgdmFsaWRhdGlvbiBmdW5jdGlvblxuY29uc3QgZGVmYXVsdE1lc3NhZ2VWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZhbGlkYXRlTWVzc2FnZUlucHV0KGlucHV0KTtcblxuLy8gRW5oYW5jZWQgdmFsaWRhdGlvbiBmdW5jdGlvbiB0aGF0IG1lcmdlcyBjdXN0b20gbG9naWMgd2l0aCBkZWZhdWx0c1xuY29uc3QgY3JlYXRlTWVzc2FnZVZhbGlkYXRvciA9IChcbiAgY3VzdG9tQWRhcHRlcj86IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55LFxuICBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zXG4pID0+IChpbnB1dDogdW5rbm93biwgdmFsaWRhdG9yT3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4ge1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0gey4uLm9wdGlvbnMsIC4uLnZhbGlkYXRvck9wdGlvbnN9O1xuXG4gIC8vIFN0YXJ0IHdpdGggZGVmYXVsdCB2YWxpZGF0aW9uXG4gIGxldCB2YWxpZGF0ZWQgPSBkZWZhdWx0TWVzc2FnZVZhbGlkYXRvcihpbnB1dCwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgLy8gQXBwbHkgY3VzdG9tIHZhbGlkYXRpb24gaWYgcHJvdmlkZWRcbiAgaWYoY3VzdG9tQWRhcHRlcikge1xuICAgIHZhbGlkYXRlZCA9IGN1c3RvbUFkYXB0ZXIodmFsaWRhdGVkLCBtZXJnZWRPcHRpb25zKTtcbiAgfVxuXG4gIC8vIEFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIGZyb20gb3B0aW9ucyBpZiBwcm92aWRlZFxuICBpZihtZXJnZWRPcHRpb25zPy5jdXN0b21WYWxpZGF0aW9uKSB7XG4gICAgdmFsaWRhdGVkID0gbWVyZ2VkT3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uKHZhbGlkYXRlZCkgYXMgTWVzc2FnZVR5cGU7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkO1xufTtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBNZXNzYWdlQWN0aW9ucyB3aXRoIGVuaGFuY2VkIGFkYXB0ZXIgaW5qZWN0aW9uIGNhcGFiaWxpdGllcy5cbiAqIEN1c3RvbSBhZGFwdGVycyBhcmUgbWVyZ2VkIHdpdGggZGVmYXVsdCBiZWhhdmlvciwgYWxsb3dpbmcgcGFydGlhbCBvdmVycmlkZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggZGVmYXVsdCBhZGFwdGVyc1xuICogY29uc3QgbWVzc2FnZUFjdGlvbnMgPSBjcmVhdGVNZXNzYWdlQWN0aW9ucyhmbHV4KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9tIGFkYXB0ZXIgdGhhdCBleHRlbmRzIGRlZmF1bHQgYmVoYXZpb3JcbiAqIGNvbnN0IGN1c3RvbU1lc3NhZ2VBZGFwdGVyID0gKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zKSA9PiB7XG4gKiAgIC8vIGlucHV0IGlzIGFscmVhZHkgdmFsaWRhdGVkIGJ5IGRlZmF1bHQgYWRhcHRlclxuICogICBpZiAoaW5wdXQuY29udGVudCAmJiBpbnB1dC5jb250ZW50Lmxlbmd0aCA+IDEwMDApIHtcbiAqICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc3NhZ2UgY29udGVudCB0b28gbG9uZycpO1xuICogICB9XG4gKiAgIHJldHVybiBpbnB1dDtcbiAqIH07XG4gKlxuICogY29uc3QgbWVzc2FnZUFjdGlvbnMgPSBjcmVhdGVNZXNzYWdlQWN0aW9ucyhmbHV4LCB7XG4gKiAgIG1lc3NhZ2VBZGFwdGVyOiBjdXN0b21NZXNzYWdlQWRhcHRlclxuICogfSk7XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNZXNzYWdlQWN0aW9ucyA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IE1lc3NhZ2VBY3Rpb25zT3B0aW9uc1xuKTogTWVzc2FnZUFjdGlvbnMgPT4ge1xuICAvLyBJbml0aWFsaXplIGFkYXB0ZXIgc3RhdGVcbiAgbGV0IG1lc3NhZ2VBZGFwdGVyT3B0aW9uczogTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gb3B0aW9ucz8ubWVzc2FnZUFkYXB0ZXJPcHRpb25zIHx8IHt9O1xuICBsZXQgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBvcHRpb25zPy5tZXNzYWdlQWRhcHRlcjtcblxuICAvLyBDcmVhdGUgdmFsaWRhdG9ycyB0aGF0IG1lcmdlIGN1c3RvbSBhZGFwdGVycyB3aXRoIGRlZmF1bHRzXG4gIGxldCB2YWxpZGF0ZU1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlVmFsaWRhdG9yKGN1c3RvbU1lc3NhZ2VBZGFwdGVyLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuXG4gIC8vIFVwZGF0ZSBmdW5jdGlvbnMgdGhhdCByZWNyZWF0ZSB2YWxpZGF0b3JzXG4gIGNvbnN0IHVwZGF0ZU1lc3NhZ2VBZGFwdGVyID0gKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KTogdm9pZCA9PiB7XG4gICAgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gKG9wdGlvbnM6IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyA9IHsuLi5tZXNzYWdlQWRhcHRlck9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgLy8gQWN0aW9uIGltcGxlbWVudGF0aW9uc1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IGFzeW5jIChtZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2VUeXBlPiwgbWVzc2FnZVByb3BzOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHR5cGU6ICdNZXNzYWdlSW5wdXQhJyxcbiAgICAgICAgICB2YWx1ZTogdmFsaWRhdGVNZXNzYWdlKG1lc3NhZ2UsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEFwaVJlc3VsdHNUeXBlID0ge30pID0+IHtcbiAgICAgICAgY29uc3Qge3NlbmRNZXNzYWdlOiBtZXNzYWdlID0ge319ID0gZGF0YTtcbiAgICAgICAgLy9jb25zdCBzZXNzaW9uSWQ6IHN0cmluZyA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbi51c2VySWQnLCAnJyk7XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHttZXNzYWdlLCB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7bWVzc2FnZTogYWRkZWRNZXNzYWdlfSA9IGF3YWl0IGFwcE11dGF0aW9uKFxuICAgICAgICBmbHV4LFxuICAgICAgICAnc2VuZE1lc3NhZ2UnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnbW9kaWZpZWQnLCAnbWVzc2FnZUlkJywgJ3VzZXIgeyB1c2VySWQsIHVzZXJuYW1lIH0nLCAuLi5tZXNzYWdlUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBhZGRlZE1lc3NhZ2UgYXMgTWVzc2FnZVR5cGU7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gYXN5bmMgKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICB1c2VySWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogdXNlcklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHtkaXJlY3RDb252ZXJzYXRpb246IGNvbnZlcnNhdGlvbiA9IHt9fSA9IGRhdGE7XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtkaXJlY3RDb252ZXJzYXRpb246IGNvbnZlcnNhdGlvbn0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2RpcmVjdENvbnZlcnNhdGlvbicsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYWRkZWQnLCAnY29udmVyc2F0aW9uSWQnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd1c2VycyB7IHVzZXJJZCwgdXNlcm5hbWUgfSddLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBjb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0NPTlZPX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRNZXNzYWdlcyA9IGFzeW5jIChjb252ZXJzYXRpb25JZDogc3RyaW5nLCBtZXNzYWdlUHJvcHM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPE1lc3NhZ2VUeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IGNvbnZlcnNhdGlvbklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHttZXNzYWdlcyA9IFtdfSA9IGRhdGEgYXMge21lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdfTtcbiAgICAgICAgLy9jb25zdCBzZXNzaW9uSWQ6IHN0cmluZyA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbi51c2VySWQnLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe1xuICAgICAgICAgIGNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgIGxpc3Q6IG1lc3NhZ2VzLFxuICAgICAgICAgIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1NcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7bWVzc2FnZXM6IG1lc3NhZ2VzTGlzdH0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ21lc3NhZ2VzJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydhZGRlZCcsICdjb250ZW50JywgJ21vZGlmaWVkJywgJ21lc3NhZ2VJZCcsICd1c2VyIHsgdXNlcklkLCB1c2VybmFtZSB9JywgLi4ubWVzc2FnZVByb3BzXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgICByZXR1cm4gbWVzc2FnZXNMaXN0IGFzIE1lc3NhZ2VUeXBlW107XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IGFzeW5jIChmcm9tOiBudW1iZXIgPSAwLCB0bzogbnVtYmVyID0gMTApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgZnJvbToge1xuICAgICAgICAgIHR5cGU6ICdJbnQnLFxuICAgICAgICAgIHZhbHVlOiBmcm9tXG4gICAgICAgIH0sXG4gICAgICAgIHRvOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHRvXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHtjb252ZXJzYXRpb25zID0gW119ID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbnMsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtjb252ZXJzYXRpb25zOiBjb252ZXJzYXRpb25zTGlzdH0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2NvbnZlcnNhdGlvbnMnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnY29udmVyc2F0aW9uSWQnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd0aHVtYlVybCcsICd1c2VycyB7IHVzZXJJZCwgdXNlcm5hbWUgfSddLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBjb252ZXJzYXRpb25zTGlzdCBhcyBDb252ZXJzYXRpb25UeXBlW107XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgLy8gUmV0dXJuIHRoZSBhY3Rpb25zIG9iamVjdFxuICByZXR1cm4ge1xuICAgIHNlbmRNZXNzYWdlLFxuICAgIGdldERpcmVjdENvbnZlcnNhdGlvbixcbiAgICBnZXRNZXNzYWdlcyxcbiAgICBnZXRDb252ZXJzYXRpb25zLFxuICAgIHVwZGF0ZU1lc3NhZ2VBZGFwdGVyLFxuICAgIHVwZGF0ZU1lc3NhZ2VBZGFwdGVyT3B0aW9uc1xuICB9O1xufTtcblxuIl0sCiAgIm1hcHBpbmdzIjogIkFBS0EsT0FBUSx3QkFBQUEsTUFBMkIsK0NBQ25DLE9BQVEscUJBQUFDLE1BQXdCLDRCQUNoQyxPQUFR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bGlkYXRlTWVzc2FnZUlucHV0IiwgIk1FU1NBR0VfQ09OU1RBTlRTIiwgImFwcE11dGF0aW9uIiwgImFwcFF1ZXJ5IiwgIkRBVEFfVFlQRSIsICJkZWZhdWx0TWVzc2FnZVZhbGlkYXRvciIsICJpbnB1dCIsICJvcHRpb25zIiwgImNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IiLCAiY3VzdG9tQWRhcHRlciIsICJ2YWxpZGF0b3JPcHRpb25zIiwgIm1lcmdlZE9wdGlvbnMiLCAidmFsaWRhdGVkIiwgImNyZWF0ZU1lc3NhZ2VBY3Rpb25zIiwgImZsdXgiLCAibWVzc2FnZUFkYXB0ZXJPcHRpb25zIiwgImN1c3RvbU1lc3NhZ2VBZGFwdGVyIiwgInZhbGlkYXRlTWVzc2FnZSIsICJtZXNzYWdlIiwgIm1lc3NhZ2VQcm9wcyIsICJxdWVyeVZhcmlhYmxlcyIsICJvblN1Y2Nlc3MiLCAiZGF0YSIsICJhZGRlZE1lc3NhZ2UiLCAiZXJyb3IiLCAidXNlcklkIiwgImNvbnZlcnNhdGlvbiIsICJjb252ZXJzYXRpb25JZCIsICJtZXNzYWdlcyIsICJtZXNzYWdlc0xpc3QiLCAiZnJvbSIsICJ0byIsICJjb252ZXJzYXRpb25zIiwgImNvbnZlcnNhdGlvbnNMaXN0IiwgImFkYXB0ZXIiXQp9Cg==
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { parseId } from '@nlabs/utils';
5
+ import { validateMessageInput } from '../../adapters/messageAdapter/messageAdapter.js';
6
+ import { MESSAGE_CONSTANTS } from '../../stores/messageStore.js';
7
+ import { appMutation, appQuery } from '../../utils/api.js';
8
+ import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
9
+ const DATA_TYPE = 'messages';
10
+ const defaultMessageValidator = (input, options)=>validateMessageInput(input);
11
+ const createMessageValidator = (customAdapter, options)=>(input, validatorOptions)=>{
12
+ const mergedOptions = {
13
+ ...options,
14
+ ...validatorOptions
15
+ };
16
+ let validated = defaultMessageValidator(input, mergedOptions);
17
+ if (customAdapter) {
18
+ validated = customAdapter(validated, mergedOptions);
19
+ }
20
+ if (mergedOptions?.customValidation) {
21
+ validated = mergedOptions.customValidation(validated);
22
+ }
23
+ return validated;
24
+ };
25
+ export const createMessageActions = (flux, options)=>{
26
+ let messageAdapterOptions = options?.messageAdapterOptions || {};
27
+ let customMessageAdapter = options?.messageAdapter;
28
+ let validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
29
+ const updateMessageAdapter = (adapter)=>{
30
+ customMessageAdapter = adapter;
31
+ validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
32
+ };
33
+ const updateMessageAdapterOptions = (options)=>{
34
+ messageAdapterOptions = {
35
+ ...messageAdapterOptions,
36
+ ...options
37
+ };
38
+ validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
39
+ };
40
+ const getActivePersonaId = ()=>parseId(String(flux.getState('user.session.personaId') || ''));
41
+ const getActiveUserId = ()=>parseId(String(flux.getState('user.session.userId') || ''));
42
+ const sendMessage = async (message, messageProps = [], requestOptions = {})=>{
43
+ try {
44
+ const nextMessage = validateMessage(message, messageAdapterOptions);
45
+ const personaId = parseId(String(nextMessage.personaId || getActivePersonaId() || ''));
46
+ const userId = parseId(String(nextMessage.userId || getActiveUserId() || ''));
47
+ const queryVariables = {
48
+ message: {
49
+ type: 'MessageInput!',
50
+ value: {
51
+ ...nextMessage,
52
+ ...personaId && {
53
+ personaId
54
+ },
55
+ ...userId && {
56
+ userId
57
+ }
58
+ }
59
+ }
60
+ };
61
+ const onSuccess = (data = {})=>{
62
+ const message = data?.messages?.addMessage || {};
63
+ return flux.dispatch({
64
+ message,
65
+ type: MESSAGE_CONSTANTS.ADD_ITEM_SUCCESS
66
+ });
67
+ };
68
+ return await appMutation(flux, 'addMessage', DATA_TYPE, queryVariables, [
69
+ 'added',
70
+ 'content',
71
+ 'modified',
72
+ 'messageId',
73
+ 'user { userId, personaId, name, username, thumbUrl, imageUrl }',
74
+ ...messageProps
75
+ ], {}).then((result)=>result?.messages?.addMessage || {});
76
+ } catch (error) {
77
+ flux.dispatch({
78
+ error,
79
+ type: MESSAGE_CONSTANTS.ADD_ITEM_ERROR
80
+ });
81
+ throw error;
82
+ } finally{
83
+ await clearCachedRequest(flux, `message.getMessages:${String(message?.conversationId || '')}`);
84
+ await clearCachedRequest(flux, 'message.getConversations');
85
+ }
86
+ };
87
+ const getDirectConversation = async (userId, requestOptions = {})=>{
88
+ try {
89
+ const cachedResult = getCachedRequest(flux, `message.getDirectConversation:${userId}`, {
90
+ userId
91
+ }, requestOptions);
92
+ if (cachedResult) {
93
+ return cachedResult;
94
+ }
95
+ const queryVariables = {
96
+ userId: {
97
+ type: 'ID!',
98
+ value: userId
99
+ }
100
+ };
101
+ const onSuccess = (data = {})=>{
102
+ const conversation = data?.messages?.directConversation || {};
103
+ return flux.dispatch({
104
+ conversation,
105
+ type: MESSAGE_CONSTANTS.GET_CONVO_LIST_SUCCESS
106
+ });
107
+ };
108
+ const result = await appQuery(flux, 'directConversation', DATA_TYPE, queryVariables, [
109
+ 'added',
110
+ 'conversationId',
111
+ 'modified',
112
+ 'name',
113
+ 'users { userId, personaId, name, username, thumbUrl, imageUrl }'
114
+ ], {
115
+ onSuccess
116
+ });
117
+ const conversation = result?.conversation || result?.messages?.directConversation || {};
118
+ return await setCachedRequest(flux, `message.getDirectConversation:${userId}`, {
119
+ userId
120
+ }, conversation, requestOptions);
121
+ } catch (error) {
122
+ flux.dispatch({
123
+ error,
124
+ type: MESSAGE_CONSTANTS.GET_CONVO_LIST_ERROR
125
+ });
126
+ throw error;
127
+ }
128
+ };
129
+ const getMessages = async (conversationId, messageProps = [], requestOptions = {})=>{
130
+ try {
131
+ const cachedResult = getCachedRequest(flux, `message.getMessages:${conversationId}`, {
132
+ conversationId,
133
+ messageProps
134
+ }, requestOptions);
135
+ if (cachedResult) {
136
+ return cachedResult;
137
+ }
138
+ const queryVariables = {
139
+ conversationId: {
140
+ type: 'ID',
141
+ value: conversationId
142
+ }
143
+ };
144
+ const onSuccess = (data = {})=>{
145
+ const messages = Array.isArray(data?.messages?.getMessages) ? data.messages?.getMessages || [] : [];
146
+ return flux.dispatch({
147
+ conversationId,
148
+ list: messages,
149
+ type: MESSAGE_CONSTANTS.GET_LIST_SUCCESS
150
+ });
151
+ };
152
+ const result = await appQuery(flux, 'getMessages', DATA_TYPE, queryVariables, [
153
+ 'added',
154
+ 'content',
155
+ 'modified',
156
+ 'messageId',
157
+ 'user { userId, personaId, name, username, thumbUrl, imageUrl }',
158
+ ...messageProps
159
+ ], {
160
+ onSuccess
161
+ });
162
+ const messages = result?.messages?.getMessages || [];
163
+ return await setCachedRequest(flux, `message.getMessages:${conversationId}`, {
164
+ conversationId,
165
+ messageProps
166
+ }, messages, requestOptions);
167
+ } catch (error) {
168
+ flux.dispatch({
169
+ error,
170
+ type: MESSAGE_CONSTANTS.GET_LIST_ERROR
171
+ });
172
+ throw error;
173
+ }
174
+ };
175
+ const getConversations = async (from = 0, to = 10, requestOptions = {})=>{
176
+ try {
177
+ const cachedResult = getCachedRequest(flux, 'message.getConversations', {
178
+ from,
179
+ to
180
+ }, requestOptions);
181
+ if (cachedResult) {
182
+ return cachedResult;
183
+ }
184
+ const queryVariables = {
185
+ from: {
186
+ type: 'Int',
187
+ value: from
188
+ },
189
+ to: {
190
+ type: 'Int',
191
+ value: to
192
+ }
193
+ };
194
+ const onSuccess = (data = {})=>{
195
+ const conversations = Array.isArray(data?.messages?.getConversations) ? data.messages?.getConversations || [] : [];
196
+ return flux.dispatch({
197
+ conversations,
198
+ type: MESSAGE_CONSTANTS.GET_CONVO_LIST_SUCCESS
199
+ });
200
+ };
201
+ const result = await appQuery(flux, 'getConversations', DATA_TYPE, queryVariables, [
202
+ 'added',
203
+ 'content',
204
+ 'conversationId',
205
+ 'isDirect',
206
+ 'modified',
207
+ 'name',
208
+ 'users { userId, personaId, name, username, thumbUrl, imageUrl }'
209
+ ], {
210
+ onSuccess
211
+ });
212
+ const conversations = result?.messages?.getConversations || [];
213
+ return await setCachedRequest(flux, 'message.getConversations', {
214
+ from,
215
+ to
216
+ }, conversations, requestOptions);
217
+ } catch (error) {
218
+ flux.dispatch({
219
+ error,
220
+ type: MESSAGE_CONSTANTS.GET_CONVO_LIST_ERROR
221
+ });
222
+ throw error;
223
+ }
224
+ };
225
+ return {
226
+ sendMessage,
227
+ getDirectConversation,
228
+ getMessages,
229
+ getConversations,
230
+ updateMessageAdapter,
231
+ updateMessageAdapterOptions
232
+ };
233
+ };
234
+
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9tZXNzYWdlQWN0aW9ucy9tZXNzYWdlQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuXG5pbXBvcnQge3BhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3ZhbGlkYXRlTWVzc2FnZUlucHV0fSBmcm9tICcuLi8uLi9hZGFwdGVycy9tZXNzYWdlQWRhcHRlci9tZXNzYWdlQWRhcHRlci5qcyc7XG5pbXBvcnQge01FU1NBR0VfQ09OU1RBTlRTfSBmcm9tICcuLi8uLi9zdG9yZXMvbWVzc2FnZVN0b3JlLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyLmpzJztcbmltcG9ydCB0eXBlIHtBcGlSZXN1bHRzVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLmpzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25SZXF1ZXN0T3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWRhcHRlck9wdGlvbnMge1xuICBzdHJpY3Q/OiBib29sZWFuO1xuICBhbGxvd1BhcnRpYWw/OiBib29sZWFuO1xuICBlbnZpcm9ubWVudD86ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbicgfCAndGVzdCc7XG4gIGN1c3RvbVZhbGlkYXRpb24/OiAoaW5wdXQ6IHVua25vd24pID0+IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUFjdGlvbnNPcHRpb25zIHtcbiAgbWVzc2FnZUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgbWVzc2FnZUFkYXB0ZXJPcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlQXBpUmVzdWx0c1R5cGUgPSB7XG4gIG1lc3NhZ2VzPzoge1xuICAgIGFkZE1lc3NhZ2U/OiBNZXNzYWdlVHlwZTtcbiAgICBjb252ZXJzYXRpb25zPzogQ29udmVyc2F0aW9uVHlwZVtdO1xuICAgIGRpcmVjdENvbnZlcnNhdGlvbj86IENvbnZlcnNhdGlvblR5cGU7XG4gICAgZ2V0TWVzc2FnZT86IE1lc3NhZ2VUeXBlO1xuICAgIGdldE1lc3NhZ2VzPzogTWVzc2FnZVR5cGVbXTtcbiAgICBnZXRDb252ZXJzYXRpb25zPzogQ29udmVyc2F0aW9uVHlwZVtdO1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWN0aW9ucyB7XG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogUGFydGlhbDxNZXNzYWdlVHlwZT4sIG1lc3NhZ2VQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPE1lc3NhZ2VUeXBlPjtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiAodXNlcklkOiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT47XG4gIGdldE1lc3NhZ2VzOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgbWVzc2FnZVByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8TWVzc2FnZVR5cGVbXT47XG4gIGdldENvbnZlcnNhdGlvbnM6IChmcm9tPzogbnVtYmVyLCB0bz86IG51bWJlciwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+O1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KSA9PiB2b2lkO1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGRlZmF1bHRNZXNzYWdlVmFsaWRhdG9yID0gKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zKSA9PiB2YWxpZGF0ZU1lc3NhZ2VJbnB1dChpbnB1dCk7XG5cbmNvbnN0IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IgPSAoXG4gIGN1c3RvbUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueSxcbiAgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9uc1xuKSA9PiAoaW5wdXQ6IHVua25vd24sIHZhbGlkYXRvck9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHtcbiAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IHsuLi5vcHRpb25zLCAuLi52YWxpZGF0b3JPcHRpb25zfTtcblxuICBsZXQgdmFsaWRhdGVkID0gZGVmYXVsdE1lc3NhZ2VWYWxpZGF0b3IoaW5wdXQsIG1lcmdlZE9wdGlvbnMpO1xuXG4gIGlmKGN1c3RvbUFkYXB0ZXIpIHtcbiAgICB2YWxpZGF0ZWQgPSBjdXN0b21BZGFwdGVyKHZhbGlkYXRlZCwgbWVyZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBpZihtZXJnZWRPcHRpb25zPy5jdXN0b21WYWxpZGF0aW9uKSB7XG4gICAgdmFsaWRhdGVkID0gbWVyZ2VkT3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uKHZhbGlkYXRlZCkgYXMgTWVzc2FnZVR5cGU7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1lc3NhZ2VBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogTWVzc2FnZUFjdGlvbnNPcHRpb25zXG4pOiBNZXNzYWdlQWN0aW9ucyA9PiB7XG4gIGxldCBtZXNzYWdlQWRhcHRlck9wdGlvbnMgPSBvcHRpb25zPy5tZXNzYWdlQWRhcHRlck9wdGlvbnMgfHwge307XG4gIGxldCBjdXN0b21NZXNzYWdlQWRhcHRlciA9IG9wdGlvbnM/Lm1lc3NhZ2VBZGFwdGVyO1xuXG4gIGxldCB2YWxpZGF0ZU1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlVmFsaWRhdG9yKGN1c3RvbU1lc3NhZ2VBZGFwdGVyLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuXG4gIGNvbnN0IHVwZGF0ZU1lc3NhZ2VBZGFwdGVyID0gKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KTogdm9pZCA9PiB7XG4gICAgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gKG9wdGlvbnM6IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyA9IHsuLi5tZXNzYWdlQWRhcHRlck9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0QWN0aXZlUGVyc29uYUlkID0gKCk6IHN0cmluZyA9PiBwYXJzZUlkKFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24ucGVyc29uYUlkJykgfHwgJycpKTtcbiAgY29uc3QgZ2V0QWN0aXZlVXNlcklkID0gKCk6IHN0cmluZyA9PiBwYXJzZUlkKFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udXNlcklkJykgfHwgJycpKTtcblxuICBjb25zdCBzZW5kTWVzc2FnZSA9IGFzeW5jIChcbiAgICBtZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2VUeXBlPixcbiAgICBtZXNzYWdlUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXh0TWVzc2FnZSA9IHZhbGlkYXRlTWVzc2FnZShtZXNzYWdlLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuICAgICAgY29uc3QgcGVyc29uYUlkID0gcGFyc2VJZChTdHJpbmcobmV4dE1lc3NhZ2UucGVyc29uYUlkIHx8IGdldEFjdGl2ZVBlcnNvbmFJZCgpIHx8ICcnKSk7XG4gICAgICBjb25zdCB1c2VySWQgPSBwYXJzZUlkKFN0cmluZyhuZXh0TWVzc2FnZS51c2VySWQgfHwgZ2V0QWN0aXZlVXNlcklkKCkgfHwgJycpKTtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdHlwZTogJ01lc3NhZ2VJbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5uZXh0TWVzc2FnZSxcbiAgICAgICAgICAgIC4uLihwZXJzb25hSWQgJiYge3BlcnNvbmFJZH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZGF0YSBhcyBNZXNzYWdlQXBpUmVzdWx0c1R5cGUpPy5tZXNzYWdlcz8uYWRkTWVzc2FnZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe21lc3NhZ2UsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxNZXNzYWdlQXBpUmVzdWx0c1R5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnYWRkTWVzc2FnZScsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYWRkZWQnLCAnY29udGVudCcsICdtb2RpZmllZCcsICdtZXNzYWdlSWQnLCAndXNlciB7IHVzZXJJZCwgcGVyc29uYUlkLCBuYW1lLCB1c2VybmFtZSwgdGh1bWJVcmwsIGltYWdlVXJsIH0nLCAuLi5tZXNzYWdlUHJvcHNdLFxuICAgICAgICB7fVxuICAgICAgKS50aGVuKChyZXN1bHQpID0+ICgocmVzdWx0IGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSk/Lm1lc3NhZ2VzPy5hZGRNZXNzYWdlIHx8IHt9KSBhcyBNZXNzYWdlVHlwZSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBtZXNzYWdlLmdldE1lc3NhZ2VzOiR7U3RyaW5nKG1lc3NhZ2U/LmNvbnZlcnNhdGlvbklkIHx8ICcnKX1gKTtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnbWVzc2FnZS5nZXRDb252ZXJzYXRpb25zJyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbiA9IGFzeW5jIChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb252ZXJzYXRpb25UeXBlPihmbHV4LCBgbWVzc2FnZS5nZXREaXJlY3RDb252ZXJzYXRpb246JHt1c2VySWR9YCwge3VzZXJJZH0sIHJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICB1c2VySWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogdXNlcklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IChkYXRhIGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSk/Lm1lc3NhZ2VzPy5kaXJlY3RDb252ZXJzYXRpb24gfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PE1lc3NhZ2VBcGlSZXN1bHRzVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdkaXJlY3RDb252ZXJzYXRpb24nLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnZlcnNhdGlvbklkJywgJ21vZGlmaWVkJywgJ25hbWUnLCAndXNlcnMgeyB1c2VySWQsIHBlcnNvbmFJZCwgbmFtZSwgdXNlcm5hbWUsIHRodW1iVXJsLCBpbWFnZVVybCB9J10sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb252ZXJzYXRpb24gPSAoXG4gICAgICAgIChyZXN1bHQgYXMgdW5rbm93biBhcyB7Y29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uVHlwZX0pPy5jb252ZXJzYXRpb25cbiAgICAgICAgfHwgcmVzdWx0Py5tZXNzYWdlcz8uZGlyZWN0Q29udmVyc2F0aW9uXG4gICAgICAgIHx8IHt9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYG1lc3NhZ2UuZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiR7dXNlcklkfWAsIHt1c2VySWR9LCBjb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZSwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5HRVRfQ09OVk9fTElTVF9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gYXN5bmMgKFxuICAgIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gICAgbWVzc2FnZVByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8TWVzc2FnZVR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PE1lc3NhZ2VUeXBlW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICBgbWVzc2FnZS5nZXRNZXNzYWdlczoke2NvbnZlcnNhdGlvbklkfWAsXG4gICAgICAgIHtjb252ZXJzYXRpb25JZCwgbWVzc2FnZVByb3BzfSxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnNcbiAgICAgICk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQnLFxuICAgICAgICAgIHZhbHVlOiBjb252ZXJzYXRpb25JZFxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9IEFycmF5LmlzQXJyYXkoKGRhdGEgYXMgTWVzc2FnZUFwaVJlc3VsdHNUeXBlKT8ubWVzc2FnZXM/LmdldE1lc3NhZ2VzKVxuICAgICAgICAgID8gKGRhdGEgYXMgTWVzc2FnZUFwaVJlc3VsdHNUeXBlKS5tZXNzYWdlcz8uZ2V0TWVzc2FnZXMgfHwgW11cbiAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtcbiAgICAgICAgICBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgICBsaXN0OiBtZXNzYWdlcyxcbiAgICAgICAgICB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5HRVRfTElTVF9TVUNDRVNTXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8TWVzc2FnZUFwaVJlc3VsdHNUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2dldE1lc3NhZ2VzJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydhZGRlZCcsICdjb250ZW50JywgJ21vZGlmaWVkJywgJ21lc3NhZ2VJZCcsICd1c2VyIHsgdXNlcklkLCBwZXJzb25hSWQsIG5hbWUsIHVzZXJuYW1lLCB0aHVtYlVybCwgaW1hZ2VVcmwgfScsIC4uLm1lc3NhZ2VQcm9wc10sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IHJlc3VsdD8ubWVzc2FnZXM/LmdldE1lc3NhZ2VzIHx8IFtdO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYG1lc3NhZ2UuZ2V0TWVzc2FnZXM6JHtjb252ZXJzYXRpb25JZH1gLCB7Y29udmVyc2F0aW9uSWQsIG1lc3NhZ2VQcm9wc30sIG1lc3NhZ2VzIGFzIE1lc3NhZ2VUeXBlW10sIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRDb252ZXJzYXRpb25zID0gYXN5bmMgKFxuICAgIGZyb206IG51bWJlciA9IDAsXG4gICAgdG86IG51bWJlciA9IDEwLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8Q29udmVyc2F0aW9uVHlwZVtdPihmbHV4LCAnbWVzc2FnZS5nZXRDb252ZXJzYXRpb25zJywge2Zyb20sIHRvfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogZnJvbVxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHR5cGU6ICdJbnQnLFxuICAgICAgICAgIHZhbHVlOiB0b1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJzYXRpb25zID0gQXJyYXkuaXNBcnJheSgoZGF0YSBhcyBNZXNzYWdlQXBpUmVzdWx0c1R5cGUpPy5tZXNzYWdlcz8uZ2V0Q29udmVyc2F0aW9ucylcbiAgICAgICAgICA/IChkYXRhIGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSkubWVzc2FnZXM/LmdldENvbnZlcnNhdGlvbnMgfHwgW11cbiAgICAgICAgICA6IFtdO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7Y29udmVyc2F0aW9ucywgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0NPTlZPX0xJU1RfU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8TWVzc2FnZUFwaVJlc3VsdHNUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2dldENvbnZlcnNhdGlvbnMnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnY29udmVyc2F0aW9uSWQnLCAnaXNEaXJlY3QnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd1c2VycyB7IHVzZXJJZCwgcGVyc29uYUlkLCBuYW1lLCB1c2VybmFtZSwgdGh1bWJVcmwsIGltYWdlVXJsIH0nXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbnMgPSByZXN1bHQ/Lm1lc3NhZ2VzPy5nZXRDb252ZXJzYXRpb25zIHx8IFtdO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgJ21lc3NhZ2UuZ2V0Q29udmVyc2F0aW9ucycsIHtmcm9tLCB0b30sIGNvbnZlcnNhdGlvbnMgYXMgQ29udmVyc2F0aW9uVHlwZVtdLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBzZW5kTWVzc2FnZSxcbiAgICBnZXREaXJlY3RDb252ZXJzYXRpb24sXG4gICAgZ2V0TWVzc2FnZXMsXG4gICAgZ2V0Q29udmVyc2F0aW9ucyxcbiAgICB1cGRhdGVNZXNzYWdlQWRhcHRlcixcbiAgICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnNcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VJZCIsInZhbGlkYXRlTWVzc2FnZUlucHV0IiwiTUVTU0FHRV9DT05TVEFOVFMiLCJhcHBNdXRhdGlvbiIsImFwcFF1ZXJ5IiwiY2xlYXJDYWNoZWRSZXF1ZXN0IiwiZ2V0Q2FjaGVkUmVxdWVzdCIsInNldENhY2hlZFJlcXVlc3QiLCJEQVRBX1RZUEUiLCJkZWZhdWx0TWVzc2FnZVZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IiLCJjdXN0b21BZGFwdGVyIiwidmFsaWRhdG9yT3B0aW9ucyIsIm1lcmdlZE9wdGlvbnMiLCJ2YWxpZGF0ZWQiLCJjdXN0b21WYWxpZGF0aW9uIiwiY3JlYXRlTWVzc2FnZUFjdGlvbnMiLCJmbHV4IiwibWVzc2FnZUFkYXB0ZXJPcHRpb25zIiwiY3VzdG9tTWVzc2FnZUFkYXB0ZXIiLCJtZXNzYWdlQWRhcHRlciIsInZhbGlkYXRlTWVzc2FnZSIsInVwZGF0ZU1lc3NhZ2VBZGFwdGVyIiwiYWRhcHRlciIsInVwZGF0ZU1lc3NhZ2VBZGFwdGVyT3B0aW9ucyIsImdldEFjdGl2ZVBlcnNvbmFJZCIsIlN0cmluZyIsImdldFN0YXRlIiwiZ2V0QWN0aXZlVXNlcklkIiwic2VuZE1lc3NhZ2UiLCJtZXNzYWdlIiwibWVzc2FnZVByb3BzIiwicmVxdWVzdE9wdGlvbnMiLCJuZXh0TWVzc2FnZSIsInBlcnNvbmFJZCIsInVzZXJJZCIsInF1ZXJ5VmFyaWFibGVzIiwidHlwZSIsInZhbHVlIiwib25TdWNjZXNzIiwiZGF0YSIsIm1lc3NhZ2VzIiwiYWRkTWVzc2FnZSIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsInRoZW4iLCJyZXN1bHQiLCJlcnJvciIsIkFERF9JVEVNX0VSUk9SIiwiY29udmVyc2F0aW9uSWQiLCJnZXREaXJlY3RDb252ZXJzYXRpb24iLCJjYWNoZWRSZXN1bHQiLCJjb252ZXJzYXRpb24iLCJkaXJlY3RDb252ZXJzYXRpb24iLCJHRVRfQ09OVk9fTElTVF9TVUNDRVNTIiwiR0VUX0NPTlZPX0xJU1RfRVJST1IiLCJnZXRNZXNzYWdlcyIsIkFycmF5IiwiaXNBcnJheSIsImxpc3QiLCJHRVRfTElTVF9TVUNDRVNTIiwiR0VUX0xJU1RfRVJST1IiLCJnZXRDb252ZXJzYXRpb25zIiwiZnJvbSIsInRvIiwiY29udmVyc2F0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsU0FBUUEsT0FBTyxRQUFPLGVBQWU7QUFDckMsU0FBUUMsb0JBQW9CLFFBQU8sa0RBQWtEO0FBQ3JGLFNBQVFDLGlCQUFpQixRQUFPLCtCQUErQjtBQUMvRCxTQUFRQyxXQUFXLEVBQUVDLFFBQVEsUUFBTyxxQkFBcUI7QUFDekQsU0FBUUMsa0JBQWtCLEVBQUVDLGdCQUFnQixFQUFFQyxnQkFBZ0IsUUFBTyw4QkFBOEI7QUFRbkcsTUFBTUMsWUFBWTtBQWtDbEIsTUFBTUMsMEJBQTBCLENBQUNDLE9BQWdCQyxVQUFvQ1YscUJBQXFCUztBQUUxRyxNQUFNRSx5QkFBeUIsQ0FDN0JDLGVBQ0FGLFVBQ0csQ0FBQ0QsT0FBZ0JJO1FBQ3BCLE1BQU1DLGdCQUFnQjtZQUFDLEdBQUdKLE9BQU87WUFBRSxHQUFHRyxnQkFBZ0I7UUFBQTtRQUV0RCxJQUFJRSxZQUFZUCx3QkFBd0JDLE9BQU9LO1FBRS9DLElBQUdGLGVBQWU7WUFDaEJHLFlBQVlILGNBQWNHLFdBQVdEO1FBQ3ZDO1FBRUEsSUFBR0EsZUFBZUUsa0JBQWtCO1lBQ2xDRCxZQUFZRCxjQUFjRSxnQkFBZ0IsQ0FBQ0Q7UUFDN0M7UUFFQSxPQUFPQTtJQUNUO0FBRUEsT0FBTyxNQUFNRSx1QkFBdUIsQ0FDbENDLE1BQ0FSO0lBRUEsSUFBSVMsd0JBQXdCVCxTQUFTUyx5QkFBeUIsQ0FBQztJQUMvRCxJQUFJQyx1QkFBdUJWLFNBQVNXO0lBRXBDLElBQUlDLGtCQUFrQlgsdUJBQXVCUyxzQkFBc0JEO0lBRW5FLE1BQU1JLHVCQUF1QixDQUFDQztRQUM1QkosdUJBQXVCSTtRQUN2QkYsa0JBQWtCWCx1QkFBdUJTLHNCQUFzQkQ7SUFD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
@@ -0,0 +1,34 @@
1
+ import type { BaseAdapterOptions } from '../../utils/validatorFactory.js';
2
+ import type { FluxFramework } from '@nlabs/arkhamjs';
3
+ import type { Permission } from '../../adapters/permissionAdapter/permissionAdapter.js';
4
+ import type { ActionRequestOptions } from '../../utils/requestCache.js';
5
+ export interface PermissionAdapterOptions extends BaseAdapterOptions {
6
+ }
7
+ export interface PermissionActionsOptions {
8
+ permissionAdapter?: (input: unknown, options?: PermissionAdapterOptions) => any;
9
+ permissionAdapterOptions?: PermissionAdapterOptions;
10
+ }
11
+ export type PermissionApiResultsType = {
12
+ permissions: {
13
+ add?: Permission;
14
+ check?: boolean;
15
+ itemById?: Permission;
16
+ list?: Permission[];
17
+ listByUser?: Permission[];
18
+ remove?: Permission;
19
+ update?: Permission;
20
+ };
21
+ };
22
+ export interface PermissionActions {
23
+ add: (permissionData: Partial<Permission>, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
24
+ check: (userId: string, resource: string, requiredLevel: number, requestOptions?: ActionRequestOptions) => Promise<boolean>;
25
+ itemById: (permissionId: string, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
26
+ list: (from?: number, to?: number, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission[]>;
27
+ listByUser: (userId: string, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission[]>;
28
+ remove: (permissionId: string, requestOptions?: ActionRequestOptions) => Promise<Permission>;
29
+ update: (permission: Partial<Permission>, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
30
+ updatePermissionAdapter: (adapter: (input: unknown, options?: PermissionAdapterOptions) => any) => void;
31
+ updatePermissionAdapterOptions: (options: PermissionAdapterOptions) => void;
32
+ }
33
+ export declare const createPermissionActions: (flux: FluxFramework, options?: PermissionActionsOptions) => PermissionActions;
34
+ //# sourceMappingURL=permissionActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionActions.d.ts","sourceRoot":"","sources":["../../../src/actions/permissionActions/permissionActions.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uDAAuD,CAAC;AACtF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAG;AAEvE,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,GAAG,CAAC;IAChF,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE;QACX,GAAG,CAAC,EAAE,UAAU,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5H,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3H,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/H,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzH,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7F,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACpI,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,GAAG,KAAK,IAAI,CAAC;IACxG,8BAA8B,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAC7E;AAKD,eAAO,MAAM,uBAAuB,GAClC,MAAM,aAAa,EACnB,UAAU,wBAAwB,KACjC,iBAiWF,CAAC"}