@nlabs/metropolisjs 0.1.2 → 0.3.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 +44 -95
  91. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  92. package/lib/actions/userActions/userActions.js +870 -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
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { parseId, parseNum } from '@nlabs/utils';
5
+ import { validateConversationInput } from '../../adapters/conversationAdapter/conversationAdapter.js';
6
+ import { CONVERSATION_CONSTANTS } from '../../stores/conversationStore.js';
7
+ import { appMutation, appQuery } from '../../utils/api.js';
8
+ import { createBaseActions } from '../../utils/baseActionFactory.js';
9
+ import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
10
+ const DATA_TYPE = 'conversations';
11
+ const defaultConversationValidator = (input, options)=>validateConversationInput(input);
12
+ export const createConversationActions = (flux, options)=>{
13
+ const conversationBase = createBaseActions(flux, defaultConversationValidator, {
14
+ adapter: options?.conversationAdapter,
15
+ adapterOptions: options?.conversationAdapterOptions
16
+ });
17
+ const add = async (conversationData, conversationProps = [], requestOptions = {})=>{
18
+ try {
19
+ const queryVariables = {
20
+ conversation: {
21
+ type: 'ConversationInput!',
22
+ value: conversationBase.validator(conversationData)
23
+ }
24
+ };
25
+ const onSuccess = (data)=>{
26
+ const conversation = data?.conversations?.add || {};
27
+ return flux.dispatch({
28
+ conversation,
29
+ type: CONVERSATION_CONSTANTS.ADD_ITEM_SUCCESS
30
+ });
31
+ };
32
+ return await appMutation(flux, 'add', DATA_TYPE, queryVariables, [
33
+ 'conversationId',
34
+ ...conversationProps
35
+ ], {
36
+ onSuccess
37
+ });
38
+ } catch (error) {
39
+ flux.dispatch({
40
+ error,
41
+ type: CONVERSATION_CONSTANTS.ADD_ITEM_ERROR
42
+ });
43
+ throw error;
44
+ } finally{
45
+ await clearCachedRequest(flux, 'conversation.list');
46
+ }
47
+ };
48
+ const itemById = async (conversationId, conversationProps = [], requestOptions = {})=>{
49
+ try {
50
+ const cachedResult = getCachedRequest(flux, `conversation.itemById:${conversationId}`, {
51
+ conversationId,
52
+ conversationProps
53
+ }, requestOptions);
54
+ if (cachedResult !== undefined) {
55
+ return cachedResult;
56
+ }
57
+ const queryVariables = {
58
+ conversationId: {
59
+ type: 'ID!',
60
+ value: parseId(conversationId)
61
+ }
62
+ };
63
+ const onSuccess = (data)=>{
64
+ const conversation = data?.conversations?.itemById || {};
65
+ return flux.dispatch({
66
+ conversation,
67
+ type: CONVERSATION_CONSTANTS.GET_ITEM_SUCCESS
68
+ });
69
+ };
70
+ const result = await appQuery(flux, 'itemById', DATA_TYPE, queryVariables, [
71
+ 'conversationId',
72
+ 'isGroup',
73
+ 'lastMessageAt',
74
+ 'memberCount',
75
+ 'members',
76
+ 'name',
77
+ 'ownerId',
78
+ 'settings',
79
+ 'userId',
80
+ ...conversationProps
81
+ ], {
82
+ onSuccess
83
+ });
84
+ return await setCachedRequest(flux, `conversation.itemById:${conversationId}`, {
85
+ conversationId,
86
+ conversationProps
87
+ }, result, requestOptions);
88
+ } catch (error) {
89
+ flux.dispatch({
90
+ error,
91
+ type: CONVERSATION_CONSTANTS.GET_ITEM_ERROR
92
+ });
93
+ throw error;
94
+ }
95
+ };
96
+ const list = async (from = 0, to = 10, conversationProps = [], requestOptions = {})=>{
97
+ try {
98
+ const cachedResult = getCachedRequest(flux, 'conversation.list', {
99
+ from,
100
+ to,
101
+ conversationProps
102
+ }, requestOptions);
103
+ if (cachedResult !== undefined) {
104
+ return cachedResult;
105
+ }
106
+ const queryVariables = {
107
+ from: {
108
+ type: 'Int',
109
+ value: parseNum(from)
110
+ },
111
+ to: {
112
+ type: 'Int',
113
+ value: parseNum(to)
114
+ }
115
+ };
116
+ const onSuccess = (data)=>{
117
+ const list = data?.conversations?.list || [];
118
+ return flux.dispatch({
119
+ list,
120
+ type: CONVERSATION_CONSTANTS.GET_LIST_SUCCESS
121
+ });
122
+ };
123
+ const result = await appQuery(flux, 'list', DATA_TYPE, queryVariables, [
124
+ 'conversationId',
125
+ 'isGroup',
126
+ 'lastMessageAt',
127
+ 'memberCount',
128
+ 'members',
129
+ 'name',
130
+ 'ownerId',
131
+ 'settings',
132
+ 'userId',
133
+ ...conversationProps
134
+ ], {
135
+ onSuccess
136
+ });
137
+ return await setCachedRequest(flux, 'conversation.list', {
138
+ from,
139
+ to,
140
+ conversationProps
141
+ }, result, requestOptions);
142
+ } catch (error) {
143
+ flux.dispatch({
144
+ error,
145
+ type: CONVERSATION_CONSTANTS.GET_LIST_ERROR
146
+ });
147
+ throw error;
148
+ }
149
+ };
150
+ const deleteConversation = async (conversationId, conversationProps = [], requestOptions = {})=>{
151
+ try {
152
+ const queryVariables = {
153
+ conversationId: {
154
+ type: 'ID!',
155
+ value: parseId(conversationId)
156
+ }
157
+ };
158
+ const onSuccess = (data)=>{
159
+ const conversation = data?.conversations?.remove || {};
160
+ return flux.dispatch({
161
+ conversation,
162
+ type: CONVERSATION_CONSTANTS.REMOVE_ITEM_SUCCESS
163
+ });
164
+ };
165
+ return await appMutation(flux, 'remove', DATA_TYPE, queryVariables, [
166
+ 'conversationId',
167
+ ...conversationProps
168
+ ], {
169
+ onSuccess
170
+ });
171
+ } catch (error) {
172
+ flux.dispatch({
173
+ error,
174
+ type: CONVERSATION_CONSTANTS.REMOVE_ITEM_ERROR
175
+ });
176
+ throw error;
177
+ } finally{
178
+ await clearCachedRequest(flux, `conversation.itemById:${conversationId}`);
179
+ await clearCachedRequest(flux, 'conversation.list');
180
+ }
181
+ };
182
+ const update = async (conversation, conversationProps = [], requestOptions = {})=>{
183
+ try {
184
+ const queryVariables = {
185
+ conversation: {
186
+ type: 'ConversationUpdateInput!',
187
+ value: conversationBase.validator(conversation)
188
+ }
189
+ };
190
+ const onSuccess = (data)=>{
191
+ const conversation = data?.conversations?.update || {};
192
+ return flux.dispatch({
193
+ conversation,
194
+ type: CONVERSATION_CONSTANTS.UPDATE_ITEM_SUCCESS
195
+ });
196
+ };
197
+ return await appMutation(flux, 'update', DATA_TYPE, queryVariables, [
198
+ 'conversationId',
199
+ ...conversationProps
200
+ ], {
201
+ onSuccess
202
+ });
203
+ } catch (error) {
204
+ flux.dispatch({
205
+ error,
206
+ type: CONVERSATION_CONSTANTS.UPDATE_ITEM_ERROR
207
+ });
208
+ throw error;
209
+ } finally{
210
+ await clearCachedRequest(flux, `conversation.itemById:${String(conversation?.conversationId || '')}`);
211
+ await clearCachedRequest(flux, 'conversation.list');
212
+ }
213
+ };
214
+ return {
215
+ add,
216
+ delete: deleteConversation,
217
+ itemById,
218
+ list,
219
+ update,
220
+ updateConversationAdapter: conversationBase.updateAdapter,
221
+ updateConversationAdapterOptions: conversationBase.updateOptions
222
+ };
223
+ };
224
+
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGVDb252ZXJzYXRpb25JbnB1dH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvY29udmVyc2F0aW9uQWRhcHRlci9jb252ZXJzYXRpb25BZGFwdGVyLmpzJztcbmltcG9ydCB7Q09OVkVSU0FUSU9OX0NPTlNUQU5UU30gZnJvbSAnLi4vLi4vc3RvcmVzL2NvbnZlcnNhdGlvblN0b3JlLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7QmFzZUFkYXB0ZXJPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JGYWN0b3J5LmpzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25SZXF1ZXN0T3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ2NvbnZlcnNhdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zIGV4dGVuZHMgQmFzZUFkYXB0ZXJPcHRpb25zIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25BY3Rpb25zT3B0aW9ucyB7XG4gIGNvbnZlcnNhdGlvbkFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBDb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucykgPT4gYW55O1xuICBjb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucz86IENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBDb252ZXJzYXRpb25BcGlSZXN1bHRzVHlwZSA9IHtcbiAgY29udmVyc2F0aW9uczoge1xuICAgIGFkZD86IENvbnZlcnNhdGlvblR5cGU7XG4gICAgaXRlbUJ5SWQ/OiBDb252ZXJzYXRpb25UeXBlO1xuICAgIGxpc3Q/OiBDb252ZXJzYXRpb25UeXBlW107XG4gICAgcmVtb3ZlPzogQ29udmVyc2F0aW9uVHlwZTtcbiAgICB1cGRhdGU/OiBDb252ZXJzYXRpb25UeXBlO1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDb252ZXJzYXRpb25BY3Rpb25zIHtcbiAgYWRkOiAoY29udmVyc2F0aW9uRGF0YTogUGFydGlhbDxDb252ZXJzYXRpb25UeXBlPiwgY29udmVyc2F0aW9uUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPjtcbiAgZGVsZXRlOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgY29udmVyc2F0aW9uUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPjtcbiAgaXRlbUJ5SWQ6IChjb252ZXJzYXRpb25JZDogc3RyaW5nLCBjb252ZXJzYXRpb25Qcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+O1xuICBsaXN0OiAoZnJvbT86IG51bWJlciwgdG8/OiBudW1iZXIsIGNvbnZlcnNhdGlvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPjtcbiAgdXBkYXRlOiAoY29udmVyc2F0aW9uOiBQYXJ0aWFsPENvbnZlcnNhdGlvblR5cGU+LCBjb252ZXJzYXRpb25Qcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+O1xuICB1cGRhdGVDb252ZXJzYXRpb25BZGFwdGVyOiAoYWRhcHRlcjogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnMpID0+IGFueSkgPT4gdm9pZDtcbiAgdXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBDb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucykgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVmYXVsdENvbnZlcnNhdGlvblZhbGlkYXRvciA9IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IENvbnZlcnNhdGlvbkFkYXB0ZXJPcHRpb25zKSA9PlxuICB2YWxpZGF0ZUNvbnZlcnNhdGlvbklucHV0KGlucHV0KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbnZlcnNhdGlvbkFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBDb252ZXJzYXRpb25BY3Rpb25zT3B0aW9uc1xuKTogQ29udmVyc2F0aW9uQWN0aW9ucyA9PiB7XG4gIGNvbnN0IGNvbnZlcnNhdGlvbkJhc2UgPSBjcmVhdGVCYXNlQWN0aW9ucyhmbHV4LCBkZWZhdWx0Q29udmVyc2F0aW9uVmFsaWRhdG9yLCB7XG4gICAgYWRhcHRlcjogb3B0aW9ucz8uY29udmVyc2F0aW9uQWRhcHRlcixcbiAgICBhZGFwdGVyT3B0aW9uczogb3B0aW9ucz8uY29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnNcbiAgfSk7XG5cbiAgY29uc3QgYWRkID0gYXN5bmMgKFxuICAgIGNvbnZlcnNhdGlvbkRhdGE6IFBhcnRpYWw8Q29udmVyc2F0aW9uVHlwZT4sXG4gICAgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBjb252ZXJzYXRpb246IHtcbiAgICAgICAgICB0eXBlOiAnQ29udmVyc2F0aW9uSW5wdXQhJyxcbiAgICAgICAgICB2YWx1ZTogY29udmVyc2F0aW9uQmFzZS52YWxpZGF0b3IoY29udmVyc2F0aW9uRGF0YSlcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnZlcnNhdGlvbkFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/LmFkZCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbiwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdhZGQnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2NvbnZlcnNhdGlvbklkJywgLi4uY29udmVyc2F0aW9uUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5BRERfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnY29udmVyc2F0aW9uLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaXRlbUJ5SWQgPSBhc3luYyAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8Q29udmVyc2F0aW9uVHlwZT4oZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWAsIHtjb252ZXJzYXRpb25JZCwgY29udmVyc2F0aW9uUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBjb252ZXJzYXRpb25JZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKGNvbnZlcnNhdGlvbklkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udmVyc2F0aW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgY29udmVyc2F0aW9uID0gZGF0YT8uY29udmVyc2F0aW9ucz8uaXRlbUJ5SWQgfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdpdGVtQnlJZCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAnY29udmVyc2F0aW9uSWQnLFxuICAgICAgICAgICdpc0dyb3VwJyxcbiAgICAgICAgICAnbGFzdE1lc3NhZ2VBdCcsXG4gICAgICAgICAgJ21lbWJlckNvdW50JyxcbiAgICAgICAgICAnbWVtYmVycycsXG4gICAgICAgICAgJ25hbWUnLFxuICAgICAgICAgICdvd25lcklkJyxcbiAgICAgICAgICAnc2V0dGluZ3MnLFxuICAgICAgICAgICd1c2VySWQnLFxuICAgICAgICAgIC4uLmNvbnZlcnNhdGlvblByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWAsIHtjb252ZXJzYXRpb25JZCwgY29udmVyc2F0aW9uUHJvcHN9LCByZXN1bHQsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxpc3QgPSBhc3luYyAoXG4gICAgZnJvbTogbnVtYmVyID0gMCxcbiAgICB0bzogbnVtYmVyID0gMTAsXG4gICAgY29udmVyc2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb252ZXJzYXRpb25UeXBlW10+KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcsIHtmcm9tLCB0bywgY29udmVyc2F0aW9uUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBmcm9tOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKGZyb20pXG4gICAgICAgIH0sXG4gICAgICAgIHRvOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKHRvKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udmVyc2F0aW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/Lmxpc3QgfHwgW107XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtcbiAgICAgICAgICBsaXN0LFxuICAgICAgICAgIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0xJU1RfU1VDQ0VTU1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PENvbnZlcnNhdGlvblR5cGVbXT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdsaXN0JyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgW1xuICAgICAgICAgICdjb252ZXJzYXRpb25JZCcsXG4gICAgICAgICAgJ2lzR3JvdXAnLFxuICAgICAgICAgICdsYXN0TWVzc2FnZUF0JyxcbiAgICAgICAgICAnbWVtYmVyQ291bnQnLFxuICAgICAgICAgICdtZW1iZXJzJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ293bmVySWQnLFxuICAgICAgICAgICdzZXR0aW5ncycsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgLi4uY29udmVyc2F0aW9uUHJvcHNcbiAgICAgICAgXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCAnY29udmVyc2F0aW9uLmxpc3QnLCB7ZnJvbSwgdG8sIGNvbnZlcnNhdGlvblByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWxldGVDb252ZXJzYXRpb24gPSBhc3luYyAoXG4gICAgY29udmVyc2F0aW9uSWQ6IHN0cmluZyxcbiAgICBjb252ZXJzYXRpb25Qcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoY29udmVyc2F0aW9uSWQpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBDb252ZXJzYXRpb25BcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJzYXRpb24gPSBkYXRhPy5jb252ZXJzYXRpb25zPy5yZW1vdmUgfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPENvbnZlcnNhdGlvblR5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAncmVtb3ZlJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydjb252ZXJzYXRpb25JZCcsIC4uLmNvbnZlcnNhdGlvblByb3BzXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IENPTlZFUlNBVElPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnZlcnNhdGlvbi5pdGVtQnlJZDoke2NvbnZlcnNhdGlvbklkfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBhc3luYyAoXG4gICAgY29udmVyc2F0aW9uOiBQYXJ0aWFsPENvbnZlcnNhdGlvblR5cGU+LFxuICAgIGNvbnZlcnNhdGlvblByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uOiB7XG4gICAgICAgICAgdHlwZTogJ0NvbnZlcnNhdGlvblVwZGF0ZUlucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGNvbnZlcnNhdGlvbkJhc2UudmFsaWRhdG9yKGNvbnZlcnNhdGlvbilcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnZlcnNhdGlvbkFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IGRhdGE/LmNvbnZlcnNhdGlvbnM/LnVwZGF0ZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbiwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248Q29udmVyc2F0aW9uVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICd1cGRhdGUnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2NvbnZlcnNhdGlvbklkJywgLi4uY29udmVyc2F0aW9uUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVkVSU0FUSU9OX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgY29udmVyc2F0aW9uLml0ZW1CeUlkOiR7U3RyaW5nKGNvbnZlcnNhdGlvbj8uY29udmVyc2F0aW9uSWQgfHwgJycpfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdjb252ZXJzYXRpb24ubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFkZCxcbiAgICBkZWxldGU6IGRlbGV0ZUNvbnZlcnNhdGlvbixcbiAgICBpdGVtQnlJZCxcbiAgICBsaXN0LFxuICAgIHVwZGF0ZSxcbiAgICB1cGRhdGVDb252ZXJzYXRpb25BZGFwdGVyOiBjb252ZXJzYXRpb25CYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnM6IGNvbnZlcnNhdGlvbkJhc2UudXBkYXRlT3B0aW9uc1xuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUlkIiwicGFyc2VOdW0iLCJ2YWxpZGF0ZUNvbnZlcnNhdGlvbklucHV0IiwiQ09OVkVSU0FUSU9OX0NPTlNUQU5UUyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJjcmVhdGVCYXNlQWN0aW9ucyIsImNsZWFyQ2FjaGVkUmVxdWVzdCIsImdldENhY2hlZFJlcXVlc3QiLCJzZXRDYWNoZWRSZXF1ZXN0IiwiREFUQV9UWVBFIiwiZGVmYXVsdENvbnZlcnNhdGlvblZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZUNvbnZlcnNhdGlvbkFjdGlvbnMiLCJmbHV4IiwiY29udmVyc2F0aW9uQmFzZSIsImFkYXB0ZXIiLCJjb252ZXJzYXRpb25BZGFwdGVyIiwiYWRhcHRlck9wdGlvbnMiLCJjb252ZXJzYXRpb25BZGFwdGVyT3B0aW9ucyIsImFkZCIsImNvbnZlcnNhdGlvbkRhdGEiLCJjb252ZXJzYXRpb25Qcm9wcyIsInJlcXVlc3RPcHRpb25zIiwicXVlcnlWYXJpYWJsZXMiLCJjb252ZXJzYXRpb24iLCJ0eXBlIiwidmFsdWUiLCJ2YWxpZGF0b3IiLCJvblN1Y2Nlc3MiLCJkYXRhIiwiY29udmVyc2F0aW9ucyIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsImVycm9yIiwiQUREX0lURU1fRVJST1IiLCJpdGVtQnlJZCIsImNvbnZlcnNhdGlvbklkIiwiY2FjaGVkUmVzdWx0IiwidW5kZWZpbmVkIiwiR0VUX0lURU1fU1VDQ0VTUyIsInJlc3VsdCIsIkdFVF9JVEVNX0VSUk9SIiwibGlzdCIsImZyb20iLCJ0byIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImRlbGV0ZUNvbnZlcnNhdGlvbiIsInJlbW92ZSIsIlJFTU9WRV9JVEVNX1NVQ0NFU1MiLCJSRU1PVkVfSVRFTV9FUlJPUiIsInVwZGF0ZSIsIlVQREFURV9JVEVNX1NVQ0NFU1MiLCJVUERBVEVfSVRFTV9FUlJPUiIsIlN0cmluZyIsImRlbGV0ZSIsInVwZGF0ZUNvbnZlcnNhdGlvbkFkYXB0ZXIiLCJ1cGRhdGVBZGFwdGVyIiwidXBkYXRlQ29udmVyc2F0aW9uQWRhcHRlck9wdGlvbnMiLCJ1cGRhdGVPcHRpb25zIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxPQUFPLEVBQUVDLFFBQVEsUUFBTyxlQUFlO0FBRS9DLFNBQVFDLHlCQUF5QixRQUFPLDREQUE0RDtBQUNwRyxTQUFRQyxzQkFBc0IsUUFBTyxvQ0FBb0M7QUFDekUsU0FBUUMsV0FBVyxFQUFFQyxRQUFR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
@@ -1,5 +1,23 @@
1
1
  import type { FluxFramework } from '@nlabs/arkhamjs';
2
- import type { EventType } from '../../adapters/eventAdapter/eventAdapter';
2
+ import type { EventType } from '../../adapters/eventAdapter/eventAdapter.js';
3
+ import type { ActionRequestOptions } from '../../utils/requestCache.js';
4
+ export interface EventRsvpType {
5
+ readonly added?: number;
6
+ readonly eventId?: string;
7
+ readonly feeCents?: number;
8
+ readonly numberOfGuests?: number;
9
+ readonly paymentId?: string;
10
+ readonly subtotalCents?: number;
11
+ readonly taxCents?: number;
12
+ readonly ticketCostCents?: number;
13
+ readonly totalCents?: number;
14
+ readonly type?: string;
15
+ }
16
+ export interface EventRsvpInput {
17
+ readonly eventId: string;
18
+ readonly numberOfGuests?: number;
19
+ readonly paymentType?: string;
20
+ }
3
21
  export interface EventAdapterOptions {
4
22
  readonly strict?: boolean;
5
23
  readonly allowPartial?: boolean;
@@ -11,12 +29,13 @@ export interface EventActionsOptions {
11
29
  readonly eventAdapterOptions?: EventAdapterOptions;
12
30
  }
13
31
  export interface EventActions {
14
- readonly addEvent: (eventData: Partial<EventType>, eventProps?: string[]) => Promise<EventType>;
15
- readonly getEvent: (eventId: string, eventProps?: string[]) => Promise<EventType>;
16
- readonly getEventsByTags: (tags: string[], latitude: number, longitude: number, eventProps?: string[]) => Promise<EventType[]>;
17
- readonly getEventsByReactions: (reactions: string[], latitude: number, longitude: number, eventProps?: string[]) => Promise<EventType[]>;
18
- readonly deleteEvent: (eventId: string, eventProps?: string[]) => Promise<EventType>;
19
- readonly updateEvent: (event: Partial<EventType>, eventProps?: string[]) => Promise<EventType>;
32
+ readonly addEvent: (eventData: Partial<EventType>, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
33
+ readonly getEvent: (eventId: string, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
34
+ readonly getEventsByTags: (tags: string[], latitude: number, longitude: number, from?: number, to?: number, startDate?: number, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType[]>;
35
+ readonly getEventsByReactions: (reactions: string[], latitude: number, longitude: number, from?: number, to?: number, startDate?: number, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType[]>;
36
+ readonly rsvpEvent: (rsvp: EventRsvpInput, rsvpProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventRsvpType>;
37
+ readonly deleteEvent: (eventId: string, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
38
+ readonly updateEvent: (event: Partial<EventType>, eventProps?: string[], requestOptions?: ActionRequestOptions) => Promise<EventType>;
20
39
  readonly updateEventAdapter: (adapter: (input: unknown, options?: EventAdapterOptions) => any) => void;
21
40
  readonly updateEventAdapterOptions: (options: EventAdapterOptions) => void;
22
41
  }
@@ -43,3 +62,4 @@ export interface EventActions {
43
62
  * });
44
63
  */
45
64
  export declare const createEventActions: (flux: FluxFramework, options?: EventActionsOptions) => EventActions;
65
+ //# sourceMappingURL=eventActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventActions.d.ts","sourceRoot":"","sources":["../../../src/actions/eventActions/eventActions.ts"],"names":[],"mappings":"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"}