@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
package/lib/index.d.ts CHANGED
@@ -1,29 +1,52 @@
1
- import React from 'react';
2
- import { type MetropolisConfiguration } from './config';
3
- import { type MetropolisAdapters } from './utils/MetropolisProvider';
4
1
  import type { FluxFramework } from '@nlabs/arkhamjs';
5
- export type { MetropolisConfiguration } from './config';
6
- export type { MetropolisAdapters } from './utils/MetropolisProvider';
7
- export declare const onInit: (flux: FluxFramework) => void;
8
- export * from './stores';
9
- export { appMutation, appQuery, publicMutation, publicQuery, refreshSession, uploadImage, type ApiResultsType, type ReaktorDbCollection } from './utils/api';
2
+ import type { MetropolisConfiguration } from './config/index.js';
3
+ import type { MetropolisAdapters } from './utils/MetropolisProvider.js';
4
+ export { MetropolisContext, MetropolisProvider } from './utils/MetropolisProvider.js';
5
+ export type { MetropolisConfiguration } from './config/index.js';
6
+ export type { MetropolisAdapters } from './utils/MetropolisProvider.js';
7
+ export declare const onInit: (flux: FluxFramework) => Promise<void>;
8
+ export * from './stores/index.js';
9
+ export { appMutation, appQuery, publicMutation, publicQuery, refreshSession, uploadImage, type ApiResultsType, type ReaktorDbCollection } from './utils/api.js';
10
+ export { resolveEnvironmentConfig } from './config/index.js';
11
+ export { getConfigFromFlux } from './utils/configUtils.js';
10
12
  export interface MetropolisProps {
11
13
  readonly adapters?: MetropolisAdapters;
12
14
  readonly children?: React.ReactElement | React.ReactElement[];
13
15
  readonly config?: MetropolisConfiguration;
16
+ readonly translations?: SimpleTranslations | ComplexTranslations;
14
17
  }
15
- export declare const Metropolis: ({ adapters, children, config }: MetropolisProps) => import("react/jsx-runtime").JSX.Element;
18
+ export type SimpleTranslations = Record<string, string>;
19
+ export interface ComplexTranslation {
20
+ readonly value: string;
21
+ readonly locale: string;
22
+ readonly namespace?: string;
23
+ }
24
+ export type ComplexTranslations = Record<string, ComplexTranslation>;
25
+ export declare const Metropolis: ({ adapters, children, config, translations }: MetropolisProps) => import("react/jsx-runtime").JSX.Element;
16
26
  export default Metropolis;
17
- export { useMetropolis } from './utils/useMetropolis';
18
- export { createAction, createActions, createAllActions, type ActionOptions, type ActionReturnType, type ActionType, type ActionTypes } from './utils/actionFactory';
19
- export { createValidatorFactory, createValidatorManager, type BaseAdapterOptions } from './utils/validatorFactory';
20
- export { createBaseActions, type BaseActionOptions } from './utils/baseActionFactory';
21
- export * from './adapters';
22
- export * from './stores';
23
- export * from './utils/app';
24
- export * from './utils/dateUtils';
25
- export * from './utils/file';
26
- export * from './utils/location';
27
- export * from './constants/MetropolisConstants';
28
- export * from './graphql/message';
29
- export * from './graphql/notification';
27
+ export { useTranslation } from 'react-i18next';
28
+ export * from './adapters/index.js';
29
+ export * from './constants/MetropolisConstants.js';
30
+ export * from './graphql/message.js';
31
+ export * from './graphql/notification.js';
32
+ export * from './stores/index.js';
33
+ export { createAction, createActions, createAllActions } from './utils/actionFactory.js';
34
+ export * from './utils/app.js';
35
+ export { createBaseActions } from './utils/baseActionFactory.js';
36
+ export * from './utils/dateUtils.js';
37
+ export * from './utils/file.js';
38
+ export * from './utils/location.js';
39
+ export { useContentActions, useEventActions, useGroupActions, useImageActions, useLocationActions, useMessageActions, useMetropolis, useMetropolisConfig, useMetropolisFlux, usePostActions, usePersonaActions, useReactionActions, useTagActions, useTranslationActions, useUserActions, useWebsocketActions } from './utils/useMetropolis.js';
40
+ export { useConversationTyping } from './utils/useConversationTyping.js';
41
+ export type { ConversationTypingOptions, UseConversationTypingOptions } from './utils/useConversationTyping.js';
42
+ export { createValidatorFactory, createValidatorManager } from './utils/validatorFactory.js';
43
+ export type { ActionOptions, ActionReturnType, ActionType, ActionTypes } from './utils/actionFactory.js';
44
+ export type { BaseActionOptions } from './utils/baseActionFactory.js';
45
+ export type { BaseAdapterOptions } from './utils/validatorFactory.js';
46
+ export * from './actions/appActions/appActions.js';
47
+ export * from './actions/connectionActions/connectionActions.js';
48
+ export * from './actions/conversationActions/conversationActions.js';
49
+ export * from './actions/videoActions/videoActions.js';
50
+ export * from './constants/Collections.js';
51
+ export * from './types/index.js';
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -1,2 +1,248 @@
1
- import{useFlux as a}from"@nlabs/arkhamjs-utils-react";import{useEffect as c}from"react";import{createWebsocketActions as f}from"./actions/websocketActions/websocketActions";import{Config as l}from"./config";import{app as m,events as u,images as x,locations as y,messages as d,posts as g,tags as M,users as A,websocket as k}from"./stores";import{refreshSession as C}from"./utils/api";import{MetropolisContext as R}from"./utils/MetropolisProvider";export*from"./stores";import{appMutation as N,appQuery as W,publicMutation as j,publicQuery as q,refreshSession as z,uploadImage as G}from"./utils/api";import{useMetropolis as J}from"./utils/useMetropolis";import{createAction as L,createActions as U,createAllActions as X}from"./utils/actionFactory";import{createValidatorFactory as Z,createValidatorManager as _}from"./utils/validatorFactory";import{createBaseActions as oo}from"./utils/baseActionFactory";export*from"./adapters";export*from"./stores";export*from"./utils/app";export*from"./utils/dateUtils";export*from"./utils/file";export*from"./utils/location";export*from"./constants/MetropolisConstants";export*from"./graphql/message";export*from"./graphql/notification";import{jsx as w}from"react/jsx-runtime";const b=e=>{try{e.addStores([m,u,x,y,d,g,M,A,k]);const o=e.getState("user.session.token");o&&C(e,o)}catch(o){throw o}},h=({adapters:e,children:o,config:r={}})=>{l.setConfig(r);const t=a(),s=f(t),p=[],i=[],n={};return c(()=>{b(t),s.wsInit()},[]),w(R.Provider,{value:{adapters:e,isAuth:()=>!0,messages:p,notifications:i,session:n,updateMessage:()=>{},updateNotification:()=>{}},children:o})};var O=h;export{h as Metropolis,N as appMutation,W as appQuery,L as createAction,U as createActions,X as createAllActions,oo as createBaseActions,Z as createValidatorFactory,_ as createValidatorManager,O as default,b as onInit,j as publicMutation,q as publicQuery,z as refreshSession,G as uploadImage,J as useMetropolis};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzeCJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7dXNlRmx1eH0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0JztcbmltcG9ydCBSZWFjdCwge3VzZUVmZmVjdH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4vYWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zL3dlYnNvY2tldEFjdGlvbnMnO1xuaW1wb3J0IHtDb25maWcsIHR5cGUgTWV0cm9wb2xpc0NvbmZpZ3VyYXRpb259IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIGFwcCxcbiAgZXZlbnRzLFxuICBpbWFnZXMsXG4gIGxvY2F0aW9ucyxcbiAgbWVzc2FnZXMsXG4gIHBvc3RzLFxuICB0YWdzLFxuICB1c2VycyxcbiAgd2Vic29ja2V0XG59IGZyb20gJy4vc3RvcmVzJztcbmltcG9ydCB7cmVmcmVzaFNlc3Npb259IGZyb20gJy4vdXRpbHMvYXBpJztcbmltcG9ydCB7TWV0cm9wb2xpc0NvbnRleHQsIHR5cGUgTWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlcic7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuXG5leHBvcnQgdHlwZSB7TWV0cm9wb2xpc0NvbmZpZ3VyYXRpb259IGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCB0eXBlIHtNZXRyb3BvbGlzQWRhcHRlcnN9IGZyb20gJy4vdXRpbHMvTWV0cm9wb2xpc1Byb3ZpZGVyJztcblxuZXhwb3J0IGNvbnN0IG9uSW5pdCA9IChmbHV4OiBGbHV4RnJhbWV3b3JrKSA9PiB7XG4gIHRyeSB7XG4gICAgZmx1eC5hZGRTdG9yZXMoW1xuICAgICAgYXBwLFxuICAgICAgZXZlbnRzLFxuICAgICAgaW1hZ2VzLFxuICAgICAgbG9jYXRpb25zLFxuICAgICAgbWVzc2FnZXMsXG4gICAgICBwb3N0cyxcbiAgICAgIHRhZ3MsXG4gICAgICB1c2VycyxcbiAgICAgIHdlYnNvY2tldFxuICAgIF0pO1xuICAgIGNvbnN0IHRva2VuID0gZmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJyk7XG4gICAgY29uc29sZS5sb2coe3Rva2VufSk7XG5cbiAgICBpZih0b2tlbikge1xuICAgICAgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4gYXMgc3RyaW5nKTtcbiAgICB9XG4gICAgLy8gd3NJbml0KCk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuZXhwb3J0ICogZnJvbSAnLi9zdG9yZXMnO1xuXG5leHBvcnQge1xuICBhcHBNdXRhdGlvbixcbiAgYXBwUXVlcnksXG4gIHB1YmxpY011dGF0aW9uLFxuICBwdWJsaWNRdWVyeSxcbiAgcmVmcmVzaFNlc3Npb24sXG4gIHVwbG9hZEltYWdlLFxuICB0eXBlIEFwaVJlc3VsdHNUeXBlLFxuICB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb25cbn0gZnJvbSAnLi91dGlscy9hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJvcG9saXNQcm9wcyB7XG4gIHJlYWRvbmx5IGFkYXB0ZXJzPzogTWV0cm9wb2xpc0FkYXB0ZXJzO1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0RWxlbWVudCB8IFJlYWN0LlJlYWN0RWxlbWVudFtdO1xuICByZWFkb25seSBjb25maWc/OiBNZXRyb3BvbGlzQ29uZmlndXJhdGlvbjtcbn1cblxuZXhwb3J0IGNvbnN0IE1ldHJvcG9saXMgPSAoe2FkYXB0ZXJzLCBjaGlsZHJlbiwgY29uZmlnID0ge319OiBNZXRyb3BvbGlzUHJvcHMpID0+IHtcbiAgQ29uZmlnLnNldENvbmZpZyhjb25maWcpO1xuICBjb25zb2xlLmxvZygnTWV0cm9wb2xpczo6aW5pdCcsIHtjb25maWd9KTtcbiAgY29uc3QgZmx1eCA9IHVzZUZsdXgoKTtcbiAgY29uc3Qgd2Vic29ja2V0cyA9IGNyZWF0ZVdlYnNvY2tldEFjdGlvbnMoZmx1eCk7XG4gIC8vIGNvbnN0IFttZXNzYWdlcywgc2V0TWVzc2FnZXNdID0gdXNlU3RhdGU8TWVzc2FnZVR5cGVbXT4oW10pO1xuICAvLyBjb25zdCBbbm90aWZpY2F0aW9ucywgc2V0Tm90aWZpY2F0aW9uc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICAvLyBjb25zdCBbc2Vzc2lvbiwgc2V0U2Vzc2lvbl0gPSB1c2VTdGF0ZTxTZXNzaW9uVHlwZT4oe30pO1xuXG4gIGNvbnN0IG1lc3NhZ2VzID0gW107XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgY29uc3Qgc2Vzc2lvbiA9IHt9O1xuXG4gIC8vIFNhdmUgY29uZmlnIHRvIGFwcFxuICAvLyBjb25zdCB7aXNBdXRoOiBjb25maWdBdXRofSA9IGNvbmZpZztcblxuICAvLyBjb25zdCBvblVwZGF0ZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAvLyAgIGNvbnN0IGNhY2hlZFNlc3Npb24gPSBGbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSk7XG4gIC8vICAgc2V0TWVzc2FnZXMoY2FjaGVkU2Vzc2lvbik7XG4gIC8vIH0sIFtdKTtcbiAgLy8gY29uc3Qgb25VcGRhdGVOb3RpZmljYXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAvLyAgIGNvbnN0IGNhY2hlZFNlc3Npb24gPSBGbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSk7XG4gIC8vICAgc2V0Tm90aWZpY2F0aW9ucyhjYWNoZWRTZXNzaW9uKTtcbiAgLy8gfSwgW10pO1xuICAvLyBjb25zdCBvblVwZGF0ZVNlc3Npb24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gIC8vICAgY29uc3QgY2FjaGVkU2Vzc2lvbiA9IEZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KTtcbiAgLy8gICBzZXRTZXNzaW9uKGNhY2hlZFNlc3Npb24pO1xuICAvLyB9LCBbXSk7XG4gIC8vIGNvbnN0IG9uU2lnbk91dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgLy8gICBGbHV4LnNldFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSk7XG4gIC8vICAgc2V0U2Vzc2lvbih7fSk7XG4gIC8vIH0sIFtdKTtcbiAgLy8gY29uc3QgaXNBdXRoID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAvLyAgIGlmKGNvbmZpZ0F1dGgpIHtcbiAgLy8gICAgIHJldHVybiBjb25maWdBdXRoKCk7XG4gIC8vICAgfVxuXG4gIC8vICAgY29uc3Qge3VzZXJBY3RpdmV9ID0gRmx1eC5nZXRTdGF0ZSgndXNlci5zZXNzaW9uJywge30pO1xuICAvLyAgIHJldHVybiB1c2VyQWN0aXZlO1xuICAvLyB9LCBbXSk7XG4gIC8vIGNvbnN0IHVwZGF0ZU1lc3NhZ2UgPSB1c2VDYWxsYmFjaygobWVzc2FnZSkgPT4ge1xuICAvLyAgIEFQSS5ncmFwaHFsKGdyYXBocWxPcGVyYXRpb24oVVBEQVRFX01FU1NBR0VTLCB7bWVzc2FnZX0pKTtcbiAgLy8gfSwgW10pO1xuICAvLyBjb25zdCB1cGRhdGVOb3RpZmljYXRpb24gPSB1c2VDYWxsYmFjaygobm90aWZpY2F0aW9uKSA9PiB7XG4gIC8vICAgQVBJLmdyYXBocWwoZ3JhcGhxbE9wZXJhdGlvbihVUERBVEVfTk9USUZJQ0FUSU9OUywge25vdGlmaWNhdGlvbn0pKTtcbiAgLy8gfSwgW10pO1xuXG4gIC8vIHVzZUZsdXhMaXN0ZW5lcihBcmtoYW1Db25zdGFudHMuSU5JVCwgb25VcGRhdGVTZXNzaW9uKTtcbiAgLy8gdXNlRmx1eExpc3RlbmVyKFNJR05PVVQsIG9uU2lnbk91dCk7XG4gIC8vIHVzZUZsdXhMaXN0ZW5lcihVUERBVEVfTUVTU0FHRVMsIG9uVXBkYXRlTWVzc2FnZXMpO1xuICAvLyB1c2VGbHV4TGlzdGVuZXIoVVBEQVRFX05PVElGSUNBVElPTlMsIG9uVXBkYXRlTm90aWZpY2F0aW9ucyk7XG4gIC8vIHVzZUZsdXhMaXN0ZW5lcihVUERBVEVfU0VTU0lPTiwgb25VcGRhdGVTZXNzaW9uKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEluaXRpYWxpemVcbiAgICBvbkluaXQoZmx1eCk7XG4gICAgd2Vic29ja2V0cy53c0luaXQoKTtcblxuICAgIC8vIGNvbnN0IG1lc3NhZ2VTdWJzY3JpcHRpb24gPSBBUEkuZ3JhcGhxbChncmFwaHFsT3BlcmF0aW9uKE1lc3NhZ2VTdWJzY3JpcHRpb24pKVxuICAgIC8vICAgLy8gQHRzLWlnbm9yZVxuICAgIC8vICAgLnN1YnNjcmliZSh7XG4gICAgLy8gICAgIG5leHQ6ICh7cHJvdmlkZXIsIHZhbHVlOiBtZXNzYWdlc30pID0+IHtcbiAgICAvLyAgICAgICBjb25zb2xlLmxvZyh7cHJvdmlkZXIsIG1lc3NhZ2VzfSk7XG4gICAgLy8gICAgICAgRmx1eC5kaXNwYXRjaCh7dHlwZTogVVBEQVRFX01FU1NBR0VTLCBtZXNzYWdlc30pO1xuICAgIC8vICAgICB9LFxuICAgIC8vICAgICBlcnJvcjogKGVycm9yKSA9PiBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgLy8gICB9KTtcbiAgICAvLyBjb25zdCBub3RpZmljYXRpb25TdWJzY3JpcHRpb24gPSBBUEkuZ3JhcGhxbChncmFwaHFsT3BlcmF0aW9uKE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbikpXG4gICAgLy8gICAvLyBAdHMtaWdub3JlXG4gICAgLy8gICAuc3Vic2NyaWJlKHtcbiAgICAvLyAgICAgbmV4dDogKHtwcm92aWRlciwgdmFsdWU6IG5vdGlmaWNhdGlvbnN9KSA9PiB7XG4gICAgLy8gICAgICAgY29uc29sZS5sb2coe3Byb3ZpZGVyLCBub3RpZmljYXRpb25zfSk7XG4gICAgLy8gICAgICAgRmx1eC5kaXNwYXRjaCh7dHlwZTogVVBEQVRFX05PVElGSUNBVElPTlMsIG5vdGlmaWNhdGlvbnN9KTtcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgICAgZXJyb3I6IChlcnJvcikgPT4gY29uc29sZS53YXJuKGVycm9yKVxuICAgIC8vICAgfSk7XG4gICAgLy8gY29uc3Qgc2Vzc2lvblN1YnNjcmlwdGlvbiA9IEFQSS5ncmFwaHFsKGdyYXBocWxPcGVyYXRpb24oU2Vzc2lvblN1YnNjcmlwdGlvbikpXG4gICAgLy8gICAvLyBAdHMtaWdub3JlXG4gICAgLy8gICAuc3Vic2NyaWJlKHtcbiAgICAvLyAgICAgbmV4dDogKHtwcm92aWRlciwgdmFsdWU6IHNlc3Npb259KSA9PiB7XG4gICAgLy8gICAgICAgY29uc29sZS5sb2coe3Byb3ZpZGVyLCBzZXNzaW9ufSk7XG4gICAgLy8gICAgICAgRmx1eC5kaXNwYXRjaCh7dHlwZTogVVBEQVRFX1NFU1NJT04sIHNlc3Npb259KTtcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgICAgZXJyb3I6IChlcnJvcikgPT4gY29uc29sZS53YXJuKGVycm9yKVxuICAgIC8vICAgfSk7XG5cbiAgICAvLyByZXR1cm4gKCkgPT4ge1xuICAgIC8vICAgc2Vzc2lvblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vICAgbWVzc2FnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIC8vICAgbm90aWZpY2F0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gfTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPE1ldHJvcG9saXNDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICBhZGFwdGVycyxcbiAgICAgICAgaXNBdXRoOiAoKSA9PiB0cnVlLFxuICAgICAgICBtZXNzYWdlcyxcbiAgICAgICAgbm90aWZpY2F0aW9ucyxcbiAgICAgICAgc2Vzc2lvbixcbiAgICAgICAgdXBkYXRlTWVzc2FnZTogKCkgPT4geyB9LFxuICAgICAgICB1cGRhdGVOb3RpZmljYXRpb246ICgpID0+IHsgfVxuICAgICAgfX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9NZXRyb3BvbGlzQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1ldHJvcG9saXM7XG5cbmV4cG9ydCB7dXNlTWV0cm9wb2xpc30gZnJvbSAnLi91dGlscy91c2VNZXRyb3BvbGlzJztcblxuLy8gRXhwb3J0IG5ldyBjb25zb2xpZGF0ZWQgYWN0aW9uIGZhY3RvcnkgKHJlcGxhY2VzIGFsbCBpbmRpdmlkdWFsIGNyZWF0ZVh4eEFjdGlvbnMpXG5leHBvcnQge1xuICBjcmVhdGVBY3Rpb24sXG4gIGNyZWF0ZUFjdGlvbnMsXG4gIGNyZWF0ZUFsbEFjdGlvbnMsIHR5cGUgQWN0aW9uT3B0aW9ucywgdHlwZSBBY3Rpb25SZXR1cm5UeXBlLCB0eXBlIEFjdGlvblR5cGUsIHR5cGUgQWN0aW9uVHlwZXNcbn0gZnJvbSAnLi91dGlscy9hY3Rpb25GYWN0b3J5JztcblxuLy8gRXhwb3J0IG5ldyBjb25zb2xpZGF0ZWQgdXRpbGl0aWVzXG5leHBvcnQge1xuICBjcmVhdGVWYWxpZGF0b3JGYWN0b3J5LFxuICBjcmVhdGVWYWxpZGF0b3JNYW5hZ2VyLFxuICB0eXBlIEJhc2VBZGFwdGVyT3B0aW9uc1xufSBmcm9tICcuL3V0aWxzL3ZhbGlkYXRvckZhY3RvcnknO1xuXG5leHBvcnQge1xuICBjcmVhdGVCYXNlQWN0aW9ucyxcbiAgdHlwZSBCYXNlQWN0aW9uT3B0aW9uc1xufSBmcm9tICcuL3V0aWxzL2Jhc2VBY3Rpb25GYWN0b3J5JztcblxuLy8gRXhwb3J0IGFkYXB0ZXJzXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJzJztcblxuLy8gRXhwb3J0IHN0b3Jlc1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZXMnO1xuXG4vLyBFeHBvcnQgdXRpbGl0aWVzIChleGNsdWRpbmcgYXBpIHRvIGF2b2lkIGNvbmZsaWN0cylcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvZGF0ZVV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2xvY2F0aW9uJztcblxuLy8gRXhwb3J0IGNvbnN0YW50c1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvTWV0cm9wb2xpc0NvbnN0YW50cyc7XG5cbi8vIEV4cG9ydCBHcmFwaFFMIChleGNsdWRpbmcgc2Vzc2lvbiB0byBhdm9pZCBTZXNzaW9uVHlwZSBjb25mbGljdClcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGhxbC9tZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JhcGhxbC9ub3RpZmljYXRpb24nO1xuXG4iXSwKICAibWFwcGluZ3MiOiAiQUFJQSxPQUFRLFdBQUFBLE1BQWMsOEJBQ3RCLE9BQWUsYUFBQUMsTUFBZ0IsUUFFL0IsT0FBUSwwQkFBQUMsTUFBNkIsOENBQ3JDLE9BQVEsVUFBQUMsTUFBMkMsV0FDbkQsT0FDRSxPQUFBQyxFQUNBLFVBQUFDLEVBQ0EsVUFBQUMsRUFDQSxhQUFBQyxFQUNBLFlBQUFDLEVBQ0EsU0FBQUMsRUFDQSxRQUFBQyxFQUNBLFNBQUFDLEVBQ0EsYUFBQUMsTUFDSyxXQUNQLE9BQVEsa0JBQUFDLE1BQXFCLGNBQzdCLE9BQVEscUJBQUFDLE1BQWlELDZCQWdDekQsV0FBYyxXQUVkLE9BQ0UsZUFBQUMsRUFDQSxZQUFBQyxFQUNBLGtCQUFBQyxFQUNBLGVBQUFDLEVBQ0Esa0JBQUFMLEVBQ0EsZUFBQU0sTUFHSyxjQXVIUCxPQUFRLGlCQUFBQyxNQUFvQix3QkFHNUIsT0FDRSxnQkFBQUMsRUFDQSxpQkFBQUMsRUFDQSxvQkFBQUMsTUFDSyx3QkFHUCxPQUNFLDBCQUFBQyxFQUNBLDBCQUFBQyxNQUVLLDJCQUVQLE9BQ0UscUJBQUFDLE9BRUssNEJBR1AsV0FBYyxhQUdkLFdBQWMsV0FHZCxXQUFjLGNBQ2QsV0FBYyxvQkFDZCxXQUFjLGVBQ2QsV0FBYyxtQkFHZCxXQUFjLGtDQUdkLFdBQWMsb0JBQ2QsV0FBYyx5QkF2RFYsY0FBQUMsTUFBQSxvQkExSUcsTUFBTUMsRUFBVUMsR0FBd0IsQ0FDN0MsR0FBSSxDQUNGQSxFQUFLLFVBQVUsQ0FDYnpCLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLEVBQ0FDLENBQ0YsQ0FBQyxFQUNELE1BQU1rQixFQUFRRCxFQUFLLFNBQVMsb0JBQW9CLEVBRzdDQyxHQUNEakIsRUFBZWdCLEVBQU1DLENBQWUsQ0FHeEMsT0FBUUMsRUFBTyxDQUNiLE1BQU1BLENBQ1IsQ0FDRixFQXFCYUMsRUFBYSxDQUFDLENBQUMsU0FBQUMsRUFBVSxTQUFBQyxFQUFVLE9BQUFDLEVBQVMsQ0FBQyxDQUFDLElBQXVCLENBQ2hGaEMsRUFBTyxVQUFVZ0MsQ0FBTSxFQUV2QixNQUFNTixFQUFPN0IsRUFBUSxFQUNmb0MsRUFBYWxDLEVBQXVCMkIsQ0FBSSxFQUt4Q3JCLEVBQVcsQ0FBQyxFQUNaNkIsRUFBZ0IsQ0FBQyxFQUNqQkMsRUFBVSxDQUFDLEVBMENqQixPQUFBckMsRUFBVSxJQUFNLENBRWQyQixFQUFPQyxDQUFJLEVBQ1hPLEVBQVcsT0FBTyxDQW1DcEIsRUFBRyxDQUFDLENBQUMsRUFHSFQsRUFBQ2IsRUFBa0IsU0FBbEIsQ0FDQyxNQUFPLENBQ0wsU0FBQW1CLEVBQ0EsT0FBUSxJQUFNLEdBQ2QsU0FBQXpCLEVBQ0EsY0FBQTZCLEVBQ0EsUUFBQUMsRUFDQSxjQUFlLElBQU0sQ0FBRSxFQUN2QixtQkFBb0IsSUFBTSxDQUFFLENBQzlCLEVBQ0MsU0FBQUosRUFDSCxDQUVKLEVBRUEsSUFBT0ssRUFBUVAiLAogICJuYW1lcyI6IFsidXNlRmx1eCIsICJ1c2VFZmZlY3QiLCAiY3JlYXRlV2Vic29ja2V0QWN0aW9ucyIsICJDb25maWciLCAiYXBwIiwgImV2ZW50cyIsICJpbWFnZXMiLCAibG9jYXRpb25zIiwgIm1lc3NhZ2VzIiwgInBvc3RzIiwgInRhZ3MiLCAidXNlcnMiLCAid2Vic29ja2V0IiwgInJlZnJlc2hTZXNzaW9uIiwgIk1ldHJvcG9saXNDb250ZXh0IiwgImFwcE11dGF0aW9uIiwgImFwcFF1ZXJ5IiwgInB1YmxpY011dGF0aW9uIiwgInB1YmxpY1F1ZXJ5IiwgInVwbG9hZEltYWdlIiwgInVzZU1ldHJvcG9saXMiLCAiY3JlYXRlQWN0aW9uIiwgImNyZWF0ZUFjdGlvbnMiLCAiY3JlYXRlQWxsQWN0aW9ucyIsICJjcmVhdGVWYWxpZGF0b3JGYWN0b3J5IiwgImNyZWF0ZVZhbGlkYXRvck1hbmFnZXIiLCAiY3JlYXRlQmFzZUFjdGlvbnMiLCAianN4IiwgIm9uSW5pdCIsICJmbHV4IiwgInRva2VuIiwgImVycm9yIiwgIk1ldHJvcG9saXMiLCAiYWRhcHRlcnMiLCAiY2hpbGRyZW4iLCAiY29uZmlnIiwgIndlYnNvY2tldHMiLCAibm90aWZpY2F0aW9ucyIsICJzZXNzaW9uIiwgImluZGV4X2RlZmF1bHQiXQp9Cg==
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
4
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
5
+ */ import { useFlux, useFluxState } from '@nlabs/arkhamjs-utils-react';
6
+ import i18n from 'i18next';
7
+ import { DateTime } from 'luxon';
8
+ import { useEffect, useMemo, useRef } from 'react';
9
+ import { I18nextProvider } from 'react-i18next';
10
+ import { syncPersonaTagsToSession, syncPersonaToSession } from './actions/personaActions/personaActions.js';
11
+ import { resolveEnvironmentConfig } from './config/index.js';
12
+ import { app, events, images, locations, messages, notifications, NOTIFICATION_CONSTANTS, permissions, PERSONA_CONSTANTS, posts, subscriptions, TAG_CONSTANTS, tags, USER_CONSTANTS, users, video, websocket } from './stores/index.js';
13
+ import { refreshSession } from './utils/api.js';
14
+ import { getConfigFromFlux } from './utils/configUtils.js';
15
+ import { initI18n } from './utils/i18n.js';
16
+ import { MetropolisContext } from './utils/MetropolisProvider.js';
17
+ import { getRefreshWindowMinutes, hydrateSessionFromStorage, parseJwtExpiryMs } from './utils/session.js';
18
+ import { createAction } from './utils/actionFactory.js';
19
+ export { MetropolisContext, MetropolisProvider } from './utils/MetropolisProvider.js';
20
+ export const onInit = async (flux)=>{
21
+ if (!flux.getState('app.metropolisInitialized')) {
22
+ flux.addStores([
23
+ app,
24
+ events,
25
+ images,
26
+ locations,
27
+ messages,
28
+ notifications,
29
+ permissions,
30
+ posts,
31
+ subscriptions,
32
+ tags,
33
+ users,
34
+ video,
35
+ websocket
36
+ ]);
37
+ flux.on(USER_CONSTANTS.SIGN_OUT_SUCCESS, ()=>{
38
+ flux.dispatch({
39
+ type: NOTIFICATION_CONSTANTS.CLEAR_ITEMS
40
+ });
41
+ });
42
+ flux.on(PERSONA_CONSTANTS.ADD_ITEM_SUCCESS, async ({ persona = {} })=>{
43
+ syncPersonaToSession(flux, persona);
44
+ if (persona?.personaId && !Array.isArray(persona?.tags)) {
45
+ await syncPersonaTagsToSession(flux, String(persona.personaId));
46
+ }
47
+ });
48
+ flux.on(PERSONA_CONSTANTS.UPDATE_ITEM_SUCCESS, async ({ persona = {} })=>{
49
+ syncPersonaToSession(flux, persona);
50
+ if (persona?.personaId && !Array.isArray(persona?.tags)) {
51
+ await syncPersonaTagsToSession(flux, String(persona.personaId));
52
+ }
53
+ });
54
+ flux.on(TAG_CONSTANTS.ADD_PERSONA_SUCCESS, ({ tag })=>{
55
+ const currentSession = flux.getState('user.session', {}) || {};
56
+ const currentTags = Array.isArray(currentSession.tags) ? currentSession.tags : [];
57
+ const nextTagId = String(tag?.tagId || '').trim();
58
+ if (!nextTagId) {
59
+ return;
60
+ }
61
+ const mergedTags = [
62
+ ...currentTags.filter((item)=>String(item?.tagId || '').trim() !== nextTagId),
63
+ tag
64
+ ].sort((left, right)=>String(left?.name || '').localeCompare(String(right?.name || '')));
65
+ const nextSession = {
66
+ ...currentSession,
67
+ tags: mergedTags
68
+ };
69
+ void flux.setState('user.session', nextSession);
70
+ flux.dispatch({
71
+ type: USER_CONSTANTS.UPDATE_SESSION_SUCCESS,
72
+ user: {
73
+ tags: mergedTags
74
+ }
75
+ });
76
+ });
77
+ flux.on(TAG_CONSTANTS.REMOVE_PERSONA_SUCCESS, ({ tag })=>{
78
+ const currentSession = flux.getState('user.session', {}) || {};
79
+ const currentTags = Array.isArray(currentSession.tags) ? currentSession.tags : [];
80
+ const nextTagId = String(tag?.tagId || '').trim();
81
+ if (!nextTagId) {
82
+ return;
83
+ }
84
+ const nextTags = currentTags.filter((item)=>String(item?.tagId || '').trim() !== nextTagId);
85
+ const nextSession = {
86
+ ...currentSession,
87
+ tags: nextTags
88
+ };
89
+ void flux.setState('user.session', nextSession);
90
+ flux.dispatch({
91
+ type: USER_CONSTANTS.UPDATE_SESSION_SUCCESS,
92
+ user: {
93
+ tags: nextTags
94
+ }
95
+ });
96
+ });
97
+ await Promise.resolve(flux.setState('app.metropolisInitialized', true));
98
+ }
99
+ const token = String(flux.getState('user.session.token') || '');
100
+ if (token) {
101
+ const session = flux.getState('user.session', {}) || {};
102
+ const config = getConfigFromFlux(flux);
103
+ const tokenExpiresAt = parseJwtExpiryMs(token);
104
+ const sessionLifetimeMinutes = Math.round((Number(session.expires || 0) - Number(session.issued || 0)) / (1000 * 60));
105
+ const refreshWindowMinutes = getRefreshWindowMinutes(sessionLifetimeMinutes || 15, config.app?.session || {});
106
+ const refreshExpiresMinutes = Math.max(1, Number(config.app?.session?.maxMinutes || sessionLifetimeMinutes || 15));
107
+ const expiresAt = Number(session.expires || 0);
108
+ if (tokenExpiresAt > 0 && Date.now() >= tokenExpiresAt) {
109
+ await refreshSession(flux, token, refreshExpiresMinutes);
110
+ } else if (!expiresAt) {
111
+ await refreshSession(flux, token, refreshExpiresMinutes);
112
+ } else {
113
+ const minutesUntilExpiry = Math.round(DateTime.fromMillis(expiresAt).diff(DateTime.local(), 'minutes').toObject().minutes || 0);
114
+ if (minutesUntilExpiry <= 0 || minutesUntilExpiry <= refreshWindowMinutes) {
115
+ await refreshSession(flux, token, refreshExpiresMinutes);
116
+ }
117
+ }
118
+ }
119
+ };
120
+ export * from './stores/index.js';
121
+ export { appMutation, appQuery, publicMutation, publicQuery, refreshSession, uploadImage } from './utils/api.js';
122
+ export { resolveEnvironmentConfig } from './config/index.js';
123
+ export { getConfigFromFlux } from './utils/configUtils.js';
124
+ export const Metropolis = ({ adapters, children, config = {}, translations = {} })=>{
125
+ const flux = useFlux();
126
+ const resolvedConfig = useMemo(()=>resolveEnvironmentConfig(config), [
127
+ config
128
+ ]);
129
+ const mergedAdapters = useMemo(()=>({
130
+ ...resolvedConfig.adapters,
131
+ ...adapters
132
+ }), [
133
+ resolvedConfig.adapters,
134
+ adapters
135
+ ]);
136
+ const sessionPersonaId = String(useFluxState('user.session.personaId', '') || '');
137
+ const sessionToken = String(useFluxState('user.session.token', '') || '');
138
+ const sessionHydrated = Boolean(useFluxState('app.sessionHydrated', false));
139
+ const session = useFluxState('user.session', {});
140
+ const notificationList = useFluxState('notification.list', []);
141
+ const conversationMap = useFluxState('message.conversations', {});
142
+ const messages = useMemo(()=>Object.values(conversationMap).flat(), [
143
+ conversationMap
144
+ ]);
145
+ const websocketsRef = useRef(null);
146
+ if (!websocketsRef.current) {
147
+ websocketsRef.current = createAction('websocket', flux);
148
+ }
149
+ const websockets = websocketsRef.current;
150
+ useEffect(()=>{
151
+ initI18n(translations);
152
+ }, [
153
+ translations
154
+ ]);
155
+ useEffect(()=>{
156
+ let isActive = true;
157
+ void (async ()=>{
158
+ await Promise.resolve(flux.setState('app.config', resolvedConfig));
159
+ await Promise.resolve(flux.setState('app.sessionHydrated', false));
160
+ await hydrateSessionFromStorage(flux);
161
+ if (!isActive) {
162
+ return;
163
+ }
164
+ await onInit(flux);
165
+ if (!isActive) {
166
+ return;
167
+ }
168
+ await Promise.resolve(flux.setState('app.sessionHydrated', true));
169
+ })();
170
+ return ()=>{
171
+ isActive = false;
172
+ };
173
+ }, [
174
+ flux,
175
+ resolvedConfig
176
+ ]);
177
+ useEffect(()=>{
178
+ if (!sessionHydrated) {
179
+ websockets.wsClose();
180
+ return;
181
+ }
182
+ if (sessionToken) {
183
+ websockets.wsInit(sessionToken, sessionPersonaId);
184
+ } else {
185
+ websockets.wsClose();
186
+ }
187
+ }, [
188
+ sessionHydrated,
189
+ sessionPersonaId,
190
+ sessionToken,
191
+ websockets
192
+ ]);
193
+ useEffect(()=>{
194
+ return ()=>{
195
+ websockets.wsClose();
196
+ };
197
+ }, [
198
+ websockets
199
+ ]);
200
+ const isAuth = useMemo(()=>resolvedConfig.isAuth || (()=>{
201
+ const sessionState = flux.getState('user.session', {});
202
+ return !!sessionState.userActive;
203
+ }), [
204
+ resolvedConfig.isAuth,
205
+ flux
206
+ ]);
207
+ return /*#__PURE__*/ _jsx(MetropolisContext.Provider, {
208
+ value: {
209
+ adapters: mergedAdapters,
210
+ config: resolvedConfig,
211
+ flux,
212
+ isAuth,
213
+ messages,
214
+ notifications: notificationList,
215
+ session,
216
+ updateMessage: ()=>{},
217
+ updateNotification: websockets.sendNotification
218
+ },
219
+ children: /*#__PURE__*/ _jsx(I18nextProvider, {
220
+ i18n: i18n,
221
+ children: children
222
+ })
223
+ });
224
+ };
225
+ export default Metropolis;
226
+ export { useTranslation } from 'react-i18next';
227
+ export * from './adapters/index.js';
228
+ export * from './constants/MetropolisConstants.js';
229
+ export * from './graphql/message.js';
230
+ export * from './graphql/notification.js';
231
+ export * from './stores/index.js';
232
+ export { createAction, createActions, createAllActions } from './utils/actionFactory.js';
233
+ export * from './utils/app.js';
234
+ export { createBaseActions } from './utils/baseActionFactory.js';
235
+ export * from './utils/dateUtils.js';
236
+ export * from './utils/file.js';
237
+ export * from './utils/location.js';
238
+ export { useContentActions, useEventActions, useGroupActions, useImageActions, useLocationActions, useMessageActions, useMetropolis, useMetropolisConfig, useMetropolisFlux, usePostActions, usePersonaActions, useReactionActions, useTagActions, useTranslationActions, useUserActions, useWebsocketActions } from './utils/useMetropolis.js';
239
+ export { useConversationTyping } from './utils/useConversationTyping.js';
240
+ export { createValidatorFactory, createValidatorManager } from './utils/validatorFactory.js';
241
+ export * from './actions/appActions/appActions.js';
242
+ export * from './actions/connectionActions/connectionActions.js';
243
+ export * from './actions/conversationActions/conversationActions.js';
244
+ export * from './actions/videoActions/videoActions.js';
245
+ export * from './constants/Collections.js';
246
+ export * from './types/index.js';
247
+
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3VzZUZsdXgsIHVzZUZsdXhTdGF0ZX0gZnJvbSAnQG5sYWJzL2Fya2hhbWpzLXV0aWxzLXJlYWN0JztcbmltcG9ydCBpMThuIGZyb20gJ2kxOG5leHQnO1xuaW1wb3J0IHtEYXRlVGltZX0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHt1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtJMThuZXh0UHJvdmlkZXJ9IGZyb20gJ3JlYWN0LWkxOG5leHQnO1xuXG5pbXBvcnQge2NyZWF0ZVdlYnNvY2tldEFjdGlvbnN9IGZyb20gJy4vYWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zL3dlYnNvY2tldEFjdGlvbnMuanMnO1xuaW1wb3J0IHtzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24sIHN5bmNQZXJzb25hVG9TZXNzaW9ufSBmcm9tICcuL2FjdGlvbnMvcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuaW1wb3J0IHtyZXNvbHZlRW52aXJvbm1lbnRDb25maWd9IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGFwcCxcbiAgZXZlbnRzLFxuICBpbWFnZXMsXG4gIGxvY2F0aW9ucyxcbiAgbWVzc2FnZXMsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIE5PVElGSUNBVElPTl9DT05TVEFOVFMsXG4gIHBlcm1pc3Npb25zLFxuICBQRVJTT05BX0NPTlNUQU5UUyxcbiAgcG9zdHMsXG4gIHN1YnNjcmlwdGlvbnMsXG4gIFRBR19DT05TVEFOVFMsXG4gIHRhZ3MsXG4gIFVTRVJfQ09OU1RBTlRTLFxuICB1c2VycyxcbiAgdmlkZW8sXG4gIHdlYnNvY2tldFxufSBmcm9tICcuL3N0b3Jlcy9pbmRleC5qcyc7XG5pbXBvcnQge3JlZnJlc2hTZXNzaW9ufSBmcm9tICcuL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQge2dldENvbmZpZ0Zyb21GbHV4fSBmcm9tICcuL3V0aWxzL2NvbmZpZ1V0aWxzLmpzJztcbmltcG9ydCB7aW5pdEkxOG59IGZyb20gJy4vdXRpbHMvaTE4bi5qcyc7XG5pbXBvcnQge01ldHJvcG9saXNDb250ZXh0fSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5pbXBvcnQge2dldFJlZnJlc2hXaW5kb3dNaW51dGVzLCBoeWRyYXRlU2Vzc2lvbkZyb21TdG9yYWdlLCBwYXJzZUp3dEV4cGlyeU1zfSBmcm9tICcuL3V0aWxzL3Nlc3Npb24uanMnO1xuaW1wb3J0IHtjcmVhdGVBY3Rpb259IGZyb20gJy4vdXRpbHMvYWN0aW9uRmFjdG9yeS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge01ldHJvcG9saXNDb25maWd1cmF0aW9uLCBNZXRyb3BvbGlzRW52aXJvbm1lbnRDb25maWd1cmF0aW9ufSBmcm9tICcuL2NvbmZpZy9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7TWV0cm9wb2xpc0FkYXB0ZXJzfSBmcm9tICcuL3V0aWxzL01ldHJvcG9saXNQcm92aWRlci5qcyc7XG5cbmV4cG9ydCB7TWV0cm9wb2xpc0NvbnRleHQsIE1ldHJvcG9saXNQcm92aWRlcn0gZnJvbSAnLi91dGlscy9NZXRyb3BvbGlzUHJvdmlkZXIuanMnO1xuXG5leHBvcnQgdHlwZSB7TWV0cm9wb2xpc0NvbmZpZ3VyYXRpb259IGZyb20gJy4vY29uZmlnL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHtNZXRyb3BvbGlzQWRhcHRlcnN9IGZyb20gJy4vdXRpbHMvTWV0cm9wb2xpc1Byb3ZpZGVyLmpzJztcblxuZXhwb3J0IGNvbnN0IG9uSW5pdCA9IGFzeW5jIChmbHV4OiBGbHV4RnJhbWV3b3JrKSA9PiB7XG4gIGlmKCFmbHV4LmdldFN0YXRlKCdhcHAubWV0cm9wb2xpc0luaXRpYWxpemVkJykpIHtcbiAgICBmbHV4LmFkZFN0b3JlcyhbXG4gICAgICBhcHAsXG4gICAgICBldmVudHMsXG4gICAgICBpbWFnZXMsXG4gICAgICBsb2NhdGlvbnMsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIG5vdGlmaWNhdGlvbnMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIHBvc3RzLFxuICAgICAgc3Vic2NyaXB0aW9ucyxcbiAgICAgIHRhZ3MsXG4gICAgICB1c2VycyxcbiAgICAgIHZpZGVvLFxuICAgICAgd2Vic29ja2V0XG4gICAgXSk7XG4gICAgZmx1eC5vbihVU0VSX0NPTlNUQU5UUy5TSUdOX09VVF9TVUNDRVNTLCAoKSA9PiB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHt0eXBlOiBOT1RJRklDQVRJT05fQ09OU1RBTlRTLkNMRUFSX0lURU1TfSk7XG4gICAgfSk7XG4gICAgZmx1eC5vbihQRVJTT05BX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTLCBhc3luYyAoe3BlcnNvbmEgPSB7fX06IHtwZXJzb25hPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj59KSA9PiB7XG4gICAgICBzeW5jUGVyc29uYVRvU2Vzc2lvbihmbHV4LCBwZXJzb25hKTtcblxuICAgICAgaWYocGVyc29uYT8ucGVyc29uYUlkICYmICFBcnJheS5pc0FycmF5KHBlcnNvbmE/LnRhZ3MpKSB7XG4gICAgICAgIGF3YWl0IHN5bmNQZXJzb25hVGFnc1RvU2Vzc2lvbihmbHV4LCBTdHJpbmcocGVyc29uYS5wZXJzb25hSWQpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGZsdXgub24oUEVSU09OQV9DT05TVEFOVFMuVVBEQVRFX0lURU1fU1VDQ0VTUywgYXN5bmMgKHtwZXJzb25hID0ge319OiB7cGVyc29uYT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+fSkgPT4ge1xuICAgICAgc3luY1BlcnNvbmFUb1Nlc3Npb24oZmx1eCwgcGVyc29uYSk7XG5cbiAgICAgIGlmKHBlcnNvbmE/LnBlcnNvbmFJZCAmJiAhQXJyYXkuaXNBcnJheShwZXJzb25hPy50YWdzKSkge1xuICAgICAgICBhd2FpdCBzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24oZmx1eCwgU3RyaW5nKHBlcnNvbmEucGVyc29uYUlkKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBmbHV4Lm9uKFRBR19DT05TVEFOVFMuQUREX1BFUlNPTkFfU1VDQ0VTUywgKHt0YWd9OiB7dGFnPzoge25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfX0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiB7XG4gICAgICAgIHRhZ3M/OiBBcnJheTx7bmFtZT86IHN0cmluZzsgdGFnSWQ/OiBzdHJpbmd9PjtcbiAgICAgIH07XG4gICAgICBjb25zdCBjdXJyZW50VGFncyA9IEFycmF5LmlzQXJyYXkoY3VycmVudFNlc3Npb24udGFncykgPyBjdXJyZW50U2Vzc2lvbi50YWdzIDogW107XG4gICAgICBjb25zdCBuZXh0VGFnSWQgPSBTdHJpbmcodGFnPy50YWdJZCB8fCAnJykudHJpbSgpO1xuXG4gICAgICBpZighbmV4dFRhZ0lkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVyZ2VkVGFncyA9IFsuLi5jdXJyZW50VGFncy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtPy50YWdJZCB8fCAnJykudHJpbSgpICE9PSBuZXh0VGFnSWQpLCB0YWcgYXMge25hbWU/OiBzdHJpbmc7IHRhZ0lkPzogc3RyaW5nfV1cbiAgICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBTdHJpbmcobGVmdD8ubmFtZSB8fCAnJykubG9jYWxlQ29tcGFyZShTdHJpbmcocmlnaHQ/Lm5hbWUgfHwgJycpKSk7XG4gICAgICBjb25zdCBuZXh0U2Vzc2lvbiA9IHsuLi5jdXJyZW50U2Vzc2lvbiwgdGFnczogbWVyZ2VkVGFnc307XG5cbiAgICAgIHZvaWQgZmx1eC5zZXRTdGF0ZSgndXNlci5zZXNzaW9uJywgbmV4dFNlc3Npb24pO1xuICAgICAgZmx1eC5kaXNwYXRjaCh7dHlwZTogVVNFUl9DT05TVEFOVFMuVVBEQVRFX1NFU1NJT05fU1VDQ0VTUywgdXNlcjoge3RhZ3M6IG1lcmdlZFRhZ3N9fSk7XG4gICAgfSk7XG5cbiAgICBmbHV4Lm9uKFRBR19DT05TVEFOVFMuUkVNT1ZFX1BFUlNPTkFfU1VDQ0VTUywgKHt0YWd9OiB7dGFnPzoge3RhZ0lkPzogc3RyaW5nfX0pID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gJiB7XG4gICAgICAgIHRhZ3M/OiBBcnJheTx7bmFtZT86IHN0cmluZzsgdGFnSWQ/OiBzdHJpbmd9PjtcbiAgICAgIH07XG4gICAgICBjb25zdCBjdXJyZW50VGFncyA9IEFycmF5LmlzQXJyYXkoY3VycmVudFNlc3Npb24udGFncykgPyBjdXJyZW50U2Vzc2lvbi50YWdzIDogW107XG4gICAgICBjb25zdCBuZXh0VGFnSWQgPSBTdHJpbmcodGFnPy50YWdJZCB8fCAnJykudHJpbSgpO1xuXG4gICAgICBpZighbmV4dFRhZ0lkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV4dFRhZ3MgPSBjdXJyZW50VGFncy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtPy50YWdJZCB8fCAnJykudHJpbSgpICE9PSBuZXh0VGFnSWQpO1xuICAgICAgY29uc3QgbmV4dFNlc3Npb24gPSB7Li4uY3VycmVudFNlc3Npb24sIHRhZ3M6IG5leHRUYWdzfTtcblxuICAgICAgdm9pZCBmbHV4LnNldFN0YXRlKCd1c2VyLnNlc3Npb24nLCBuZXh0U2Vzc2lvbik7XG4gICAgICBmbHV4LmRpc3BhdGNoKHt0eXBlOiBVU0VSX0NPTlNUQU5UUy5VUERBVEVfU0VTU0lPTl9TVUNDRVNTLCB1c2VyOiB7dGFnczogbmV4dFRhZ3N9fSk7XG4gICAgfSk7XG4gICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5tZXRyb3BvbGlzSW5pdGlhbGl6ZWQnLCB0cnVlKSk7XG4gIH1cblxuICBjb25zdCB0b2tlbiA9IFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udG9rZW4nKSB8fCAnJyk7XG5cbiAgaWYodG9rZW4pIHtcbiAgICBjb25zdCBzZXNzaW9uID0gKGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KSB8fCB7fSkgYXMge2V4cGlyZXM/OiBudW1iZXI7IGlzc3VlZD86IG51bWJlcjsgdG9rZW4/OiBzdHJpbmd9O1xuICAgIGNvbnN0IGNvbmZpZyA9IGdldENvbmZpZ0Zyb21GbHV4KGZsdXgpO1xuICAgIGNvbnN0IHRva2VuRXhwaXJlc0F0ID0gcGFyc2VKd3RFeHBpcnlNcyh0b2tlbik7XG4gICAgY29uc3Qgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyA9IE1hdGgucm91bmQoKE51bWJlcihzZXNzaW9uLmV4cGlyZXMgfHwgMCkgLSBOdW1iZXIoc2Vzc2lvbi5pc3N1ZWQgfHwgMCkpIC8gKDEwMDAgKiA2MCkpO1xuICAgIGNvbnN0IHJlZnJlc2hXaW5kb3dNaW51dGVzID0gZ2V0UmVmcmVzaFdpbmRvd01pbnV0ZXMoXG4gICAgICBzZXNzaW9uTGlmZXRpbWVNaW51dGVzIHx8IDE1LFxuICAgICAgY29uZmlnLmFwcD8uc2Vzc2lvbiB8fCB7fVxuICAgICk7XG4gICAgY29uc3QgcmVmcmVzaEV4cGlyZXNNaW51dGVzID0gTWF0aC5tYXgoMSwgTnVtYmVyKGNvbmZpZy5hcHA/LnNlc3Npb24/Lm1heE1pbnV0ZXMgfHwgc2Vzc2lvbkxpZmV0aW1lTWludXRlcyB8fCAxNSkpO1xuICAgIGNvbnN0IGV4cGlyZXNBdCA9IE51bWJlcihzZXNzaW9uLmV4cGlyZXMgfHwgMCk7XG5cbiAgICBpZih0b2tlbkV4cGlyZXNBdCA+IDAgJiYgRGF0ZS5ub3coKSA+PSB0b2tlbkV4cGlyZXNBdCkge1xuICAgICAgYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4sIHJlZnJlc2hFeHBpcmVzTWludXRlcyk7XG4gICAgfSBlbHNlIGlmKCFleHBpcmVzQXQpIHtcbiAgICAgIGF3YWl0IHJlZnJlc2hTZXNzaW9uKGZsdXgsIHRva2VuLCByZWZyZXNoRXhwaXJlc01pbnV0ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtaW51dGVzVW50aWxFeHBpcnkgPSBNYXRoLnJvdW5kKERhdGVUaW1lLmZyb21NaWxsaXMoZXhwaXJlc0F0KS5kaWZmKERhdGVUaW1lLmxvY2FsKCksICdtaW51dGVzJykudG9PYmplY3QoKS5taW51dGVzIHx8IDApO1xuXG4gICAgICBpZihtaW51dGVzVW50aWxFeHBpcnkgPD0gMCB8fCBtaW51dGVzVW50aWxFeHBpcnkgPD0gcmVmcmVzaFdpbmRvd01pbnV0ZXMpIHtcbiAgICAgICAgYXdhaXQgcmVmcmVzaFNlc3Npb24oZmx1eCwgdG9rZW4gYXMgc3RyaW5nLCByZWZyZXNoRXhwaXJlc01pbnV0ZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0ICogZnJvbSAnLi9zdG9yZXMvaW5kZXguanMnO1xuXG5leHBvcnQge1xuICBhcHBNdXRhdGlvbixcbiAgYXBwUXVlcnksXG4gIHB1YmxpY011dGF0aW9uLFxuICBwdWJsaWNRdWVyeSxcbiAgcmVmcmVzaFNlc3Npb24sXG4gIHVwbG9hZEltYWdlLFxuICB0eXBlIEFwaVJlc3VsdHNUeXBlLFxuICB0eXBlIFJlYWt0b3JEYkNvbGxlY3Rpb25cbn0gZnJvbSAnLi91dGlscy9hcGkuanMnO1xuXG5leHBvcnQge3Jlc29sdmVFbnZpcm9ubWVudENvbmZpZ30gZnJvbSAnLi9jb25maWcvaW5kZXguanMnO1xuZXhwb3J0IHtnZXRDb25maWdGcm9tRmx1eH0gZnJvbSAnLi91dGlscy9jb25maWdVdGlscy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cm9wb2xpc1Byb3BzIHtcbiAgcmVhZG9ubHkgYWRhcHRlcnM/OiBNZXRyb3BvbGlzQWRhcHRlcnM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3RFbGVtZW50IHwgUmVhY3QuUmVhY3RFbGVtZW50W107XG4gIHJlYWRvbmx5IGNvbmZpZz86IE1ldHJvcG9saXNDb25maWd1cmF0aW9uO1xuICByZWFkb25seSB0cmFuc2xhdGlvbnM/OiBTaW1wbGVUcmFuc2xhdGlvbnMgfCBDb21wbGV4VHJhbnNsYXRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBTaW1wbGVUcmFuc2xhdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXhUcmFuc2xhdGlvbiB7XG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvY2FsZTogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENvbXBsZXhUcmFuc2xhdGlvbnMgPSBSZWNvcmQ8c3RyaW5nLCBDb21wbGV4VHJhbnNsYXRpb24+O1xuXG5leHBvcnQgY29uc3QgTWV0cm9wb2xpcyA9ICh7YWRhcHRlcnMsIGNoaWxkcmVuLCBjb25maWcgPSB7fSwgdHJhbnNsYXRpb25zID0ge319OiBNZXRyb3BvbGlzUHJvcHMpID0+IHtcbiAgY29uc3QgZmx1eCA9IHVzZUZsdXgoKTtcbiAgY29uc3QgcmVzb2x2ZWRDb25maWcgPSB1c2VNZW1vPE1ldHJvcG9saXNFbnZpcm9ubWVudENvbmZpZ3VyYXRpb24+KCgpID0+IHJlc29sdmVFbnZpcm9ubWVudENvbmZpZyhjb25maWcpLCBbY29uZmlnXSk7XG4gIGNvbnN0IG1lcmdlZEFkYXB0ZXJzID0gdXNlTWVtbygoKSA9PiAoey4uLnJlc29sdmVkQ29uZmlnLmFkYXB0ZXJzLCAuLi5hZGFwdGVyc30pLCBbcmVzb2x2ZWRDb25maWcuYWRhcHRlcnMsIGFkYXB0ZXJzXSk7XG4gIGNvbnN0IHNlc3Npb25QZXJzb25hSWQgPSBTdHJpbmcodXNlRmx1eFN0YXRlKCd1c2VyLnNlc3Npb24ucGVyc29uYUlkJywgJycpIHx8ICcnKTtcbiAgY29uc3Qgc2Vzc2lvblRva2VuID0gU3RyaW5nKHVzZUZsdXhTdGF0ZSgndXNlci5zZXNzaW9uLnRva2VuJywgJycpIHx8ICcnKTtcbiAgY29uc3Qgc2Vzc2lvbkh5ZHJhdGVkID0gQm9vbGVhbih1c2VGbHV4U3RhdGUoJ2FwcC5zZXNzaW9uSHlkcmF0ZWQnLCBmYWxzZSkpO1xuICBjb25zdCBzZXNzaW9uID0gdXNlRmx1eFN0YXRlKCd1c2VyLnNlc3Npb24nLCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbnN0IG5vdGlmaWNhdGlvbkxpc3QgPSB1c2VGbHV4U3RhdGUoJ25vdGlmaWNhdGlvbi5saXN0JywgW10pIGFzIEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgY29uc3QgY29udmVyc2F0aW9uTWFwID0gdXNlRmx1eFN0YXRlKCdtZXNzYWdlLmNvbnZlcnNhdGlvbnMnLCB7fSkgYXMgUmVjb3JkPHN0cmluZywgQXJyYXk8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+PjtcbiAgY29uc3QgbWVzc2FnZXMgPSB1c2VNZW1vKCgpID0+IE9iamVjdC52YWx1ZXMoY29udmVyc2F0aW9uTWFwKS5mbGF0KCksIFtjb252ZXJzYXRpb25NYXBdKTtcblxuICBjb25zdCB3ZWJzb2NrZXRzUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVdlYnNvY2tldEFjdGlvbnM+IHwgbnVsbD4obnVsbCk7XG4gIGlmKCF3ZWJzb2NrZXRzUmVmLmN1cnJlbnQpIHtcbiAgICB3ZWJzb2NrZXRzUmVmLmN1cnJlbnQgPSBjcmVhdGVBY3Rpb24oJ3dlYnNvY2tldCcsIGZsdXgpIGFzIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVdlYnNvY2tldEFjdGlvbnM+O1xuICB9XG4gIGNvbnN0IHdlYnNvY2tldHMgPSB3ZWJzb2NrZXRzUmVmLmN1cnJlbnQ7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0STE4bih0cmFuc2xhdGlvbnMpO1xuICB9LCBbdHJhbnNsYXRpb25zXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5jb25maWcnLCByZXNvbHZlZENvbmZpZykpO1xuICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKGZsdXguc2V0U3RhdGUoJ2FwcC5zZXNzaW9uSHlkcmF0ZWQnLCBmYWxzZSkpO1xuICAgICAgYXdhaXQgaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZShmbHV4KTtcblxuICAgICAgaWYoIWlzQWN0aXZlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgb25Jbml0KGZsdXgpO1xuXG4gICAgICBpZighaXNBY3RpdmUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoZmx1eC5zZXRTdGF0ZSgnYXBwLnNlc3Npb25IeWRyYXRlZCcsIHRydWUpKTtcbiAgICB9KSgpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgfTtcbiAgfSwgW2ZsdXgsIHJlc29sdmVkQ29uZmlnXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZighc2Vzc2lvbkh5ZHJhdGVkKSB7XG4gICAgICB3ZWJzb2NrZXRzLndzQ2xvc2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihzZXNzaW9uVG9rZW4pIHtcbiAgICAgIHdlYnNvY2tldHMud3NJbml0KHNlc3Npb25Ub2tlbiwgc2Vzc2lvblBlcnNvbmFJZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdlYnNvY2tldHMud3NDbG9zZSgpO1xuICAgIH1cbiAgfSwgW3Nlc3Npb25IeWRyYXRlZCwgc2Vzc2lvblBlcnNvbmFJZCwgc2Vzc2lvblRva2VuLCB3ZWJzb2NrZXRzXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2Vic29ja2V0cy53c0Nsb3NlKCk7XG4gICAgfTtcbiAgfSwgW3dlYnNvY2tldHNdKTtcblxuICBjb25zdCBpc0F1dGggPSB1c2VNZW1vKCgpID0+IHJlc29sdmVkQ29uZmlnLmlzQXV0aCB8fCAoKCkgPT4ge1xuICAgIGNvbnN0IHNlc3Npb25TdGF0ZSA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbicsIHt9KTtcbiAgICByZXR1cm4gISFzZXNzaW9uU3RhdGUudXNlckFjdGl2ZTtcbiAgfSksIFtyZXNvbHZlZENvbmZpZy5pc0F1dGgsIGZsdXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxNZXRyb3BvbGlzQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgYWRhcHRlcnM6IG1lcmdlZEFkYXB0ZXJzLFxuICAgICAgICBjb25maWc6IHJlc29sdmVkQ29uZmlnLFxuICAgICAgICBmbHV4LFxuICAgICAgICBpc0F1dGgsXG4gICAgICAgIG1lc3NhZ2VzLFxuICAgICAgICBub3RpZmljYXRpb25zOiBub3RpZmljYXRpb25MaXN0LFxuICAgICAgICBzZXNzaW9uLFxuICAgICAgICB1cGRhdGVNZXNzYWdlOiAoKSA9PiB7IH0sXG4gICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogd2Vic29ja2V0cy5zZW5kTm90aWZpY2F0aW9uXG4gICAgICB9fT5cbiAgICAgIDxJMThuZXh0UHJvdmlkZXIgaTE4bj17aTE4bn0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvSTE4bmV4dFByb3ZpZGVyPlxuICAgIDwvTWV0cm9wb2xpc0NvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZXRyb3BvbGlzO1xuXG5leHBvcnQge3VzZVRyYW5zbGF0aW9ufSBmcm9tICdyZWFjdC1pMThuZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlcnMvaW5kZXguanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvTWV0cm9wb2xpc0NvbnN0YW50cy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWwvbWVzc2FnZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWwvbm90aWZpY2F0aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVzL2luZGV4LmpzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUFjdGlvbixcbiAgY3JlYXRlQWN0aW9ucyxcbiAgY3JlYXRlQWxsQWN0aW9uc1xufSBmcm9tICcuL3V0aWxzL2FjdGlvbkZhY3RvcnkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9hcHAuanMnO1xuZXhwb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi91dGlscy9iYXNlQWN0aW9uRmFjdG9yeS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2RhdGVVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL2ZpbGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscy9sb2NhdGlvbi5qcyc7XG5leHBvcnQge1xuICB1c2VDb250ZW50QWN0aW9ucyxcbiAgdXNlRXZlbnRBY3Rpb25zLFxuICB1c2VHcm91cEFjdGlvbnMsXG4gIHVzZUltYWdlQWN0aW9ucyxcbiAgdXNlTG9jYXRpb25BY3Rpb25zLFxuICB1c2VNZXNzYWdlQWN0aW9ucywgdXNlTWV0cm9wb2xpcyxcbiAgdXNlTWV0cm9wb2xpc0NvbmZpZyxcbiAgdXNlTWV0cm9wb2xpc0ZsdXgsIHVzZVBvc3RBY3Rpb25zLFxuICB1c2VQZXJzb25hQWN0aW9ucyxcbiAgdXNlUmVhY3Rpb25BY3Rpb25zLFxuICB1c2VUYWdBY3Rpb25zLFxuICB1c2VUcmFuc2xhdGlvbkFjdGlvbnMsXG4gIHVzZVVzZXJBY3Rpb25zLFxuICB1c2VXZWJzb2NrZXRBY3Rpb25zXG59IGZyb20gJy4vdXRpbHMvdXNlTWV0cm9wb2xpcy5qcyc7XG5leHBvcnQge3VzZUNvbnZlcnNhdGlvblR5cGluZ30gZnJvbSAnLi91dGlscy91c2VDb252ZXJzYXRpb25UeXBpbmcuanMnO1xuZXhwb3J0IHR5cGUge1xuICBDb252ZXJzYXRpb25UeXBpbmdPcHRpb25zLFxuICBVc2VDb252ZXJzYXRpb25UeXBpbmdPcHRpb25zXG59IGZyb20gJy4vdXRpbHMvdXNlQ29udmVyc2F0aW9uVHlwaW5nLmpzJztcbmV4cG9ydCB7XG4gIGNyZWF0ZVZhbGlkYXRvckZhY3RvcnksXG4gIGNyZWF0ZVZhbGlkYXRvck1hbmFnZXJcbn0gZnJvbSAnLi91dGlscy92YWxpZGF0b3JGYWN0b3J5LmpzJztcblxuZXhwb3J0IHR5cGUge1xuICBBY3Rpb25PcHRpb25zLFxuICBBY3Rpb25SZXR1cm5UeXBlLFxuICBBY3Rpb25UeXBlLFxuICBBY3Rpb25UeXBlc1xufSBmcm9tICcuL3V0aWxzL2FjdGlvbkZhY3RvcnkuanMnO1xuZXhwb3J0IHR5cGUge0Jhc2VBY3Rpb25PcHRpb25zfSBmcm9tICcuL3V0aWxzL2Jhc2VBY3Rpb25GYWN0b3J5LmpzJztcbmV4cG9ydCB0eXBlIHtCYXNlQWRhcHRlck9wdGlvbnN9IGZyb20gJy4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9hcHBBY3Rpb25zL2FwcEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9ucy9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb25zL3ZpZGVvQWN0aW9ucy92aWRlb0FjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvQ29sbGVjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9pbmRleC5qcyc7XG4iXSwibmFtZXMiOlsidXNlRmx1eCIsInVzZUZsdXhTdGF0ZSIsImkxOG4iLCJEYXRlVGltZSIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJJMThuZXh0UHJvdmlkZXIiLCJzeW5jUGVyc29uYVRhZ3NUb1Nlc3Npb24iLCJzeW5jUGVyc29uYVRvU2Vzc2lvbiIsInJlc29sdmVFbnZpcm9ubWVudENvbmZpZyIsImFwcCIsImV2ZW50cyIsImltYWdlcyIsImxvY2F0aW9ucyIsIm1lc3NhZ2VzIiwibm90aWZpY2F0aW9ucyIsIk5PVElGSUNBVElPTl9DT05TVEFOVFMiLCJwZXJtaXNzaW9ucyIsIlBFUlNPTkFfQ09OU1RBTlRTIiwicG9zdHMiLCJzdWJzY3JpcHRpb25zIiwiVEFHX0NPTlNUQU5UUyIsInRhZ3MiLCJVU0VSX0NPTlNUQU5UUyIsInVzZXJzIiwidmlkZW8iLCJ3ZWJzb2NrZXQiLCJyZWZyZXNoU2Vzc2lvbiIsImdldENvbmZpZ0Zyb21GbHV4IiwiaW5pdEkxOG4iLCJNZXRyb3BvbGlzQ29udGV4dCIsImdldFJlZnJlc2hXaW5kb3dNaW51dGVzIiwiaHlkcmF0ZVNlc3Npb25Gcm9tU3RvcmFnZSIsInBhcnNlSnd0RXhwaXJ5TXMiLCJjcmVhdGVBY3Rpb24iLCJNZXRyb3BvbGlzUHJvdmlkZXIiLCJvbkluaXQiLCJmbHV4IiwiZ2V0U3RhdGUiLCJhZGRTdG9yZXMiLCJvbiIsIlNJR05fT1VUX1NVQ0NFU1MiLCJkaXNwYXRjaCIsInR5cGUiLCJDTEVBUl9JVEVNUyIsIkFERF9JVEVNX1NVQ0NFU1MiLCJwZXJzb25hIiwicGVyc29uYUlkIiwiQXJyYXkiLCJpc0FycmF5IiwiU3RyaW5nIiwiVVBEQVRFX0lURU1fU1VDQ0VTUyIsIkFERF9QRVJTT05BX1NVQ0NFU1MiLCJ0YWciLCJjdXJyZW50U2Vzc2lvbiIsImN1cnJlbnRUYWdzIiwibmV4dFRhZ0lkIiwidGFnSWQiLCJ0cmltIiwibWVyZ2VkVGFncyIsImZpbHRlciIsIml0ZW0iLCJzb3J0IiwibGVmdCIsInJpZ2h0IiwibmFtZSIsImxvY2FsZUNvbXBhcmUiLCJuZXh0U2Vzc2lvbiIsInNldFN0YXRlIiwiVVBEQVRFX1NFU1NJT05fU1VDQ0VTUyIsInVzZXIiLCJSRU1PVkVfUEVSU09OQV9TVUNDRVNTIiwibmV4dFRhZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRva2VuIiwic2Vzc2lvbiIsImNvbmZpZyIsInRva2VuRXhwaXJlc0F0Iiwic2Vzc2lvbkxpZmV0aW1lTWludXRlcyIsIk1hdGgiLCJyb3VuZCIsIk51bWJlciIsImV4cGlyZXMiLCJpc3N1ZWQiLCJyZWZyZXNoV2luZG93TWludXRlcyIsInJlZnJlc2hFeHBpcmVzTWludXRlcyIsIm1heCIsIm1heE1pbnV0ZXMiLCJleHBpcmVzQXQiLCJEYXRlIiwibm93IiwibWludXRlc1VudGlsRXhwaXJ5IiwiZnJvbU1pbGxpcyIsImRpZmYiLCJsb2NhbCIsInRvT2JqZWN0IiwibWludXRlcyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJwdWJsaWNNdXRhdGlvbiIsInB1YmxpY1F1ZXJ5IiwidXBsb2FkSW1hZ2UiLCJNZXRyb3BvbGlzIiwiYWRhcHRlcnMiLCJjaGlsZHJlbiIsInRyYW5zbGF0aW9ucyIsInJlc29sdmVkQ29uZmlnIiwibWVyZ2VkQWRhcHRlcnMiLCJzZXNzaW9uUGVyc29uYUlkIiwic2Vzc2lvblRva2VuIiwic2Vzc2lvbkh5ZHJhdGVkIiwiQm9vbGVhbiIsIm5vdGlmaWNhdGlvbkxpc3QiLCJjb252ZXJzYXRpb25NYXAiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmbGF0Iiwid2Vic29ja2V0c1JlZiIsImN1cnJlbnQiLCJ3ZWJzb2NrZXRzIiwiaXNBY3RpdmUiLCJ3c0Nsb3NlIiwid3NJbml0IiwiaXNBdXRoIiwic2Vzc2lvblN0YXRlIiwidXNlckFjdGl2ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1cGRhdGVNZXNzYWdlIiwidXBkYXRlTm90aWZpY2F0aW9uIiwic2VuZE5vdGlmaWNhdGlvbiIsInVzZVRyYW5zbGF0aW9uIiwiY3JlYXRlQWN0aW9ucyIsImNyZWF0ZUFsbEFjdGlvbnMiLCJjcmVhdGVCYXNlQWN0aW9ucyIsInVzZUNvbnRlbnRBY3Rpb25zIiwidXNlRXZlbnRBY3Rpb25zIiwidXNlR3JvdXBBY3Rpb25zIiwidXNlSW1hZ2VBY3Rpb25zIiwidXNlTG9jYXRpb25BY3Rpb25zIiwidXNlTWVzc2FnZUFjdGlvbnMiLCJ1c2VNZXRyb3BvbGlzIiwidXNlTWV0cm9wb2xpc0NvbmZpZyIsInVzZU1ldHJvcG9saXNGbHV4IiwidXNlUG9zdEFjdGlvbnMiLCJ1c2VQZXJzb25hQWN0aW9ucyIsInVzZVJlYWN0aW9uQWN0aW9ucyIsInVzZVRhZ0FjdGlvbnMiLCJ1c2VUcmFuc2xhdGlvbkFjdGlvbnMiLCJ1c2VVc2VyQWN0aW9ucyIsInVzZVdlYnNvY2tldEFjdGlvbnMiLCJ1c2VDb252ZXJzYXRpb25UeXBpbmciLCJjcmVhdGVWYWxpZGF0b3JGYWN0b3J5IiwiY3JlYXRlVmFsaWRhdG9yTWFuYWdlciJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLE9BQU8sRUFBRUMsWUFBWSxRQUFPLDhCQUE4QjtBQUNsRSxPQUFPQyxVQUFVLFVBQVU7QUFDM0IsU0FBUUMsUUFBUSxRQUFPLFFBQVE7QUFDL0IsU0FBUUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0sUUFBTyxRQUFRO0FBQ2pELFNBQVFDLGVBQWUsUUFBTyxnQkFBZ0I7QUFHOUMsU0FBUUMsd0JBQXdCLEVBQUVDLG9CQUFvQixRQUFPLDZDQUE2QztBQUMxRyxTQUFRQyx3QkFBd0IsUUFBTyxvQkFBb0I7QUFDM0QsU0FDRUMsR0FBRyxFQUNIQyxNQUFNLEVB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
@@ -20,3 +20,4 @@ export declare const app: {
20
20
  name: string;
21
21
  };
22
22
  export {};
23
+ //# sourceMappingURL=appStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appStore.d.ts","sourceRoot":"","sources":["../../src/stores/appStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,eAAO,MAAM,aAAa,EAAE,QAAa,CAAC;AAE1C,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,gBAAqB,KAAG,QAMvF,CAAC;AAEF,eAAO,MAAM,GAAG;mBARe,MAAM,QAAQ,OAAO,CAAC,QAAQ,CAAC,uBAA0B,QAAQ;;;CAY/F,CAAC"}
@@ -1,2 +1,23 @@
1
- const o={API_NETWORK_ERROR:"APP_API_NETWORK_ERROR",API_NETWORK_SUCCESS:"APP_API_NETWORK_SUCCESS"},t={},p=(a,r,e=t)=>e,S={action:p,initialState:t,name:"app"};export{o as APP_CONSTANTS,S as app,p as appStore,t as defaultValues};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3N0b3Jlcy9hcHBTdG9yZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IEFQUF9DT05TVEFOVFMgPSB7XG4gIEFQSV9ORVRXT1JLX0VSUk9SOiAnQVBQX0FQSV9ORVRXT1JLX0VSUk9SJyxcbiAgQVBJX05FVFdPUktfU1VDQ0VTUzogJ0FQUF9BUElfTkVUV09SS19TVUNDRVNTJ1xufSBhcyBjb25zdDtcblxuaW50ZXJmYWNlIEFwcFN0YXRlIHtcbiAgbmV0d29yaz86IHtcbiAgICBlcnJvcj86IEVycm9yO1xuICAgIHN0YXR1cz86IGJvb2xlYW47XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VmFsdWVzOiBBcHBTdGF0ZSA9IHt9O1xuXG5leHBvcnQgY29uc3QgYXBwU3RvcmUgPSAodHlwZTogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPEFwcFN0YXRlPiwgc3RhdGUgPSBkZWZhdWx0VmFsdWVzKTogQXBwU3RhdGUgPT4ge1xuICBzd2l0Y2godHlwZSkge1xuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBhcHAgPSB7XG4gIGFjdGlvbjogYXBwU3RvcmUsXG4gIGluaXRpYWxTdGF0ZTogZGVmYXVsdFZhbHVlcyxcbiAgbmFtZTogJ2FwcCdcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiQUFLTyxNQUFNQSxFQUFnQixDQUMzQixrQkFBbUIsd0JBQ25CLG9CQUFxQix5QkFDdkIsRUFTYUMsRUFBMEIsQ0FBQyxFQUUzQkMsRUFBVyxDQUFDQyxFQUFjQyxFQUF5QkMsRUFBUUosSUFHM0RJLEVBS0FDLEVBQU0sQ0FDakIsT0FBUUosRUFDUixhQUFjRCxFQUNkLEtBQU0sS0FDUiIsCiAgIm5hbWVzIjogWyJBUFBfQ09OU1RBTlRTIiwgImRlZmF1bHRWYWx1ZXMiLCAiYXBwU3RvcmUiLCAidHlwZSIsICJkYXRhIiwgInN0YXRlIiwgImFwcCJdCn0K
1
+ /**
2
+ * Copyright (c) 2019-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ export const APP_CONSTANTS = {
5
+ API_NETWORK_ERROR: 'APP_API_NETWORK_ERROR',
6
+ API_NETWORK_SUCCESS: 'APP_API_NETWORK_SUCCESS'
7
+ };
8
+ export const defaultValues = {};
9
+ export const appStore = (type, data, state = defaultValues)=>{
10
+ switch(type){
11
+ default:
12
+ {
13
+ return state;
14
+ }
15
+ }
16
+ };
17
+ export const app = {
18
+ action: appStore,
19
+ initialState: defaultValues,
20
+ name: 'app'
21
+ };
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvc3RvcmVzL2FwcFN0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmV4cG9ydCBjb25zdCBBUFBfQ09OU1RBTlRTID0ge1xuICBBUElfTkVUV09SS19FUlJPUjogJ0FQUF9BUElfTkVUV09SS19FUlJPUicsXG4gIEFQSV9ORVRXT1JLX1NVQ0NFU1M6ICdBUFBfQVBJX05FVFdPUktfU1VDQ0VTUydcbn0gYXMgY29uc3Q7XG5cbmludGVyZmFjZSBBcHBTdGF0ZSB7XG4gIG5ldHdvcms/OiB7XG4gICAgZXJyb3I/OiBFcnJvcjtcbiAgICBzdGF0dXM/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdFZhbHVlczogQXBwU3RhdGUgPSB7fTtcblxuZXhwb3J0IGNvbnN0IGFwcFN0b3JlID0gKHR5cGU6IHN0cmluZywgZGF0YTogUGFydGlhbDxBcHBTdGF0ZT4sIHN0YXRlID0gZGVmYXVsdFZhbHVlcyk6IEFwcFN0YXRlID0+IHtcbiAgc3dpdGNoKHR5cGUpIHtcbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYXBwID0ge1xuICBhY3Rpb246IGFwcFN0b3JlLFxuICBpbml0aWFsU3RhdGU6IGRlZmF1bHRWYWx1ZXMsXG4gIG5hbWU6ICdhcHAnXG59O1xuIl0sIm5hbWVzIjpbIkFQUF9DT05TVEFOVFMiLCJBUElfTkVUV09SS19FUlJPUiIsIkFQSV9ORVRXT1JLX1NVQ0NFU1MiLCJkZWZhdWx0VmFsdWVzIiwiYXBwU3RvcmUiLCJ0eXBlIiwiZGF0YSIsInN0YXRlIiwiYXBwIiwiYWN0aW9uIiwiaW5pdGlhbFN0YXRlIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsT0FBTyxNQUFNQSxnQkFBZ0I7SUFDM0JDLG1CQUFtQjtJQUNuQkMscUJBQXFCO0FBQ3ZCLEVBQVc7QUFTWCxPQUFPLE1BQU1DLGdCQUEwQixDQUFDLEVBQUU7QUFFMUMsT0FBTyxNQUFNQyxXQUFXLENBQUNDLE1BQWNDLE1BQXlCQyxRQUFRSixhQUFhO0lBQ25GLE9BQU9FO1FBQ0w7WUFBUztnQkFDUCxPQUFPRTtZQUNUO0lBQ0Y7QUFDRixFQUFFO0FBRUYsT0FBTyxNQUFNQyxNQUFNO0lBQ2pCQyxRQUFRTDtJQUNSTSxjQUFjUDtJQUNkUSxNQUFNO0FBQ1IsRUFBRSJ9
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Copyright (c) 2025-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */
5
+ import type { ContentType } from '../adapters/contentAdapter/contentAdapter.js';
6
+ export declare const CONTENT_CONSTANTS: {
7
+ readonly ADD_ITEM_ERROR: "CONTENT_ADD_ITEM_ERROR";
8
+ readonly ADD_ITEM_SUCCESS: "CONTENT_ADD_ITEM_SUCCESS";
9
+ readonly GET_ITEM_ERROR: "CONTENT_GET_ITEM_ERROR";
10
+ readonly GET_ITEM_SUCCESS: "CONTENT_GET_ITEM_SUCCESS";
11
+ readonly GET_LIST_ERROR: "CONTENT_GET_LIST_ERROR";
12
+ readonly GET_LIST_SUCCESS: "CONTENT_GET_LIST_SUCCESS";
13
+ readonly REMOVE_ITEM_ERROR: "CONTENT_REMOVE_ITEM_ERROR";
14
+ readonly REMOVE_ITEM_SUCCESS: "CONTENT_REMOVE_ITEM_SUCCESS";
15
+ readonly UPDATE_ITEM_ERROR: "CONTENT_UPDATE_ITEM_ERROR";
16
+ readonly UPDATE_ITEM_SUCCESS: "CONTENT_UPDATE_ITEM_SUCCESS";
17
+ };
18
+ export type ContentConstantsType = typeof CONTENT_CONSTANTS[keyof typeof CONTENT_CONSTANTS];
19
+ interface ContentState {
20
+ error?: Error;
21
+ content: Record<string, Partial<ContentType>>;
22
+ lists: Record<string, unknown>;
23
+ }
24
+ interface ContentData {
25
+ readonly content?: ContentType;
26
+ readonly error?: Error;
27
+ readonly list?: ContentType[];
28
+ }
29
+ export declare const contentStore: (type: string, data: ContentData, state?: ContentState) => ContentState;
30
+ export declare const contents: {
31
+ action: (type: string, data: ContentData, state?: ContentState) => ContentState;
32
+ initialState: ContentState;
33
+ name: string;
34
+ };
35
+ export {};
36
+ //# sourceMappingURL=contentStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contentStore.d.ts","sourceRoot":"","sources":["../../src/stores/contentStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAEhF,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAWpB,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,OAAO,iBAAiB,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5F,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAOD,UAAU,WAAW;IACnB,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,MAAM,WAAW,EAAE,oBAAqB,KAAG,YAkErF,CAAC;AAEF,eAAO,MAAM,QAAQ;mBApEc,MAAM,QAAQ,WAAW,2BAA0B,YAAY;;;CAwEjG,CAAC"}