@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.
- package/.github/copilot-instructions.md +167 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +112 -0
- package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
- package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
- package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
- package/README.md +1123 -112
- package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
- package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
- package/docs/ACTIONS.md +63 -0
- package/docs/COLLECTIONS.md +1038 -0
- package/docs/CONNECTIONS.md +1367 -0
- package/docs/CRUD_INTEGRATION.md +702 -0
- package/examples/connections-usage.tsx +909 -0
- package/examples/content-actions-usage.ts +144 -0
- package/examples/crud-usage.tsx +847 -0
- package/examples/extensibility-usage.tsx +889 -0
- package/examples/i18n-import-examples.ts +86 -0
- package/examples/i18n-namespace-usage.ts +118 -0
- package/examples/i18next-singleton-demo.ts +187 -0
- package/examples/permission-system-usage.tsx +415 -0
- package/examples/project-details.tsx +397 -0
- package/examples/shared-i18n-usage.tsx +203 -0
- package/examples/signup-error-handling.ts +100 -0
- package/examples/translation-types.ts +86 -0
- package/examples/translation-usage.tsx +336 -0
- package/index.js +1 -0
- package/jest.config.mjs +28 -0
- package/lex.config.mjs +11 -2
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
- package/lib/actions/appActions/appActions.d.ts +29 -0
- package/lib/actions/appActions/appActions.d.ts.map +1 -0
- package/lib/actions/appActions/appActions.js +159 -0
- package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
- package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
- package/lib/actions/connectionActions/connectionActions.js +131 -0
- package/lib/actions/contentActions/contentActions.d.ts +34 -0
- package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
- package/lib/actions/contentActions/contentActions.js +314 -0
- package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
- package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
- package/lib/actions/conversationActions/conversationActions.js +225 -0
- package/lib/actions/eventActions/eventActions.d.ts +27 -7
- package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
- package/lib/actions/eventActions/eventActions.js +436 -2
- package/lib/actions/groupActions/groupActions.d.ts +30 -0
- package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
- package/lib/actions/groupActions/groupActions.js +229 -0
- package/lib/actions/imageActions/imageActions.d.ts +16 -10
- package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
- package/lib/actions/imageActions/imageActions.js +593 -2
- package/lib/actions/index.d.ts +21 -9
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +22 -2
- package/lib/actions/locationActions/locationActions.d.ts +11 -9
- package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
- package/lib/actions/locationActions/locationActions.js +388 -2
- package/lib/actions/messageActions/messageActions.d.ts +16 -32
- package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
- package/lib/actions/messageActions/messageActions.js +235 -2
- package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
- package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
- package/lib/actions/permissionActions/permissionActions.js +330 -0
- package/lib/actions/personaActions/personaActions.d.ts +65 -0
- package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
- package/lib/actions/personaActions/personaActions.js +572 -0
- package/lib/actions/postActions/postActions.d.ts +12 -32
- package/lib/actions/postActions/postActions.d.ts.map +1 -0
- package/lib/actions/postActions/postActions.js +447 -2
- package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
- package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
- package/lib/actions/reactionActions/reactionActions.js +413 -2
- package/lib/actions/sseActions/sseActions.d.ts +1 -0
- package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
- package/lib/actions/sseActions/sseActions.js +148 -2
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
- package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
- package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
- package/lib/actions/tagActions/tagActions.d.ts +13 -31
- package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
- package/lib/actions/tagActions/tagActions.js +347 -2
- package/lib/actions/translationActions/translationActions.d.ts +38 -0
- package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
- package/lib/actions/translationActions/translationActions.js +189 -0
- package/lib/actions/userActions/userActions.d.ts +42 -95
- package/lib/actions/userActions/userActions.d.ts.map +1 -0
- package/lib/actions/userActions/userActions.js +844 -2
- package/lib/actions/videoActions/videoActions.d.ts +41 -0
- package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
- package/lib/actions/videoActions/videoActions.js +532 -0
- package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
- package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
- package/lib/actions/websocketActions/websocketActions.js +377 -2
- package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
- package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
- package/lib/adapters/appAdapter/appAdapter.js +90 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
- package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
- package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
- package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
- package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
- package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
- package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
- package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
- package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
- package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
- package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
- package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
- package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
- package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
- package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
- package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
- package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
- package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
- package/lib/adapters/index.d.ts +34 -16
- package/lib/adapters/index.d.ts.map +1 -0
- package/lib/adapters/index.js +19 -2
- package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
- package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
- package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
- package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
- package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
- package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
- package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
- package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
- package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
- package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
- package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
- package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
- package/lib/adapters/postAdapter/postAdapter.js +115 -2
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
- package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
- package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
- package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
- package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
- package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
- package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
- package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
- package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
- package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
- package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
- package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
- package/lib/adapters/userAdapter/userAdapter.js +302 -2
- package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
- package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
- package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
- package/lib/config/index.d.ts +19 -6
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +97 -2
- package/lib/constants/Collections.d.ts +44 -0
- package/lib/constants/Collections.d.ts.map +1 -0
- package/lib/constants/Collections.js +40 -0
- package/lib/constants/MetropolisConstants.d.ts +1 -0
- package/lib/constants/MetropolisConstants.d.ts.map +1 -0
- package/lib/constants/MetropolisConstants.js +15 -2
- package/lib/graphql/message.d.ts +1 -0
- package/lib/graphql/message.d.ts.map +1 -0
- package/lib/graphql/message.js +6 -4
- package/lib/graphql/notification.d.ts +1 -0
- package/lib/graphql/notification.d.ts.map +1 -0
- package/lib/graphql/notification.js +6 -4
- package/lib/graphql/session.d.ts +1 -0
- package/lib/graphql/session.d.ts.map +1 -0
- package/lib/graphql/session.js +4 -3
- package/lib/index.d.ts +45 -22
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +248 -2
- package/lib/stores/appStore.d.ts +1 -0
- package/lib/stores/appStore.d.ts.map +1 -0
- package/lib/stores/appStore.js +23 -2
- package/lib/stores/contentStore.d.ts +36 -0
- package/lib/stores/contentStore.d.ts.map +1 -0
- package/lib/stores/contentStore.js +139 -0
- package/lib/stores/conversationStore.d.ts +38 -0
- package/lib/stores/conversationStore.d.ts.map +1 -0
- package/lib/stores/conversationStore.js +117 -0
- package/lib/stores/eventStore.d.ts +4 -1
- package/lib/stores/eventStore.d.ts.map +1 -0
- package/lib/stores/eventStore.js +47 -2
- package/lib/stores/groupStore.d.ts +37 -0
- package/lib/stores/groupStore.d.ts.map +1 -0
- package/lib/stores/groupStore.js +68 -0
- package/lib/stores/imageStore.d.ts +6 -1
- package/lib/stores/imageStore.d.ts.map +1 -0
- package/lib/stores/imageStore.js +53 -2
- package/lib/stores/index.d.ts +20 -11
- package/lib/stores/index.d.ts.map +1 -0
- package/lib/stores/index.js +24 -2
- package/lib/stores/locationStore.d.ts +2 -1
- package/lib/stores/locationStore.d.ts.map +1 -0
- package/lib/stores/locationStore.js +42 -2
- package/lib/stores/messageStore.d.ts +19 -4
- package/lib/stores/messageStore.d.ts.map +1 -0
- package/lib/stores/messageStore.js +137 -2
- package/lib/stores/notificationStore.d.ts +33 -0
- package/lib/stores/notificationStore.d.ts.map +1 -0
- package/lib/stores/notificationStore.js +55 -0
- package/lib/stores/permissionStore.d.ts +37 -0
- package/lib/stores/permissionStore.d.ts.map +1 -0
- package/lib/stores/permissionStore.js +117 -0
- package/lib/stores/personaStore.d.ts +26 -0
- package/lib/stores/personaStore.d.ts.map +1 -0
- package/lib/stores/personaStore.js +118 -0
- package/lib/stores/postStore.d.ts +2 -1
- package/lib/stores/postStore.d.ts.map +1 -0
- package/lib/stores/postStore.js +53 -2
- package/lib/stores/reactionStore.d.ts +1 -0
- package/lib/stores/reactionStore.d.ts.map +1 -0
- package/lib/stores/reactionStore.js +28 -2
- package/lib/stores/subscriptionStore.d.ts +41 -0
- package/lib/stores/subscriptionStore.d.ts.map +1 -0
- package/lib/stores/subscriptionStore.js +85 -0
- package/lib/stores/tagStore.d.ts +8 -5
- package/lib/stores/tagStore.d.ts.map +1 -0
- package/lib/stores/tagStore.js +87 -2
- package/lib/stores/translationStore.d.ts +42 -0
- package/lib/stores/translationStore.d.ts.map +1 -0
- package/lib/stores/translationStore.js +122 -0
- package/lib/stores/userStore.d.ts +5 -4
- package/lib/stores/userStore.d.ts.map +1 -0
- package/lib/stores/userStore.js +319 -2
- package/lib/stores/videoStore.d.ts +39 -0
- package/lib/stores/videoStore.d.ts.map +1 -0
- package/lib/stores/videoStore.js +132 -0
- package/lib/stores/websocketStore.d.ts +1 -0
- package/lib/stores/websocketStore.d.ts.map +1 -0
- package/lib/stores/websocketStore.js +51 -2
- package/lib/types/apps.types.d.ts +17 -0
- package/lib/types/apps.types.d.ts.map +1 -0
- package/lib/types/apps.types.js +6 -0
- package/lib/types/common.types.d.ts +31 -0
- package/lib/types/common.types.d.ts.map +1 -0
- package/lib/types/common.types.js +6 -0
- package/lib/types/conversations.types.d.ts +17 -0
- package/lib/types/conversations.types.d.ts.map +1 -0
- package/lib/types/conversations.types.js +6 -0
- package/lib/types/edges.types.d.ts +38 -0
- package/lib/types/edges.types.d.ts.map +1 -0
- package/lib/types/edges.types.js +6 -0
- package/lib/types/groups.types.d.ts +19 -0
- package/lib/types/groups.types.d.ts.map +1 -0
- package/lib/types/groups.types.js +6 -0
- package/lib/types/index.d.ts +12 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +12 -0
- package/lib/types/subscriptions.types.d.ts +32 -0
- package/lib/types/subscriptions.types.d.ts.map +1 -0
- package/lib/types/subscriptions.types.js +6 -0
- package/lib/types/videos.types.d.ts +61 -0
- package/lib/types/videos.types.d.ts.map +1 -0
- package/lib/types/videos.types.js +6 -0
- package/lib/utils/MetropolisProvider.d.ts +39 -15
- package/lib/utils/MetropolisProvider.d.ts.map +1 -0
- package/lib/utils/MetropolisProvider.js +31 -2
- package/lib/utils/actionFactory.d.ts +21 -19
- package/lib/utils/actionFactory.d.ts.map +1 -0
- package/lib/utils/actionFactory.js +95 -2
- package/lib/utils/api.d.ts +5 -4
- package/lib/utils/api.d.ts.map +1 -0
- package/lib/utils/api.js +252 -6
- package/lib/utils/app.d.ts +1 -0
- package/lib/utils/app.d.ts.map +1 -0
- package/lib/utils/app.js +15 -2
- package/lib/utils/baseActionFactory.d.ts +5 -23
- package/lib/utils/baseActionFactory.d.ts.map +1 -0
- package/lib/utils/baseActionFactory.js +72 -2
- package/lib/utils/configUtils.d.ts +11 -0
- package/lib/utils/configUtils.d.ts.map +1 -0
- package/lib/utils/configUtils.js +20 -0
- package/lib/utils/dateUtils.d.ts +1 -0
- package/lib/utils/dateUtils.d.ts.map +1 -0
- package/lib/utils/dateUtils.js +11 -2
- package/lib/utils/file.d.ts +3 -1
- package/lib/utils/file.d.ts.map +1 -0
- package/lib/utils/file.js +156 -2
- package/lib/utils/i18n.d.ts +7 -0
- package/lib/utils/i18n.d.ts.map +1 -0
- package/lib/utils/i18n.js +96 -0
- package/lib/utils/index.d.ts +20 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +26 -0
- package/lib/utils/location.d.ts +4 -3
- package/lib/utils/location.d.ts.map +1 -0
- package/lib/utils/location.js +82 -2
- package/lib/utils/permissionUtils.d.ts +22 -0
- package/lib/utils/permissionUtils.d.ts.map +1 -0
- package/lib/utils/permissionUtils.js +72 -0
- package/lib/utils/requestCache.d.ts +8 -0
- package/lib/utils/requestCache.d.ts.map +1 -0
- package/lib/utils/requestCache.js +53 -0
- package/lib/utils/session.d.ts +14 -0
- package/lib/utils/session.d.ts.map +1 -0
- package/lib/utils/session.js +107 -0
- package/lib/utils/useConversationTyping.d.ts +26 -0
- package/lib/utils/useConversationTyping.d.ts.map +1 -0
- package/lib/utils/useConversationTyping.js +117 -0
- package/lib/utils/useMetropolis.d.ts +67 -12
- package/lib/utils/useMetropolis.d.ts.map +1 -0
- package/lib/utils/useMetropolis.js +311 -2
- package/lib/utils/useTranslations.d.ts +16 -0
- package/lib/utils/useTranslations.d.ts.map +1 -0
- package/lib/utils/useTranslations.js +105 -0
- package/lib/utils/validatorFactory.d.ts +3 -2
- package/lib/utils/validatorFactory.d.ts.map +1 -0
- package/lib/utils/validatorFactory.js +95 -2
- package/package.json +58 -17
- package/temp_signin.ts +73 -0
- package/lib/actions/profileActions/profileActions.d.ts +0 -50
- package/lib/actions/profileActions/profileActions.js +0 -2
- package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
- package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
- package/lib/stores/profileStore.d.ts +0 -24
- package/lib/stores/profileStore.js +0 -2
- /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
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
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
|
|
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 {
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export * from './
|
|
22
|
-
export * from './stores';
|
|
23
|
-
export
|
|
24
|
-
export * from './utils/
|
|
25
|
-
export
|
|
26
|
-
export * from './utils/
|
|
27
|
-
export * from './
|
|
28
|
-
export * from './
|
|
29
|
-
export
|
|
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
|
|
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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
|
package/lib/stores/appStore.d.ts
CHANGED
|
@@ -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"}
|
package/lib/stores/appStore.js
CHANGED
|
@@ -1,2 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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"}
|