@nlabs/metropolisjs 0.1.1 → 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 (326) 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 +1343 -0
  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/factory-pattern-usage.ts +283 -0
  19. package/examples/i18n-import-examples.ts +86 -0
  20. package/examples/i18n-namespace-usage.ts +118 -0
  21. package/examples/i18next-singleton-demo.ts +187 -0
  22. package/examples/permission-system-usage.tsx +415 -0
  23. package/examples/project-details.tsx +397 -0
  24. package/examples/shared-i18n-usage.tsx +203 -0
  25. package/examples/signup-error-handling.ts +100 -0
  26. package/examples/translation-types.ts +86 -0
  27. package/examples/translation-usage.tsx +336 -0
  28. package/factoryPatternGuide.md +244 -0
  29. package/index.js +1 -0
  30. package/jest.config.mjs +28 -0
  31. package/lex.config.mjs +26 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  36. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  37. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  38. package/lib/actions/appActions/appActions.d.ts +29 -0
  39. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  40. package/lib/actions/appActions/appActions.js +159 -0
  41. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  42. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  43. package/lib/actions/connectionActions/connectionActions.js +131 -0
  44. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  45. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  46. package/lib/actions/contentActions/contentActions.js +314 -0
  47. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  48. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  49. package/lib/actions/conversationActions/conversationActions.js +225 -0
  50. package/lib/actions/eventActions/eventActions.d.ts +65 -0
  51. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  52. package/lib/actions/eventActions/eventActions.js +436 -0
  53. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  54. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  55. package/lib/actions/groupActions/groupActions.js +229 -0
  56. package/lib/actions/imageActions/imageActions.d.ts +62 -0
  57. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  58. package/lib/actions/imageActions/imageActions.js +593 -0
  59. package/lib/actions/index.d.ts +21 -0
  60. package/lib/actions/index.d.ts.map +1 -0
  61. package/lib/actions/index.js +22 -0
  62. package/lib/actions/locationActions/locationActions.d.ts +60 -0
  63. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  64. package/lib/actions/locationActions/locationActions.js +388 -0
  65. package/lib/actions/messageActions/messageActions.d.ts +38 -0
  66. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  67. package/lib/actions/messageActions/messageActions.js +235 -0
  68. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  69. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  70. package/lib/actions/permissionActions/permissionActions.js +330 -0
  71. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  72. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  73. package/lib/actions/personaActions/personaActions.js +572 -0
  74. package/lib/actions/postActions/postActions.d.ts +36 -0
  75. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  76. package/lib/actions/postActions/postActions.js +447 -0
  77. package/lib/actions/reactionActions/reactionActions.d.ts +38 -0
  78. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  79. package/lib/actions/reactionActions/reactionActions.js +413 -0
  80. package/lib/actions/sseActions/sseActions.d.ts +38 -0
  81. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  82. package/lib/actions/sseActions/sseActions.js +148 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  84. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  85. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  86. package/lib/actions/tagActions/tagActions.d.ts +37 -0
  87. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  88. package/lib/actions/tagActions/tagActions.js +347 -0
  89. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  90. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  91. package/lib/actions/translationActions/translationActions.js +189 -0
  92. package/lib/actions/userActions/userActions.d.ts +78 -0
  93. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  94. package/lib/actions/userActions/userActions.js +844 -0
  95. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  96. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  97. package/lib/actions/videoActions/videoActions.js +532 -0
  98. package/lib/actions/websocketActions/websocketActions.d.ts +30 -0
  99. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  100. package/lib/actions/websocketActions/websocketActions.js +377 -0
  101. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  102. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  103. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +21 -0
  105. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  106. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.d.ts +32 -0
  108. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  109. package/lib/adapters/contentAdapter/contentAdapter.js +107 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +24 -0
  111. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  112. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.d.ts +46 -0
  114. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  115. package/lib/adapters/eventAdapter/eventAdapter.js +162 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.d.ts +30 -0
  117. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  118. package/lib/adapters/fileAdapter/fileAdapter.js +118 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  120. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  121. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.d.ts +38 -0
  123. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  124. package/lib/adapters/imageAdapter/imageAdapter.js +134 -0
  125. package/lib/adapters/index.d.ts +34 -0
  126. package/lib/adapters/index.d.ts.map +1 -0
  127. package/lib/adapters/index.js +19 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.d.ts +28 -0
  129. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  130. package/lib/adapters/locationAdapter/locationAdapter.js +95 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.d.ts +31 -0
  132. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  133. package/lib/adapters/messageAdapter/messageAdapter.js +82 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  135. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  136. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.d.ts +44 -0
  138. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  139. package/lib/adapters/personaAdapter/personaAdapter.js +161 -0
  140. package/lib/adapters/postAdapter/postAdapter.d.ts +33 -0
  141. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  142. package/lib/adapters/postAdapter/postAdapter.js +115 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +23 -0
  144. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  145. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +17 -0
  147. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  148. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +24 -0
  150. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  151. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.d.ts +21 -0
  153. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  154. package/lib/adapters/tagAdapter/tagAdapter.js +98 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  156. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  157. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  158. package/lib/adapters/userAdapter/userAdapter.d.ts +67 -0
  159. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  160. package/lib/adapters/userAdapter/userAdapter.js +302 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  162. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  163. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  164. package/lib/config/index.d.ts +44 -0
  165. package/lib/config/index.d.ts.map +1 -0
  166. package/lib/config/index.js +97 -0
  167. package/lib/constants/Collections.d.ts +44 -0
  168. package/lib/constants/Collections.d.ts.map +1 -0
  169. package/lib/constants/Collections.js +40 -0
  170. package/lib/constants/MetropolisConstants.d.ts +15 -0
  171. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  172. package/lib/constants/MetropolisConstants.js +15 -0
  173. package/lib/graphql/message.d.ts +3 -0
  174. package/lib/graphql/message.d.ts.map +1 -0
  175. package/lib/graphql/message.js +20 -0
  176. package/lib/graphql/notification.d.ts +3 -0
  177. package/lib/graphql/notification.d.ts.map +1 -0
  178. package/lib/graphql/notification.js +20 -0
  179. package/lib/graphql/session.d.ts +2 -0
  180. package/lib/graphql/session.d.ts.map +1 -0
  181. package/lib/graphql/session.js +17 -0
  182. package/lib/index.d.ts +52 -0
  183. package/lib/index.d.ts.map +1 -0
  184. package/lib/index.js +248 -0
  185. package/lib/stores/appStore.d.ts +23 -0
  186. package/lib/stores/appStore.d.ts.map +1 -0
  187. package/lib/stores/appStore.js +23 -0
  188. package/lib/stores/contentStore.d.ts +36 -0
  189. package/lib/stores/contentStore.d.ts.map +1 -0
  190. package/lib/stores/contentStore.js +139 -0
  191. package/lib/stores/conversationStore.d.ts +38 -0
  192. package/lib/stores/conversationStore.d.ts.map +1 -0
  193. package/lib/stores/conversationStore.js +117 -0
  194. package/lib/stores/eventStore.d.ts +37 -0
  195. package/lib/stores/eventStore.d.ts.map +1 -0
  196. package/lib/stores/eventStore.js +47 -0
  197. package/lib/stores/groupStore.d.ts +37 -0
  198. package/lib/stores/groupStore.d.ts.map +1 -0
  199. package/lib/stores/groupStore.js +68 -0
  200. package/lib/stores/imageStore.d.ts +40 -0
  201. package/lib/stores/imageStore.d.ts.map +1 -0
  202. package/lib/stores/imageStore.js +53 -0
  203. package/lib/stores/index.d.ts +24 -0
  204. package/lib/stores/index.d.ts.map +1 -0
  205. package/lib/stores/index.js +24 -0
  206. package/lib/stores/locationStore.d.ts +34 -0
  207. package/lib/stores/locationStore.d.ts.map +1 -0
  208. package/lib/stores/locationStore.js +42 -0
  209. package/lib/stores/messageStore.d.ts +51 -0
  210. package/lib/stores/messageStore.d.ts.map +1 -0
  211. package/lib/stores/messageStore.js +137 -0
  212. package/lib/stores/notificationStore.d.ts +33 -0
  213. package/lib/stores/notificationStore.d.ts.map +1 -0
  214. package/lib/stores/notificationStore.js +55 -0
  215. package/lib/stores/permissionStore.d.ts +37 -0
  216. package/lib/stores/permissionStore.d.ts.map +1 -0
  217. package/lib/stores/permissionStore.js +117 -0
  218. package/lib/stores/personaStore.d.ts +26 -0
  219. package/lib/stores/personaStore.d.ts.map +1 -0
  220. package/lib/stores/personaStore.js +118 -0
  221. package/lib/stores/postStore.d.ts +34 -0
  222. package/lib/stores/postStore.d.ts.map +1 -0
  223. package/lib/stores/postStore.js +53 -0
  224. package/lib/stores/reactionStore.d.ts +25 -0
  225. package/lib/stores/reactionStore.d.ts.map +1 -0
  226. package/lib/stores/reactionStore.js +28 -0
  227. package/lib/stores/subscriptionStore.d.ts +41 -0
  228. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  229. package/lib/stores/subscriptionStore.js +85 -0
  230. package/lib/stores/tagStore.d.ts +34 -0
  231. package/lib/stores/tagStore.d.ts.map +1 -0
  232. package/lib/stores/tagStore.js +87 -0
  233. package/lib/stores/translationStore.d.ts +42 -0
  234. package/lib/stores/translationStore.d.ts.map +1 -0
  235. package/lib/stores/translationStore.js +122 -0
  236. package/lib/stores/userStore.d.ts +74 -0
  237. package/lib/stores/userStore.d.ts.map +1 -0
  238. package/lib/stores/userStore.js +319 -0
  239. package/lib/stores/videoStore.d.ts +39 -0
  240. package/lib/stores/videoStore.d.ts.map +1 -0
  241. package/lib/stores/videoStore.js +132 -0
  242. package/lib/stores/websocketStore.d.ts +24 -0
  243. package/lib/stores/websocketStore.d.ts.map +1 -0
  244. package/lib/stores/websocketStore.js +51 -0
  245. package/lib/types/apps.types.d.ts +17 -0
  246. package/lib/types/apps.types.d.ts.map +1 -0
  247. package/lib/types/apps.types.js +6 -0
  248. package/lib/types/common.types.d.ts +31 -0
  249. package/lib/types/common.types.d.ts.map +1 -0
  250. package/lib/types/common.types.js +6 -0
  251. package/lib/types/conversations.types.d.ts +17 -0
  252. package/lib/types/conversations.types.d.ts.map +1 -0
  253. package/lib/types/conversations.types.js +6 -0
  254. package/lib/types/edges.types.d.ts +38 -0
  255. package/lib/types/edges.types.d.ts.map +1 -0
  256. package/lib/types/edges.types.js +6 -0
  257. package/lib/types/groups.types.d.ts +19 -0
  258. package/lib/types/groups.types.d.ts.map +1 -0
  259. package/lib/types/groups.types.js +6 -0
  260. package/lib/types/index.d.ts +12 -0
  261. package/lib/types/index.d.ts.map +1 -0
  262. package/lib/types/index.js +12 -0
  263. package/lib/types/subscriptions.types.d.ts +32 -0
  264. package/lib/types/subscriptions.types.d.ts.map +1 -0
  265. package/lib/types/subscriptions.types.js +6 -0
  266. package/lib/types/videos.types.d.ts +61 -0
  267. package/lib/types/videos.types.d.ts.map +1 -0
  268. package/lib/types/videos.types.js +6 -0
  269. package/lib/utils/MetropolisProvider.d.ts +58 -0
  270. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  271. package/lib/utils/MetropolisProvider.js +31 -0
  272. package/lib/utils/actionFactory.d.ts +24 -0
  273. package/lib/utils/actionFactory.d.ts.map +1 -0
  274. package/lib/utils/actionFactory.js +95 -0
  275. package/lib/utils/api.d.ts +44 -0
  276. package/lib/utils/api.d.ts.map +1 -0
  277. package/lib/utils/api.js +253 -0
  278. package/lib/utils/app.d.ts +7 -0
  279. package/lib/utils/app.d.ts.map +1 -0
  280. package/lib/utils/app.js +15 -0
  281. package/lib/utils/baseActionFactory.d.ts +16 -0
  282. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  283. package/lib/utils/baseActionFactory.js +72 -0
  284. package/lib/utils/configUtils.d.ts +11 -0
  285. package/lib/utils/configUtils.d.ts.map +1 -0
  286. package/lib/utils/configUtils.js +20 -0
  287. package/lib/utils/dateUtils.d.ts +3 -0
  288. package/lib/utils/dateUtils.d.ts.map +1 -0
  289. package/lib/utils/dateUtils.js +11 -0
  290. package/lib/utils/file.d.ts +3 -0
  291. package/lib/utils/file.d.ts.map +1 -0
  292. package/lib/utils/file.js +156 -0
  293. package/lib/utils/i18n.d.ts +7 -0
  294. package/lib/utils/i18n.d.ts.map +1 -0
  295. package/lib/utils/i18n.js +96 -0
  296. package/lib/utils/index.d.ts +20 -0
  297. package/lib/utils/index.d.ts.map +1 -0
  298. package/lib/utils/index.js +26 -0
  299. package/lib/utils/location.d.ts +10 -0
  300. package/lib/utils/location.d.ts.map +1 -0
  301. package/lib/utils/location.js +82 -0
  302. package/lib/utils/permissionUtils.d.ts +22 -0
  303. package/lib/utils/permissionUtils.d.ts.map +1 -0
  304. package/lib/utils/permissionUtils.js +72 -0
  305. package/lib/utils/requestCache.d.ts +8 -0
  306. package/lib/utils/requestCache.d.ts.map +1 -0
  307. package/lib/utils/requestCache.js +53 -0
  308. package/lib/utils/session.d.ts +14 -0
  309. package/lib/utils/session.d.ts.map +1 -0
  310. package/lib/utils/session.js +107 -0
  311. package/lib/utils/useConversationTyping.d.ts +26 -0
  312. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  313. package/lib/utils/useConversationTyping.js +117 -0
  314. package/lib/utils/useMetropolis.d.ts +67 -0
  315. package/lib/utils/useMetropolis.d.ts.map +1 -0
  316. package/lib/utils/useMetropolis.js +311 -0
  317. package/lib/utils/useTranslations.d.ts +16 -0
  318. package/lib/utils/useTranslations.d.ts.map +1 -0
  319. package/lib/utils/useTranslations.js +105 -0
  320. package/lib/utils/validatorFactory.d.ts +49 -0
  321. package/lib/utils/validatorFactory.d.ts.map +1 -0
  322. package/lib/utils/validatorFactory.js +95 -0
  323. package/package.json +75 -28
  324. package/temp_signin.ts +73 -0
  325. package/tsconfig.lint.json +25 -0
  326. package/tsconfig.test.json +14 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ import type { MessageType } from '../adapters/messageAdapter/messageAdapter.js';
6
+ export declare const MESSAGE_CONSTANTS: {
7
+ readonly ADD_ITEM_ERROR: "MESSAGE_ADD_ITEM_ERROR";
8
+ readonly ADD_ITEM_SUCCESS: "MESSAGE_ADD_ITEM_SUCCESS";
9
+ readonly GET_CONVO_LIST_ERROR: "MESSAGE_GET_CONVO_LIST_ERROR";
10
+ readonly GET_CONVO_LIST_SUCCESS: "MESSAGE_GET_CONVO_LIST_SUCCESS";
11
+ readonly GET_ITEM_ERROR: "MESSAGE_GET_ITEM_ERROR";
12
+ readonly GET_ITEM_SUCCESS: "MESSAGE_GET_ITEM_SUCCESS";
13
+ readonly GET_LIST_ERROR: "MESSAGE_GET_LIST_ERROR";
14
+ readonly GET_LIST_SUCCESS: "MESSAGE_GET_LIST_SUCCESS";
15
+ readonly REMOVE_ITEM_ERROR: "MESSAGE_REMOVE_ITEM_ERROR";
16
+ readonly REMOVE_ITEM_SUCCESS: "MESSAGE_REMOVE_ITEM_SUCCESS";
17
+ readonly TYPING_STATUS_UPDATE: "MESSAGE_TYPING_STATUS_UPDATE";
18
+ readonly UPDATE_ITEM_ERROR: "MESSAGE_UPDATE_ITEM_ERROR";
19
+ readonly UPDATE_ITEM_SUCCESS: "MESSAGE_UPDATE_ITEM_SUCCESS";
20
+ };
21
+ export interface MessageTypingStatus {
22
+ readonly conversationId?: string;
23
+ readonly isTyping?: boolean;
24
+ readonly name?: string;
25
+ readonly personaId?: string;
26
+ readonly updatedAt?: number;
27
+ readonly userId?: string;
28
+ readonly username?: string;
29
+ }
30
+ export interface MessageState {
31
+ readonly conversations: Record<string, MessageType[]>;
32
+ readonly typingByConversation: Record<string, Record<string, MessageTypingStatus>>;
33
+ }
34
+ export declare const defaultValues: MessageState;
35
+ export declare const messageStore: (type: string, data: {
36
+ message?: MessageType;
37
+ list?: MessageType[];
38
+ conversationId?: string;
39
+ typing?: MessageTypingStatus;
40
+ }, state?: MessageState) => MessageState;
41
+ export declare const messages: {
42
+ action: (type: string, data: {
43
+ message?: MessageType;
44
+ list?: MessageType[];
45
+ conversationId?: string;
46
+ typing?: MessageTypingStatus;
47
+ }, state?: MessageState) => MessageState;
48
+ initialState: MessageState;
49
+ name: string;
50
+ };
51
+ //# sourceMappingURL=messageStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageStore.d.ts","sourceRoot":"","sources":["../../src/stores/messageStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,8CAA8C,CAAC;AAE9E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAcpB,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;CACpF;AAED,eAAO,MAAM,aAAa,EAAE,YAG3B,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,MAAM;IAC/C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,EAAE,oBAAqB,KAAG,YA2G1B,CAAC;AAEF,eAAO,MAAM,QAAQ;mBAlHc,MAAM,QAAQ;QAC/C,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC9B,2BAA0B,YAAY;;;CAiHtC,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export const MESSAGE_CONSTANTS = {
5
+ ADD_ITEM_ERROR: 'MESSAGE_ADD_ITEM_ERROR',
6
+ ADD_ITEM_SUCCESS: 'MESSAGE_ADD_ITEM_SUCCESS',
7
+ GET_CONVO_LIST_ERROR: 'MESSAGE_GET_CONVO_LIST_ERROR',
8
+ GET_CONVO_LIST_SUCCESS: 'MESSAGE_GET_CONVO_LIST_SUCCESS',
9
+ GET_ITEM_ERROR: 'MESSAGE_GET_ITEM_ERROR',
10
+ GET_ITEM_SUCCESS: 'MESSAGE_GET_ITEM_SUCCESS',
11
+ GET_LIST_ERROR: 'MESSAGE_GET_LIST_ERROR',
12
+ GET_LIST_SUCCESS: 'MESSAGE_GET_LIST_SUCCESS',
13
+ REMOVE_ITEM_ERROR: 'MESSAGE_REMOVE_ITEM_ERROR',
14
+ REMOVE_ITEM_SUCCESS: 'MESSAGE_REMOVE_ITEM_SUCCESS',
15
+ TYPING_STATUS_UPDATE: 'MESSAGE_TYPING_STATUS_UPDATE',
16
+ UPDATE_ITEM_ERROR: 'MESSAGE_UPDATE_ITEM_ERROR',
17
+ UPDATE_ITEM_SUCCESS: 'MESSAGE_UPDATE_ITEM_SUCCESS'
18
+ };
19
+ export const defaultValues = {
20
+ conversations: {},
21
+ typingByConversation: {}
22
+ };
23
+ const getTypingIdentity = (typing)=>String(typing?.personaId || typing?.userId || '');
24
+ export const messageStore = (type, data, state = defaultValues)=>{
25
+ switch(type){
26
+ case MESSAGE_CONSTANTS.GET_CONVO_LIST_SUCCESS:
27
+ {
28
+ const { list, conversationId } = data;
29
+ if (!conversationId) {
30
+ return state;
31
+ }
32
+ const { conversations } = state;
33
+ return {
34
+ ...state,
35
+ conversations: {
36
+ ...conversations,
37
+ [conversationId]: list || []
38
+ }
39
+ };
40
+ }
41
+ case MESSAGE_CONSTANTS.GET_LIST_SUCCESS:
42
+ {
43
+ const { conversationId, list = [] } = data;
44
+ if (!conversationId) {
45
+ return state;
46
+ }
47
+ return {
48
+ ...state,
49
+ conversations: {
50
+ ...state.conversations,
51
+ [conversationId]: list
52
+ }
53
+ };
54
+ }
55
+ case MESSAGE_CONSTANTS.ADD_ITEM_SUCCESS:
56
+ {
57
+ const { message } = data;
58
+ const conversationId = String(message?.conversationId || '');
59
+ if (!conversationId || !message) {
60
+ return state;
61
+ }
62
+ const existingMessages = state.conversations?.[conversationId] || [];
63
+ const nextMessageId = String(message.messageId || message.id || message._key || '');
64
+ const hasExistingMessage = existingMessages.some((item)=>String(item.messageId || item.id || item._key || '') === nextMessageId);
65
+ if (hasExistingMessage && nextMessageId) {
66
+ return state;
67
+ }
68
+ return {
69
+ ...state,
70
+ conversations: {
71
+ ...state.conversations,
72
+ [conversationId]: [
73
+ ...existingMessages,
74
+ message
75
+ ]
76
+ }
77
+ };
78
+ }
79
+ case MESSAGE_CONSTANTS.TYPING_STATUS_UPDATE:
80
+ {
81
+ const typing = data?.typing || {};
82
+ const conversationId = String(typing?.conversationId || '');
83
+ const typingId = getTypingIdentity(typing);
84
+ if (!conversationId || !typingId) {
85
+ return state;
86
+ }
87
+ const currentConversationTyping = {
88
+ ...state.typingByConversation?.[conversationId] || {}
89
+ };
90
+ if (!typing?.isTyping) {
91
+ delete currentConversationTyping[typingId];
92
+ if (!Object.keys(currentConversationTyping).length) {
93
+ const { [conversationId]: removed, ...restTypingByConversation } = state.typingByConversation || {};
94
+ return {
95
+ ...state,
96
+ typingByConversation: restTypingByConversation
97
+ };
98
+ }
99
+ return {
100
+ ...state,
101
+ typingByConversation: {
102
+ ...state.typingByConversation,
103
+ [conversationId]: currentConversationTyping
104
+ }
105
+ };
106
+ }
107
+ return {
108
+ ...state,
109
+ typingByConversation: {
110
+ ...state.typingByConversation,
111
+ [conversationId]: {
112
+ ...currentConversationTyping,
113
+ [typingId]: {
114
+ ...typing,
115
+ conversationId,
116
+ isTyping: true,
117
+ personaId: String(typing?.personaId || ''),
118
+ updatedAt: Number(typing?.updatedAt || Date.now()),
119
+ userId: String(typing?.userId || '')
120
+ }
121
+ }
122
+ }
123
+ };
124
+ }
125
+ default:
126
+ {
127
+ return state;
128
+ }
129
+ }
130
+ };
131
+ export const messages = {
132
+ action: messageStore,
133
+ initialState: defaultValues,
134
+ name: 'message'
135
+ };
136
+
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvc3RvcmVzL21lc3NhZ2VTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHR5cGUge01lc3NhZ2VUeXBlfSBmcm9tICcuLi9hZGFwdGVycy9tZXNzYWdlQWRhcHRlci9tZXNzYWdlQWRhcHRlci5qcyc7XG5cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0NPTlNUQU5UUyA9IHtcbiAgQUREX0lURU1fRVJST1I6ICdNRVNTQUdFX0FERF9JVEVNX0VSUk9SJyxcbiAgQUREX0lURU1fU1VDQ0VTUzogJ01FU1NBR0VfQUREX0lURU1fU1VDQ0VTUycsXG4gIEdFVF9DT05WT19MSVNUX0VSUk9SOiAnTUVTU0FHRV9HRVRfQ09OVk9fTElTVF9FUlJPUicsXG4gIEdFVF9DT05WT19MSVNUX1NVQ0NFU1M6ICdNRVNTQUdFX0dFVF9DT05WT19MSVNUX1NVQ0NFU1MnLFxuICBHRVRfSVRFTV9FUlJPUjogJ01FU1NBR0VfR0VUX0lURU1fRVJST1InLFxuICBHRVRfSVRFTV9TVUNDRVNTOiAnTUVTU0FHRV9HRVRfSVRFTV9TVUNDRVNTJyxcbiAgR0VUX0xJU1RfRVJST1I6ICdNRVNTQUdFX0dFVF9MSVNUX0VSUk9SJyxcbiAgR0VUX0xJU1RfU1VDQ0VTUzogJ01FU1NBR0VfR0VUX0xJU1RfU1VDQ0VTUycsXG4gIFJFTU9WRV9JVEVNX0VSUk9SOiAnTUVTU0FHRV9SRU1PVkVfSVRFTV9FUlJPUicsXG4gIFJFTU9WRV9JVEVNX1NVQ0NFU1M6ICdNRVNTQUdFX1JFTU9WRV9JVEVNX1NVQ0NFU1MnLFxuICBUWVBJTkdfU1RBVFVTX1VQREFURTogJ01FU1NBR0VfVFlQSU5HX1NUQVRVU19VUERBVEUnLFxuICBVUERBVEVfSVRFTV9FUlJPUjogJ01FU1NBR0VfVVBEQVRFX0lURU1fRVJST1InLFxuICBVUERBVEVfSVRFTV9TVUNDRVNTOiAnTUVTU0FHRV9VUERBVEVfSVRFTV9TVUNDRVNTJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlVHlwaW5nU3RhdHVzIHtcbiAgcmVhZG9ubHkgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzVHlwaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSB1cGRhdGVkQXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZVN0YXRlIHtcbiAgcmVhZG9ubHkgY29udmVyc2F0aW9uczogUmVjb3JkPHN0cmluZywgTWVzc2FnZVR5cGVbXT47XG4gIHJlYWRvbmx5IHR5cGluZ0J5Q29udmVyc2F0aW9uOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBNZXNzYWdlVHlwaW5nU3RhdHVzPj47XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VmFsdWVzOiBNZXNzYWdlU3RhdGUgPSB7XG4gIGNvbnZlcnNhdGlvbnM6IHt9LFxuICB0eXBpbmdCeUNvbnZlcnNhdGlvbjoge31cbn07XG5cbmNvbnN0IGdldFR5cGluZ0lkZW50aXR5ID0gKHR5cGluZz86IE1lc3NhZ2VUeXBpbmdTdGF0dXMpOiBzdHJpbmcgPT4gU3RyaW5nKHR5cGluZz8ucGVyc29uYUlkIHx8IHR5cGluZz8udXNlcklkIHx8ICcnKTtcblxuZXhwb3J0IGNvbnN0IG1lc3NhZ2VTdG9yZSA9ICh0eXBlOiBzdHJpbmcsIGRhdGE6IHtcbiAgbWVzc2FnZT86IE1lc3NhZ2VUeXBlO1xuICBsaXN0PzogTWVzc2FnZVR5cGVbXTtcbiAgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gIHR5cGluZz86IE1lc3NhZ2VUeXBpbmdTdGF0dXM7XG59LCBzdGF0ZSA9IGRlZmF1bHRWYWx1ZXMpOiBNZXNzYWdlU3RhdGUgPT4ge1xuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgTUVTU0FHRV9DT05TVEFOVFMuR0VUX0NPTlZPX0xJU1RfU1VDQ0VTUzoge1xuICAgICAgY29uc3Qge2xpc3QsIGNvbnZlcnNhdGlvbklkfSA9IGRhdGE7XG5cbiAgICAgIGlmKCFjb252ZXJzYXRpb25JZCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtjb252ZXJzYXRpb25zfSA9IHN0YXRlO1xuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgY29udmVyc2F0aW9uczogey4uLmNvbnZlcnNhdGlvbnMsIFtjb252ZXJzYXRpb25JZF06IGxpc3QgfHwgW119fTtcbiAgICB9XG4gICAgY2FzZSBNRVNTQUdFX0NPTlNUQU5UUy5HRVRfTElTVF9TVUNDRVNTOiB7XG4gICAgICBjb25zdCB7Y29udmVyc2F0aW9uSWQsIGxpc3QgPSBbXX0gPSBkYXRhO1xuXG4gICAgICBpZighY29udmVyc2F0aW9uSWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29udmVyc2F0aW9uczoge1xuICAgICAgICAgIC4uLnN0YXRlLmNvbnZlcnNhdGlvbnMsXG4gICAgICAgICAgW2NvbnZlcnNhdGlvbklkXTogbGlzdFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHttZXNzYWdlfSA9IGRhdGE7XG4gICAgICBjb25zdCBjb252ZXJzYXRpb25JZCA9IFN0cmluZyhtZXNzYWdlPy5jb252ZXJzYXRpb25JZCB8fCAnJyk7XG5cbiAgICAgIGlmKCFjb252ZXJzYXRpb25JZCB8fCAhbWVzc2FnZSkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGV4aXN0aW5nTWVzc2FnZXMgPSBzdGF0ZS5jb252ZXJzYXRpb25zPy5bY29udmVyc2F0aW9uSWRdIHx8IFtdO1xuICAgICAgY29uc3QgbmV4dE1lc3NhZ2VJZCA9IFN0cmluZyhtZXNzYWdlLm1lc3NhZ2VJZCB8fCBtZXNzYWdlLmlkIHx8IG1lc3NhZ2UuX2tleSB8fCAnJyk7XG4gICAgICBjb25zdCBoYXNFeGlzdGluZ01lc3NhZ2UgPSBleGlzdGluZ01lc3NhZ2VzLnNvbWUoKGl0ZW0pID0+IChcbiAgICAgICAgU3RyaW5nKGl0ZW0ubWVzc2FnZUlkIHx8IGl0ZW0uaWQgfHwgaXRlbS5fa2V5IHx8ICcnKSA9PT0gbmV4dE1lc3NhZ2VJZFxuICAgICAgKSk7XG5cbiAgICAgIGlmKGhhc0V4aXN0aW5nTWVzc2FnZSAmJiBuZXh0TWVzc2FnZUlkKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb252ZXJzYXRpb25zLFxuICAgICAgICAgIFtjb252ZXJzYXRpb25JZF06IFsuLi5leGlzdGluZ01lc3NhZ2VzLCBtZXNzYWdlXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIE1FU1NBR0VfQ09OU1RBTlRTLlRZUElOR19TVEFUVVNfVVBEQVRFOiB7XG4gICAgICBjb25zdCB0eXBpbmcgPSBkYXRhPy50eXBpbmcgfHwge307XG4gICAgICBjb25zdCBjb252ZXJzYXRpb25JZCA9IFN0cmluZyh0eXBpbmc/LmNvbnZlcnNhdGlvbklkIHx8ICcnKTtcbiAgICAgIGNvbnN0IHR5cGluZ0lkID0gZ2V0VHlwaW5nSWRlbnRpdHkodHlwaW5nKTtcblxuICAgICAgaWYoIWNvbnZlcnNhdGlvbklkIHx8ICF0eXBpbmdJZCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRDb252ZXJzYXRpb25UeXBpbmcgPSB7Li4uKHN0YXRlLnR5cGluZ0J5Q29udmVyc2F0aW9uPy5bY29udmVyc2F0aW9uSWRdIHx8IHt9KX07XG5cbiAgICAgIGlmKCF0eXBpbmc/LmlzVHlwaW5nKSB7XG4gICAgICAgIGRlbGV0ZSBjdXJyZW50Q29udmVyc2F0aW9uVHlwaW5nW3R5cGluZ0lkXTtcblxuICAgICAgICBpZighT2JqZWN0LmtleXMoY3VycmVudENvbnZlcnNhdGlvblR5cGluZykubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qge1tjb252ZXJzYXRpb25JZF06IHJlbW92ZWQsIC4uLnJlc3RUeXBpbmdCeUNvbnZlcnNhdGlvbn0gPSBzdGF0ZS50eXBpbmdCeUNvbnZlcnNhdGlvbiB8fCB7fTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICB0eXBpbmdCeUNvbnZlcnNhdGlvbjogcmVzdFR5cGluZ0J5Q29udmVyc2F0aW9uXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdHlwaW5nQnlDb252ZXJzYXRpb246IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnR5cGluZ0J5Q29udmVyc2F0aW9uLFxuICAgICAgICAgICAgW2NvbnZlcnNhdGlvbklkXTogY3VycmVudENvbnZlcnNhdGlvblR5cGluZ1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHR5cGluZ0J5Q29udmVyc2F0aW9uOiB7XG4gICAgICAgICAgLi4uc3RhdGUudHlwaW5nQnlDb252ZXJzYXRpb24sXG4gICAgICAgICAgW2NvbnZlcnNhdGlvbklkXToge1xuICAgICAgICAgICAgLi4uY3VycmVudENvbnZlcnNhdGlvblR5cGluZyxcbiAgICAgICAgICAgIFt0eXBpbmdJZF06IHtcbiAgICAgICAgICAgICAgLi4udHlwaW5nLFxuICAgICAgICAgICAgICBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgICAgICAgaXNUeXBpbmc6IHRydWUsXG4gICAgICAgICAgICAgIHBlcnNvbmFJZDogU3RyaW5nKHR5cGluZz8ucGVyc29uYUlkIHx8ICcnKSxcbiAgICAgICAgICAgICAgdXBkYXRlZEF0OiBOdW1iZXIodHlwaW5nPy51cGRhdGVkQXQgfHwgRGF0ZS5ub3coKSksXG4gICAgICAgICAgICAgIHVzZXJJZDogU3RyaW5nKHR5cGluZz8udXNlcklkIHx8ICcnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWVzc2FnZXMgPSB7XG4gIGFjdGlvbjogbWVzc2FnZVN0b3JlLFxuICBpbml0aWFsU3RhdGU6IGRlZmF1bHRWYWx1ZXMsXG4gIG5hbWU6ICdtZXNzYWdlJ1xufTtcbiJdLCJuYW1lcyI6WyJNRVNTQUdFX0NPTlNUQU5UUyIsIkFERF9JVEVNX0VSUk9SIiwiQUREX0lURU1fU1VDQ0VTUyIsIkdFVF9DT05WT19MSVNUX0VSUk9SIiwiR0VUX0NPTlZPX0xJU1RfU1VDQ0VTUyIsIkdFVF9JVEVNX0VSUk9SIiwiR0VUX0lURU1fU1VDQ0VTUyIsIkdFVF9MSVNUX0VSUk9SIiwiR0VUX0xJU1RfU1VDQ0VTUyIsIlJFTU9WRV9JVEVNX0VSUk9SIiwiUkVNT1ZFX0lURU1fU1VDQ0VTUyIsIlRZUElOR19TVEFUVVNfVVBEQVRFIiwiVVBEQVRFX0lURU1fRVJST1IiLCJVUERBVEVfSVRFTV9TVUNDRVNTIiwiZGVmYXVsdFZhbHVlcyIsImNvbnZlcnNhdGlvbnMiLCJ0eXBpbmdCeUNvbnZlcnNhdGlvbiIsImdldFR5cGluZ0lkZW50aXR5IiwidHlwaW5nIiwiU3RyaW5nIiwicGVyc29uYUlkIiwidXNlcklkIiwibWVzc2FnZVN0b3JlIiwidHlwZSIsImRhdGEiLCJzdGF0ZSIsImxpc3QiLCJjb252ZXJzYXRpb25JZCIsIm1lc3NhZ2UiLCJleGlzdGluZ01lc3NhZ2VzIiwibmV4dE1lc3NhZ2VJZCIsIm1lc3NhZ2VJZCIsImlkIiwiX2tleSIsImhhc0V4aXN0aW5nTWVzc2FnZSIsInNvbWUiLCJpdGVtIiwidHlwaW5nSWQiLCJjdXJyZW50Q29udmVyc2F0aW9uVHlwaW5nIiwiaXNUeXBpbmciLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwicmVtb3ZlZCIsInJlc3RUeXBpbmdCeUNvbnZlcnNhdGlvbiIsInVwZGF0ZWRBdCIsIk51bWJlciIsIkRhdGUiLCJub3ciLCJtZXNzYWdlcyIsImFjdGlvbiIsImluaXRpYWxTdGF0ZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUdELE9BQU8sTUFBTUEsb0JBQW9CO0lBQy9CQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsc0JBQXNCO0lBQ3RCQyx3QkFBd0I7SUFDeEJDLGdCQUFnQjtJQUNoQkMsa0JBQWtCO0lBQ2xCQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsbUJBQW1CO0lBQ25CQyxxQkFBcUI7SUFDckJDLHNCQUFzQjtJQUN0QkMsbUJBQW1CO0lBQ25CQyxxQkFBcUI7QUFDdkIsRUFBVztBQWlCWCxPQUFPLE1BQU1DLGdCQUE4QjtJQUN6Q0MsZUFBZSxDQUFDO0lBQ2hCQyxzQkFBc0IsQ0FBQztBQUN6QixFQUFFO0FBRUYsTUFBTUMsb0JBQW9CLENBQUNDLFNBQXlDQyxPQUFPRCxRQUFRRSxhQUFhRixRQUFRRyxVQUFVO0FBRWxILE9BQU8sTUFBTUMsZUFBZSxDQUFDQyxNQUFjQyxNQUt4Q0MsUUFBUVgsYUFBYTtJQUN0QixPQUFPUztRQUNM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
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ export declare const NOTIFICATION_CONSTANTS: {
6
+ readonly ADD_ITEM_SUCCESS: "NOTIFICATION_ADD_ITEM_SUCCESS";
7
+ readonly CLEAR_ITEMS: "NOTIFICATION_CLEAR_ITEMS";
8
+ };
9
+ export type NotificationType = Record<string, unknown> & {
10
+ readonly added?: number;
11
+ readonly content?: string;
12
+ readonly from?: string;
13
+ readonly modified?: number;
14
+ readonly notificationId?: string;
15
+ readonly read?: boolean;
16
+ readonly to?: string;
17
+ readonly type?: string;
18
+ };
19
+ export interface NotificationState {
20
+ readonly list: NotificationType[];
21
+ }
22
+ export declare const defaultValues: NotificationState;
23
+ export declare const notificationStore: (type: string, data: {
24
+ notification?: NotificationType;
25
+ }, state?: NotificationState) => NotificationState;
26
+ export declare const notifications: {
27
+ action: (type: string, data: {
28
+ notification?: NotificationType;
29
+ }, state?: NotificationState) => NotificationState;
30
+ initialState: NotificationState;
31
+ name: string;
32
+ };
33
+ //# sourceMappingURL=notificationStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationStore.d.ts","sourceRoot":"","sources":["../../src/stores/notificationStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,sBAAsB;;;CAGzB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,EAAE,iBAE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,MAAM;IACJ,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC,EACD,yBAAqB,KACpB,iBA6BF,CAAC;AAEF,eAAO,MAAM,aAAa;mBApClB,MAAM,QACN;QACJ,YAAY,CAAC,EAAE,gBAAgB,CAAC;KACjC,gCAEA,iBAAiB;;;CAmCnB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export const NOTIFICATION_CONSTANTS = {
5
+ ADD_ITEM_SUCCESS: 'NOTIFICATION_ADD_ITEM_SUCCESS',
6
+ CLEAR_ITEMS: 'NOTIFICATION_CLEAR_ITEMS'
7
+ };
8
+ export const defaultValues = {
9
+ list: []
10
+ };
11
+ export const notificationStore = (type, data, state = defaultValues)=>{
12
+ switch(type){
13
+ case NOTIFICATION_CONSTANTS.ADD_ITEM_SUCCESS:
14
+ {
15
+ const notification = data?.notification || {};
16
+ const notificationId = String(notification?.notificationId || '');
17
+ if (!Object.keys(notification).length) {
18
+ return state;
19
+ }
20
+ if (notificationId) {
21
+ const nextList = state.list.some((item)=>String(item?.notificationId || '') === notificationId) ? state.list.map((item)=>String(item?.notificationId || '') === notificationId ? {
22
+ ...item,
23
+ ...notification
24
+ } : item) : [
25
+ notification,
26
+ ...state.list
27
+ ];
28
+ return {
29
+ list: nextList
30
+ };
31
+ }
32
+ return {
33
+ list: [
34
+ notification,
35
+ ...state.list
36
+ ]
37
+ };
38
+ }
39
+ case NOTIFICATION_CONSTANTS.CLEAR_ITEMS:
40
+ {
41
+ return defaultValues;
42
+ }
43
+ default:
44
+ {
45
+ return state;
46
+ }
47
+ }
48
+ };
49
+ export const notifications = {
50
+ action: notificationStore,
51
+ initialState: defaultValues,
52
+ name: 'notification'
53
+ };
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvc3RvcmVzL25vdGlmaWNhdGlvblN0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmV4cG9ydCBjb25zdCBOT1RJRklDQVRJT05fQ09OU1RBTlRTID0ge1xuICBBRERfSVRFTV9TVUNDRVNTOiAnTk9USUZJQ0FUSU9OX0FERF9JVEVNX1NVQ0NFU1MnLFxuICBDTEVBUl9JVEVNUzogJ05PVElGSUNBVElPTl9DTEVBUl9JVEVNUydcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvblR5cGUgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiAmIHtcbiAgcmVhZG9ubHkgYWRkZWQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZyb20/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG1vZGlmaWVkPzogbnVtYmVyO1xuICByZWFkb25seSBub3RpZmljYXRpb25JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgcmVhZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHRvPzogc3RyaW5nO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25TdGF0ZSB7XG4gIHJlYWRvbmx5IGxpc3Q6IE5vdGlmaWNhdGlvblR5cGVbXTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRWYWx1ZXM6IE5vdGlmaWNhdGlvblN0YXRlID0ge1xuICBsaXN0OiBbXVxufTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvblN0b3JlID0gKFxuICB0eXBlOiBzdHJpbmcsXG4gIGRhdGE6IHtcbiAgICBub3RpZmljYXRpb24/OiBOb3RpZmljYXRpb25UeXBlO1xuICB9LFxuICBzdGF0ZSA9IGRlZmF1bHRWYWx1ZXNcbik6IE5vdGlmaWNhdGlvblN0YXRlID0+IHtcbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBjYXNlIE5PVElGSUNBVElPTl9DT05TVEFOVFMuQUREX0lURU1fU1VDQ0VTUzoge1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0gZGF0YT8ubm90aWZpY2F0aW9uIHx8IHt9O1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uSWQgPSBTdHJpbmcobm90aWZpY2F0aW9uPy5ub3RpZmljYXRpb25JZCB8fCAnJyk7XG5cbiAgICAgIGlmKCFPYmplY3Qua2V5cyhub3RpZmljYXRpb24pLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmKG5vdGlmaWNhdGlvbklkKSB7XG4gICAgICAgIGNvbnN0IG5leHRMaXN0ID0gc3RhdGUubGlzdC5zb21lKChpdGVtKSA9PiBTdHJpbmcoaXRlbT8ubm90aWZpY2F0aW9uSWQgfHwgJycpID09PSBub3RpZmljYXRpb25JZClcbiAgICAgICAgICA/IHN0YXRlLmxpc3QubWFwKChpdGVtKSA9PiAoU3RyaW5nKGl0ZW0/Lm5vdGlmaWNhdGlvbklkIHx8ICcnKSA9PT0gbm90aWZpY2F0aW9uSWQgPyB7Li4uaXRlbSwgLi4ubm90aWZpY2F0aW9ufSA6IGl0ZW0pKVxuICAgICAgICAgIDogW25vdGlmaWNhdGlvbiwgLi4uc3RhdGUubGlzdF07XG5cbiAgICAgICAgcmV0dXJuIHtsaXN0OiBuZXh0TGlzdH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7bGlzdDogW25vdGlmaWNhdGlvbiwgLi4uc3RhdGUubGlzdF19O1xuICAgIH1cblxuICAgIGNhc2UgTk9USUZJQ0FUSU9OX0NPTlNUQU5UUy5DTEVBUl9JVEVNUzoge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZXM7XG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG5vdGlmaWNhdGlvbnMgPSB7XG4gIGFjdGlvbjogbm90aWZpY2F0aW9uU3RvcmUsXG4gIGluaXRpYWxTdGF0ZTogZGVmYXVsdFZhbHVlcyxcbiAgbmFtZTogJ25vdGlmaWNhdGlvbidcbn07XG4iXSwibmFtZXMiOlsiTk9USUZJQ0FUSU9OX0NPTlNUQU5UUyIsIkFERF9JVEVNX1NVQ0NFU1MiLCJDTEVBUl9JVEVNUyIsImRlZmF1bHRWYWx1ZXMiLCJsaXN0Iiwibm90aWZpY2F0aW9uU3RvcmUiLCJ0eXBlIiwiZGF0YSIsInN0YXRlIiwibm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uSWQiLCJTdHJpbmciLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwibmV4dExpc3QiLCJzb21lIiwiaXRlbSIsIm1hcCIsIm5vdGlmaWNhdGlvbnMiLCJhY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxPQUFPLE1BQU1BLHlCQUF5QjtJQUNwQ0Msa0JBQWtCO0lBQ2xCQyxhQUFhO0FBQ2YsRUFBVztBQWlCWCxPQUFPLE1BQU1DLGdCQUFtQztJQUM5Q0MsTUFBTSxFQUFFO0FBQ1YsRUFBRTtBQUVGLE9BQU8sTUFBTUMsb0JBQW9CLENBQy9CQyxNQUNBQyxNQUdBQyxRQUFRTCxhQUFhO0lBRXJCLE9BQU9HO1FBQ0wsS0FBS04sdUJBQXVCQyxnQkFBZ0I7WUFBRTtnQkFDNUMsTUFBTVEsZUFBZUYsTUFBTUUsZ0JBQWdCLENBQUM7Z0JBQzVDLE1BQU1DLGlCQUFpQkMsT0FBT0YsY0FBY0Msa0JBQWtCO2dCQUU5RCxJQUFHLENBQUNFLE9BQU9DLElBQUksQ0FBQ0osY0FBY0ssTUFBTSxFQUFFO29CQUNwQyxPQUFPTjtnQkFDVDtnQkFFQSxJQUFHRSxnQkFBZ0I7b0JBQ2pCLE1BQU1LLFdBQVdQLE1BQU1KLElBQUksQ0FBQ1ksSUFBSSxDQUFDLENBQUNDLE9BQVNOLE9BQU9NLE1BQU1QLGtCQUFrQixRQUFRQSxrQkFDOUVGLE1BQU1KLElBQUksQ0FBQ2MsR0FBRyxDQUFDLENBQUNELE9BQVVOLE9BQU9NLE1BQU1QLGtCQUFrQixRQUFRQSxpQkFBaUI7NEJBQUMsR0FBR08sSUFBSTs0QkFBRSxHQUFHUixZQUFZO3dCQUFBLElBQUlRLFFBQy9HO3dCQUFDUjsyQkFBaUJELE1BQU1KLElBQUk7cUJBQUM7b0JBRWpDLE9BQU87d0JBQUNBLE1BQU1XO29CQUFRO2dCQUN4QjtnQkFFQSxPQUFPO29CQUFDWCxNQUFNO3dCQUFDSzsyQkFBaUJELE1BQU1KLElBQUk7cUJBQUM7Z0JBQUE7WUFDN0M7UUFFQSxLQUFLSix1QkFBdUJFLFdBQVc7WUFBRTtnQkFDdkMsT0FBT0M7WUFDVDtRQUVBO1lBQVM7Z0JBQ1AsT0FBT0s7WUFDVDtJQUNGO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTVcsZ0JBQWdCO0lBQzNCQyxRQUFRZjtJQUNSZ0IsY0FBY2xCO0lBQ2RtQixNQUFNO0FBQ1IsRUFBRSJ9
@@ -0,0 +1,37 @@
1
+ import type { Permission } from '../adapters/permissionAdapter/permissionAdapter.js';
2
+ export declare const PERMISSION_CONSTANTS: {
3
+ readonly ADD_ITEM_ERROR: "PERMISSION_ADD_ITEM_ERROR";
4
+ readonly ADD_ITEM_SUCCESS: "PERMISSION_ADD_ITEM_SUCCESS";
5
+ readonly CHECK_PERMISSION_ERROR: "PERMISSION_CHECK_PERMISSION_ERROR";
6
+ readonly CHECK_PERMISSION_SUCCESS: "PERMISSION_CHECK_PERMISSION_SUCCESS";
7
+ readonly GET_ITEM_ERROR: "PERMISSION_GET_ITEM_ERROR";
8
+ readonly GET_ITEM_SUCCESS: "PERMISSION_GET_ITEM_SUCCESS";
9
+ readonly GET_LIST_ERROR: "PERMISSION_GET_LIST_ERROR";
10
+ readonly GET_LIST_SUCCESS: "PERMISSION_GET_LIST_SUCCESS";
11
+ readonly REMOVE_ITEM_ERROR: "PERMISSION_REMOVE_ITEM_ERROR";
12
+ readonly REMOVE_ITEM_SUCCESS: "PERMISSION_REMOVE_ITEM_SUCCESS";
13
+ readonly UPDATE_ITEM_ERROR: "PERMISSION_UPDATE_ITEM_ERROR";
14
+ readonly UPDATE_ITEM_SUCCESS: "PERMISSION_UPDATE_ITEM_SUCCESS";
15
+ };
16
+ export type PermissionConstantsType = typeof PERMISSION_CONSTANTS[keyof typeof PERMISSION_CONSTANTS];
17
+ interface PermissionState {
18
+ error?: Error;
19
+ lists: Record<string, unknown>;
20
+ permissions: Record<string, Partial<Permission>>;
21
+ userPermissions: Record<string, Permission[]>;
22
+ }
23
+ export declare const defaultValues: PermissionState;
24
+ interface PermissionData {
25
+ readonly error?: Error;
26
+ readonly list?: Permission[];
27
+ readonly permission?: Permission;
28
+ readonly userId?: string;
29
+ }
30
+ export declare const permissionStore: (type: string, data: PermissionData, state?: PermissionState) => PermissionState;
31
+ export declare const permissions: {
32
+ action: (type: string, data: PermissionData, state?: PermissionState) => PermissionState;
33
+ initialState: PermissionState;
34
+ name: string;
35
+ };
36
+ export {};
37
+ //# sourceMappingURL=permissionStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissionStore.d.ts","sourceRoot":"","sources":["../../src/stores/permissionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oDAAoD,CAAC;AAEnF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAEX,MAAM,MAAM,uBAAuB,GAAG,OAAO,oBAAoB,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAErG,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACjD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,aAAa,EAAE,eAI3B,CAAC;AAEF,UAAU,cAAc;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,MAAM,cAAc,EACpB,uBAAqB,KACpB,eAoGF,CAAC;AAEF,eAAO,MAAM,WAAW;mBAzGhB,MAAM,QACN,cAAc,8BAEnB,eAAe;;;CA0GjB,CAAC"}
@@ -0,0 +1,117 @@
1
+ export const PERMISSION_CONSTANTS = {
2
+ ADD_ITEM_ERROR: 'PERMISSION_ADD_ITEM_ERROR',
3
+ ADD_ITEM_SUCCESS: 'PERMISSION_ADD_ITEM_SUCCESS',
4
+ CHECK_PERMISSION_ERROR: 'PERMISSION_CHECK_PERMISSION_ERROR',
5
+ CHECK_PERMISSION_SUCCESS: 'PERMISSION_CHECK_PERMISSION_SUCCESS',
6
+ GET_ITEM_ERROR: 'PERMISSION_GET_ITEM_ERROR',
7
+ GET_ITEM_SUCCESS: 'PERMISSION_GET_ITEM_SUCCESS',
8
+ GET_LIST_ERROR: 'PERMISSION_GET_LIST_ERROR',
9
+ GET_LIST_SUCCESS: 'PERMISSION_GET_LIST_SUCCESS',
10
+ REMOVE_ITEM_ERROR: 'PERMISSION_REMOVE_ITEM_ERROR',
11
+ REMOVE_ITEM_SUCCESS: 'PERMISSION_REMOVE_ITEM_SUCCESS',
12
+ UPDATE_ITEM_ERROR: 'PERMISSION_UPDATE_ITEM_ERROR',
13
+ UPDATE_ITEM_SUCCESS: 'PERMISSION_UPDATE_ITEM_SUCCESS'
14
+ };
15
+ export const defaultValues = {
16
+ lists: {},
17
+ permissions: {},
18
+ userPermissions: {}
19
+ };
20
+ export const permissionStore = (type, data, state = defaultValues)=>{
21
+ switch(type){
22
+ case PERMISSION_CONSTANTS.ADD_ITEM_SUCCESS:
23
+ {
24
+ const { permission } = data;
25
+ if (!permission?.id) {
26
+ return state;
27
+ }
28
+ return {
29
+ ...state,
30
+ permissions: {
31
+ ...state.permissions,
32
+ [permission.id]: permission
33
+ }
34
+ };
35
+ }
36
+ case PERMISSION_CONSTANTS.GET_ITEM_SUCCESS:
37
+ {
38
+ const { permission } = data;
39
+ if (!permission?.id) {
40
+ return state;
41
+ }
42
+ return {
43
+ ...state,
44
+ permissions: {
45
+ ...state.permissions,
46
+ [permission.id]: permission
47
+ }
48
+ };
49
+ }
50
+ case PERMISSION_CONSTANTS.GET_LIST_SUCCESS:
51
+ {
52
+ const { list, userId } = data;
53
+ if (!list || !userId) {
54
+ return state;
55
+ }
56
+ return {
57
+ ...state,
58
+ userPermissions: {
59
+ ...state.userPermissions,
60
+ [userId]: list
61
+ }
62
+ };
63
+ }
64
+ case PERMISSION_CONSTANTS.UPDATE_ITEM_SUCCESS:
65
+ {
66
+ const { permission } = data;
67
+ if (!permission?.id) {
68
+ return state;
69
+ }
70
+ return {
71
+ ...state,
72
+ permissions: {
73
+ ...state.permissions,
74
+ [permission.id]: {
75
+ ...state.permissions[permission.id],
76
+ ...permission
77
+ }
78
+ }
79
+ };
80
+ }
81
+ case PERMISSION_CONSTANTS.REMOVE_ITEM_SUCCESS:
82
+ {
83
+ const { permission } = data;
84
+ if (!permission?.id) {
85
+ return state;
86
+ }
87
+ const { [permission.id]: removed, ...remainingPermissions } = state.permissions;
88
+ return {
89
+ ...state,
90
+ permissions: remainingPermissions
91
+ };
92
+ }
93
+ case PERMISSION_CONSTANTS.ADD_ITEM_ERROR:
94
+ case PERMISSION_CONSTANTS.GET_ITEM_ERROR:
95
+ case PERMISSION_CONSTANTS.GET_LIST_ERROR:
96
+ case PERMISSION_CONSTANTS.UPDATE_ITEM_ERROR:
97
+ case PERMISSION_CONSTANTS.REMOVE_ITEM_ERROR:
98
+ case PERMISSION_CONSTANTS.CHECK_PERMISSION_ERROR:
99
+ {
100
+ return {
101
+ ...state,
102
+ error: data.error
103
+ };
104
+ }
105
+ default:
106
+ {
107
+ return state;
108
+ }
109
+ }
110
+ };
111
+ export const permissions = {
112
+ action: permissionStore,
113
+ initialState: defaultValues,
114
+ name: 'permission'
115
+ };
116
+
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvc3RvcmVzL3Blcm1pc3Npb25TdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7UGVybWlzc2lvbn0gZnJvbSAnLi4vYWRhcHRlcnMvcGVybWlzc2lvbkFkYXB0ZXIvcGVybWlzc2lvbkFkYXB0ZXIuanMnO1xuXG5leHBvcnQgY29uc3QgUEVSTUlTU0lPTl9DT05TVEFOVFMgPSB7XG4gIEFERF9JVEVNX0VSUk9SOiAnUEVSTUlTU0lPTl9BRERfSVRFTV9FUlJPUicsXG4gIEFERF9JVEVNX1NVQ0NFU1M6ICdQRVJNSVNTSU9OX0FERF9JVEVNX1NVQ0NFU1MnLFxuICBDSEVDS19QRVJNSVNTSU9OX0VSUk9SOiAnUEVSTUlTU0lPTl9DSEVDS19QRVJNSVNTSU9OX0VSUk9SJyxcbiAgQ0hFQ0tfUEVSTUlTU0lPTl9TVUNDRVNTOiAnUEVSTUlTU0lPTl9DSEVDS19QRVJNSVNTSU9OX1NVQ0NFU1MnLFxuICBHRVRfSVRFTV9FUlJPUjogJ1BFUk1JU1NJT05fR0VUX0lURU1fRVJST1InLFxuICBHRVRfSVRFTV9TVUNDRVNTOiAnUEVSTUlTU0lPTl9HRVRfSVRFTV9TVUNDRVNTJyxcbiAgR0VUX0xJU1RfRVJST1I6ICdQRVJNSVNTSU9OX0dFVF9MSVNUX0VSUk9SJyxcbiAgR0VUX0xJU1RfU1VDQ0VTUzogJ1BFUk1JU1NJT05fR0VUX0xJU1RfU1VDQ0VTUycsXG4gIFJFTU9WRV9JVEVNX0VSUk9SOiAnUEVSTUlTU0lPTl9SRU1PVkVfSVRFTV9FUlJPUicsXG4gIFJFTU9WRV9JVEVNX1NVQ0NFU1M6ICdQRVJNSVNTSU9OX1JFTU9WRV9JVEVNX1NVQ0NFU1MnLFxuICBVUERBVEVfSVRFTV9FUlJPUjogJ1BFUk1JU1NJT05fVVBEQVRFX0lURU1fRVJST1InLFxuICBVUERBVEVfSVRFTV9TVUNDRVNTOiAnUEVSTUlTU0lPTl9VUERBVEVfSVRFTV9TVUNDRVNTJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgUGVybWlzc2lvbkNvbnN0YW50c1R5cGUgPSB0eXBlb2YgUEVSTUlTU0lPTl9DT05TVEFOVFNba2V5b2YgdHlwZW9mIFBFUk1JU1NJT05fQ09OU1RBTlRTXTtcblxuaW50ZXJmYWNlIFBlcm1pc3Npb25TdGF0ZSB7XG4gIGVycm9yPzogRXJyb3I7XG4gIGxpc3RzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcGVybWlzc2lvbnM6IFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8UGVybWlzc2lvbj4+O1xuICB1c2VyUGVybWlzc2lvbnM6IFJlY29yZDxzdHJpbmcsIFBlcm1pc3Npb25bXT47XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VmFsdWVzOiBQZXJtaXNzaW9uU3RhdGUgPSB7XG4gIGxpc3RzOiB7fSxcbiAgcGVybWlzc2lvbnM6IHt9LFxuICB1c2VyUGVybWlzc2lvbnM6IHt9XG59O1xuXG5pbnRlcmZhY2UgUGVybWlzc2lvbkRhdGEge1xuICByZWFkb25seSBlcnJvcj86IEVycm9yO1xuICByZWFkb25seSBsaXN0PzogUGVybWlzc2lvbltdO1xuICByZWFkb25seSBwZXJtaXNzaW9uPzogUGVybWlzc2lvbjtcbiAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgcGVybWlzc2lvblN0b3JlID0gKFxuICB0eXBlOiBzdHJpbmcsXG4gIGRhdGE6IFBlcm1pc3Npb25EYXRhLFxuICBzdGF0ZSA9IGRlZmF1bHRWYWx1ZXNcbik6IFBlcm1pc3Npb25TdGF0ZSA9PiB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUEVSTUlTU0lPTl9DT05TVEFOVFMuQUREX0lURU1fU1VDQ0VTUzoge1xuICAgICAgY29uc3Qge3Blcm1pc3Npb259ID0gZGF0YTtcblxuICAgICAgaWYgKCFwZXJtaXNzaW9uPy5pZCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBlcm1pc3Npb25zLFxuICAgICAgICAgIFtwZXJtaXNzaW9uLmlkXTogcGVybWlzc2lvblxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgUEVSTUlTU0lPTl9DT05TVEFOVFMuR0VUX0lURU1fU1VDQ0VTUzoge1xuICAgICAgY29uc3Qge3Blcm1pc3Npb259ID0gZGF0YTtcblxuICAgICAgaWYgKCFwZXJtaXNzaW9uPy5pZCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBlcm1pc3Npb25zLFxuICAgICAgICAgIFtwZXJtaXNzaW9uLmlkXTogcGVybWlzc2lvblxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgUEVSTUlTU0lPTl9DT05TVEFOVFMuR0VUX0xJU1RfU1VDQ0VTUzoge1xuICAgICAgY29uc3Qge2xpc3QsIHVzZXJJZH0gPSBkYXRhO1xuXG4gICAgICBpZiAoIWxpc3QgfHwgIXVzZXJJZCkge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB1c2VyUGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS51c2VyUGVybWlzc2lvbnMsXG4gICAgICAgICAgW3VzZXJJZF06IGxpc3RcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFBFUk1JU1NJT05fQ09OU1RBTlRTLlVQREFURV9JVEVNX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHtwZXJtaXNzaW9ufSA9IGRhdGE7XG5cbiAgICAgIGlmICghcGVybWlzc2lvbj8uaWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wZXJtaXNzaW9ucyxcbiAgICAgICAgICBbcGVybWlzc2lvbi5pZF06IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLnBlcm1pc3Npb25zW3Blcm1pc3Npb24uaWRdLFxuICAgICAgICAgICAgLi4ucGVybWlzc2lvblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFBFUk1JU1NJT05fQ09OU1RBTlRTLlJFTU9WRV9JVEVNX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHtwZXJtaXNzaW9ufSA9IGRhdGE7XG5cbiAgICAgIGlmICghcGVybWlzc2lvbj8uaWQpIHtcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB7W3Blcm1pc3Npb24uaWRdOiByZW1vdmVkLCAuLi5yZW1haW5pbmdQZXJtaXNzaW9uc30gPSBzdGF0ZS5wZXJtaXNzaW9ucztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBlcm1pc3Npb25zOiByZW1haW5pbmdQZXJtaXNzaW9uc1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFBFUk1JU1NJT05fQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SOlxuICAgIGNhc2UgUEVSTUlTU0lPTl9DT05TVEFOVFMuR0VUX0lURU1fRVJST1I6XG4gICAgY2FzZSBQRVJNSVNTSU9OX0NPTlNUQU5UUy5HRVRfTElTVF9FUlJPUjpcbiAgICBjYXNlIFBFUk1JU1NJT05fQ09OU1RBTlRTLlVQREFURV9JVEVNX0VSUk9SOlxuICAgIGNhc2UgUEVSTUlTU0lPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fRVJST1I6XG4gICAgY2FzZSBQRVJNSVNTSU9OX0NPTlNUQU5UUy5DSEVDS19QRVJNSVNTSU9OX0VSUk9SOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IGRhdGEuZXJyb3JcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHBlcm1pc3Npb25zID0ge1xuICBhY3Rpb246IHBlcm1pc3Npb25TdG9yZSxcbiAgaW5pdGlhbFN0YXRlOiBkZWZhdWx0VmFsdWVzLFxuICBuYW1lOiAncGVybWlzc2lvbidcbn07XG4iXSwibmFtZXMiOlsiUEVSTUlTU0lPTl9DT05TVEFOVFMiLCJBRERfSVRFTV9FUlJPUiIsIkFERF9JVEVNX1NVQ0NFU1MiLCJDSEVDS19QRVJNSVNTSU9OX0VSUk9SIiwiQ0hFQ0tfUEVSTUlTU0lPTl9TVUNDRVNTIiwiR0VUX0lURU1fRVJST1IiLCJHRVRfSVRFTV9TVUNDRVNTIiwiR0VUX0xJU1RfRVJST1IiLCJHRVRfTElTVF9TVUNDRVNTIiwiUkVNT1ZFX0lURU1fRVJST1IiLCJSRU1PVkVfSVRFTV9TVUNDRVNTIiwiVVBEQVRFX0lURU1fRVJST1IiLCJVUERBVEVfSVRFTV9TVUNDRVNTIiwiZGVmYXVsdFZhbHVlcyIsImxpc3RzIiwicGVybWlzc2lvbnMiLCJ1c2VyUGVybWlzc2lvbnMiLCJwZXJtaXNzaW9uU3RvcmUiLCJ0eXBlIiwiZGF0YSIsInN0YXRlIiwicGVybWlzc2lvbiIsImlkIiwibGlzdCIsInVzZXJJZCIsInJlbW92ZWQiLCJyZW1haW5pbmdQZXJtaXNzaW9ucyIsImVycm9yIiwiYWN0aW9uIiwiaW5pdGlhbFN0YXRlIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNQSx1QkFBdUI7SUFDbENDLGdCQUFnQjtJQUNoQkMsa0JBQWtCO0lBQ2xCQyx3QkFBd0I7SUFDeEJDLDBCQUEwQjtJQUMxQkMsZ0JBQWdCO0lBQ2hCQyxrQkFBa0I7SUFDbEJDLGdCQUFnQjtJQUNoQkMsa0JBQWtCO0lBQ2xCQyxtQkFBbUI7SUFDbkJDLHFCQUFxQjtJ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
@@ -0,0 +1,26 @@
1
+ import type { PersonaType } from '../adapters/personaAdapter/personaAdapter.js';
2
+ export declare const PERSONA_CONSTANTS: {
3
+ ADD_ITEM_ERROR: string;
4
+ ADD_ITEM_SUCCESS: string;
5
+ DELETE_ITEM_ERROR: string;
6
+ DELETE_ITEM_SUCCESS: string;
7
+ GET_ITEM_ERROR: string;
8
+ GET_ITEM_SUCCESS: string;
9
+ GET_LIST_ERROR: string;
10
+ GET_LIST_SUCCESS: string;
11
+ UPDATE_ITEM_ERROR: string;
12
+ UPDATE_ITEM_SUCCESS: string;
13
+ };
14
+ export interface PersonaState {
15
+ readonly error?: Error;
16
+ readonly list: PersonaType[];
17
+ readonly listMap: Record<string, PersonaType>;
18
+ }
19
+ export declare const initialPersonaState: PersonaState;
20
+ export declare const personaStore: (state?: PersonaState, action?: {}, _next?: {}) => PersonaState;
21
+ export declare const personas: {
22
+ action: (state?: PersonaState, action?: {}, _next?: {}) => PersonaState;
23
+ initialState: PersonaState;
24
+ name: string;
25
+ };
26
+ //# sourceMappingURL=personaStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personaStore.d.ts","sourceRoot":"","sources":["../../src/stores/personaStore.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,8CAA8C,CAAC;AAE9E,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAW7B,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,oBAA2B,EAAE,WAAW,EAAE,UAAU,KAAG,YAyEnF,CAAC;AAEF,eAAO,MAAM,QAAQ;+DA3E+D,YAAY;;;CA+E/F,CAAC"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Copyright (c) 2023-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
+ export const PERSONA_CONSTANTS = {
6
+ ADD_ITEM_ERROR: 'PERSONA_ADD_ITEM_ERROR',
7
+ ADD_ITEM_SUCCESS: 'PERSONA_ADD_ITEM_SUCCESS',
8
+ DELETE_ITEM_ERROR: 'PERSONA_DELETE_ITEM_ERROR',
9
+ DELETE_ITEM_SUCCESS: 'PERSONA_DELETE_ITEM_SUCCESS',
10
+ GET_ITEM_ERROR: 'PERSONA_GET_ITEM_ERROR',
11
+ GET_ITEM_SUCCESS: 'PERSONA_GET_ITEM_SUCCESS',
12
+ GET_LIST_ERROR: 'PERSONA_GET_LIST_ERROR',
13
+ GET_LIST_SUCCESS: 'PERSONA_GET_LIST_SUCCESS',
14
+ UPDATE_ITEM_ERROR: 'PERSONA_UPDATE_ITEM_ERROR',
15
+ UPDATE_ITEM_SUCCESS: 'PERSONA_UPDATE_ITEM_SUCCESS'
16
+ };
17
+ export const initialPersonaState = {
18
+ error: undefined,
19
+ list: [],
20
+ listMap: {}
21
+ };
22
+ export const personaStore = (state = initialPersonaState, action = {}, _next = {})=>{
23
+ const { error, persona, personas, type = '' } = action;
24
+ switch(type){
25
+ case PERSONA_CONSTANTS.ADD_ITEM_SUCCESS:
26
+ case PERSONA_CONSTANTS.UPDATE_ITEM_SUCCESS:
27
+ case PERSONA_CONSTANTS.GET_ITEM_SUCCESS:
28
+ if (persona) {
29
+ const personaId = parseId(persona.personaId ?? '');
30
+ const list = [
31
+ ...state.list
32
+ ];
33
+ const listMap = {
34
+ ...state.listMap
35
+ };
36
+ const index = list.findIndex((item)=>parseId(item.personaId ?? '') === personaId);
37
+ if (index >= 0) {
38
+ list[index] = {
39
+ ...list[index],
40
+ ...persona
41
+ };
42
+ } else {
43
+ list.push(persona);
44
+ }
45
+ listMap[personaId] = persona;
46
+ return {
47
+ ...state,
48
+ error: undefined,
49
+ list,
50
+ listMap
51
+ };
52
+ }
53
+ return state;
54
+ case PERSONA_CONSTANTS.DELETE_ITEM_SUCCESS:
55
+ if (persona) {
56
+ const personaId = parseId(persona.personaId ?? '');
57
+ const list = state.list.filter((item)=>parseId(item.personaId ?? '') !== personaId);
58
+ const listMap = {
59
+ ...state.listMap
60
+ };
61
+ delete listMap[personaId];
62
+ return {
63
+ ...state,
64
+ error: undefined,
65
+ list,
66
+ listMap
67
+ };
68
+ }
69
+ return state;
70
+ case PERSONA_CONSTANTS.GET_LIST_SUCCESS:
71
+ if (personas?.length) {
72
+ const list = [
73
+ ...state.list
74
+ ];
75
+ const listMap = {
76
+ ...state.listMap
77
+ };
78
+ personas.forEach((persona)=>{
79
+ const personaId = parseId(persona.personaId ?? '');
80
+ const index = list.findIndex((item)=>parseId(item.personaId ?? '') === personaId);
81
+ if (index >= 0) {
82
+ list[index] = {
83
+ ...list[index],
84
+ ...persona
85
+ };
86
+ } else {
87
+ list.push(persona);
88
+ }
89
+ listMap[personaId] = persona;
90
+ });
91
+ return {
92
+ ...state,
93
+ error: undefined,
94
+ list,
95
+ listMap
96
+ };
97
+ }
98
+ return state;
99
+ case PERSONA_CONSTANTS.ADD_ITEM_ERROR:
100
+ case PERSONA_CONSTANTS.DELETE_ITEM_ERROR:
101
+ case PERSONA_CONSTANTS.GET_ITEM_ERROR:
102
+ case PERSONA_CONSTANTS.GET_LIST_ERROR:
103
+ case PERSONA_CONSTANTS.UPDATE_ITEM_ERROR:
104
+ return {
105
+ ...state,
106
+ error
107
+ };
108
+ default:
109
+ return state;
110
+ }
111
+ };
112
+ export const personas = {
113
+ action: personaStore,
114
+ initialState: initialPersonaState,
115
+ name: 'persona'
116
+ };
117
+
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvc3RvcmVzL3BlcnNvbmFTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyMy1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuXG5pbXBvcnQgdHlwZSB7UGVyc29uYVR5cGV9IGZyb20gJy4uL2FkYXB0ZXJzL3BlcnNvbmFBZGFwdGVyL3BlcnNvbmFBZGFwdGVyLmpzJztcblxuZXhwb3J0IGNvbnN0IFBFUlNPTkFfQ09OU1RBTlRTID0ge1xuICBBRERfSVRFTV9FUlJPUjogJ1BFUlNPTkFfQUREX0lURU1fRVJST1InLFxuICBBRERfSVRFTV9TVUNDRVNTOiAnUEVSU09OQV9BRERfSVRFTV9TVUNDRVNTJyxcbiAgREVMRVRFX0lURU1fRVJST1I6ICdQRVJTT05BX0RFTEVURV9JVEVNX0VSUk9SJyxcbiAgREVMRVRFX0lURU1fU1VDQ0VTUzogJ1BFUlNPTkFfREVMRVRFX0lURU1fU1VDQ0VTUycsXG4gIEdFVF9JVEVNX0VSUk9SOiAnUEVSU09OQV9HRVRfSVRFTV9FUlJPUicsXG4gIEdFVF9JVEVNX1NVQ0NFU1M6ICdQRVJTT05BX0dFVF9JVEVNX1NVQ0NFU1MnLFxuICBHRVRfTElTVF9FUlJPUjogJ1BFUlNPTkFfR0VUX0xJU1RfRVJST1InLFxuICBHRVRfTElTVF9TVUNDRVNTOiAnUEVSU09OQV9HRVRfTElTVF9TVUNDRVNTJyxcbiAgVVBEQVRFX0lURU1fRVJST1I6ICdQRVJTT05BX1VQREFURV9JVEVNX0VSUk9SJyxcbiAgVVBEQVRFX0lURU1fU1VDQ0VTUzogJ1BFUlNPTkFfVVBEQVRFX0lURU1fU1VDQ0VTUydcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uYVN0YXRlIHtcbiAgcmVhZG9ubHkgZXJyb3I/OiBFcnJvcjtcbiAgcmVhZG9ubHkgbGlzdDogUGVyc29uYVR5cGVbXTtcbiAgcmVhZG9ubHkgbGlzdE1hcDogUmVjb3JkPHN0cmluZywgUGVyc29uYVR5cGU+O1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFBlcnNvbmFTdGF0ZTogUGVyc29uYVN0YXRlID0ge1xuICBlcnJvcjogdW5kZWZpbmVkLFxuICBsaXN0OiBbXSxcbiAgbGlzdE1hcDoge31cbn07XG5cbmV4cG9ydCBjb25zdCBwZXJzb25hU3RvcmUgPSAoc3RhdGUgPSBpbml0aWFsUGVyc29uYVN0YXRlLCBhY3Rpb24gPSB7fSwgX25leHQgPSB7fSk6IFBlcnNvbmFTdGF0ZSA9PiB7XG4gIGNvbnN0IHtlcnJvciwgcGVyc29uYSwgcGVyc29uYXMsIHR5cGUgPSAnJ30gPSBhY3Rpb24gYXMge1xuICAgIGVycm9yPzogRXJyb3I7XG4gICAgcGVyc29uYT86IFBlcnNvbmFUeXBlO1xuICAgIHBlcnNvbmFzPzogUGVyc29uYVR5cGVbXTtcbiAgICB0eXBlOiBzdHJpbmc7XG4gIH07XG5cbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBjYXNlIFBFUlNPTkFfQ09OU1RBTlRTLkFERF9JVEVNX1NVQ0NFU1M6XG4gICAgY2FzZSBQRVJTT05BX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9TVUNDRVNTOlxuICAgIGNhc2UgUEVSU09OQV9DT05TVEFOVFMuR0VUX0lURU1fU1VDQ0VTUzpcbiAgICAgIGlmKHBlcnNvbmEpIHtcbiAgICAgICAgY29uc3QgcGVyc29uYUlkID0gcGFyc2VJZChwZXJzb25hLnBlcnNvbmFJZCA/PyAnJyk7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBbLi4uc3RhdGUubGlzdF07XG4gICAgICAgIGNvbnN0IGxpc3RNYXAgPSB7Li4uc3RhdGUubGlzdE1hcH07XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbGlzdC5maW5kSW5kZXgoKGl0ZW0pID0+IHBhcnNlSWQoaXRlbS5wZXJzb25hSWQgPz8gJycpID09PSBwZXJzb25hSWQpO1xuXG4gICAgICAgIGlmKGluZGV4ID49IDApIHtcbiAgICAgICAgICBsaXN0W2luZGV4XSA9IHsuLi5saXN0W2luZGV4XSwgLi4ucGVyc29uYX07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGlzdC5wdXNoKHBlcnNvbmEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGlzdE1hcFtwZXJzb25hSWRdID0gcGVyc29uYTtcblxuICAgICAgICByZXR1cm4gey4uLnN0YXRlLCBlcnJvcjogdW5kZWZpbmVkLCBsaXN0LCBsaXN0TWFwfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdGF0ZTtcblxuICAgIGNhc2UgUEVSU09OQV9DT05TVEFOVFMuREVMRVRFX0lURU1fU1VDQ0VTUzpcbiAgICAgIGlmKHBlcnNvbmEpIHtcbiAgICAgICAgY29uc3QgcGVyc29uYUlkID0gcGFyc2VJZChwZXJzb25hLnBlcnNvbmFJZCA/PyAnJyk7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBzdGF0ZS5saXN0LmZpbHRlcigoaXRlbSkgPT4gcGFyc2VJZChpdGVtLnBlcnNvbmFJZCA/PyAnJykgIT09IHBlcnNvbmFJZCk7XG4gICAgICAgIGNvbnN0IGxpc3RNYXAgPSB7Li4uc3RhdGUubGlzdE1hcH07XG4gICAgICAgIGRlbGV0ZSBsaXN0TWFwW3BlcnNvbmFJZF07XG5cbiAgICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgZXJyb3I6IHVuZGVmaW5lZCwgbGlzdCwgbGlzdE1hcH07XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICBjYXNlIFBFUlNPTkFfQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1M6XG4gICAgICBpZihwZXJzb25hcz8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBbLi4uc3RhdGUubGlzdF07XG4gICAgICAgIGNvbnN0IGxpc3RNYXAgPSB7Li4uc3RhdGUubGlzdE1hcH07XG5cbiAgICAgICAgcGVyc29uYXMuZm9yRWFjaCgocGVyc29uYSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBlcnNvbmFJZCA9IHBhcnNlSWQocGVyc29uYS5wZXJzb25hSWQgPz8gJycpO1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gbGlzdC5maW5kSW5kZXgoKGl0ZW0pID0+IHBhcnNlSWQoaXRlbS5wZXJzb25hSWQgPz8gJycpID09PSBwZXJzb25hSWQpO1xuXG4gICAgICAgICAgaWYoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgbGlzdFtpbmRleF0gPSB7Li4ubGlzdFtpbmRleF0sIC4uLnBlcnNvbmF9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0LnB1c2gocGVyc29uYSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGlzdE1hcFtwZXJzb25hSWRdID0gcGVyc29uYTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgZXJyb3I6IHVuZGVmaW5lZCwgbGlzdCwgbGlzdE1hcH07XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICBjYXNlIFBFUlNPTkFfQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SOlxuICAgIGNhc2UgUEVSU09OQV9DT05TVEFOVFMuREVMRVRFX0lURU1fRVJST1I6XG4gICAgY2FzZSBQRVJTT05BX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUjpcbiAgICBjYXNlIFBFUlNPTkFfQ09OU1RBTlRTLkdFVF9MSVNUX0VSUk9SOlxuICAgIGNhc2UgUEVSU09OQV9DT05TVEFOVFMuVVBEQVRFX0lURU1fRVJST1I6XG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBlcnJvcn07XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgcGVyc29uYXMgPSB7XG4gIGFjdGlvbjogcGVyc29uYVN0b3JlLFxuICBpbml0aWFsU3RhdGU6IGluaXRpYWxQZXJzb25hU3RhdGUsXG4gIG5hbWU6ICdwZXJzb25hJ1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUlkIiwiUEVSU09OQV9DT05TVEFOVFMiLCJBRERfSVRFTV9FUlJPUiIsIkFERF9JVEVNX1NVQ0NFU1MiLCJERUxFVEVfSVRFTV9FUlJPUiIsIkRFTEVURV9JVEVNX1NVQ0NFU1MiLCJHRVRfSVRFTV9FUlJPUiIsIkdFVF9JVEVNX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJVUERBVEVfSVRFTV9FUlJPUiIsIlVQREFURV9JVEVNX1NVQ0NFU1MiLCJpbml0aWFsUGVyc29uYVN0YXRlIiwiZXJyb3IiLCJ1bmRlZmluZWQiLCJsaXN0IiwibGlzdE1hcCIsInBlcnNvbmFTdG9yZSIsInN0YXRlIiwiYWN0aW9uIiwiX25leHQiLCJwZXJzb25hIiwicGVyc29uYXMiLCJ0eXBlIiwicGVyc29uYUlkIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJpdGVtIiwicHVzaCIsImZpbHRlciIsImxlbmd0aCIsImZvckVhY2giLCJpbml0aWFsU3RhdGUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxPQUFPLFFBQU8sZUFBZTtBQUlyQyxPQUFPLE1BQU1DLG9CQUFvQjtJQUMvQkMsZ0JBQWdCO0lBQ2hCQyxrQkFBa0I7SUFDbEJDLG1CQUFtQjtJQUNuQkMscUJBQXFCO0lBQ3JCQyxnQkFBZ0I7SUFDaEJDLGtCQUFrQjtJQUNsQkMsZ0JBQWdCO0lBQ2hCQyxrQkFBa0I7SUFDbEJDLG1CQUFtQjtJQUNuQkMscUJBQXFCO0FBQ3ZCLEVBQUU7QUFRRixPQUFPLE1BQU1DLHNCQUFvQztJQUMvQ0MsT0FBT0M7SUFDUEMsTUFBTSxFQUFFO0lBQ1JDLFNBQVMsQ0FBQztBQUNaLEVBQUU7QUFFRixPQUFPLE1BQU1DLGVBQWUsQ0FBQ0MsUUFBUU4sbUJBQW1CLEVBQUVPLFNBQVMsQ0FBQyxDQUFDLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0lBQy9FLE1BQU0sRUFBQ1AsS0FB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