@nlabs/metropolisjs 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/.github/copilot-instructions.md +167 -0
  2. package/AGENTS.md +13 -0
  3. package/CHANGELOG.md +112 -0
  4. package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
  5. package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
  6. package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
  7. package/README.md +1123 -112
  8. package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
  9. package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
  10. package/docs/ACTIONS.md +63 -0
  11. package/docs/COLLECTIONS.md +1038 -0
  12. package/docs/CONNECTIONS.md +1367 -0
  13. package/docs/CRUD_INTEGRATION.md +702 -0
  14. package/examples/connections-usage.tsx +909 -0
  15. package/examples/content-actions-usage.ts +144 -0
  16. package/examples/crud-usage.tsx +847 -0
  17. package/examples/extensibility-usage.tsx +889 -0
  18. package/examples/i18n-import-examples.ts +86 -0
  19. package/examples/i18n-namespace-usage.ts +118 -0
  20. package/examples/i18next-singleton-demo.ts +187 -0
  21. package/examples/permission-system-usage.tsx +415 -0
  22. package/examples/project-details.tsx +397 -0
  23. package/examples/shared-i18n-usage.tsx +203 -0
  24. package/examples/signup-error-handling.ts +100 -0
  25. package/examples/translation-types.ts +86 -0
  26. package/examples/translation-usage.tsx +336 -0
  27. package/index.js +1 -0
  28. package/jest.config.mjs +28 -0
  29. package/lex.config.mjs +11 -2
  30. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  31. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  36. package/lib/actions/appActions/appActions.d.ts +29 -0
  37. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  38. package/lib/actions/appActions/appActions.js +159 -0
  39. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  40. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  41. package/lib/actions/connectionActions/connectionActions.js +131 -0
  42. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  43. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  44. package/lib/actions/contentActions/contentActions.js +314 -0
  45. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  46. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  47. package/lib/actions/conversationActions/conversationActions.js +225 -0
  48. package/lib/actions/eventActions/eventActions.d.ts +27 -7
  49. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  50. package/lib/actions/eventActions/eventActions.js +436 -2
  51. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  52. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  53. package/lib/actions/groupActions/groupActions.js +229 -0
  54. package/lib/actions/imageActions/imageActions.d.ts +16 -10
  55. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  56. package/lib/actions/imageActions/imageActions.js +593 -2
  57. package/lib/actions/index.d.ts +21 -9
  58. package/lib/actions/index.d.ts.map +1 -0
  59. package/lib/actions/index.js +22 -2
  60. package/lib/actions/locationActions/locationActions.d.ts +11 -9
  61. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  62. package/lib/actions/locationActions/locationActions.js +388 -2
  63. package/lib/actions/messageActions/messageActions.d.ts +16 -32
  64. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  65. package/lib/actions/messageActions/messageActions.js +235 -2
  66. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  67. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  68. package/lib/actions/permissionActions/permissionActions.js +330 -0
  69. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  70. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  71. package/lib/actions/personaActions/personaActions.js +572 -0
  72. package/lib/actions/postActions/postActions.d.ts +12 -32
  73. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  74. package/lib/actions/postActions/postActions.js +447 -2
  75. package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
  76. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  77. package/lib/actions/reactionActions/reactionActions.js +413 -2
  78. package/lib/actions/sseActions/sseActions.d.ts +1 -0
  79. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  80. package/lib/actions/sseActions/sseActions.js +148 -2
  81. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  82. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  84. package/lib/actions/tagActions/tagActions.d.ts +13 -31
  85. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  86. package/lib/actions/tagActions/tagActions.js +347 -2
  87. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  88. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  89. package/lib/actions/translationActions/translationActions.js +189 -0
  90. package/lib/actions/userActions/userActions.d.ts +42 -95
  91. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  92. package/lib/actions/userActions/userActions.js +844 -2
  93. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  94. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  95. package/lib/actions/videoActions/videoActions.js +532 -0
  96. package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
  97. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  98. package/lib/actions/websocketActions/websocketActions.js +377 -2
  99. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  100. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  101. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  102. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
  103. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
  105. package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
  106. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
  108. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
  109. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
  111. package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
  112. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
  114. package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
  115. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
  117. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  118. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  120. package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
  121. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
  123. package/lib/adapters/index.d.ts +34 -16
  124. package/lib/adapters/index.d.ts.map +1 -0
  125. package/lib/adapters/index.js +19 -2
  126. package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
  127. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
  129. package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
  130. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
  132. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  133. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  135. package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
  136. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
  138. package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
  139. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  140. package/lib/adapters/postAdapter/postAdapter.js +115 -2
  141. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
  142. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
  144. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
  145. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
  147. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
  148. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
  150. package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
  151. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
  153. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  154. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  156. package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
  157. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  158. package/lib/adapters/userAdapter/userAdapter.js +302 -2
  159. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  160. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  162. package/lib/config/index.d.ts +19 -6
  163. package/lib/config/index.d.ts.map +1 -0
  164. package/lib/config/index.js +97 -2
  165. package/lib/constants/Collections.d.ts +44 -0
  166. package/lib/constants/Collections.d.ts.map +1 -0
  167. package/lib/constants/Collections.js +40 -0
  168. package/lib/constants/MetropolisConstants.d.ts +1 -0
  169. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  170. package/lib/constants/MetropolisConstants.js +15 -2
  171. package/lib/graphql/message.d.ts +1 -0
  172. package/lib/graphql/message.d.ts.map +1 -0
  173. package/lib/graphql/message.js +6 -4
  174. package/lib/graphql/notification.d.ts +1 -0
  175. package/lib/graphql/notification.d.ts.map +1 -0
  176. package/lib/graphql/notification.js +6 -4
  177. package/lib/graphql/session.d.ts +1 -0
  178. package/lib/graphql/session.d.ts.map +1 -0
  179. package/lib/graphql/session.js +4 -3
  180. package/lib/index.d.ts +45 -22
  181. package/lib/index.d.ts.map +1 -0
  182. package/lib/index.js +248 -2
  183. package/lib/stores/appStore.d.ts +1 -0
  184. package/lib/stores/appStore.d.ts.map +1 -0
  185. package/lib/stores/appStore.js +23 -2
  186. package/lib/stores/contentStore.d.ts +36 -0
  187. package/lib/stores/contentStore.d.ts.map +1 -0
  188. package/lib/stores/contentStore.js +139 -0
  189. package/lib/stores/conversationStore.d.ts +38 -0
  190. package/lib/stores/conversationStore.d.ts.map +1 -0
  191. package/lib/stores/conversationStore.js +117 -0
  192. package/lib/stores/eventStore.d.ts +4 -1
  193. package/lib/stores/eventStore.d.ts.map +1 -0
  194. package/lib/stores/eventStore.js +47 -2
  195. package/lib/stores/groupStore.d.ts +37 -0
  196. package/lib/stores/groupStore.d.ts.map +1 -0
  197. package/lib/stores/groupStore.js +68 -0
  198. package/lib/stores/imageStore.d.ts +6 -1
  199. package/lib/stores/imageStore.d.ts.map +1 -0
  200. package/lib/stores/imageStore.js +53 -2
  201. package/lib/stores/index.d.ts +20 -11
  202. package/lib/stores/index.d.ts.map +1 -0
  203. package/lib/stores/index.js +24 -2
  204. package/lib/stores/locationStore.d.ts +2 -1
  205. package/lib/stores/locationStore.d.ts.map +1 -0
  206. package/lib/stores/locationStore.js +42 -2
  207. package/lib/stores/messageStore.d.ts +19 -4
  208. package/lib/stores/messageStore.d.ts.map +1 -0
  209. package/lib/stores/messageStore.js +137 -2
  210. package/lib/stores/notificationStore.d.ts +33 -0
  211. package/lib/stores/notificationStore.d.ts.map +1 -0
  212. package/lib/stores/notificationStore.js +55 -0
  213. package/lib/stores/permissionStore.d.ts +37 -0
  214. package/lib/stores/permissionStore.d.ts.map +1 -0
  215. package/lib/stores/permissionStore.js +117 -0
  216. package/lib/stores/personaStore.d.ts +26 -0
  217. package/lib/stores/personaStore.d.ts.map +1 -0
  218. package/lib/stores/personaStore.js +118 -0
  219. package/lib/stores/postStore.d.ts +2 -1
  220. package/lib/stores/postStore.d.ts.map +1 -0
  221. package/lib/stores/postStore.js +53 -2
  222. package/lib/stores/reactionStore.d.ts +1 -0
  223. package/lib/stores/reactionStore.d.ts.map +1 -0
  224. package/lib/stores/reactionStore.js +28 -2
  225. package/lib/stores/subscriptionStore.d.ts +41 -0
  226. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  227. package/lib/stores/subscriptionStore.js +85 -0
  228. package/lib/stores/tagStore.d.ts +8 -5
  229. package/lib/stores/tagStore.d.ts.map +1 -0
  230. package/lib/stores/tagStore.js +87 -2
  231. package/lib/stores/translationStore.d.ts +42 -0
  232. package/lib/stores/translationStore.d.ts.map +1 -0
  233. package/lib/stores/translationStore.js +122 -0
  234. package/lib/stores/userStore.d.ts +5 -4
  235. package/lib/stores/userStore.d.ts.map +1 -0
  236. package/lib/stores/userStore.js +319 -2
  237. package/lib/stores/videoStore.d.ts +39 -0
  238. package/lib/stores/videoStore.d.ts.map +1 -0
  239. package/lib/stores/videoStore.js +132 -0
  240. package/lib/stores/websocketStore.d.ts +1 -0
  241. package/lib/stores/websocketStore.d.ts.map +1 -0
  242. package/lib/stores/websocketStore.js +51 -2
  243. package/lib/types/apps.types.d.ts +17 -0
  244. package/lib/types/apps.types.d.ts.map +1 -0
  245. package/lib/types/apps.types.js +6 -0
  246. package/lib/types/common.types.d.ts +31 -0
  247. package/lib/types/common.types.d.ts.map +1 -0
  248. package/lib/types/common.types.js +6 -0
  249. package/lib/types/conversations.types.d.ts +17 -0
  250. package/lib/types/conversations.types.d.ts.map +1 -0
  251. package/lib/types/conversations.types.js +6 -0
  252. package/lib/types/edges.types.d.ts +38 -0
  253. package/lib/types/edges.types.d.ts.map +1 -0
  254. package/lib/types/edges.types.js +6 -0
  255. package/lib/types/groups.types.d.ts +19 -0
  256. package/lib/types/groups.types.d.ts.map +1 -0
  257. package/lib/types/groups.types.js +6 -0
  258. package/lib/types/index.d.ts +12 -0
  259. package/lib/types/index.d.ts.map +1 -0
  260. package/lib/types/index.js +12 -0
  261. package/lib/types/subscriptions.types.d.ts +32 -0
  262. package/lib/types/subscriptions.types.d.ts.map +1 -0
  263. package/lib/types/subscriptions.types.js +6 -0
  264. package/lib/types/videos.types.d.ts +61 -0
  265. package/lib/types/videos.types.d.ts.map +1 -0
  266. package/lib/types/videos.types.js +6 -0
  267. package/lib/utils/MetropolisProvider.d.ts +39 -15
  268. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  269. package/lib/utils/MetropolisProvider.js +31 -2
  270. package/lib/utils/actionFactory.d.ts +21 -19
  271. package/lib/utils/actionFactory.d.ts.map +1 -0
  272. package/lib/utils/actionFactory.js +95 -2
  273. package/lib/utils/api.d.ts +5 -4
  274. package/lib/utils/api.d.ts.map +1 -0
  275. package/lib/utils/api.js +252 -6
  276. package/lib/utils/app.d.ts +1 -0
  277. package/lib/utils/app.d.ts.map +1 -0
  278. package/lib/utils/app.js +15 -2
  279. package/lib/utils/baseActionFactory.d.ts +5 -23
  280. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  281. package/lib/utils/baseActionFactory.js +72 -2
  282. package/lib/utils/configUtils.d.ts +11 -0
  283. package/lib/utils/configUtils.d.ts.map +1 -0
  284. package/lib/utils/configUtils.js +20 -0
  285. package/lib/utils/dateUtils.d.ts +1 -0
  286. package/lib/utils/dateUtils.d.ts.map +1 -0
  287. package/lib/utils/dateUtils.js +11 -2
  288. package/lib/utils/file.d.ts +3 -1
  289. package/lib/utils/file.d.ts.map +1 -0
  290. package/lib/utils/file.js +156 -2
  291. package/lib/utils/i18n.d.ts +7 -0
  292. package/lib/utils/i18n.d.ts.map +1 -0
  293. package/lib/utils/i18n.js +96 -0
  294. package/lib/utils/index.d.ts +20 -0
  295. package/lib/utils/index.d.ts.map +1 -0
  296. package/lib/utils/index.js +26 -0
  297. package/lib/utils/location.d.ts +4 -3
  298. package/lib/utils/location.d.ts.map +1 -0
  299. package/lib/utils/location.js +82 -2
  300. package/lib/utils/permissionUtils.d.ts +22 -0
  301. package/lib/utils/permissionUtils.d.ts.map +1 -0
  302. package/lib/utils/permissionUtils.js +72 -0
  303. package/lib/utils/requestCache.d.ts +8 -0
  304. package/lib/utils/requestCache.d.ts.map +1 -0
  305. package/lib/utils/requestCache.js +53 -0
  306. package/lib/utils/session.d.ts +14 -0
  307. package/lib/utils/session.d.ts.map +1 -0
  308. package/lib/utils/session.js +107 -0
  309. package/lib/utils/useConversationTyping.d.ts +26 -0
  310. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  311. package/lib/utils/useConversationTyping.js +117 -0
  312. package/lib/utils/useMetropolis.d.ts +67 -12
  313. package/lib/utils/useMetropolis.d.ts.map +1 -0
  314. package/lib/utils/useMetropolis.js +311 -2
  315. package/lib/utils/useTranslations.d.ts +16 -0
  316. package/lib/utils/useTranslations.d.ts.map +1 -0
  317. package/lib/utils/useTranslations.js +105 -0
  318. package/lib/utils/validatorFactory.d.ts +3 -2
  319. package/lib/utils/validatorFactory.d.ts.map +1 -0
  320. package/lib/utils/validatorFactory.js +95 -2
  321. package/package.json +58 -17
  322. package/temp_signin.ts +73 -0
  323. package/lib/actions/profileActions/profileActions.d.ts +0 -50
  324. package/lib/actions/profileActions/profileActions.js +0 -2
  325. package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
  326. package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
  327. package/lib/stores/profileStore.d.ts +0 -24
  328. package/lib/stores/profileStore.js +0 -2
  329. /package/{FACTORY_PATTERN_GUIDE.md → factoryPatternGuide.md} +0 -0
@@ -1,22 +1,24 @@
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
1
  import type { FluxFramework } from '@nlabs/arkhamjs';
6
- import type { EventActionsOptions } from '../actions/eventActions/eventActions';
7
- import type { ImageActionsOptions } from '../actions/imageActions/imageActions';
8
- import type { LocationActionsOptions } from '../actions/locationActions/locationActions';
9
- import type { MessageActionsOptions } from '../actions/messageActions/messageActions';
10
- import type { PostActionsOptions } from '../actions/postActions/postActions';
11
- import type { ProfileActionsOptions } from '../actions/profileActions/profileActions';
12
- import type { ReactionActionsOptions } from '../actions/reactionActions/reactionActions';
13
- import type { SSEActionsOptions } from '../actions/sseActions/sseActions';
14
- import type { TagActionsOptions } from '../actions/tagActions/tagActions';
15
- import type { UserActionsOptions } from '../actions/userActions/userActions';
16
- export type ActionType = 'event' | 'image' | 'location' | 'message' | 'post' | 'profile' | 'reaction' | 'sse' | 'tag' | 'user' | 'websocket';
17
- export type ActionOptions = EventActionsOptions | ImageActionsOptions | LocationActionsOptions | MessageActionsOptions | PostActionsOptions | ProfileActionsOptions | ReactionActionsOptions | SSEActionsOptions | TagActionsOptions | UserActionsOptions | undefined;
18
- export declare const createAction: <T extends ActionType>(actionType: T, flux: FluxFramework, options?: ActionOptions) => import("../actions").PostActions | import("../actions").EventActions | import("../actions").ImageActions | import("../actions").LocationActions | import("../actions").MessageActions | import("../actions").ReactionActions | import("../actions").TagActions | import("../actions").userActions | import("../actions").WebsocketActions | import("../actions/profileActions/profileActions").ProfileActions | import("../actions/sseActions/sseActions").SSEActions;
19
- export declare const createActions: (actionTypes: ActionType[], flux: FluxFramework, options?: Partial<Record<ActionType, ActionOptions>>) => Record<string, any>;
20
- export declare const createAllActions: (flux: FluxFramework, options?: Partial<Record<ActionType, ActionOptions>>) => Record<string, any>;
2
+ import type { ContentActionsOptions } from '../actions/contentActions/contentActions.js';
3
+ import type { EventActionsOptions } from '../actions/eventActions/eventActions.js';
4
+ import type { GroupActionsOptions } from '../actions/groupActions/groupActions.js';
5
+ import type { ImageActionsOptions } from '../actions/imageActions/imageActions.js';
6
+ import type { LocationActionsOptions } from '../actions/locationActions/locationActions.js';
7
+ import type { MessageActionsOptions } from '../actions/messageActions/messageActions.js';
8
+ import type { PermissionActionsOptions } from '../actions/permissionActions/permissionActions.js';
9
+ import type { PostActionsOptions } from '../actions/postActions/postActions.js';
10
+ import type { PersonaActionsOptions } from '../actions/personaActions/personaActions.js';
11
+ import type { ReactionActionsOptions } from '../actions/reactionActions/reactionActions.js';
12
+ import type { SSEActionsOptions } from '../actions/sseActions/sseActions.js';
13
+ import type { TagActionsOptions } from '../actions/tagActions/tagActions.js';
14
+ import type { TranslationActionsOptions } from '../actions/translationActions/translationActions.js';
15
+ import type { UserActionsOptions } from '../actions/userActions/userActions.js';
16
+ import type { VideoActionsOptions } from '../actions/videoActions/videoActions.js';
17
+ export type ActionType = 'content' | 'event' | 'group' | 'image' | 'location' | 'message' | 'permission' | 'post' | 'persona' | 'reaction' | 'sse' | 'subscription' | 'tag' | 'translation' | 'user' | 'video' | 'websocket';
18
+ export type ActionOptions = ContentActionsOptions | EventActionsOptions | GroupActionsOptions | ImageActionsOptions | LocationActionsOptions | MessageActionsOptions | PermissionActionsOptions | PostActionsOptions | PersonaActionsOptions | ReactionActionsOptions | SSEActionsOptions | TagActionsOptions | TranslationActionsOptions | UserActionsOptions | VideoActionsOptions | undefined;
19
+ export declare const createAction: <T extends ActionType>(actionType: T, flux: FluxFramework, options?: ActionOptions) => import("../actions/contentActions/contentActions.js").ContentActions | import("../actions/eventActions/eventActions.js").EventActions | import("../actions/groupActions/groupActions.js").GroupActions | import("../actions/imageActions/imageActions.js").ImageActions | import("../actions/locationActions/locationActions.js").LocationActions | import("../actions/messageActions/messageActions.js").MessageActions | import("../actions/permissionActions/permissionActions.js").PermissionActions | import("../actions/postActions/postActions.js").PostActions | import("../actions/personaActions/personaActions.js").PersonaActions | import("../actions/reactionActions/reactionActions.js").ReactionActions | import("../actions/sseActions/sseActions.js").SSEActions | import("../actions/subscriptionActions/subscriptionActions.js").SubscriptionActions | import("../actions/tagActions/tagActions.js").TagActions | import("../actions/websocketActions/websocketActions.js").WebsocketActions | import("../actions/videoActions/videoActions.js").VideoActions | import("../actions/translationActions/translationActions.js").TranslationActions | import("../actions/userActions/userActions.js").userActions;
20
+ export declare const createActions: (actionTypes: ActionType[], flux: FluxFramework, options?: Partial<Record<ActionType, ActionOptions>>) => Partial<Record<ActionType, ActionReturnType<ActionType>>>;
21
+ export declare const createAllActions: (flux: FluxFramework, options?: Partial<Record<ActionType, ActionOptions>>) => Partial<Record<ActionType, import("../actions/contentActions/contentActions.js").ContentActions | import("../actions/eventActions/eventActions.js").EventActions | import("../actions/groupActions/groupActions.js").GroupActions | import("../actions/imageActions/imageActions.js").ImageActions | import("../actions/locationActions/locationActions.js").LocationActions | import("../actions/messageActions/messageActions.js").MessageActions | import("../actions/permissionActions/permissionActions.js").PermissionActions | import("../actions/postActions/postActions.js").PostActions | import("../actions/personaActions/personaActions.js").PersonaActions | import("../actions/reactionActions/reactionActions.js").ReactionActions | import("../actions/sseActions/sseActions.js").SSEActions | import("../actions/subscriptionActions/subscriptionActions.js").SubscriptionActions | import("../actions/tagActions/tagActions.js").TagActions | import("../actions/websocketActions/websocketActions.js").WebsocketActions | import("../actions/videoActions/videoActions.js").VideoActions | import("../actions/translationActions/translationActions.js").TranslationActions | import("../actions/userActions/userActions.js").userActions>>;
21
22
  export type ActionTypes = ReturnType<typeof createAllActions>;
22
23
  export type ActionReturnType<T extends ActionType> = ReturnType<typeof createAction<T>>;
24
+ //# sourceMappingURL=actionFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionFactory.d.ts","sourceRoot":"","sources":["../../src/utils/actionFactory.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,mDAAmD,CAAC;AAChG,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAC,yBAAyB,EAAC,MAAM,qDAAqD,CAAC;AACnG,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yCAAyC,CAAC;AAIjF,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,YAAY,GACZ,MAAM,GACN,SAAS,GACT,UAAU,GACV,KAAK,GACL,cAAc,GACd,KAAK,GACL,aAAa,GACb,MAAM,GACN,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,MAAM,aAAa,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,wBAAwB,GACxB,kBAAkB,GAClB,qBAAqB,GACrB,sBAAsB,GACtB,iBAAiB,GACjB,iBAAiB,GACjB,yBAAyB,GACzB,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,CAAC;AAEd,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,UAAU,EAC/C,YAAY,CAAC,EACb,MAAM,aAAa,EACnB,UAAU,aAAa,uqCA6DxB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,aAAa,UAAU,EAAE,EACzB,MAAM,aAAa,EACnB,UAAU,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,KACnD,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAQ1D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,MAAM,aAAa,EACnB,UAAU,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,osCAuBrD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -1,2 +1,95 @@
1
- import{createEventActions as n}from"../actions/eventActions/eventActions";import{createImageActions as c}from"../actions/imageActions/imageActions";import{createLocationActions as r}from"../actions/locationActions/locationActions";import{createMessageActions as a}from"../actions/messageActions/messageActions";import{createPostActions as p}from"../actions/postActions/postActions";import{createProfileActions as A}from"../actions/profileActions/profileActions";import{createReactionActions as m}from"../actions/reactionActions/reactionActions";import{createSSEActions as O}from"../actions/sseActions/sseActions";import{createTagActions as y}from"../actions/tagActions/tagActions";import{createUserActions as g}from"../actions/userActions/userActions";import{createWebsocketActions as f}from"../actions/websocketActions/websocketActions";const l=(e,t,o)=>{switch(e){case"event":return n(t,o);case"image":return c(t,o);case"location":return r(t,o);case"message":return a(t,o);case"post":return p(t,o);case"profile":return A(t,o);case"reaction":return m(t,o);case"sse":return O(t,o);case"tag":return y(t,o);case"user":return g(t,o);case"websocket":return f(t);default:throw new Error(`Unknown action type: ${e}`)}},T=(e,t,o)=>{const i={};return e.forEach(s=>{i[s]=l(s,t,o?.[s])}),i},U=(e,t)=>T(["event","image","location","message","post","profile","reaction","sse","tag","user","websocket"],e,t);export{l as createAction,T as createActions,U as createAllActions};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FjdGlvbkZhY3RvcnkudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cblxuLy8gSW1wb3J0IGFsbCBhY3Rpb24gY3JlYXRvcnNcbmltcG9ydCB7Y3JlYXRlRXZlbnRBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL2V2ZW50QWN0aW9ucy9ldmVudEFjdGlvbnMnO1xuaW1wb3J0IHtjcmVhdGVJbWFnZUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvaW1hZ2VBY3Rpb25zL2ltYWdlQWN0aW9ucyc7XG5pbXBvcnQge2NyZWF0ZUxvY2F0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zJztcbmltcG9ydCB7Y3JlYXRlTWVzc2FnZUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMnO1xuaW1wb3J0IHtjcmVhdGVQb3N0QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wb3N0QWN0aW9ucy9wb3N0QWN0aW9ucyc7XG5pbXBvcnQge2NyZWF0ZVByb2ZpbGVBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Byb2ZpbGVBY3Rpb25zL3Byb2ZpbGVBY3Rpb25zJztcbmltcG9ydCB7Y3JlYXRlUmVhY3Rpb25BY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy9yZWFjdGlvbkFjdGlvbnMnO1xuaW1wb3J0IHtjcmVhdGVTU0VBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3NzZUFjdGlvbnMvc3NlQWN0aW9ucyc7XG5pbXBvcnQge2NyZWF0ZVRhZ0FjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdGFnQWN0aW9ucy90YWdBY3Rpb25zJztcbmltcG9ydCB7Y3JlYXRlVXNlckFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMnO1xuaW1wb3J0IHtjcmVhdGVXZWJzb2NrZXRBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3dlYnNvY2tldEFjdGlvbnMvd2Vic29ja2V0QWN0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0V2ZW50QWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvZXZlbnRBY3Rpb25zL2V2ZW50QWN0aW9ucyc7XG5pbXBvcnQgdHlwZSB7SW1hZ2VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9pbWFnZUFjdGlvbnMvaW1hZ2VBY3Rpb25zJztcbmltcG9ydCB0eXBlIHtMb2NhdGlvbkFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2xvY2F0aW9uQWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMnO1xuaW1wb3J0IHR5cGUge01lc3NhZ2VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9tZXNzYWdlQWN0aW9ucy9tZXNzYWdlQWN0aW9ucyc7XG5pbXBvcnQgdHlwZSB7UG9zdEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zJztcbmltcG9ydCB0eXBlIHtQcm9maWxlQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcHJvZmlsZUFjdGlvbnMvcHJvZmlsZUFjdGlvbnMnO1xuaW1wb3J0IHR5cGUge1JlYWN0aW9uQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcmVhY3Rpb25BY3Rpb25zL3JlYWN0aW9uQWN0aW9ucyc7XG5pbXBvcnQgdHlwZSB7U1NFQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvc3NlQWN0aW9ucy9zc2VBY3Rpb25zJztcbmltcG9ydCB0eXBlIHtUYWdBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90YWdBY3Rpb25zL3RhZ0FjdGlvbnMnO1xuaW1wb3J0IHR5cGUge1VzZXJBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy91c2VyQWN0aW9ucy91c2VyQWN0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGUgPVxuICB8ICdldmVudCdcbiAgfCAnaW1hZ2UnXG4gIHwgJ2xvY2F0aW9uJ1xuICB8ICdtZXNzYWdlJ1xuICB8ICdwb3N0J1xuICB8ICdwcm9maWxlJ1xuICB8ICdyZWFjdGlvbidcbiAgfCAnc3NlJ1xuICB8ICd0YWcnXG4gIHwgJ3VzZXInXG4gIHwgJ3dlYnNvY2tldCc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk9wdGlvbnMgPVxuICB8IEV2ZW50QWN0aW9uc09wdGlvbnNcbiAgfCBJbWFnZUFjdGlvbnNPcHRpb25zXG4gIHwgTG9jYXRpb25BY3Rpb25zT3B0aW9uc1xuICB8IE1lc3NhZ2VBY3Rpb25zT3B0aW9uc1xuICB8IFBvc3RBY3Rpb25zT3B0aW9uc1xuICB8IFByb2ZpbGVBY3Rpb25zT3B0aW9uc1xuICB8IFJlYWN0aW9uQWN0aW9uc09wdGlvbnNcbiAgfCBTU0VBY3Rpb25zT3B0aW9uc1xuICB8IFRhZ0FjdGlvbnNPcHRpb25zXG4gIHwgVXNlckFjdGlvbnNPcHRpb25zXG4gIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uID0gPFQgZXh0ZW5kcyBBY3Rpb25UeXBlPihcbiAgYWN0aW9uVHlwZTogVCxcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IEFjdGlvbk9wdGlvbnNcbikgPT4ge1xuICBzd2l0Y2goYWN0aW9uVHlwZSkge1xuICAgIGNhc2UgJ2V2ZW50JzpcbiAgICAgIHJldHVybiBjcmVhdGVFdmVudEFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBFdmVudEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICAgIHJldHVybiBjcmVhdGVJbWFnZUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBJbWFnZUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ2xvY2F0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVMb2NhdGlvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBMb2NhdGlvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgcmV0dXJuIGNyZWF0ZU1lc3NhZ2VBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgTWVzc2FnZUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVBvc3RBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUG9zdEFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3Byb2ZpbGUnOlxuICAgICAgcmV0dXJuIGNyZWF0ZVByb2ZpbGVBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgUHJvZmlsZUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3JlYWN0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVSZWFjdGlvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBSZWFjdGlvbkFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3NzZSc6XG4gICAgICByZXR1cm4gY3JlYXRlU1NFQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFNTRUFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3RhZyc6XG4gICAgICByZXR1cm4gY3JlYXRlVGFnQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFRhZ0FjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3VzZXInOlxuICAgICAgcmV0dXJuIGNyZWF0ZVVzZXJBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgVXNlckFjdGlvbnNPcHRpb25zKTtcblxuICAgIGNhc2UgJ3dlYnNvY2tldCc6XG4gICAgICByZXR1cm4gY3JlYXRlV2Vic29ja2V0QWN0aW9ucyhmbHV4KTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uIHR5cGU6ICR7YWN0aW9uVHlwZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvbnMgPSAoXG4gIGFjdGlvblR5cGVzOiBBY3Rpb25UeXBlW10sXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBQYXJ0aWFsPFJlY29yZDxBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zPj5cbikgPT4ge1xuICBjb25zdCBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgYWN0aW9uVHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgIGFjdGlvbnNbdHlwZV0gPSBjcmVhdGVBY3Rpb24odHlwZSwgZmx1eCwgb3B0aW9ucz8uW3R5cGVdKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGFjdGlvbnM7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWxsQWN0aW9ucyA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnM+PlxuKSA9PiB7XG4gIGNvbnN0IGFsbEFjdGlvblR5cGVzOiBBY3Rpb25UeXBlW10gPSBbXG4gICAgJ2V2ZW50JyxcbiAgICAnaW1hZ2UnLFxuICAgICdsb2NhdGlvbicsXG4gICAgJ21lc3NhZ2UnLFxuICAgICdwb3N0JyxcbiAgICAncHJvZmlsZScsXG4gICAgJ3JlYWN0aW9uJyxcbiAgICAnc3NlJyxcbiAgICAndGFnJyxcbiAgICAndXNlcicsXG4gICAgJ3dlYnNvY2tldCdcbiAgXTtcblxuICByZXR1cm4gY3JlYXRlQWN0aW9ucyhhbGxBY3Rpb25UeXBlcywgZmx1eCwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlcyA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUFsbEFjdGlvbnM+O1xuZXhwb3J0IHR5cGUgQWN0aW9uUmV0dXJuVHlwZTxUIGV4dGVuZHMgQWN0aW9uVHlwZT4gPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBY3Rpb248VD4+OyJdLAogICJtYXBwaW5ncyI6ICJBQU9BLE9BQVEsc0JBQUFBLE1BQXlCLHVDQUNqQyxPQUFRLHNCQUFBQyxNQUF5Qix1Q0FDakMsT0FBUSx5QkFBQUMsTUFBNEIsNkNBQ3BDLE9BQVEsd0JBQUFDLE1BQTJCLDJDQUNuQyxPQUFRLHFCQUFBQyxNQUF3QixxQ0FDaEMsT0FBUSx3QkFBQUMsTUFBMkIsMkNBQ25DLE9BQVEseUJBQUFDLE1BQTRCLDZDQUNwQyxPQUFRLG9CQUFBQyxNQUF1QixtQ0FDL0IsT0FBUSxvQkFBQUMsTUFBdUIsbUNBQy9CLE9BQVEscUJBQUFDLE1BQXdCLHFDQUNoQyxPQUFRLDBCQUFBQyxNQUE2QiwrQ0F3QzlCLE1BQU1DLEVBQWUsQ0FDMUJDLEVBQ0FDLEVBQ0FDLElBQ0csQ0FDSCxPQUFPRixFQUFZLENBQ2pCLElBQUssUUFDSCxPQUFPWixFQUFtQmEsRUFBTUMsQ0FBOEIsRUFFaEUsSUFBSyxRQUNILE9BQU9iLEVBQW1CWSxFQUFNQyxDQUE4QixFQUVoRSxJQUFLLFdBQ0gsT0FBT1osRUFBc0JXLEVBQU1DLENBQWlDLEVBRXRFLElBQUssVUFDSCxPQUFPWCxFQUFxQlUsRUFBTUMsQ0FBZ0MsRUFFcEUsSUFBSyxPQUNILE9BQU9WLEVBQWtCUyxFQUFNQyxDQUE2QixFQUU5RCxJQUFLLFVBQ0gsT0FBT1QsRUFBcUJRLEVBQU1DLENBQWdDLEVBRXBFLElBQUssV0FDSCxPQUFPUixFQUFzQk8sRUFBTUMsQ0FBaUMsRUFFdEUsSUFBSyxNQUNILE9BQU9QLEVBQWlCTSxFQUFNQyxDQUE0QixFQUU1RCxJQUFLLE1BQ0gsT0FBT04sRUFBaUJLLEVBQU1DLENBQTRCLEVBRTVELElBQUssT0FDSCxPQUFPTCxFQUFrQkksRUFBTUMsQ0FBNkIsRUFFOUQsSUFBSyxZQUNILE9BQU9KLEVBQXVCRyxDQUFJLEVBRXBDLFFBQ0UsTUFBTSxJQUFJLE1BQU0sd0JBQXdCRCxDQUFVLEVBQUUsQ0FDeEQsQ0FDRixFQUVhRyxFQUFnQixDQUMzQkMsRUFDQUgsRUFDQUMsSUFDRyxDQUNILE1BQU1HLEVBQStCLENBQUMsRUFFdEMsT0FBQUQsRUFBWSxRQUFTRSxHQUFTLENBQzVCRCxFQUFRQyxDQUFJLEVBQUlQLEVBQWFPLEVBQU1MLEVBQU1DLElBQVVJLENBQUksQ0FBQyxDQUMxRCxDQUFDLEVBRU1ELENBQ1QsRUFFYUUsRUFBbUIsQ0FDOUJOLEVBQ0FDLElBZ0JPQyxFQWQ4QixDQUNuQyxRQUNBLFFBQ0EsV0FDQSxVQUNBLE9BQ0EsVUFDQSxXQUNBLE1BQ0EsTUFDQSxPQUNBLFdBQ0YsRUFFcUNGLEVBQU1DLENBQU8iLAogICJuYW1lcyI6IFsiY3JlYXRlRXZlbnRBY3Rpb25zIiwgImNyZWF0ZUltYWdlQWN0aW9ucyIsICJjcmVhdGVMb2NhdGlvbkFjdGlvbnMiLCAiY3JlYXRlTWVzc2FnZUFjdGlvbnMiLCAiY3JlYXRlUG9zdEFjdGlvbnMiLCAiY3JlYXRlUHJvZmlsZUFjdGlvbnMiLCAiY3JlYXRlUmVhY3Rpb25BY3Rpb25zIiwgImNyZWF0ZVNTRUFjdGlvbnMiLCAiY3JlYXRlVGFnQWN0aW9ucyIsICJjcmVhdGVVc2VyQWN0aW9ucyIsICJjcmVhdGVXZWJzb2NrZXRBY3Rpb25zIiwgImNyZWF0ZUFjdGlvbiIsICJhY3Rpb25UeXBlIiwgImZsdXgiLCAib3B0aW9ucyIsICJjcmVhdGVBY3Rpb25zIiwgImFjdGlvblR5cGVzIiwgImFjdGlvbnMiLCAidHlwZSIsICJjcmVhdGVBbGxBY3Rpb25zIl0KfQo=
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { createContentActions } from '../actions/contentActions/contentActions.js';
5
+ import { createEventActions } from '../actions/eventActions/eventActions.js';
6
+ import { createGroupActions } from '../actions/groupActions/groupActions.js';
7
+ import { createImageActions } from '../actions/imageActions/imageActions.js';
8
+ import { createLocationActions } from '../actions/locationActions/locationActions.js';
9
+ import { createMessageActions } from '../actions/messageActions/messageActions.js';
10
+ import { createPermissionActions } from '../actions/permissionActions/permissionActions.js';
11
+ import { createPostActions } from '../actions/postActions/postActions.js';
12
+ import { createPersonaActions } from '../actions/personaActions/personaActions.js';
13
+ import { createReactionActions } from '../actions/reactionActions/reactionActions.js';
14
+ import { createSSEActions } from '../actions/sseActions/sseActions.js';
15
+ import { createSubscriptionActions } from '../actions/subscriptionActions/subscriptionActions.js';
16
+ import { createTagActions } from '../actions/tagActions/tagActions.js';
17
+ import { createTranslationActions } from '../actions/translationActions/translationActions.js';
18
+ import { createUserActions } from '../actions/userActions/userActions.js';
19
+ import { createVideoActions } from '../actions/videoActions/videoActions.js';
20
+ import { createWebsocketActions } from '../actions/websocketActions/websocketActions.js';
21
+ const websocketActionCache = new WeakMap();
22
+ export const createAction = (actionType, flux, options)=>{
23
+ switch(actionType){
24
+ case 'content':
25
+ return createContentActions(flux, options);
26
+ case 'event':
27
+ return createEventActions(flux, options);
28
+ case 'group':
29
+ return createGroupActions(flux, options);
30
+ case 'image':
31
+ return createImageActions(flux, options);
32
+ case 'location':
33
+ return createLocationActions(flux, options);
34
+ case 'message':
35
+ return createMessageActions(flux, options);
36
+ case 'permission':
37
+ return createPermissionActions(flux, options);
38
+ case 'post':
39
+ return createPostActions(flux, options);
40
+ case 'persona':
41
+ return createPersonaActions(flux, options);
42
+ case 'reaction':
43
+ return createReactionActions(flux, options);
44
+ case 'sse':
45
+ return createSSEActions(flux, options);
46
+ case 'subscription':
47
+ return createSubscriptionActions(flux);
48
+ case 'tag':
49
+ return createTagActions(flux, options);
50
+ case 'translation':
51
+ return createTranslationActions(flux, options);
52
+ case 'user':
53
+ return createUserActions(flux, options);
54
+ case 'video':
55
+ return createVideoActions(flux, options);
56
+ case 'websocket':
57
+ if (!websocketActionCache.has(flux)) {
58
+ websocketActionCache.set(flux, createWebsocketActions(flux));
59
+ }
60
+ return websocketActionCache.get(flux);
61
+ default:
62
+ throw new Error(`Unknown action type: ${actionType}`);
63
+ }
64
+ };
65
+ export const createActions = (actionTypes, flux, options)=>{
66
+ const actions = {};
67
+ actionTypes.forEach((type)=>{
68
+ actions[type] = createAction(type, flux, options?.[type]);
69
+ });
70
+ return actions;
71
+ };
72
+ export const createAllActions = (flux, options)=>{
73
+ const allActionTypes = [
74
+ 'content',
75
+ 'event',
76
+ 'group',
77
+ 'image',
78
+ 'location',
79
+ 'message',
80
+ 'permission',
81
+ 'post',
82
+ 'persona',
83
+ 'reaction',
84
+ 'sse',
85
+ 'subscription',
86
+ 'tag',
87
+ 'translation',
88
+ 'user',
89
+ 'video',
90
+ 'websocket'
91
+ ];
92
+ return createActions(allActionTypes, flux, options);
93
+ };
94
+
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYWN0aW9uRmFjdG9yeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtjcmVhdGVDb250ZW50QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9jb250ZW50QWN0aW9ucy9jb250ZW50QWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUV2ZW50QWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9ldmVudEFjdGlvbnMvZXZlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlR3JvdXBBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL2dyb3VwQWN0aW9ucy9ncm91cEFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVJbWFnZUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvaW1hZ2VBY3Rpb25zL2ltYWdlQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZUxvY2F0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlTWVzc2FnZUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVQZXJtaXNzaW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVBvc3RBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlUGVyc29uYUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVSZWFjdGlvbkFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcmVhY3Rpb25BY3Rpb25zL3JlYWN0aW9uQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNTRUFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvc3NlQWN0aW9ucy9zc2VBY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlU3Vic2NyaXB0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zdWJzY3JpcHRpb25BY3Rpb25zL3N1YnNjcmlwdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVUYWdBY3Rpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVRyYW5zbGF0aW9uQWN0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB7Y3JlYXRlVXNlckFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHtjcmVhdGVWaWRlb0FjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvd2Vic29ja2V0QWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7Q29udGVudEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRlbnRBY3Rpb25zL2NvbnRlbnRBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtFdmVudEFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2V2ZW50QWN0aW9ucy9ldmVudEFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0dyb3VwQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvZ3JvdXBBY3Rpb25zL2dyb3VwQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7SW1hZ2VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9pbWFnZUFjdGlvbnMvaW1hZ2VBY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtMb2NhdGlvbkFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL2xvY2F0aW9uQWN0aW9ucy9sb2NhdGlvbkFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge01lc3NhZ2VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9tZXNzYWdlQWN0aW9ucy9tZXNzYWdlQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UGVybWlzc2lvbkFjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3Blcm1pc3Npb25BY3Rpb25zL3Blcm1pc3Npb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtQb3N0QWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvcG9zdEFjdGlvbnMvcG9zdEFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1BlcnNvbmFBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9wZXJzb25hQWN0aW9ucy9wZXJzb25hQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7UmVhY3Rpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9yZWFjdGlvbkFjdGlvbnMvcmVhY3Rpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtTU0VBY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy9zc2VBY3Rpb25zL3NzZUFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1RhZ0FjdGlvbnNPcHRpb25zfSBmcm9tICcuLi9hY3Rpb25zL3RhZ0FjdGlvbnMvdGFnQWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7VHJhbnNsYXRpb25BY3Rpb25zT3B0aW9uc30gZnJvbSAnLi4vYWN0aW9ucy90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge1ZpZGVvQWN0aW9uc09wdGlvbnN9IGZyb20gJy4uL2FjdGlvbnMvdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5cbmNvbnN0IHdlYnNvY2tldEFjdGlvbkNhY2hlID0gbmV3IFdlYWtNYXA8Rmx1eEZyYW1ld29yaywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlV2Vic29ja2V0QWN0aW9ucz4+KCk7XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGUgPVxuICB8ICdjb250ZW50J1xuICB8ICdldmVudCdcbiAgfCAnZ3JvdXAnXG4gIHwgJ2ltYWdlJ1xuICB8ICdsb2NhdGlvbidcbiAgfCAnbWVzc2FnZSdcbiAgfCAncGVybWlzc2lvbidcbiAgfCAncG9zdCdcbiAgfCAncGVyc29uYSdcbiAgfCAncmVhY3Rpb24nXG4gIHwgJ3NzZSdcbiAgfCAnc3Vic2NyaXB0aW9uJ1xuICB8ICd0YWcnXG4gIHwgJ3RyYW5zbGF0aW9uJ1xuICB8ICd1c2VyJ1xuICB8ICd2aWRlbydcbiAgfCAnd2Vic29ja2V0JztcblxuZXhwb3J0IHR5cGUgQWN0aW9uT3B0aW9ucyA9XG4gIHwgQ29udGVudEFjdGlvbnNPcHRpb25zXG4gIHwgRXZlbnRBY3Rpb25zT3B0aW9uc1xuICB8IEdyb3VwQWN0aW9uc09wdGlvbnNcbiAgfCBJbWFnZUFjdGlvbnNPcHRpb25zXG4gIHwgTG9jYXRpb25BY3Rpb25zT3B0aW9uc1xuICB8IE1lc3NhZ2VBY3Rpb25zT3B0aW9uc1xuICB8IFBlcm1pc3Npb25BY3Rpb25zT3B0aW9uc1xuICB8IFBvc3RBY3Rpb25zT3B0aW9uc1xuICB8IFBlcnNvbmFBY3Rpb25zT3B0aW9uc1xuICB8IFJlYWN0aW9uQWN0aW9uc09wdGlvbnNcbiAgfCBTU0VBY3Rpb25zT3B0aW9uc1xuICB8IFRhZ0FjdGlvbnNPcHRpb25zXG4gIHwgVHJhbnNsYXRpb25BY3Rpb25zT3B0aW9uc1xuICB8IFVzZXJBY3Rpb25zT3B0aW9uc1xuICB8IFZpZGVvQWN0aW9uc09wdGlvbnNcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBY3Rpb24gPSA8VCBleHRlbmRzIEFjdGlvblR5cGU+KFxuICBhY3Rpb25UeXBlOiBULFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogQWN0aW9uT3B0aW9uc1xuKSA9PiB7XG4gIHN3aXRjaChhY3Rpb25UeXBlKSB7XG4gICAgY2FzZSAnY29udGVudCc6XG4gICAgICByZXR1cm4gY3JlYXRlQ29udGVudEFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBDb250ZW50QWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnZXZlbnQnOlxuICAgICAgcmV0dXJuIGNyZWF0ZUV2ZW50QWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIEV2ZW50QWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgcmV0dXJuIGNyZWF0ZUdyb3VwQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIEdyb3VwQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgcmV0dXJuIGNyZWF0ZUltYWdlQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIEltYWdlQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnbG9jYXRpb24nOlxuICAgICAgcmV0dXJuIGNyZWF0ZUxvY2F0aW9uQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIExvY2F0aW9uQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnbWVzc2FnZSc6XG4gICAgICByZXR1cm4gY3JlYXRlTWVzc2FnZUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBNZXNzYWdlQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAncGVybWlzc2lvbic6XG4gICAgICByZXR1cm4gY3JlYXRlUGVybWlzc2lvbkFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBQZXJtaXNzaW9uQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAncG9zdCc6XG4gICAgICByZXR1cm4gY3JlYXRlUG9zdEFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBQb3N0QWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAncGVyc29uYSc6XG4gICAgICByZXR1cm4gY3JlYXRlUGVyc29uYUFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBQZXJzb25hQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAncmVhY3Rpb24nOlxuICAgICAgcmV0dXJuIGNyZWF0ZVJlYWN0aW9uQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFJlYWN0aW9uQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnc3NlJzpcbiAgICAgIHJldHVybiBjcmVhdGVTU0VBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgU1NFQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnc3Vic2NyaXB0aW9uJzpcbiAgICAgIHJldHVybiBjcmVhdGVTdWJzY3JpcHRpb25BY3Rpb25zKGZsdXgpO1xuXG4gICAgY2FzZSAndGFnJzpcbiAgICAgIHJldHVybiBjcmVhdGVUYWdBY3Rpb25zKGZsdXgsIG9wdGlvbnMgYXMgVGFnQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAndHJhbnNsYXRpb24nOlxuICAgICAgcmV0dXJuIGNyZWF0ZVRyYW5zbGF0aW9uQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFRyYW5zbGF0aW9uQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gY3JlYXRlVXNlckFjdGlvbnMoZmx1eCwgb3B0aW9ucyBhcyBVc2VyQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAndmlkZW8nOlxuICAgICAgcmV0dXJuIGNyZWF0ZVZpZGVvQWN0aW9ucyhmbHV4LCBvcHRpb25zIGFzIFZpZGVvQWN0aW9uc09wdGlvbnMpO1xuXG4gICAgY2FzZSAnd2Vic29ja2V0JzpcbiAgICAgIGlmKCF3ZWJzb2NrZXRBY3Rpb25DYWNoZS5oYXMoZmx1eCkpIHtcbiAgICAgICAgd2Vic29ja2V0QWN0aW9uQ2FjaGUuc2V0KGZsdXgsIGNyZWF0ZVdlYnNvY2tldEFjdGlvbnMoZmx1eCkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gd2Vic29ja2V0QWN0aW9uQ2FjaGUuZ2V0KGZsdXgpIGFzIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVdlYnNvY2tldEFjdGlvbnM+O1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpb24gdHlwZTogJHthY3Rpb25UeXBlfWApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9ucyA9IChcbiAgYWN0aW9uVHlwZXM6IEFjdGlvblR5cGVbXSxcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IFBhcnRpYWw8UmVjb3JkPEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnM+PlxuKTogUGFydGlhbDxSZWNvcmQ8QWN0aW9uVHlwZSwgQWN0aW9uUmV0dXJuVHlwZTxBY3Rpb25UeXBlPj4+ID0+IHtcbiAgY29uc3QgYWN0aW9uczogUGFydGlhbDxSZWNvcmQ8QWN0aW9uVHlwZSwgQWN0aW9uUmV0dXJuVHlwZTxBY3Rpb25UeXBlPj4+ID0ge307XG5cbiAgYWN0aW9uVHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgIGFjdGlvbnNbdHlwZV0gPSBjcmVhdGVBY3Rpb24odHlwZSwgZmx1eCwgb3B0aW9ucz8uW3R5cGVdKSBhcyBBY3Rpb25SZXR1cm5UeXBlPEFjdGlvblR5cGU+O1xuICB9KTtcblxuICByZXR1cm4gYWN0aW9ucztcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBbGxBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogUGFydGlhbDxSZWNvcmQ8QWN0aW9uVHlwZSwgQWN0aW9uT3B0aW9ucz4+XG4pID0+IHtcbiAgY29uc3QgYWxsQWN0aW9uVHlwZXM6IEFjdGlvblR5cGVbXSA9IFtcbiAgICAnY29udGVudCcsXG4gICAgJ2V2ZW50JyxcbiAgICAnZ3JvdXAnLFxuICAgICdpbWFnZScsXG4gICAgJ2xvY2F0aW9uJyxcbiAgICAnbWVzc2FnZScsXG4gICAgJ3Blcm1pc3Npb24nLFxuICAgICdwb3N0JyxcbiAgICAncGVyc29uYScsXG4gICAgJ3JlYWN0aW9uJyxcbiAgICAnc3NlJyxcbiAgICAnc3Vic2NyaXB0aW9uJyxcbiAgICAndGFnJyxcbiAgICAndHJhbnNsYXRpb24nLFxuICAgICd1c2VyJyxcbiAgICAndmlkZW8nLFxuICAgICd3ZWJzb2NrZXQnXG4gIF07XG5cbiAgcmV0dXJuIGNyZWF0ZUFjdGlvbnMoYWxsQWN0aW9uVHlwZXMsIGZsdXgsIG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBbGxBY3Rpb25zPjtcbmV4cG9ydCB0eXBlIEFjdGlvblJldHVyblR5cGU8VCBleHRlbmRzIEFjdGlvblR5cGU+ID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlQWN0aW9uPFQ+PjtcbiJdLCJuYW1lcyI6WyJjcmVhdGVDb250ZW50QWN0aW9ucyIsImNyZWF0ZUV2ZW50QWN0aW9ucyIsImNyZWF0ZUdyb3VwQWN0aW9ucyIsImNyZWF0ZUltYWdlQWN0aW9ucyIsImNyZWF0ZUxvY2F0aW9uQWN0aW9ucyIsImNyZWF0ZU1lc3NhZ2VBY3Rpb25zIiwiY3JlYXRlUGVybWlzc2lvbkFjdGlvbnMiLCJjcmVhdGVQb3N0QWN0aW9ucyIsImNyZWF0ZVBlcnNvbmFBY3Rpb25zIiwiY3JlYXRlUmVhY3Rpb25BY3Rpb25zIiwiY3JlYXRlU1NFQWN0aW9ucyIsImNyZWF0ZVN1YnNjcmlwdGlvbkFjdGlvbnMiLCJjcmVhdGVUYWdBY3Rpb25zIiwiY3JlYXRlVHJhbnNsYXRpb25BY3Rpb25zIiwiY3JlYXRlVXNlckFjdGlvbnMiLCJjcmVhdGVWaWRlb0FjdGlvbnMiLCJjcmVhdGVXZWJzb2NrZXRBY3Rpb25zIiwid2Vic29ja2V0QWN0aW9uQ2FjaGUiLCJXZWFrTWFwIiwiY3JlYXRlQWN0aW9uIiwiYWN0aW9uVHlwZSIsImZsdXgiLCJvcHRpb25zIiwiaGFzIiwic2V0IiwiZ2V0IiwiRXJyb3IiLCJjcmVhdGVBY3Rpb25zIiwiYWN0aW9uVHlwZXMiLCJhY3Rpb25zIiwiZm9yRWFjaCIsInR5cGUiLCJjcmVhdGVBbGxBY3Rpb25zIiwiYWxsQWN0aW9uVHlwZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLG9CQUFvQixRQUFPLDhDQUE4QztBQUNqRixTQUFRQyxrQkFBa0IsUUFBTywwQ0FBMEM7QUFDM0UsU0FBUUMsa0JBQWtCLFFBQU8sMENBQTBDO0FBQzNFLFNBQVFDLGtCQUFrQixRQUFPLDBDQUEwQztBQUMzRSxTQUFRQyxxQkFBcUIsUUFBTyxnREFBZ0Q7QUFDcEYsU0FBUUMsb0JBQW9CLFFBQU8sOENBQThDO0FBQ2pGLFNBQVFDLHVCQUF1QixRQUFPLG9EQUFvRDtBQUMxRixTQUFRQyxpQkFBaUIsUUFBTyx3Q0FBd0M7QUFDeEUsU0FBUUMsb0JBQW9CLFFBQU8sOENBQThDO0FBQ2pGLFNBQVFDLHFCQUFxQixRQUFPLGdEQUFnRDtBQUNwRixTQUFRQyxnQkFBZ0IsUUFBTyxzQ0FBc0M7QUFDckUsU0FBUUMseUJBQXlCLFFBQU8sd0RBQXdEO0FBQ2hHLFNBQVFDLGdCQUFnQixRQUFPLHNDQUFzQztBQUNyRSxTQUFRQyx3QkFBd0IsUUFBTyxzREFBc0Q7QUFDN0YsU0FBUUMsaUJBQWlCLFFBQU8sd0NBQXdDO0FBQ3hFLFNBQVFDLGtCQUFrQixRQUFPLDBDQUEwQztBQUMzRSxTQUFRQyxzQkFBc0IsUUFBTyxrREFBa0Q7QUFtQnZGLE1BQU1DLHVCQUF1QixJQUFJQztBQXVDakMsT0FBTyxNQUFNQyxlQUFlLENBQzFCQyxZQUNBQyxNQUNBQztJQUVBLE9BQU9GO1FBQ0wsS0FBSztZQUNILE9BQU9wQixxQkFBcUJxQixNQUFNQztRQUVwQyxLQUFLO1lBQ0gsT0FBT3JCLG1CQUFtQm9CLE1BQU1DO1FBRWxDLEtBQUs7WUFDSCxPQUFPcEIsbUJBQW1CbUIsTUFBTUM7UUFFbEMsS0FBSztZQUNILE9BQU9uQixtQkFBbUJrQixNQUFNQztRQUVsQyxLQUFLO1lBQ0gsT0FBT2xCLHNCQUFzQmlCLE1BQU1DO1FBRXJDLEtBQUs7WUFDSCxPQUFPakIscUJBQXFCZ0IsTUFBTUM7UUFFcEMsS0FBSztZQUNILE9BQU9oQix3QkFBd0JlLE1BQU1DO1FBRXZDLEtBQUs7WUFDSCxPQUFPZixrQkFBa0JjLE1BQU1DO1FBRWpDLEtBQUs7WUFDSCxPQUFPZCxxQkFBcUJhLE1BQU1DO1FBRXBDLEtBQUs7WUFDSCxPQUFPYixzQkFBc0JZLE1BQU1DO1FBRXJDLEtBQUs7WUFDSCxPQUFPWixpQkFBaUJXLE1BQU1DO1FBRWhDLEtBQUs7WUFDSCxPQUFPWCwwQkFBMEJVO1FBRW5DLEtBQUs7WUFDSCxPQUFPVCxpQkFBaUJTLE1BQU1DO1FBRWhDLEtBQUs7WUFDSCxPQUFPVCx5QkFBeUJRLE1BQU1DO1FBRXhDLEtBQUs7WUFDSCxPQUFPUixrQkFBa0JPLE1BQU1DO1FBRWpDLEtBQUs7WUFDSCxPQUFPUCxtQkFBbUJNLE1BQU1DO1FBRWxDLEtBQUs7WUFDSCxJQUFHLENBQUNMLHFCQUFxQk0sR0FBRyxDQUFDRixPQUFPO2dCQUNsQ0oscUJBQXFCTyxHQUFHLENBQUNILE1BQU1MLHVCQUF1Qks7WUFDeEQ7WUFFQSxPQUFPSixxQkFBcUJRLEdBQUcsQ0FBQ0o7UUFFbEM7WUFDRSxNQUFNLElBQUlLLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRU4sWUFBWTtJQUN4RDtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1PLGdCQUFnQixDQUMzQkMsYUFDQVAsTUFDQUM7SUFFQSxNQUFNTyxVQUFxRSxDQUFDO0lBRTVFRCxZQUFZRSxPQUFPLENBQUMsQ0FBQ0M7UUFDbkJGLE9BQU8sQ0FBQ0UsS0FBSyxHQUFHWixhQUFhWSxNQUFNVixNQUFNQyxTQUFTLENBQUNTLEtBQUs7SUFDMUQ7SUFFQSxPQUFPRjtBQUNULEVBQUU7QUFFRixPQUFPLE1BQU1HLG1CQUFtQixDQUM5QlgsTUFDQUM7SUFFQSxNQUFNVyxpQkFBK0I7UUFDbkM7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtLQUNEO0lBRUQsT0FBT04sY0FBY00sZ0JBQWdCWixNQUFNQztBQUM3QyxFQUFFIn0=
@@ -4,7 +4,7 @@ export interface ApiOptions {
4
4
  readonly onSuccess?: (data: any) => Promise<FluxAction>;
5
5
  readonly variables?: Record<string, unknown>;
6
6
  }
7
- export type ReaktorDbCollection = 'apps' | 'conversations' | 'files' | 'groups' | 'images' | 'locations' | 'messages' | 'notifications' | 'payments' | 'posts' | 'profiles' | 'reactions' | 'subscriptions' | 'tags' | 'users';
7
+ export type ReaktorDbCollection = 'apps' | 'connections' | 'contents' | 'conversations' | 'events' | 'files' | 'groups' | 'images' | 'locations' | 'messages' | 'notifications' | 'payments' | 'permissions' | 'posts' | 'personas' | 'reactions' | 'subscriptions' | 'tags' | 'translations' | 'users' | 'videos';
8
8
  export interface ApiQueryVariableType {
9
9
  readonly type: string;
10
10
  readonly value: unknown;
@@ -35,9 +35,10 @@ export declare const createMutation: (name: string, dataType: ReaktorDbCollectio
35
35
  query: string;
36
36
  variables: Record<string, unknown>;
37
37
  };
38
- export declare const appQuery: (flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<ApiResultsType>;
39
- export declare const appMutation: (flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<ApiResultsType>;
40
- export declare const publicQuery: (flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<ApiResultsType>;
38
+ export declare const appQuery: <T>(flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<T>;
39
+ export declare const appMutation: <T>(flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<T>;
40
+ export declare const publicQuery: <T>(flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<T>;
41
41
  export declare const publicMutation: <T>(flux: FluxFramework, name: string, dataType: ReaktorDbCollection, queryVariables: ApiQueryVariables, returnProperties: string[], options?: ApiOptions) => Promise<T>;
42
42
  export declare const uploadImage: (flux: FluxFramework, image: any, options?: HunterOptionsType) => Promise<ApiResultsType>;
43
43
  export declare const refreshSession: (flux: FluxFramework, token?: string, expires?: number) => Promise<FluxAction | null>;
44
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
package/lib/utils/api.js CHANGED
@@ -1,7 +1,253 @@
1
- import{ApiError as P,graphqlQuery as $,post as Q}from"@nlabs/rip-hunter";import{camelCase as R,isEmpty as w,upperFirst as _}from"@nlabs/utils";import{DateTime as b}from"luxon";import{Config as l}from"../config";import{APP_CONSTANTS as A}from"../stores/appStore";import{USER_CONSTANTS as h}from"../stores/userStore";const d=async(e,r,i,t,o)=>{const{onSuccess:s}=o,n={query:t,responseMethod:s||(()=>{})};if(e.getState("app.networkType")==="none")return e.dispatch({retry:n,type:A.API_NETWORK_ERROR});const y=Date.now(),{expires:m=y,issued:u=y,token:c}=e.getState("user.session")||{};let T;if(i){const p=b.local(),g=b.fromMillis(m),F=Math.round(g.diff(p,"minutes").toObject().minutes);if(T=c,F>0){const k=l.get("app.session.minMinutes",0),O=b.fromMillis(m);if(Math.round(p.diff(O,"minutes").toObject().minutes)>=k){const{session:D={}}=await E(e,c,k)||{},{token:S}=D||{};S||Promise.reject(new P(["invalid_session"],"invalid_session")),T=S}}}return $(r,t,{token:T||""}).then(async p=>(await e.dispatch({type:A.API_NETWORK_SUCCESS}),p)).then(p=>s?s(p):p).catch(async p=>{const{errors:g=[]}=p;return s&&g.includes("network_error")?(await e.dispatch({retry:n,type:A.API_NETWORK_ERROR}),Promise.reject(p)):g.includes("invalid_session")?(await e.clearAppData(),Promise.resolve({})):Promise.reject(p)})},f=(e,r,i={},t=[],o="query")=>{const s={...i||{}},n=Object.keys(s),a=e.replace(/ /g,""),y=`${o} ${_(R(`${r}_${a}`))}${n.length?`(${n.map(u=>`$${u}: ${s[u].type}`).join(", ")})`:""} {
2
- ${r} {
3
- ${R(a)}${n.length?`(${n.map(u=>`${u}: $${u}`).join(", ")})`:""}
4
- ${t?.length?`{${t.join(", ")}}`:""}
1
+ import { ApiError, graphqlQuery, post } from '@nlabs/rip-hunter';
2
+ import { camelCase, isEmpty, upperFirst } from '@nlabs/utils';
3
+ import { APP_CONSTANTS } from '../stores/appStore.js';
4
+ import { USER_CONSTANTS } from '../stores/userStore.js';
5
+ import { getConfigFromFlux } from './configUtils.js';
6
+ import { clearPersistedSession, getRefreshWindowMinutes, hydrateSessionFromStorage, parseJwtExpiryMs, storeSession } from './session.js';
7
+ const DEFAULT_REFRESH_WINDOW_MINUTES = 5;
8
+ const DEFAULT_SESSION_MAX_MINUTES = 15;
9
+ const getMinutesUntil = (expiresAt)=>Math.round((expiresAt - Date.now()) / (1000 * 60));
10
+ const clearInvalidSessionState = async (flux)=>{
11
+ await clearPersistedSession(flux);
12
+ await flux.clearAppData();
13
+ await flux.dispatch({
14
+ session: {},
15
+ type: USER_CONSTANTS.SIGN_OUT_SUCCESS
16
+ });
17
+ };
18
+ export const getGraphql = async (flux, url, authenticate, query, options)=>{
19
+ try {
20
+ const { onSuccess } = options;
21
+ const retry = {
22
+ query,
23
+ responseMethod: onSuccess || (()=>{})
24
+ };
25
+ const networkType = flux.getState('app.networkType');
26
+ if (networkType === 'none') {
27
+ return flux.dispatch({
28
+ retry,
29
+ type: APP_CONSTANTS.API_NETWORK_ERROR
30
+ });
31
+ }
32
+ const stateSession = flux.getState('user.session') || {};
33
+ let token;
34
+ if (authenticate) {
35
+ const hydratedSession = stateSession.token ? stateSession : await hydrateSessionFromStorage(flux);
36
+ const { expires: authExpires = 0, issued: authIssued = 0, token: hydratedToken } = hydratedSession || {};
37
+ token = hydratedToken || stateSession.token;
38
+ if (!token) {
39
+ throw new ApiError([
40
+ 'invalid_session'
41
+ ], 'invalid_session');
42
+ }
43
+ const tokenExpiresAt = parseJwtExpiryMs(token);
44
+ if (tokenExpiresAt > 0 && Date.now() >= tokenExpiresAt) {
45
+ throw new ApiError([
46
+ 'expired_session'
47
+ ], 'expired_session');
48
+ }
49
+ const config = getConfigFromFlux(flux);
50
+ const minutesUntilExpiry = getMinutesUntil(Number(authExpires || 0));
51
+ const sessionLifetimeMinutes = Math.round((authExpires - authIssued) / (1000 * 60));
52
+ const refreshWindowMinutes = getRefreshWindowMinutes(sessionLifetimeMinutes || DEFAULT_SESSION_MAX_MINUTES, config.app?.session || {});
53
+ const refreshExpiresMinutes = Math.max(1, Number(config.app?.session?.maxMinutes || sessionLifetimeMinutes || DEFAULT_SESSION_MAX_MINUTES));
54
+ if (minutesUntilExpiry > 0 && minutesUntilExpiry <= refreshWindowMinutes) {
55
+ const { session: updatedSession = {} } = await refreshSession(flux, token, refreshExpiresMinutes) || {};
56
+ const { token: newToken } = updatedSession || {};
57
+ if (!newToken) {
58
+ throw new ApiError([
59
+ 'invalid_session'
60
+ ], 'invalid_session');
61
+ }
62
+ token = newToken;
63
+ }
64
+ }
65
+ return graphqlQuery(url, query, {
66
+ token: token || ''
67
+ }).then(async (results)=>{
68
+ await flux.dispatch({
69
+ type: APP_CONSTANTS.API_NETWORK_SUCCESS
70
+ });
71
+ return results;
72
+ }).then((data)=>onSuccess ? onSuccess(data) : data).catch(async (error)=>{
73
+ const { errors = [] } = error;
74
+ if (onSuccess && errors.includes('network_error')) {
75
+ await flux.dispatch({
76
+ retry,
77
+ type: APP_CONSTANTS.API_NETWORK_ERROR
78
+ });
79
+ return Promise.reject(error);
80
+ } else if (errors.includes('invalid_session') || errors.includes('expired_session')) {
81
+ await clearInvalidSessionState(flux);
82
+ return Promise.resolve({});
83
+ }
84
+ return Promise.reject(error);
85
+ });
86
+ } catch (error) {
87
+ const errors = error instanceof ApiError ? error.errors : [];
88
+ const message = error instanceof Error ? error.message : '';
89
+ if (errors.includes('invalid_session') || errors.includes('expired_session') || message === 'invalid_session' || message === 'expired_session') {
90
+ await clearInvalidSessionState(flux);
91
+ return {};
92
+ }
93
+ throw error;
5
94
  }
6
- }`,m=n.reduce((u,c)=>(u[c]=s[c].value,u),{});return{query:y,variables:m}},x=(e,r,i={},t=[])=>f(e,r,i,t,"mutation"),U=(e,r,i,t,o,s={})=>{const n=f(r,i,t,o),a=l.get("app.api.url");return d(e,a,!0,n,s)},H=(e,r,i,t,o,s={})=>{const n=x(r,i,t,o),a=l.get("app.api.url");return d(e,a,!0,n,s)},K=(e,r,i,t,o,s={})=>{const n=f(r,i,t,o),a=l.get("app.api.public");return d(e,a,!1,n,s)},C=(e,r,i,t,o,s={})=>{const n=x(r,i,t,o),a=l.get("app.api.public");return d(e,a,!1,n,s)},W=(e,r,i={})=>{const t=e.getState("user.session.token"),o=new Headers;o.set("Authorization",`Bearer ${t}`);const s=l.get("app.api.uploadImage");return Q(s,r,{headers:o,...i})},E=async(e,r,i=15)=>{const t=w(r)?r:e.getState("user.session.token");if(w(t))return null;try{return await C(e,"refreshSession","users",{expires:{type:"Int",value:i},token:{type:"String!",value:r}},["expires","issued","token"],{onSuccess:(n={})=>{const{refreshSession:a={}}=n;return e.dispatch({session:a,type:h.UPDATE_SESSION_SUCCESS})}})}catch(o){return e.dispatch({error:o,type:h.GET_SESSION_ERROR}),null}};export{H as appMutation,U as appQuery,x as createMutation,f as createQuery,d as getGraphql,C as publicMutation,K as publicQuery,E as refreshSession,W as uploadImage};
7
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2FwaS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtBcGlFcnJvciwgZ3JhcGhxbFF1ZXJ5LCBwb3N0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NhbWVsQ2FzZSwgaXNFbXB0eSwgdXBwZXJGaXJzdH0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7RGF0ZVRpbWV9IGZyb20gJ2x1eG9uJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0FQUF9DT05TVEFOVFN9IGZyb20gJy4uL3N0b3Jlcy9hcHBTdG9yZSc7XG5pbXBvcnQge1VTRVJfQ09OU1RBTlRTfSBmcm9tICcuLi9zdG9yZXMvdXNlclN0b3JlJztcblxuaW1wb3J0IHR5cGUge0ZsdXhBY3Rpb24sIEZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7SHVudGVyT3B0aW9uc1R5cGUsIEh1bnRlclF1ZXJ5VHlwZX0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMge1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBQcm9taXNlPEZsdXhBY3Rpb24+O1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVha3RvckRiQ29sbGVjdGlvbiA9XG4gICdhcHBzJyB8XG4gICdjb252ZXJzYXRpb25zJyB8XG4gICdmaWxlcycgfFxuICAnZ3JvdXBzJyB8XG4gICdpbWFnZXMnIHxcbiAgJ2xvY2F0aW9ucycgfFxuICAnbWVzc2FnZXMnIHxcbiAgJ25vdGlmaWNhdGlvbnMnIHxcbiAgJ3BheW1lbnRzJyB8XG4gICdwb3N0cycgfFxuICAncHJvZmlsZXMnIHxcbiAgJ3JlYWN0aW9ucycgfFxuICAnc3Vic2NyaXB0aW9ucycgfFxuICAndGFncycgfFxuICAndXNlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVF1ZXJ5VmFyaWFibGVUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSB2YWx1ZTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlRdWVyeVZhcmlhYmxlcyB7XG4gIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEFwaVF1ZXJ5VmFyaWFibGVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3VsdHNUeXBlIHtcbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVR5cGUge1xuICByZWFkb25seSBxdWVyeTogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW107XG4gIHJlYWRvbmx5IHJlc3BvbnNlTWV0aG9kOiAocmVzdWx0czogQXBpUmVzdWx0c1R5cGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblR5cGUge1xuICByZWFkb25seSBleHBpcmVzPzogbnVtYmVyO1xuICByZWFkb25seSBpc3N1ZWQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VySWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZ2V0R3JhcGhxbCA9IGFzeW5jIChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgdXJsOiBzdHJpbmcsXG4gIGF1dGhlbnRpY2F0ZTogYm9vbGVhbixcbiAgcXVlcnk6IEh1bnRlclF1ZXJ5VHlwZSB8IEh1bnRlclF1ZXJ5VHlwZVtdLFxuICBvcHRpb25zOiBBcGlPcHRpb25zXG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IHtvblN1Y2Nlc3N9ID0gb3B0aW9ucztcbiAgY29uc3QgcmV0cnk6IFJldHJ5VHlwZSA9IHtxdWVyeSwgcmVzcG9uc2VNZXRob2Q6IG9uU3VjY2VzcyB8fCAoKCkgPT4ge30pfTtcbiAgY29uc3QgbmV0d29ya1R5cGU6IHN0cmluZyA9IGZsdXguZ2V0U3RhdGUoJ2FwcC5uZXR3b3JrVHlwZScpIGFzIHN0cmluZztcblxuICBpZihuZXR3b3JrVHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3JldHJ5LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX0VSUk9SfSk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IHtleHBpcmVzID0gbm93LCBpc3N1ZWQ6IF9pc3N1ZWQgPSBub3csIHRva2VuOiBjdXJyZW50VG9rZW59OiBTZXNzaW9uVHlwZSA9IChmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nKSB8fCB7fSkgYXMgU2Vzc2lvblR5cGU7XG4gIGxldCB0b2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vIGNvbnNvbGUubG9nKCdnZXRHcmFwaHFsOjphdXRoZW50aWNhdGUnLCB7YXV0aGVudGljYXRlLCBjdXJyZW50VG9rZW59KTtcbiAgaWYoYXV0aGVudGljYXRlKSB7XG4gICAgY29uc3Qgbm93RGF0ZTogRGF0ZVRpbWUgPSBEYXRlVGltZS5sb2NhbCgpO1xuICAgIGNvbnN0IGV4cGlyZXNEYXRlOiBEYXRlVGltZSA9IERhdGVUaW1lLmZyb21NaWxsaXMoZXhwaXJlcyk7XG4gICAgY29uc3QgZXhwaXJlZERpZmY6IG51bWJlciA9IE1hdGgucm91bmQoZXhwaXJlc0RhdGUuZGlmZihub3dEYXRlLCAnbWludXRlcycpLnRvT2JqZWN0KCkubWludXRlcyk7XG4gICAgdG9rZW4gPSBjdXJyZW50VG9rZW47XG5cbiAgICAvLyBjb25zb2xlLmxvZygnZ2V0R3JhcGhxbDo6ZXhwaXJlZERpZmYnLCBleHBpcmVkRGlmZik7XG4gICAgaWYoZXhwaXJlZERpZmYgPiAwKSB7XG4gICAgICBjb25zdCBzZXNzaW9uTWluOiBudW1iZXIgPSBDb25maWcuZ2V0KCdhcHAuc2Vzc2lvbi5taW5NaW51dGVzJywgMCk7XG4gICAgICBjb25zdCBpc3N1ZWREYXRlOiBEYXRlVGltZSA9IERhdGVUaW1lLmZyb21NaWxsaXMoZXhwaXJlcyk7XG4gICAgICBjb25zdCBpc3N1ZWREaWZmOiBudW1iZXIgPSBNYXRoLnJvdW5kKG5vd0RhdGUuZGlmZihpc3N1ZWREYXRlLCAnbWludXRlcycpLnRvT2JqZWN0KCkubWludXRlcyk7XG5cbiAgICAgIC8vIGNvbnNvbGUubG9nKHtpc3N1ZWQsIGlzc3VlZERpZmYsIHNlc3Npb25NaW59KTtcbiAgICAgIGlmKGlzc3VlZERpZmYgPj0gc2Vzc2lvbk1pbikge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgc2Vzc2lvbjogdXBkYXRlZFNlc3Npb24gPSB7fVxuICAgICAgICB9OiBBcGlSZXN1bHRzVHlwZSA9IChhd2FpdCByZWZyZXNoU2Vzc2lvbihmbHV4LCBjdXJyZW50VG9rZW4sIHNlc3Npb25NaW4pKSB8fCB7fTtcbiAgICAgICAgY29uc3Qge3Rva2VuOiBuZXdUb2tlbn06IFNlc3Npb25UeXBlID0gKHVwZGF0ZWRTZXNzaW9uIHx8IHt9KTtcblxuICAgICAgICAvLyBjb25zb2xlLmxvZyh7bmV3VG9rZW59KTtcbiAgICAgICAgaWYoIW5ld1Rva2VuKSB7XG4gICAgICAgICAgUHJvbWlzZS5yZWplY3QobmV3IEFwaUVycm9yKFsnaW52YWxpZF9zZXNzaW9uJ10sICdpbnZhbGlkX3Nlc3Npb24nKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0b2tlbiA9IG5ld1Rva2VuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGNvbnNvbGUubG9nKCdnZXRHcmFwaHFsOjpxdWVyeScsIHtxdWVyeSwgdG9rZW4sIHVybH0pO1xuICByZXR1cm4gZ3JhcGhxbFF1ZXJ5KHVybCwgcXVlcnksIHt0b2tlbjogdG9rZW4gfHwgJyd9KVxuICAgIC50aGVuKGFzeW5jIChyZXN1bHRzKSA9PiB7XG4gICAgICBhd2FpdCBmbHV4LmRpc3BhdGNoKHt0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX1NVQ0NFU1N9KTtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdHcmFwaHFsQXBpOjpyZXN1bHRzJywgcmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9KVxuICAgIC50aGVuKChkYXRhKSA9PiAob25TdWNjZXNzID8gb25TdWNjZXNzKGRhdGEpIDogZGF0YSkpXG4gICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgY29uc3Qge2Vycm9ycyA9IFtdfSA9IGVycm9yO1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyh7ZXJyb3J9KTtcbiAgICAgIGlmKG9uU3VjY2VzcyAmJiBlcnJvcnMuaW5jbHVkZXMoJ25ldHdvcmtfZXJyb3InKSkge1xuICAgICAgICBhd2FpdCBmbHV4LmRpc3BhdGNoKHtyZXRyeSwgdHlwZTogQVBQX0NPTlNUQU5UUy5BUElfTkVUV09SS19FUlJPUn0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgICAgfSBlbHNlIGlmKGVycm9ycy5pbmNsdWRlcygnaW52YWxpZF9zZXNzaW9uJykpIHtcbiAgICAgICAgYXdhaXQgZmx1eC5jbGVhckFwcERhdGEoKTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnkgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHZhcmlhYmxlczogQXBpUXVlcnlWYXJpYWJsZXMgPSB7fSxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10gPSBbXSxcbiAgdHlwZSA9ICdxdWVyeSdcbikgPT4ge1xuICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHsuLi52YXJpYWJsZXMgfHwge319O1xuICBjb25zdCB2YXJpYWJsZUtleXMgPSBPYmplY3Qua2V5cyhxdWVyeVZhcmlhYmxlcyk7XG4gIGNvbnN0IHF1ZXJ5TmFtZSA9IG5hbWUucmVwbGFjZSgvIC9nLCAnJyk7XG4gIGNvbnN0IHF1ZXJ5ID0gYCR7dHlwZX0gJHt1cHBlckZpcnN0KGNhbWVsQ2FzZShgJHtkYXRhVHlwZX1fJHtxdWVyeU5hbWV9YCkpfSR7XG4gICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgPyBgKCR7dmFyaWFibGVLZXlzLm1hcCgoa2V5KSA9PiBgJCR7a2V5fTogJHtxdWVyeVZhcmlhYmxlc1trZXldLnR5cGV9YCkuam9pbignLCAnKX0pYFxuICAgICAgOiAnJ1xuICB9IHtcbiAgICAke2RhdGFUeXBlfSB7XG4gICAgICAke2NhbWVsQ2FzZShxdWVyeU5hbWUpfSR7XG4gICAgICAgIHZhcmlhYmxlS2V5cy5sZW5ndGhcbiAgICAgICAgICA/IGAoJHt2YXJpYWJsZUtleXMubWFwKChrZXkpID0+IGAke2tleX06ICQke2tleX1gKS5qb2luKCcsICcpfSlgXG4gICAgICAgICAgOiAnJ1xuICAgICAgfVxuICAgICAgJHtyZXR1cm5Qcm9wZXJ0aWVzPy5sZW5ndGggPyBgeyR7cmV0dXJuUHJvcGVydGllcy5qb2luKCcsICcpfX1gIDogJyd9XG4gICAgfVxuICB9YDtcblxuICBjb25zdCB1cGRhdGVkVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHZhcmlhYmxlS2V5cy5yZWR1Y2UoKHF1ZXJ5RGF0YSwga2V5KSA9PiB7XG4gICAgcXVlcnlEYXRhW2tleV0gPSBxdWVyeVZhcmlhYmxlc1trZXldLnZhbHVlO1xuICAgIHJldHVybiBxdWVyeURhdGE7XG4gIH0sIHt9KTtcblxuICByZXR1cm4ge3F1ZXJ5LCB2YXJpYWJsZXM6IHVwZGF0ZWRWYXJpYWJsZXN9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU11dGF0aW9uID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGRhdGFUeXBlOiBSZWFrdG9yRGJDb2xsZWN0aW9uLFxuICB2YXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzID0ge30sXG4gIHJldHVyblByb3BlcnRpZXM6IHN0cmluZ1tdID0gW11cbikgPT4gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHZhcmlhYmxlcywgcmV0dXJuUHJvcGVydGllcywgJ211dGF0aW9uJyk7XG5cbmV4cG9ydCBjb25zdCBhcHBRdWVyeSA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgYXBwVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdhcHAuYXBpLnVybCcpO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBhcHBVcmwsIHRydWUsIHF1ZXJ5LCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhcHBNdXRhdGlvbiA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlTXV0YXRpb24obmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgYXBwVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdhcHAuYXBpLnVybCcpO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBhcHBVcmwsIHRydWUsIHF1ZXJ5LCBvcHRpb25zKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNRdWVyeSA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPEFwaVJlc3VsdHNUeXBlPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgcHVibGljVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdhcHAuYXBpLnB1YmxpYycpO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBwdWJsaWNVcmwsIGZhbHNlLCBxdWVyeSwgb3B0aW9ucyk7XG59O1xuXG5leHBvcnQgY29uc3QgcHVibGljTXV0YXRpb24gPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlTXV0YXRpb24obmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgcHVibGljVXJsOiBzdHJpbmcgPSBDb25maWcuZ2V0KCdhcHAuYXBpLnB1YmxpYycpO1xuICByZXR1cm4gZ2V0R3JhcGhxbChmbHV4LCBwdWJsaWNVcmwsIGZhbHNlLCBxdWVyeSwgb3B0aW9ucykgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGxvYWRJbWFnZSA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgaW1hZ2UsXG4gIG9wdGlvbnM6IEh1bnRlck9wdGlvbnNUeXBlID0ge31cbik6IFByb21pc2U8QXBpUmVzdWx0c1R5cGU+ID0+IHtcbiAgY29uc3QgdG9rZW4gPSBmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nKTtcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3Rva2VufWApO1xuICBjb25zdCB1cGxvYWRJbWFnZVVybDogc3RyaW5nID0gQ29uZmlnLmdldCgnYXBwLmFwaS51cGxvYWRJbWFnZScpO1xuICByZXR1cm4gcG9zdCh1cGxvYWRJbWFnZVVybCwgaW1hZ2UsIHtoZWFkZXJzLCAuLi5vcHRpb25zfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVmcmVzaFNlc3Npb24gPSBhc3luYyAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIHRva2VuPzogc3RyaW5nLFxuICBleHBpcmVzOiBudW1iZXIgPSAxNVxuKTogUHJvbWlzZTxGbHV4QWN0aW9uIHwgbnVsbD4gPT4ge1xuICBjb25zdCByZWZyZXNoVG9rZW4gPSBpc0VtcHR5KHRva2VuKSA/IHRva2VuIDogZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJyk7XG5cbiAgaWYoaXNFbXB0eShyZWZyZXNoVG9rZW4pKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgZXhwaXJlczoge1xuICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgdmFsdWU6IGV4cGlyZXNcbiAgICAgIH0sXG4gICAgICB0b2tlbjoge1xuICAgICAgICB0eXBlOiAnU3RyaW5nIScsXG4gICAgICAgIHZhbHVlOiB0b2tlblxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEFwaVJlc3VsdHNUeXBlID0ge30pOiBQcm9taXNlPEZsdXhBY3Rpb24+ID0+IHtcbiAgICAgIGNvbnN0IHtyZWZyZXNoU2Vzc2lvbjogc2Vzc2lvbkRhdGEgPSB7fX0gPSBkYXRhO1xuICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3Nlc3Npb246IHNlc3Npb25EYXRhLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5VUERBVEVfU0VTU0lPTl9TVUNDRVNTfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCBwdWJsaWNNdXRhdGlvbihmbHV4LCAncmVmcmVzaFNlc3Npb24nLCAndXNlcnMnLCBxdWVyeVZhcmlhYmxlcywgWydleHBpcmVzJywgJ2lzc3VlZCcsICd0b2tlbiddLCB7XG4gICAgICBvblN1Y2Nlc3NcbiAgICB9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBVU0VSX0NPTlNUQU5UUy5HRVRfU0VTU0lPTl9FUlJPUn0pO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLE9BQVEsWUFBQUEsRUFBVSxnQkFBQUMsRUFBYyxRQUFBQyxNQUFXLG9CQUMzQyxPQUFRLGFBQUFDLEVBQVcsV0FBQUMsRUFBUyxjQUFBQyxNQUFpQixlQUM3QyxPQUFRLFlBQUFDLE1BQWUsUUFFdkIsT0FBUSxVQUFBQyxNQUFhLFlBQ3JCLE9BQVEsaUJBQUFDLE1BQW9CLHFCQUM1QixPQUFRLGtCQUFBQyxNQUFxQixzQkFxRHRCLE1BQU1DLEVBQWEsTUFDeEJDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLElBQzRCLENBQzVCLEtBQU0s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QUMzQyxPQUFPckIsRUFBSyxTQUFTLENBQUMsUUFBU2dELEVBQWEsS0FBTWxELEVBQWUsc0JBQXNCLENBQUMsQ0FDMUYsQ0FJQSxDQUFDLENBQ0gsT0FBUXdCLEVBQU8sQ0FDYixPQUFBdEIsRUFBSyxTQUFTLENBQUMsTUFBQXNCLEVBQU8sS0FBTXhCLEVBQWUsaUJBQWlCLENBQUMsRUFDdEQsSUFDVCxDQUNGIiwKICAibmFtZXMiOiBbIkFwaUVycm9yIiwgImdyYXBocWxRdWVyeSIsICJwb3N0IiwgImNhbWVsQ2FzZSIsICJpc0VtcHR5IiwgInVwcGVyRmlyc3QiLCAiRGF0ZVRpbWUiLCAiQ29uZmlnIiwgIkFQUF9DT05TVEFOVFMiLCAiVVNFUl9DT05TVEFOVFMiLCAiZ2V0R3JhcGhxbCIsICJmbHV4IiwgInVybCIsICJhdXRoZW50aWNhdGUiLCAicXVlcnkiLCAib3B0aW9ucyIsICJvblN1Y2Nlc3MiLCAicmV0cnkiLCAibm93IiwgImV4cGlyZXMiLCAiX2lzc3VlZCIsICJjdXJyZW50VG9rZW4iLCAidG9rZW4iLCAibm93RGF0ZSIsICJleHBpcmVzRGF0ZSIsICJleHBpcmVkRGlmZiIsICJzZXNzaW9uTWluIiwgImlzc3VlZERhdGUiLCAidXBkYXRlZFNlc3Npb24iLCAicmVmcmVzaFNlc3Npb24iLCAibmV3VG9rZW4iLCAicmVzdWx0cyIsICJkYXRhIiwgImVycm9yIiwgImVycm9ycyIsICJjcmVhdGVRdWVyeSIsICJuYW1lIiwgImRhdGFUeXBlIiwgInZhcmlhYmxlcyIsICJyZXR1cm5Qcm9wZXJ0aWVzIiwgInR5cGUiLCAicXVlcnlWYXJpYWJsZXMiLCAidmFyaWFibGVLZXlzIiwgInF1ZXJ5TmFtZSIsICJrZXkiLCAidXBkYXRlZFZhcmlhYmxlcyIsICJxdWVyeURhdGEiLCAiY3JlYXRlTXV0YXRpb24iLCAiYXBwUXVlcnkiLCAiYXBwVXJsIiwgImFwcE11dGF0aW9uIiwgInB1YmxpY1F1ZXJ5IiwgInB1YmxpY1VybCIsICJwdWJsaWNNdXRhdGlvbiIsICJ1cGxvYWRJbWFnZSIsICJpbWFnZSIsICJoZWFkZXJzIiwgInVwbG9hZEltYWdlVXJsIiwgInJlZnJlc2hUb2tlbiIsICJzZXNzaW9uRGF0YSJdCn0K
95
+ };
96
+ export const createQuery = (name, dataType, variables = {}, returnProperties = [], type = 'query')=>{
97
+ const queryVariables = {
98
+ ...variables || {}
99
+ };
100
+ const variableKeys = Object.keys(queryVariables);
101
+ const queryName = name.replace(/ /g, '');
102
+ let query;
103
+ if (type === 'mutation') {
104
+ const mutationName = upperFirst(camelCase(dataType)) + upperFirst(camelCase(queryName));
105
+ query = `${type} ${mutationName}${variableKeys.length ? `(${variableKeys.map((key)=>`$${key}: ${queryVariables[key].type}`).join(', ')})` : ''} {
106
+ ${dataType} {
107
+ ${camelCase(queryName)}${variableKeys.length ? `(${variableKeys.map((key)=>`${key}: $${key}`).join(', ')})` : ''}
108
+ ${returnProperties?.length ? `{${returnProperties.join(', ')}}` : ''}
109
+ }
110
+ }`;
111
+ } else {
112
+ query = `${type} ${queryName}${variableKeys.length ? `(${variableKeys.map((key)=>`$${key}: ${queryVariables[key].type}`).join(', ')})` : ''} {
113
+ ${dataType} {
114
+ ${camelCase(queryName)}${variableKeys.length ? `(${variableKeys.map((key)=>`${key}: $${key}`).join(', ')})` : ''}
115
+ ${returnProperties?.length ? `{${returnProperties.join(', ')}}` : ''}
116
+ }
117
+ }`;
118
+ }
119
+ const updatedVariables = variableKeys.reduce((queryData, key)=>{
120
+ queryData[key] = queryVariables[key].value;
121
+ return queryData;
122
+ }, {});
123
+ return {
124
+ query,
125
+ variables: updatedVariables
126
+ };
127
+ };
128
+ export const createMutation = (name, dataType, variables = {}, returnProperties = [])=>createQuery(name, dataType, variables, returnProperties, 'mutation');
129
+ export const appQuery = (flux, name, dataType, queryVariables, returnProperties, options = {})=>{
130
+ const query = createQuery(name, dataType, queryVariables, returnProperties);
131
+ const config = getConfigFromFlux(flux);
132
+ const appUrl = config.app?.api?.url || '';
133
+ return getGraphql(flux, appUrl, true, query, options);
134
+ };
135
+ export const appMutation = (flux, name, dataType, queryVariables, returnProperties, options = {})=>{
136
+ const query = createMutation(name, dataType, queryVariables, returnProperties);
137
+ const config = getConfigFromFlux(flux);
138
+ const appUrl = config.app?.api?.url || '';
139
+ return getGraphql(flux, appUrl, true, query, options);
140
+ };
141
+ export const publicQuery = (flux, name, dataType, queryVariables, returnProperties, options = {})=>{
142
+ const query = createQuery(name, dataType, queryVariables, returnProperties);
143
+ const config = getConfigFromFlux(flux);
144
+ const publicUrl = config.app?.api?.public || '';
145
+ return getGraphql(flux, publicUrl, false, query, options);
146
+ };
147
+ export const publicMutation = (flux, name, dataType, queryVariables, returnProperties, options = {})=>{
148
+ const query = createMutation(name, dataType, queryVariables, returnProperties);
149
+ const config = getConfigFromFlux(flux);
150
+ const publicUrl = config.app?.api?.public || '';
151
+ return getGraphql(flux, publicUrl, false, query, options);
152
+ };
153
+ export const uploadImage = (flux, image, options = {})=>{
154
+ const config = getConfigFromFlux(flux);
155
+ const uploadImageUrl = config.app?.api?.uploadImage || '';
156
+ const token = flux.getState('user.session.token');
157
+ if (isEmpty(uploadImageUrl)) {
158
+ return Promise.reject(new ApiError([
159
+ 'invalid_url'
160
+ ], 'upload_endpoint_not_configured'));
161
+ }
162
+ if (isEmpty(token)) {
163
+ return Promise.reject(new ApiError([
164
+ 'invalid_session'
165
+ ], 'missing_auth_token'));
166
+ }
167
+ const headers = new Headers();
168
+ headers.set('Authorization', `Bearer ${token}`);
169
+ if (typeof FormData !== 'undefined' && image instanceof FormData) {
170
+ headers.set('Accept', 'application/json');
171
+ return fetch(uploadImageUrl, {
172
+ body: image,
173
+ headers,
174
+ method: 'POST'
175
+ }).then(async (response)=>{
176
+ const responseType = response.headers.get('content-type') || '';
177
+ const data = responseType.includes('application/json') ? await response.json() : await response.text();
178
+ if (!response.ok) {
179
+ const message = typeof data === 'object' && data && 'error' in data ? String(data.error || response.statusText) : String(data || response.statusText);
180
+ throw new ApiError([
181
+ 'upload_error'
182
+ ], message);
183
+ }
184
+ return data;
185
+ });
186
+ }
187
+ return post(uploadImageUrl, image, {
188
+ headers,
189
+ ...options
190
+ });
191
+ };
192
+ export const refreshSession = async (flux, token, expires)=>{
193
+ const refreshToken = isEmpty(token) ? flux.getState('user.session.token') : token;
194
+ if (isEmpty(refreshToken)) {
195
+ return null;
196
+ }
197
+ const tokenExpiresAt = parseJwtExpiryMs(String(refreshToken));
198
+ if (tokenExpiresAt > 0 && Date.now() >= tokenExpiresAt) {
199
+ const error = new Error('expired_session');
200
+ await clearInvalidSessionState(flux);
201
+ flux.dispatch({
202
+ error,
203
+ type: USER_CONSTANTS.GET_SESSION_ERROR
204
+ });
205
+ return null;
206
+ }
207
+ try {
208
+ const config = getConfigFromFlux(flux);
209
+ const requestedExpires = Math.max(1, Number(expires || config.app?.session?.maxMinutes || DEFAULT_SESSION_MAX_MINUTES));
210
+ const queryVariables = {
211
+ expires: {
212
+ type: 'Int',
213
+ value: requestedExpires
214
+ },
215
+ token: {
216
+ type: 'String!',
217
+ value: refreshToken
218
+ }
219
+ };
220
+ const onSuccess = async (data = {})=>{
221
+ const rawSessionData = data?.users?.refreshSession;
222
+ const sessionData = rawSessionData && typeof rawSessionData === 'object' ? rawSessionData : {};
223
+ const currentSession = flux.getState('user.session', {}) || {};
224
+ const mergedSession = await storeSession(flux, {
225
+ ...currentSession,
226
+ ...sessionData
227
+ });
228
+ return flux.dispatch({
229
+ session: mergedSession,
230
+ type: USER_CONSTANTS.UPDATE_SESSION_SUCCESS
231
+ });
232
+ };
233
+ return await publicMutation(flux, 'refreshSession', 'users', queryVariables, [
234
+ 'expires',
235
+ 'issued',
236
+ 'token'
237
+ ], {
238
+ onSuccess
239
+ });
240
+ } catch (error) {
241
+ const errorMessage = error instanceof Error ? error.message : '';
242
+ if (errorMessage === 'invalid_session' || errorMessage === 'expired_session') {
243
+ await clearInvalidSessionState(flux);
244
+ }
245
+ flux.dispatch({
246
+ error,
247
+ type: USER_CONSTANTS.GET_SESSION_ERROR
248
+ });
249
+ return null;
250
+ }
251
+ };
252
+
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvdXRpbHMvYXBpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBpRXJyb3IsIGdyYXBocWxRdWVyeSwgcG9zdH0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjYW1lbENhc2UsIGlzRW1wdHksIHVwcGVyRmlyc3R9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7QVBQX0NPTlNUQU5UU30gZnJvbSAnLi4vc3RvcmVzL2FwcFN0b3JlLmpzJztcbmltcG9ydCB7VVNFUl9DT05TVEFOVFN9IGZyb20gJy4uL3N0b3Jlcy91c2VyU3RvcmUuanMnO1xuaW1wb3J0IHtnZXRDb25maWdGcm9tRmx1eH0gZnJvbSAnLi9jb25maWdVdGlscy5qcyc7XG5pbXBvcnQge2NsZWFyUGVyc2lzdGVkU2Vzc2lvbiwgZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMsIGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UsIHBhcnNlSnd0RXhwaXJ5TXMsIHN0b3JlU2Vzc2lvbn0gZnJvbSAnLi9zZXNzaW9uLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhBY3Rpb24sIEZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7SHVudGVyT3B0aW9uc1R5cGUsIEh1bnRlclF1ZXJ5VHlwZX0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaU9wdGlvbnMge1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiAoZGF0YTogYW55KSA9PiBQcm9taXNlPEZsdXhBY3Rpb24+O1xuICByZWFkb25seSB2YXJpYWJsZXM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuZXhwb3J0IHR5cGUgUmVha3RvckRiQ29sbGVjdGlvbiA9XG4gICdhcHBzJyB8XG4gICdjb25uZWN0aW9ucycgfFxuICAnY29udGVudHMnIHxcbiAgJ2NvbnZlcnNhdGlvbnMnIHxcbiAgJ2V2ZW50cycgfFxuICAnZmlsZXMnIHxcbiAgJ2dyb3VwcycgfFxuICAnaW1hZ2VzJyB8XG4gICdsb2NhdGlvbnMnIHxcbiAgJ21lc3NhZ2VzJyB8XG4gICdub3RpZmljYXRpb25zJyB8XG4gICdwYXltZW50cycgfFxuICAncGVybWlzc2lvbnMnIHxcbiAgJ3Bvc3RzJyB8XG4gICdwZXJzb25hcycgfFxuICAncmVhY3Rpb25zJyB8XG4gICdzdWJzY3JpcHRpb25zJyB8XG4gICd0YWdzJyB8XG4gICd0cmFuc2xhdGlvbnMnIHxcbiAgJ3VzZXJzJyB8XG4gICd2aWRlb3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVF1ZXJ5VmFyaWFibGVUeXBlIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSB2YWx1ZTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcGlRdWVyeVZhcmlhYmxlcyB7XG4gIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IEFwaVF1ZXJ5VmFyaWFibGVUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3VsdHNUeXBlIHtcbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXRyeVR5cGUge1xuICByZWFkb25seSBxdWVyeTogSHVudGVyUXVlcnlUeXBlIHwgSHVudGVyUXVlcnlUeXBlW107XG4gIHJlYWRvbmx5IHJlc3BvbnNlTWV0aG9kOiAocmVzdWx0czogQXBpUmVzdWx0c1R5cGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vzc2lvblR5cGUge1xuICByZWFkb25seSBleHBpcmVzPzogbnVtYmVyO1xuICByZWFkb25seSBpc3N1ZWQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICByZWFkb25seSB1c2VySWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX1JFRlJFU0hfV0lORE9XX01JTlVURVMgPSA1O1xuY29uc3QgREVGQVVMVF9TRVNTSU9OX01BWF9NSU5VVEVTID0gMTU7XG5cbmNvbnN0IGdldE1pbnV0ZXNVbnRpbCA9IChleHBpcmVzQXQ6IG51bWJlcik6IG51bWJlciA9PlxuICBNYXRoLnJvdW5kKChleHBpcmVzQXQgLSBEYXRlLm5vdygpKSAvICgxMDAwICogNjApKTtcblxuY29uc3QgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlID0gYXN5bmMgKGZsdXg6IEZsdXhGcmFtZXdvcmspOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgYXdhaXQgY2xlYXJQZXJzaXN0ZWRTZXNzaW9uKGZsdXgpO1xuICBhd2FpdCBmbHV4LmNsZWFyQXBwRGF0YSgpO1xuICBhd2FpdCBmbHV4LmRpc3BhdGNoKHtzZXNzaW9uOiB7fSwgdHlwZTogVVNFUl9DT05TVEFOVFMuU0lHTl9PVVRfU1VDQ0VTU30pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdyYXBocWwgPSBhc3luYyAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIHVybDogc3RyaW5nLFxuICBhdXRoZW50aWNhdGU6IGJvb2xlYW4sXG4gIHF1ZXJ5OiBIdW50ZXJRdWVyeVR5cGUgfCBIdW50ZXJRdWVyeVR5cGVbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9uc1xuKTogUHJvbWlzZTxBcGlSZXN1bHRzVHlwZT4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHtvblN1Y2Nlc3N9ID0gb3B0aW9ucztcbiAgICBjb25zdCByZXRyeTogUmV0cnlUeXBlID0ge3F1ZXJ5LCByZXNwb25zZU1ldGhvZDogb25TdWNjZXNzIHx8ICgoKSA9PiB7fSl9O1xuICAgIGNvbnN0IG5ldHdvcmtUeXBlOiBzdHJpbmcgPSBmbHV4LmdldFN0YXRlKCdhcHAubmV0d29ya1R5cGUnKSBhcyBzdHJpbmc7XG5cbiAgICBpZihuZXR3b3JrVHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7cmV0cnksIHR5cGU6IEFQUF9DT05TVEFOVFMuQVBJX05FVFdPUktfRVJST1J9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0ZVNlc3Npb246IFNlc3Npb25UeXBlID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicpIHx8IHt9KSBhcyBTZXNzaW9uVHlwZTtcbiAgICBsZXQgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGlmKGF1dGhlbnRpY2F0ZSkge1xuICAgICAgY29uc3QgaHlkcmF0ZWRTZXNzaW9uOiBTZXNzaW9uVHlwZSA9IHN0YXRlU2Vzc2lvbi50b2tlbiA/IHN0YXRlU2Vzc2lvbiA6IGF3YWl0IGh5ZHJhdGVTZXNzaW9uRnJvbVN0b3JhZ2UoZmx1eCk7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGV4cGlyZXM6IGF1dGhFeHBpcmVzID0gMCxcbiAgICAgICAgaXNzdWVkOiBhdXRoSXNzdWVkID0gMCxcbiAgICAgICAgdG9rZW46IGh5ZHJhdGVkVG9rZW5cbiAgICAgIH06IFNlc3Npb25UeXBlID0gaHlkcmF0ZWRTZXNzaW9uIHx8IHt9O1xuICAgICAgdG9rZW4gPSBoeWRyYXRlZFRva2VuIHx8IHN0YXRlU2Vzc2lvbi50b2tlbjtcblxuICAgICAgaWYoIXRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfc2Vzc2lvbiddLCAnaW52YWxpZF9zZXNzaW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyh0b2tlbik7XG5cbiAgICAgIGlmKHRva2VuRXhwaXJlc0F0ID4gMCAmJiBEYXRlLm5vdygpID49IHRva2VuRXhwaXJlc0F0KSB7XG4gICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2V4cGlyZWRfc2Vzc2lvbiddLCAnZXhwaXJlZF9zZXNzaW9uJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICAgICAgY29uc3QgbWludXRlc1VudGlsRXhwaXJ5ID0gZ2V0TWludXRlc1VudGlsKE51bWJlcihhdXRoRXhwaXJlcyB8fCAwKSk7XG4gICAgICBjb25zdCBzZXNzaW9uTGlmZXRpbWVNaW51dGVzID0gTWF0aC5yb3VuZCgoYXV0aEV4cGlyZXMgLSBhdXRoSXNzdWVkKSAvICgxMDAwICogNjApKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hXaW5kb3dNaW51dGVzID0gZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMoXG4gICAgICAgIHNlc3Npb25MaWZldGltZU1pbnV0ZXMgfHwgREVGQVVMVF9TRVNTSU9OX01BWF9NSU5VVEVTLFxuICAgICAgICBjb25maWcuYXBwPy5zZXNzaW9uIHx8IHt9XG4gICAgICApO1xuICAgICAgY29uc3QgcmVmcmVzaEV4cGlyZXNNaW51dGVzID0gTWF0aC5tYXgoXG4gICAgICAgIDEsXG4gICAgICAgIE51bWJlcihjb25maWcuYXBwPy5zZXNzaW9uPy5tYXhNaW51dGVzIHx8IHNlc3Npb25MaWZldGltZU1pbnV0ZXMgfHwgREVGQVVMVF9TRVNTSU9OX01BWF9NSU5VVEVTKVxuICAgICAgKTtcblxuICAgICAgaWYobWludXRlc1VudGlsRXhwaXJ5ID4gMCAmJiBtaW51dGVzVW50aWxFeHBpcnkgPD0gcmVmcmVzaFdpbmRvd01pbnV0ZXMpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHNlc3Npb246IHVwZGF0ZWRTZXNzaW9uID0ge31cbiAgICAgICAgfTogQXBpUmVzdWx0c1R5cGUgPSAoYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4sIHJlZnJlc2hFeHBpcmVzTWludXRlcykpIHx8IHt9O1xuICAgICAgICBjb25zdCB7dG9rZW46IG5ld1Rva2VufTogU2Vzc2lvblR5cGUgPSAodXBkYXRlZFNlc3Npb24gfHwge30pO1xuXG4gICAgICAgIGlmKCFuZXdUb2tlbikge1xuICAgICAgICAgIHRocm93IG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfc2Vzc2lvbiddLCAnaW52YWxpZF9zZXNzaW9uJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0b2tlbiA9IG5ld1Rva2VuO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBncmFwaHFsUXVlcnkodXJsLCBxdWVyeSwge3Rva2VuOiB0b2tlbiB8fCAnJ30pXG4gICAgICAudGhlbihhc3luYyAocmVzdWx0cykgPT4ge1xuICAgICAgICBhd2FpdCBmbHV4LmRpc3BhdGNoKHt0eXBlOiBBUFBfQ09OU1RBTlRTLkFQSV9ORVRXT1JLX1NVQ0NFU1N9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH0pXG4gICAgICAudGhlbigoZGF0YSkgPT4gKG9uU3VjY2VzcyA/IG9uU3VjY2VzcyhkYXRhKSA6IGRhdGEpKVxuICAgICAgLmNhdGNoKGFzeW5jIChlcnJvcikgPT4ge1xuICAgICAgICBjb25zdCB7ZXJyb3JzID0gW119ID0gZXJyb3I7XG5cbiAgICAgICAgaWYob25TdWNjZXNzICYmIGVycm9ycy5pbmNsdWRlcygnbmV0d29ya19lcnJvcicpKSB7XG4gICAgICAgICAgYXdhaXQgZmx1eC5kaXNwYXRjaCh7cmV0cnksIHR5cGU6IEFQUF9DT05TVEFOVFMuQVBJX05FVFdPUktfRVJST1J9KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgICAgICB9IGVsc2UgaWYoZXJyb3JzLmluY2x1ZGVzKCdpbnZhbGlkX3Nlc3Npb24nKSB8fCBlcnJvcnMuaW5jbHVkZXMoJ2V4cGlyZWRfc2Vzc2lvbicpKSB7XG4gICAgICAgICAgYXdhaXQgY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlKGZsdXgpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgIH0pO1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc3QgZXJyb3JzID0gZXJyb3IgaW5zdGFuY2VvZiBBcGlFcnJvciA/IGVycm9yLmVycm9ycyA6IFtdO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICcnO1xuXG4gICAgaWYoZXJyb3JzLmluY2x1ZGVzKCdpbnZhbGlkX3Nlc3Npb24nKSB8fCBlcnJvcnMuaW5jbHVkZXMoJ2V4cGlyZWRfc2Vzc2lvbicpIHx8IG1lc3NhZ2UgPT09ICdpbnZhbGlkX3Nlc3Npb24nIHx8IG1lc3NhZ2UgPT09ICdleHBpcmVkX3Nlc3Npb24nKSB7XG4gICAgICBhd2FpdCBjbGVhckludmFsaWRTZXNzaW9uU3RhdGUoZmx1eCk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVRdWVyeSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgdmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyA9IHt9LFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IFtdLFxuICB0eXBlID0gJ3F1ZXJ5J1xuKSA9PiB7XG4gIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0gey4uLnZhcmlhYmxlcyB8fCB7fX07XG4gIGNvbnN0IHZhcmlhYmxlS2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5VmFyaWFibGVzKTtcbiAgY29uc3QgcXVlcnlOYW1lID0gbmFtZS5yZXBsYWNlKC8gL2csICcnKTtcbiAgbGV0IHF1ZXJ5OiBzdHJpbmc7XG5cbiAgaWYodHlwZSA9PT0gJ211dGF0aW9uJykge1xuICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IHVwcGVyRmlyc3QoY2FtZWxDYXNlKGRhdGFUeXBlKSkgKyB1cHBlckZpcnN0KGNhbWVsQ2FzZShxdWVyeU5hbWUpKTtcbiAgICBxdWVyeSA9IGAke3R5cGV9ICR7bXV0YXRpb25OYW1lfSR7XG4gICAgICB2YXJpYWJsZUtleXMubGVuZ3RoXG4gICAgICAgID8gYCgke3ZhcmlhYmxlS2V5cy5tYXAoKGtleSkgPT4gYCQke2tleX06ICR7cXVlcnlWYXJpYWJsZXNba2V5XS50eXBlfWApLmpvaW4oJywgJyl9KWBcbiAgICAgICAgOiAnJ1xuICAgIH0ge1xuICAgICAgJHtkYXRhVHlwZX0ge1xuICAgICAgICAke2NhbWVsQ2FzZShxdWVyeU5hbWUpfSR7XG4gICAgICAgICAgdmFyaWFibGVLZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBgKCR7dmFyaWFibGVLZXlzLm1hcCgoa2V5KSA9PiBgJHtrZXl9OiAkJHtrZXl9YCkuam9pbignLCAnKX0pYFxuICAgICAgICAgICAgOiAnJ1xuICAgICAgICB9XG4gICAgICAgICR7cmV0dXJuUHJvcGVydGllcz8ubGVuZ3RoID8gYHske3JldHVyblByb3BlcnRpZXMuam9pbignLCAnKX19YCA6ICcnfVxuICAgICAgfVxuICAgIH1gO1xuICB9IGVsc2Uge1xuICAgIHF1ZXJ5ID0gYCR7dHlwZX0gJHtxdWVyeU5hbWV9JHtcbiAgICAgIHZhcmlhYmxlS2V5cy5sZW5ndGhcbiAgICAgICAgPyBgKCR7dmFyaWFibGVLZXlzLm1hcCgoa2V5KSA9PiBgJCR7a2V5fTogJHtxdWVyeVZhcmlhYmxlc1trZXldLnR5cGV9YCkuam9pbignLCAnKX0pYFxuICAgICAgICA6ICcnXG4gICAgfSB7XG4gICAgICAke2RhdGFUeXBlfSB7XG4gICAgICAgICR7Y2FtZWxDYXNlKHF1ZXJ5TmFtZSl9JHtcbiAgICAgICAgICB2YXJpYWJsZUtleXMubGVuZ3RoXG4gICAgICAgICAgICA/IGAoJHt2YXJpYWJsZUtleXMubWFwKChrZXkpID0+IGAke2tleX06ICQke2tleX1gKS5qb2luKCcsICcpfSlgXG4gICAgICAgICAgICA6ICcnXG4gICAgICAgIH1cbiAgICAgICAgJHtyZXR1cm5Qcm9wZXJ0aWVzPy5sZW5ndGggPyBgeyR7cmV0dXJuUHJvcGVydGllcy5qb2luKCcsICcpfX1gIDogJyd9XG4gICAgICB9XG4gICAgfWA7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHZhcmlhYmxlS2V5cy5yZWR1Y2UoKHF1ZXJ5RGF0YSwga2V5KSA9PiB7XG4gICAgcXVlcnlEYXRhW2tleV0gPSBxdWVyeVZhcmlhYmxlc1trZXldLnZhbHVlO1xuICAgIHJldHVybiBxdWVyeURhdGE7XG4gIH0sIHt9KTtcblxuICByZXR1cm4ge3F1ZXJ5LCB2YXJpYWJsZXM6IHVwZGF0ZWRWYXJpYWJsZXN9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU11dGF0aW9uID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGRhdGFUeXBlOiBSZWFrdG9yRGJDb2xsZWN0aW9uLFxuICB2YXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzID0ge30sXG4gIHJldHVyblByb3BlcnRpZXM6IHN0cmluZ1tdID0gW11cbikgPT4gY3JlYXRlUXVlcnkobmFtZSwgZGF0YVR5cGUsIHZhcmlhYmxlcywgcmV0dXJuUHJvcGVydGllcywgJ211dGF0aW9uJyk7XG5cbmV4cG9ydCBjb25zdCBhcHBRdWVyeSA9IDxUPihcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjcmVhdGVRdWVyeShuYW1lLCBkYXRhVHlwZSwgcXVlcnlWYXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgYXBwVXJsOiBzdHJpbmcgPSBjb25maWcuYXBwPy5hcGk/LnVybCB8fCAnJztcbiAgcmV0dXJuIGdldEdyYXBocWwoZmx1eCwgYXBwVXJsLCB0cnVlLCBxdWVyeSwgb3B0aW9ucykgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBjb25zdCBhcHBNdXRhdGlvbiA9IDxUPihcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjcmVhdGVNdXRhdGlvbihuYW1lLCBkYXRhVHlwZSwgcXVlcnlWYXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgYXBwVXJsOiBzdHJpbmcgPSBjb25maWcuYXBwPy5hcGk/LnVybCB8fCAnJztcbiAgcmV0dXJuIGdldEdyYXBocWwoZmx1eCwgYXBwVXJsLCB0cnVlLCBxdWVyeSwgb3B0aW9ucykgYXMgUHJvbWlzZTxUPjtcbn07XG5cbmV4cG9ydCBjb25zdCBwdWJsaWNRdWVyeSA9IDxUPihcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgbmFtZTogc3RyaW5nLFxuICBkYXRhVHlwZTogUmVha3RvckRiQ29sbGVjdGlvbixcbiAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgb3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgcXVlcnkgPSBjcmVhdGVRdWVyeShuYW1lLCBkYXRhVHlwZSwgcXVlcnlWYXJpYWJsZXMsIHJldHVyblByb3BlcnRpZXMpO1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgcHVibGljVXJsOiBzdHJpbmcgPSBjb25maWcuYXBwPy5hcGk/LnB1YmxpYyB8fCAnJztcbiAgcmV0dXJuIGdldEdyYXBocWwoZmx1eCwgcHVibGljVXJsLCBmYWxzZSwgcXVlcnksIG9wdGlvbnMpIGFzIFByb21pc2U8VD47XG59O1xuXG5leHBvcnQgY29uc3QgcHVibGljTXV0YXRpb24gPSA8VD4oXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG5hbWU6IHN0cmluZyxcbiAgZGF0YVR5cGU6IFJlYWt0b3JEYkNvbGxlY3Rpb24sXG4gIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgcmV0dXJuUHJvcGVydGllczogc3RyaW5nW10sXG4gIG9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IHF1ZXJ5ID0gY3JlYXRlTXV0YXRpb24obmFtZSwgZGF0YVR5cGUsIHF1ZXJ5VmFyaWFibGVzLCByZXR1cm5Qcm9wZXJ0aWVzKTtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gIGNvbnN0IHB1YmxpY1VybDogc3RyaW5nID0gY29uZmlnLmFwcD8uYXBpPy5wdWJsaWMgfHwgJyc7XG4gIHJldHVybiBnZXRHcmFwaHFsKGZsdXgsIHB1YmxpY1VybCwgZmFsc2UsIHF1ZXJ5LCBvcHRpb25zKSBhcyBQcm9taXNlPFQ+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwbG9hZEltYWdlID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBpbWFnZSxcbiAgb3B0aW9uczogSHVudGVyT3B0aW9uc1R5cGUgPSB7fVxuKTogUHJvbWlzZTxBcGlSZXN1bHRzVHlwZT4gPT4ge1xuICBjb25zdCBjb25maWcgPSBnZXRDb25maWdGcm9tRmx1eChmbHV4KTtcbiAgY29uc3QgdXBsb2FkSW1hZ2VVcmw6IHN0cmluZyA9IGNvbmZpZy5hcHA/LmFwaT8udXBsb2FkSW1hZ2UgfHwgJyc7XG4gIGNvbnN0IHRva2VuID0gZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJyk7XG5cbiAgaWYoaXNFbXB0eSh1cGxvYWRJbWFnZVVybCkpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEFwaUVycm9yKFsnaW52YWxpZF91cmwnXSwgJ3VwbG9hZF9lbmRwb2ludF9ub3RfY29uZmlndXJlZCcpKTtcbiAgfVxuXG4gIGlmKGlzRW1wdHkodG9rZW4pKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBBcGlFcnJvcihbJ2ludmFsaWRfc2Vzc2lvbiddLCAnbWlzc2luZ19hdXRoX3Rva2VuJykpO1xuICB9XG5cbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7XG4gIGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3Rva2VufWApO1xuXG4gIGlmKHR5cGVvZiBGb3JtRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgaW1hZ2UgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgIGhlYWRlcnMuc2V0KCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gICAgcmV0dXJuIGZldGNoKHVwbG9hZEltYWdlVXJsLCB7XG4gICAgICBib2R5OiBpbWFnZSxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBtZXRob2Q6ICdQT1NUJ1xuICAgIH0pLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZVR5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJykgfHwgJyc7XG4gICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2VUeXBlLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJylcbiAgICAgICAgPyBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgOiBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgICAgIGlmKCFyZXNwb25zZS5vaykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmIGRhdGEgJiYgJ2Vycm9yJyBpbiBkYXRhXG4gICAgICAgICAgPyBTdHJpbmcoKGRhdGEgYXMge2Vycm9yPzogc3RyaW5nfSkuZXJyb3IgfHwgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgICAgICA6IFN0cmluZyhkYXRhIHx8IHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICB0aHJvdyBuZXcgQXBpRXJyb3IoWyd1cGxvYWRfZXJyb3InXSwgbWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhIGFzIEFwaVJlc3VsdHNUeXBlO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBvc3QodXBsb2FkSW1hZ2VVcmwsIGltYWdlLCB7aGVhZGVycywgLi4ub3B0aW9uc30pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlZnJlc2hTZXNzaW9uID0gYXN5bmMgKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICB0b2tlbj86IHN0cmluZyxcbiAgZXhwaXJlcz86IG51bWJlclxuKTogUHJvbWlzZTxGbHV4QWN0aW9uIHwgbnVsbD4gPT4ge1xuICBjb25zdCByZWZyZXNoVG9rZW4gPSBpc0VtcHR5KHRva2VuKSA/IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbi50b2tlbicpIDogdG9rZW47XG5cbiAgaWYoaXNFbXB0eShyZWZyZXNoVG9rZW4pKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCB0b2tlbkV4cGlyZXNBdCA9IHBhcnNlSnd0RXhwaXJ5TXMoU3RyaW5nKHJlZnJlc2hUb2tlbikpO1xuXG4gIGlmKHRva2VuRXhwaXJlc0F0ID4gMCAmJiBEYXRlLm5vdygpID49IHRva2VuRXhwaXJlc0F0KSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ2V4cGlyZWRfc2Vzc2lvbicpO1xuICAgIGF3YWl0IGNsZWFySW52YWxpZFNlc3Npb25TdGF0ZShmbHV4KTtcbiAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogVVNFUl9DT05TVEFOVFMuR0VUX1NFU1NJT05fRVJST1J9KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnRnJvbUZsdXgoZmx1eCk7XG4gICAgY29uc3QgcmVxdWVzdGVkRXhwaXJlcyA9IE1hdGgubWF4KFxuICAgICAgMSxcbiAgICAgIE51bWJlcihleHBpcmVzIHx8IGNvbmZpZy5hcHA/LnNlc3Npb24/Lm1heE1pbnV0ZXMgfHwgREVGQVVMVF9TRVNTSU9OX01BWF9NSU5VVEVTKVxuICAgICk7XG4gICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICBleHBpcmVzOiB7XG4gICAgICAgIHR5cGU6ICdJbnQnLFxuICAgICAgICB2YWx1ZTogcmVxdWVzdGVkRXhwaXJlc1xuICAgICAgfSxcbiAgICAgIHRva2VuOiB7XG4gICAgICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICAgICAgdmFsdWU6IHJlZnJlc2hUb2tlblxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25TdWNjZXNzID0gYXN5bmMgKGRhdGE6IEFwaVJlc3VsdHNUeXBlID0ge30pOiBQcm9taXNlPEZsdXhBY3Rpb24+ID0+IHtcbiAgICAgIGNvbnN0IHJhd1Nlc3Npb25EYXRhID0gKGRhdGEgYXMge3VzZXJzPzoge3JlZnJlc2hTZXNzaW9uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj59fSk/LnVzZXJzPy5yZWZyZXNoU2Vzc2lvbjtcbiAgICAgIGNvbnN0IHNlc3Npb25EYXRhID0gcmF3U2Vzc2lvbkRhdGEgJiYgdHlwZW9mIHJhd1Nlc3Npb25EYXRhID09PSAnb2JqZWN0J1xuICAgICAgICA/IHJhd1Nlc3Npb25EYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIDoge307XG4gICAgICBjb25zdCBjdXJyZW50U2Vzc2lvbiA9IChmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSkgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgY29uc3QgbWVyZ2VkU2Vzc2lvbiA9IGF3YWl0IHN0b3JlU2Vzc2lvbihmbHV4LCB7Li4uY3VycmVudFNlc3Npb24sIC4uLnNlc3Npb25EYXRhfSk7XG4gICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7c2Vzc2lvbjogbWVyZ2VkU2Vzc2lvbiwgdHlwZTogVVNFUl9DT05TVEFOVFMuVVBEQVRFX1NFU1NJT05fU1VDQ0VTU30pO1xuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgcHVibGljTXV0YXRpb24oZmx1eCwgJ3JlZnJlc2hTZXNzaW9uJywgJ3VzZXJzJywgcXVlcnlWYXJpYWJsZXMsIFsnZXhwaXJlcycsICdpc3N1ZWQnLCAndG9rZW4nXSwge1xuICAgICAgb25TdWNjZXNzXG4gICAgfSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICcnO1xuXG4gICAgaWYoZXJyb3JNZXNzYWdlID09PSAnaW52YWxpZF9zZXNzaW9uJyB8fCBlcnJvck1lc3NhZ2UgPT09ICdleHBpcmVkX3Nlc3Npb24nKSB7XG4gICAgICBhd2FpdCBjbGVhckludmFsaWRTZXNzaW9uU3RhdGUoZmx1eCk7XG4gICAgfVxuXG4gICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IFVTRVJfQ09OU1RBTlRTLkdFVF9TRVNTSU9OX0VSUk9SfSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn07XG4iXSwibmFtZXMiOlsiQXBpRXJyb3IiLCJncmFwaHFsUXVlcnkiLCJwb3N0IiwiY2FtZWxDYXNlIiwiaXNFbXB0eSIsInVwcGVyRmlyc3QiLCJBUFBfQ09OU1RBTlRTIiwiVVNFUl9DT05TVEFOVFMiLCJnZXRDb25maWdGcm9tRmx1eCIsImNsZWFyUGVyc2lzdGVkU2Vzc2lvbiIsImdldFJlZnJlc2hXaW5kb3dNaW51dGVzIiwiaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZSIsInBhcnNlSnd0RXhwaXJ5TXMiLCJzdG9yZVNlc3Npb24iLCJERUZBVUxUX1JFRlJFU0hfV0lORE9XX01JTlVURVMiLCJERUZBVUxUX1NFU1NJT05fTUFYX01JTlVURVMiLCJnZXRNaW51dGVzVW50aWwiLCJleHBpcmVzQXQiLCJNYXRoIiwicm91bmQiLCJEYXRlIiwibm93IiwiY2xlYXJJbnZhbGlkU2Vzc2lvblN0YXRlIiwiZmx1eCIsImNsZWFyQXBwRGF0YSIsImRpc3BhdGNoIiwic2Vzc2lvbiIsInR5cGUiLCJTSUdOX09VVF9TVUNDRVNTIiwiZ2V0R3JhcGhxbCIsInVybCIsImF1dGhlbnRpY2F0ZSIsInF1ZXJ5Iiwib3B0aW9ucyIsIm9uU3VjY2VzcyIsInJldHJ5IiwicmVzcG9uc2VNZXRob2QiLCJuZXR3b3JrVHlwZSIsImdldFN0YXRlIiwiQVBJX05FVFdPUktfRVJST1IiLCJzdGF0ZVNlc3Npb24iLCJ0b2tlbiIsImh5ZHJhdGVkU2Vzc2lvbiIsImV4cGlyZXMiLCJhdXRoRXhwaXJlcyIsImlzc3VlZCIsImF1dGhJc3N1ZWQiLCJoeWRyYXRlZFRva2VuIiwidG9rZW5FeHBpcmVzQXQiLCJjb25maWciLCJtaW51dGVzVW50aWxFeHBpcnkiLCJOdW1iZXIiLCJzZXNzaW9uTGlmZXRpbWVNaW51dGVzIiwicmVmcmVzaFdpbmRvd01pbnV0ZXMiLCJhcHAiLCJyZWZyZXNoRXhwaXJlc01pbnV0ZXMiLCJtYXgiLCJtYXhNaW51dGVzIiwidXBkYXRlZFNlc3Npb24iLCJyZWZyZXNoU2Vzc2lvbiIsIm5ld1Rva2VuIiwidGhlbiIsInJlc3VsdHMiLCJBUElfTkVUV09SS19TVUNDRVNTIiwiZGF0YSIsImNhdGNoIiwiZXJyb3IiLCJlcnJvcnMiLCJpbmNsdWRlcyIsIlByb21pc2UiLCJyZWplY3QiLCJyZXNvbHZlIiwibWVzc2FnZSIsIkVycm9yIiwiY3JlYXRlUXVlcnkiLCJuYW1lIiwiZGF0YVR5cGUiLCJ2YXJpYWJsZXMiLCJyZXR1cm5Qcm9wZXJ0aWVzIiwicXVlcnlWYXJpYWJsZXMiLCJ2YXJpYWJsZUtleXMiLCJPYmplY3QiLCJrZXlzIiwicXVlcnlOYW1lIiwicmVwbGFjZSIsIm11dGF0aW9uTmFtZSIsImxlbmd0aCIsIm1hcCIsImtleSIsImpvaW4iLCJ1cGRhdGVkVmFyaWFibGVzIiwicmVkdWNlIiwicXVlcnlEYXRhIiwidmFsdWUiLCJjcmVhdGVNdXRhdGlvbiIsImFwcFF1ZXJ5IiwiYXBwVXJsIiwiYXBpIiwiYXBwTXV0YXRpb24iLCJwdWJsaWNRdWVyeSIsInB1YmxpY1VybCIsInB1YmxpYyIsInB1YmxpY011dGF0aW9uIiwidXBsb2FkSW1hZ2UiLCJpbWFnZSIsInVwbG9hZEltYWdlVXJsIiwiaGVhZGVycyIsIkhlYWRlcnMiLCJzZXQiLCJGb3JtRGF0YSIsImZldGNoIiwiYm9keSIsIm1ldGhvZCIsInJlc3BvbnNlIiwicmVzcG9uc2VUeXBlIiwiZ2V0IiwianNvbiIsInRleHQiLCJvayIsIlN0cmluZyIsInN0YXR1c1RleHQiLCJyZWZyZXNoVG9rZW4iLCJHRVRfU0VTU0lPTl9FUlJPUiIsInJlcXVlc3RlZEV4cGlyZXMiLCJyYXdTZXNzaW9uRGF0YSIsInVzZXJzIiwic2Vzc2lvbkRhdGEiLCJjdXJyZW50U2Vzc2lvbiIsIm1lcmdlZFNlc3Npb24iLCJVUERBVEVfU0VTU0lPTl9TVUNDRVNTIiwiZXJyb3JNZXNzYWdlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxRQUFRLEVBQUVDLFlBQVksRUFBRUMsSUFBSSxRQUFPLG9CQUFvQjtBQUMvRCxTQUFRQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsVUFBVSxRQUFPLGVBQWU7QUFFNUQsU0FBUUMsYUFBYSxRQUFPLHdCQUF3QjtBQUNwRCxTQUFRQyxjQUFjLFFBQU8seUJBQXlCO0FBQ3RELFNBQVFDLGlCQUFpQixRQUFPLG1CQUFtQjtBQUNuRCxTQUFRQyxxQkFBcUIsRUFBRUMsdUJBQXVCLEVBQUVDLHlCQUF5QixFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWSxRQUFPLGVBQWU7QUEyRHZJLE1BQU1DLGlDQUFpQztBQUN2QyxNQUFNQyw4QkFBOEI7QUFFcEMsTUFBTUMsa0JBQWtCLENBQUNDLFlBQ3ZCQyxLQUFLQyxLQUFLLENBQUMsQUFBQ0Ys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
@@ -4,3 +4,4 @@ export interface ColumnSize {
4
4
  }
5
5
  export declare const getColumnSize: (width: number, maxItemWidth: number, containerPadding?: number) => ColumnSize;
6
6
  export declare const isExpired: (expires: number, limitInMin: number) => boolean;
7
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/utils/app.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,GACxB,OAAO,MAAM,EACb,cAAc,MAAM,EACpB,mBAAkB,MAAU,KAC3B,UAMF,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,KAAG,OACuB,CAAC"}