@nlabs/metropolisjs 0.1.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +44 -95
- package/lib/actions/userActions/userActions.d.ts.map +1 -0
- package/lib/actions/userActions/userActions.js +870 -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
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
5
|
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
6
|
-
import type { ConversationType } from '../../adapters/conversationAdapter/conversationAdapter';
|
|
7
|
-
import type { MessageType } from '../../adapters/messageAdapter/messageAdapter';
|
|
6
|
+
import type { ConversationType } from '../../adapters/conversationAdapter/conversationAdapter.js';
|
|
7
|
+
import type { MessageType } from '../../adapters/messageAdapter/messageAdapter.js';
|
|
8
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
8
9
|
export interface MessageAdapterOptions {
|
|
9
10
|
strict?: boolean;
|
|
10
11
|
allowPartial?: boolean;
|
|
@@ -16,39 +17,22 @@ export interface MessageActionsOptions {
|
|
|
16
17
|
messageAdapterOptions?: MessageAdapterOptions;
|
|
17
18
|
}
|
|
18
19
|
export type MessageApiResultsType = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
messages?: {
|
|
21
|
+
addMessage?: MessageType;
|
|
22
|
+
conversations?: ConversationType[];
|
|
23
|
+
directConversation?: ConversationType;
|
|
24
|
+
getMessage?: MessageType;
|
|
25
|
+
getMessages?: MessageType[];
|
|
26
|
+
getConversations?: ConversationType[];
|
|
27
|
+
};
|
|
23
28
|
};
|
|
24
29
|
export interface MessageActions {
|
|
25
|
-
sendMessage: (message: Partial<MessageType>, messageProps?: string[]) => Promise<MessageType>;
|
|
26
|
-
getDirectConversation: (userId: string) => Promise<ConversationType>;
|
|
27
|
-
getMessages: (conversationId: string, messageProps?: string[]) => Promise<MessageType[]>;
|
|
28
|
-
getConversations: (from?: number, to?: number) => Promise<ConversationType[]>;
|
|
30
|
+
sendMessage: (message: Partial<MessageType>, messageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<MessageType>;
|
|
31
|
+
getDirectConversation: (userId: string, requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
|
|
32
|
+
getMessages: (conversationId: string, messageProps?: string[], requestOptions?: ActionRequestOptions) => Promise<MessageType[]>;
|
|
33
|
+
getConversations: (from?: number, to?: number, requestOptions?: ActionRequestOptions) => Promise<ConversationType[]>;
|
|
29
34
|
updateMessageAdapter: (adapter: (input: unknown, options?: MessageAdapterOptions) => any) => void;
|
|
30
35
|
updateMessageAdapterOptions: (options: MessageAdapterOptions) => void;
|
|
31
36
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Factory function to create MessageActions with enhanced adapter injection capabilities.
|
|
34
|
-
* Custom adapters are merged with default behavior, allowing partial overrides.
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* // Basic usage with default adapters
|
|
38
|
-
* const messageActions = createMessageActions(flux);
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* // Custom adapter that extends default behavior
|
|
42
|
-
* const customMessageAdapter = (input: unknown, options?: MessageAdapterOptions) => {
|
|
43
|
-
* // input is already validated by default adapter
|
|
44
|
-
* if (input.content && input.content.length > 1000) {
|
|
45
|
-
* throw new Error('Message content too long');
|
|
46
|
-
* }
|
|
47
|
-
* return input;
|
|
48
|
-
* };
|
|
49
|
-
*
|
|
50
|
-
* const messageActions = createMessageActions(flux, {
|
|
51
|
-
* messageAdapter: customMessageAdapter
|
|
52
|
-
* });
|
|
53
|
-
*/
|
|
54
37
|
export declare const createMessageActions: (flux: FluxFramework, options?: MessageActionsOptions) => MessageActions;
|
|
38
|
+
//# sourceMappingURL=messageActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageActions.d.ts","sourceRoot":"","sources":["../../../src/actions/messageActions/messageActions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,2DAA2D,CAAC;AAChG,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iDAAiD,CAAC;AAEjF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC;IAC1E,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE;QACT,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACnC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;QACtC,UAAU,CAAC,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;QAC5B,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACrI,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5G,WAAW,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAChI,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACrH,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,KAAK,IAAI,CAAC;IAClG,2BAA2B,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACvE;AAuBD,eAAO,MAAM,oBAAoB,GAC/B,MAAM,aAAa,EACnB,UAAU,qBAAqB,KAC9B,cAqNF,CAAC"}
|
|
@@ -1,2 +1,235 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FjdGlvbnMvbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5cbmltcG9ydCB7dmFsaWRhdGVNZXNzYWdlSW5wdXR9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyJztcbmltcG9ydCB7TUVTU0FHRV9DT05TVEFOVFN9IGZyb20gJy4uLy4uL3N0b3Jlcy9tZXNzYWdlU3RvcmUnO1xuaW1wb3J0IHthcHBNdXRhdGlvbiwgYXBwUXVlcnl9IGZyb20gJy4uLy4uL3V0aWxzL2FwaSc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlcic7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyJztcbmltcG9ydCB0eXBlIHtBcGlSZXN1bHRzVHlwZSwgUmVha3RvckRiQ29sbGVjdGlvbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpJztcblxuY29uc3QgREFUQV9UWVBFOiBSZWFrdG9yRGJDb2xsZWN0aW9uID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWRhcHRlck9wdGlvbnMge1xuICBzdHJpY3Q/OiBib29sZWFuO1xuICBhbGxvd1BhcnRpYWw/OiBib29sZWFuO1xuICBlbnZpcm9ubWVudD86ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbicgfCAndGVzdCc7XG4gIGN1c3RvbVZhbGlkYXRpb24/OiAoaW5wdXQ6IHVua25vd24pID0+IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUFjdGlvbnNPcHRpb25zIHtcbiAgbWVzc2FnZUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgbWVzc2FnZUFkYXB0ZXJPcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlQXBpUmVzdWx0c1R5cGUgPSB7XG4gIHNlbmRNZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiBDb252ZXJzYXRpb25UeXBlO1xuICBnZXRNZXNzYWdlczogTWVzc2FnZVR5cGVbXTtcbiAgZ2V0Q29udmVyc2F0aW9uczogQ29udmVyc2F0aW9uVHlwZVtdO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWN0aW9ucyB7XG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogUGFydGlhbDxNZXNzYWdlVHlwZT4sIG1lc3NhZ2VQcm9wcz86IHN0cmluZ1tdKSA9PiBQcm9taXNlPE1lc3NhZ2VUeXBlPjtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiAodXNlcklkOiBzdHJpbmcpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT47XG4gIGdldE1lc3NhZ2VzOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgbWVzc2FnZVByb3BzPzogc3RyaW5nW10pID0+IFByb21pc2U8TWVzc2FnZVR5cGVbXT47XG4gIGdldENvbnZlcnNhdGlvbnM6IChmcm9tPzogbnVtYmVyLCB0bz86IG51bWJlcikgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+O1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KSA9PiB2b2lkO1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbi8vIERlZmF1bHQgdmFsaWRhdGlvbiBmdW5jdGlvblxuY29uc3QgZGVmYXVsdE1lc3NhZ2VWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZhbGlkYXRlTWVzc2FnZUlucHV0KGlucHV0KTtcblxuLy8gRW5oYW5jZWQgdmFsaWRhdGlvbiBmdW5jdGlvbiB0aGF0IG1lcmdlcyBjdXN0b20gbG9naWMgd2l0aCBkZWZhdWx0c1xuY29uc3QgY3JlYXRlTWVzc2FnZVZhbGlkYXRvciA9IChcbiAgY3VzdG9tQWRhcHRlcj86IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55LFxuICBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zXG4pID0+IChpbnB1dDogdW5rbm93biwgdmFsaWRhdG9yT3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4ge1xuICBjb25zdCBtZXJnZWRPcHRpb25zID0gey4uLm9wdGlvbnMsIC4uLnZhbGlkYXRvck9wdGlvbnN9O1xuXG4gIC8vIFN0YXJ0IHdpdGggZGVmYXVsdCB2YWxpZGF0aW9uXG4gIGxldCB2YWxpZGF0ZWQgPSBkZWZhdWx0TWVzc2FnZVZhbGlkYXRvcihpbnB1dCwgbWVyZ2VkT3B0aW9ucyk7XG5cbiAgLy8gQXBwbHkgY3VzdG9tIHZhbGlkYXRpb24gaWYgcHJvdmlkZWRcbiAgaWYoY3VzdG9tQWRhcHRlcikge1xuICAgIHZhbGlkYXRlZCA9IGN1c3RvbUFkYXB0ZXIodmFsaWRhdGVkLCBtZXJnZWRPcHRpb25zKTtcbiAgfVxuXG4gIC8vIEFwcGx5IGN1c3RvbSB2YWxpZGF0aW9uIGZyb20gb3B0aW9ucyBpZiBwcm92aWRlZFxuICBpZihtZXJnZWRPcHRpb25zPy5jdXN0b21WYWxpZGF0aW9uKSB7XG4gICAgdmFsaWRhdGVkID0gbWVyZ2VkT3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uKHZhbGlkYXRlZCkgYXMgTWVzc2FnZVR5cGU7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkO1xufTtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBNZXNzYWdlQWN0aW9ucyB3aXRoIGVuaGFuY2VkIGFkYXB0ZXIgaW5qZWN0aW9uIGNhcGFiaWxpdGllcy5cbiAqIEN1c3RvbSBhZGFwdGVycyBhcmUgbWVyZ2VkIHdpdGggZGVmYXVsdCBiZWhhdmlvciwgYWxsb3dpbmcgcGFydGlhbCBvdmVycmlkZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggZGVmYXVsdCBhZGFwdGVyc1xuICogY29uc3QgbWVzc2FnZUFjdGlvbnMgPSBjcmVhdGVNZXNzYWdlQWN0aW9ucyhmbHV4KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ3VzdG9tIGFkYXB0ZXIgdGhhdCBleHRlbmRzIGRlZmF1bHQgYmVoYXZpb3JcbiAqIGNvbnN0IGN1c3RvbU1lc3NhZ2VBZGFwdGVyID0gKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zKSA9PiB7XG4gKiAgIC8vIGlucHV0IGlzIGFscmVhZHkgdmFsaWRhdGVkIGJ5IGRlZmF1bHQgYWRhcHRlclxuICogICBpZiAoaW5wdXQuY29udGVudCAmJiBpbnB1dC5jb250ZW50Lmxlbmd0aCA+IDEwMDApIHtcbiAqICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc3NhZ2UgY29udGVudCB0b28gbG9uZycpO1xuICogICB9XG4gKiAgIHJldHVybiBpbnB1dDtcbiAqIH07XG4gKlxuICogY29uc3QgbWVzc2FnZUFjdGlvbnMgPSBjcmVhdGVNZXNzYWdlQWN0aW9ucyhmbHV4LCB7XG4gKiAgIG1lc3NhZ2VBZGFwdGVyOiBjdXN0b21NZXNzYWdlQWRhcHRlclxuICogfSk7XG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNZXNzYWdlQWN0aW9ucyA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9ucz86IE1lc3NhZ2VBY3Rpb25zT3B0aW9uc1xuKTogTWVzc2FnZUFjdGlvbnMgPT4ge1xuICAvLyBJbml0aWFsaXplIGFkYXB0ZXIgc3RhdGVcbiAgbGV0IG1lc3NhZ2VBZGFwdGVyT3B0aW9uczogTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gb3B0aW9ucz8ubWVzc2FnZUFkYXB0ZXJPcHRpb25zIHx8IHt9O1xuICBsZXQgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBvcHRpb25zPy5tZXNzYWdlQWRhcHRlcjtcblxuICAvLyBDcmVhdGUgdmFsaWRhdG9ycyB0aGF0IG1lcmdlIGN1c3RvbSBhZGFwdGVycyB3aXRoIGRlZmF1bHRzXG4gIGxldCB2YWxpZGF0ZU1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlVmFsaWRhdG9yKGN1c3RvbU1lc3NhZ2VBZGFwdGVyLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuXG4gIC8vIFVwZGF0ZSBmdW5jdGlvbnMgdGhhdCByZWNyZWF0ZSB2YWxpZGF0b3JzXG4gIGNvbnN0IHVwZGF0ZU1lc3NhZ2VBZGFwdGVyID0gKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KTogdm9pZCA9PiB7XG4gICAgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gKG9wdGlvbnM6IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyA9IHsuLi5tZXNzYWdlQWRhcHRlck9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgLy8gQWN0aW9uIGltcGxlbWVudGF0aW9uc1xuICBjb25zdCBzZW5kTWVzc2FnZSA9IGFzeW5jIChtZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2VUeXBlPiwgbWVzc2FnZVByb3BzOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHR5cGU6ICdNZXNzYWdlSW5wdXQhJyxcbiAgICAgICAgICB2YWx1ZTogdmFsaWRhdGVNZXNzYWdlKG1lc3NhZ2UsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEFwaVJlc3VsdHNUeXBlID0ge30pID0+IHtcbiAgICAgICAgY29uc3Qge3NlbmRNZXNzYWdlOiBtZXNzYWdlID0ge319ID0gZGF0YTtcbiAgICAgICAgLy9jb25zdCBzZXNzaW9uSWQ6IHN0cmluZyA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbi51c2VySWQnLCAnJyk7XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHttZXNzYWdlLCB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5BRERfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7bWVzc2FnZTogYWRkZWRNZXNzYWdlfSA9IGF3YWl0IGFwcE11dGF0aW9uKFxuICAgICAgICBmbHV4LFxuICAgICAgICAnc2VuZE1lc3NhZ2UnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnbW9kaWZpZWQnLCAnbWVzc2FnZUlkJywgJ3VzZXIgeyB1c2VySWQsIHVzZXJuYW1lIH0nLCAuLi5tZXNzYWdlUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBhZGRlZE1lc3NhZ2UgYXMgTWVzc2FnZVR5cGU7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0RGlyZWN0Q29udmVyc2F0aW9uID0gYXN5bmMgKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICB1c2VySWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogdXNlcklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHtkaXJlY3RDb252ZXJzYXRpb246IGNvbnZlcnNhdGlvbiA9IHt9fSA9IGRhdGE7XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtkaXJlY3RDb252ZXJzYXRpb246IGNvbnZlcnNhdGlvbn0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2RpcmVjdENvbnZlcnNhdGlvbicsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYWRkZWQnLCAnY29udmVyc2F0aW9uSWQnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd1c2VycyB7IHVzZXJJZCwgdXNlcm5hbWUgfSddLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBjb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0NPTlZPX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRNZXNzYWdlcyA9IGFzeW5jIChjb252ZXJzYXRpb25JZDogc3RyaW5nLCBtZXNzYWdlUHJvcHM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPE1lc3NhZ2VUeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGNvbnZlcnNhdGlvbklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IGNvbnZlcnNhdGlvbklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHttZXNzYWdlcyA9IFtdfSA9IGRhdGEgYXMge21lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdfTtcbiAgICAgICAgLy9jb25zdCBzZXNzaW9uSWQ6IHN0cmluZyA9IGZsdXguZ2V0U3RhdGUoJ3VzZXIuc2Vzc2lvbi51c2VySWQnLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe1xuICAgICAgICAgIGNvbnZlcnNhdGlvbklkLFxuICAgICAgICAgIGxpc3Q6IG1lc3NhZ2VzLFxuICAgICAgICAgIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1NcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB7bWVzc2FnZXM6IG1lc3NhZ2VzTGlzdH0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ21lc3NhZ2VzJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydhZGRlZCcsICdjb250ZW50JywgJ21vZGlmaWVkJywgJ21lc3NhZ2VJZCcsICd1c2VyIHsgdXNlcklkLCB1c2VybmFtZSB9JywgLi4ubWVzc2FnZVByb3BzXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgICByZXR1cm4gbWVzc2FnZXNMaXN0IGFzIE1lc3NhZ2VUeXBlW107XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29udmVyc2F0aW9ucyA9IGFzeW5jIChmcm9tOiBudW1iZXIgPSAwLCB0bzogbnVtYmVyID0gMTApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgZnJvbToge1xuICAgICAgICAgIHR5cGU6ICdJbnQnLFxuICAgICAgICAgIHZhbHVlOiBmcm9tXG4gICAgICAgIH0sXG4gICAgICAgIHRvOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHRvXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IHtjb252ZXJzYXRpb25zID0gW119ID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnZlcnNhdGlvbnMsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtjb252ZXJzYXRpb25zOiBjb252ZXJzYXRpb25zTGlzdH0gPSBhd2FpdCBhcHBRdWVyeShcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2NvbnZlcnNhdGlvbnMnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnY29udmVyc2F0aW9uSWQnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd0aHVtYlVybCcsICd1c2VycyB7IHVzZXJJZCwgdXNlcm5hbWUgfSddLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBjb252ZXJzYXRpb25zTGlzdCBhcyBDb252ZXJzYXRpb25UeXBlW107XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgLy8gUmV0dXJuIHRoZSBhY3Rpb25zIG9iamVjdFxuICByZXR1cm4ge1xuICAgIHNlbmRNZXNzYWdlLFxuICAgIGdldERpcmVjdENvbnZlcnNhdGlvbixcbiAgICBnZXRNZXNzYWdlcyxcbiAgICBnZXRDb252ZXJzYXRpb25zLFxuICAgIHVwZGF0ZU1lc3NhZ2VBZGFwdGVyLFxuICAgIHVwZGF0ZU1lc3NhZ2VBZGFwdGVyT3B0aW9uc1xuICB9O1xufTtcblxuIl0sCiAgIm1hcHBpbmdzIjogIkFBS0EsT0FBUSx3QkFBQUEsTUFBMkIsK0NBQ25DLE9BQVEscUJBQUFDLE1BQXdCLDRCQUNoQyxPQUFR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bGlkYXRlTWVzc2FnZUlucHV0IiwgIk1FU1NBR0VfQ09OU1RBTlRTIiwgImFwcE11dGF0aW9uIiwgImFwcFF1ZXJ5IiwgIkRBVEFfVFlQRSIsICJkZWZhdWx0TWVzc2FnZVZhbGlkYXRvciIsICJpbnB1dCIsICJvcHRpb25zIiwgImNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IiLCAiY3VzdG9tQWRhcHRlciIsICJ2YWxpZGF0b3JPcHRpb25zIiwgIm1lcmdlZE9wdGlvbnMiLCAidmFsaWRhdGVkIiwgImNyZWF0ZU1lc3NhZ2VBY3Rpb25zIiwgImZsdXgiLCAibWVzc2FnZUFkYXB0ZXJPcHRpb25zIiwgImN1c3RvbU1lc3NhZ2VBZGFwdGVyIiwgInZhbGlkYXRlTWVzc2FnZSIsICJtZXNzYWdlIiwgIm1lc3NhZ2VQcm9wcyIsICJxdWVyeVZhcmlhYmxlcyIsICJvblN1Y2Nlc3MiLCAiZGF0YSIsICJhZGRlZE1lc3NhZ2UiLCAiZXJyb3IiLCAidXNlcklkIiwgImNvbnZlcnNhdGlvbiIsICJjb252ZXJzYXRpb25JZCIsICJtZXNzYWdlcyIsICJtZXNzYWdlc0xpc3QiLCAiZnJvbSIsICJ0byIsICJjb252ZXJzYXRpb25zIiwgImNvbnZlcnNhdGlvbnNMaXN0IiwgImFkYXB0ZXIiXQp9Cg==
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
+
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
+
*/ import { parseId } from '@nlabs/utils';
|
|
5
|
+
import { validateMessageInput } from '../../adapters/messageAdapter/messageAdapter.js';
|
|
6
|
+
import { MESSAGE_CONSTANTS } from '../../stores/messageStore.js';
|
|
7
|
+
import { appMutation, appQuery } from '../../utils/api.js';
|
|
8
|
+
import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
|
|
9
|
+
const DATA_TYPE = 'messages';
|
|
10
|
+
const defaultMessageValidator = (input, options)=>validateMessageInput(input);
|
|
11
|
+
const createMessageValidator = (customAdapter, options)=>(input, validatorOptions)=>{
|
|
12
|
+
const mergedOptions = {
|
|
13
|
+
...options,
|
|
14
|
+
...validatorOptions
|
|
15
|
+
};
|
|
16
|
+
let validated = defaultMessageValidator(input, mergedOptions);
|
|
17
|
+
if (customAdapter) {
|
|
18
|
+
validated = customAdapter(validated, mergedOptions);
|
|
19
|
+
}
|
|
20
|
+
if (mergedOptions?.customValidation) {
|
|
21
|
+
validated = mergedOptions.customValidation(validated);
|
|
22
|
+
}
|
|
23
|
+
return validated;
|
|
24
|
+
};
|
|
25
|
+
export const createMessageActions = (flux, options)=>{
|
|
26
|
+
let messageAdapterOptions = options?.messageAdapterOptions || {};
|
|
27
|
+
let customMessageAdapter = options?.messageAdapter;
|
|
28
|
+
let validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
|
|
29
|
+
const updateMessageAdapter = (adapter)=>{
|
|
30
|
+
customMessageAdapter = adapter;
|
|
31
|
+
validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
|
|
32
|
+
};
|
|
33
|
+
const updateMessageAdapterOptions = (options)=>{
|
|
34
|
+
messageAdapterOptions = {
|
|
35
|
+
...messageAdapterOptions,
|
|
36
|
+
...options
|
|
37
|
+
};
|
|
38
|
+
validateMessage = createMessageValidator(customMessageAdapter, messageAdapterOptions);
|
|
39
|
+
};
|
|
40
|
+
const getActivePersonaId = ()=>parseId(String(flux.getState('user.session.personaId') || ''));
|
|
41
|
+
const getActiveUserId = ()=>parseId(String(flux.getState('user.session.userId') || ''));
|
|
42
|
+
const sendMessage = async (message, messageProps = [], requestOptions = {})=>{
|
|
43
|
+
try {
|
|
44
|
+
const nextMessage = validateMessage(message, messageAdapterOptions);
|
|
45
|
+
const personaId = parseId(String(nextMessage.personaId || getActivePersonaId() || ''));
|
|
46
|
+
const userId = parseId(String(nextMessage.userId || getActiveUserId() || ''));
|
|
47
|
+
const queryVariables = {
|
|
48
|
+
message: {
|
|
49
|
+
type: 'MessageInput!',
|
|
50
|
+
value: {
|
|
51
|
+
...nextMessage,
|
|
52
|
+
...personaId && {
|
|
53
|
+
personaId
|
|
54
|
+
},
|
|
55
|
+
...userId && {
|
|
56
|
+
userId
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const onSuccess = (data = {})=>{
|
|
62
|
+
const message = data?.messages?.addMessage || {};
|
|
63
|
+
return flux.dispatch({
|
|
64
|
+
message,
|
|
65
|
+
type: MESSAGE_CONSTANTS.ADD_ITEM_SUCCESS
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
return await appMutation(flux, 'addMessage', DATA_TYPE, queryVariables, [
|
|
69
|
+
'added',
|
|
70
|
+
'content',
|
|
71
|
+
'modified',
|
|
72
|
+
'messageId',
|
|
73
|
+
'user { userId, personaId, name, username, thumbUrl, imageUrl }',
|
|
74
|
+
...messageProps
|
|
75
|
+
], {}).then((result)=>result?.messages?.addMessage || {});
|
|
76
|
+
} catch (error) {
|
|
77
|
+
flux.dispatch({
|
|
78
|
+
error,
|
|
79
|
+
type: MESSAGE_CONSTANTS.ADD_ITEM_ERROR
|
|
80
|
+
});
|
|
81
|
+
throw error;
|
|
82
|
+
} finally{
|
|
83
|
+
await clearCachedRequest(flux, `message.getMessages:${String(message?.conversationId || '')}`);
|
|
84
|
+
await clearCachedRequest(flux, 'message.getConversations');
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const getDirectConversation = async (userId, requestOptions = {})=>{
|
|
88
|
+
try {
|
|
89
|
+
const cachedResult = getCachedRequest(flux, `message.getDirectConversation:${userId}`, {
|
|
90
|
+
userId
|
|
91
|
+
}, requestOptions);
|
|
92
|
+
if (cachedResult) {
|
|
93
|
+
return cachedResult;
|
|
94
|
+
}
|
|
95
|
+
const queryVariables = {
|
|
96
|
+
userId: {
|
|
97
|
+
type: 'ID!',
|
|
98
|
+
value: userId
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const onSuccess = (data = {})=>{
|
|
102
|
+
const conversation = data?.messages?.directConversation || {};
|
|
103
|
+
return flux.dispatch({
|
|
104
|
+
conversation,
|
|
105
|
+
type: MESSAGE_CONSTANTS.GET_CONVO_LIST_SUCCESS
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const result = await appQuery(flux, 'directConversation', DATA_TYPE, queryVariables, [
|
|
109
|
+
'added',
|
|
110
|
+
'conversationId',
|
|
111
|
+
'modified',
|
|
112
|
+
'name',
|
|
113
|
+
'users { userId, personaId, name, username, thumbUrl, imageUrl }'
|
|
114
|
+
], {
|
|
115
|
+
onSuccess
|
|
116
|
+
});
|
|
117
|
+
const conversation = result?.conversation || result?.messages?.directConversation || {};
|
|
118
|
+
return await setCachedRequest(flux, `message.getDirectConversation:${userId}`, {
|
|
119
|
+
userId
|
|
120
|
+
}, conversation, requestOptions);
|
|
121
|
+
} catch (error) {
|
|
122
|
+
flux.dispatch({
|
|
123
|
+
error,
|
|
124
|
+
type: MESSAGE_CONSTANTS.GET_CONVO_LIST_ERROR
|
|
125
|
+
});
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const getMessages = async (conversationId, messageProps = [], requestOptions = {})=>{
|
|
130
|
+
try {
|
|
131
|
+
const cachedResult = getCachedRequest(flux, `message.getMessages:${conversationId}`, {
|
|
132
|
+
conversationId,
|
|
133
|
+
messageProps
|
|
134
|
+
}, requestOptions);
|
|
135
|
+
if (cachedResult) {
|
|
136
|
+
return cachedResult;
|
|
137
|
+
}
|
|
138
|
+
const queryVariables = {
|
|
139
|
+
conversationId: {
|
|
140
|
+
type: 'ID',
|
|
141
|
+
value: conversationId
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
const onSuccess = (data = {})=>{
|
|
145
|
+
const messages = Array.isArray(data?.messages?.getMessages) ? data.messages?.getMessages || [] : [];
|
|
146
|
+
return flux.dispatch({
|
|
147
|
+
conversationId,
|
|
148
|
+
list: messages,
|
|
149
|
+
type: MESSAGE_CONSTANTS.GET_LIST_SUCCESS
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
const result = await appQuery(flux, 'getMessages', DATA_TYPE, queryVariables, [
|
|
153
|
+
'added',
|
|
154
|
+
'content',
|
|
155
|
+
'modified',
|
|
156
|
+
'messageId',
|
|
157
|
+
'user { userId, personaId, name, username, thumbUrl, imageUrl }',
|
|
158
|
+
...messageProps
|
|
159
|
+
], {
|
|
160
|
+
onSuccess
|
|
161
|
+
});
|
|
162
|
+
const messages = result?.messages?.getMessages || [];
|
|
163
|
+
return await setCachedRequest(flux, `message.getMessages:${conversationId}`, {
|
|
164
|
+
conversationId,
|
|
165
|
+
messageProps
|
|
166
|
+
}, messages, requestOptions);
|
|
167
|
+
} catch (error) {
|
|
168
|
+
flux.dispatch({
|
|
169
|
+
error,
|
|
170
|
+
type: MESSAGE_CONSTANTS.GET_LIST_ERROR
|
|
171
|
+
});
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const getConversations = async (from = 0, to = 10, requestOptions = {})=>{
|
|
176
|
+
try {
|
|
177
|
+
const cachedResult = getCachedRequest(flux, 'message.getConversations', {
|
|
178
|
+
from,
|
|
179
|
+
to
|
|
180
|
+
}, requestOptions);
|
|
181
|
+
if (cachedResult) {
|
|
182
|
+
return cachedResult;
|
|
183
|
+
}
|
|
184
|
+
const queryVariables = {
|
|
185
|
+
from: {
|
|
186
|
+
type: 'Int',
|
|
187
|
+
value: from
|
|
188
|
+
},
|
|
189
|
+
to: {
|
|
190
|
+
type: 'Int',
|
|
191
|
+
value: to
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
const onSuccess = (data = {})=>{
|
|
195
|
+
const conversations = Array.isArray(data?.messages?.getConversations) ? data.messages?.getConversations || [] : [];
|
|
196
|
+
return flux.dispatch({
|
|
197
|
+
conversations,
|
|
198
|
+
type: MESSAGE_CONSTANTS.GET_CONVO_LIST_SUCCESS
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
const result = await appQuery(flux, 'getConversations', DATA_TYPE, queryVariables, [
|
|
202
|
+
'added',
|
|
203
|
+
'content',
|
|
204
|
+
'conversationId',
|
|
205
|
+
'isDirect',
|
|
206
|
+
'modified',
|
|
207
|
+
'name',
|
|
208
|
+
'users { userId, personaId, name, username, thumbUrl, imageUrl }'
|
|
209
|
+
], {
|
|
210
|
+
onSuccess
|
|
211
|
+
});
|
|
212
|
+
const conversations = result?.messages?.getConversations || [];
|
|
213
|
+
return await setCachedRequest(flux, 'message.getConversations', {
|
|
214
|
+
from,
|
|
215
|
+
to
|
|
216
|
+
}, conversations, requestOptions);
|
|
217
|
+
} catch (error) {
|
|
218
|
+
flux.dispatch({
|
|
219
|
+
error,
|
|
220
|
+
type: MESSAGE_CONSTANTS.GET_CONVO_LIST_ERROR
|
|
221
|
+
});
|
|
222
|
+
throw error;
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
return {
|
|
226
|
+
sendMessage,
|
|
227
|
+
getDirectConversation,
|
|
228
|
+
getMessages,
|
|
229
|
+
getConversations,
|
|
230
|
+
updateMessageAdapter,
|
|
231
|
+
updateMessageAdapterOptions
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9tZXNzYWdlQWN0aW9ucy9tZXNzYWdlQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuXG5pbXBvcnQge3BhcnNlSWR9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge3ZhbGlkYXRlTWVzc2FnZUlucHV0fSBmcm9tICcuLi8uLi9hZGFwdGVycy9tZXNzYWdlQWRhcHRlci9tZXNzYWdlQWRhcHRlci5qcyc7XG5pbXBvcnQge01FU1NBR0VfQ09OU1RBTlRTfSBmcm9tICcuLi8uLi9zdG9yZXMvbWVzc2FnZVN0b3JlLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0NvbnZlcnNhdGlvblR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnZlcnNhdGlvbkFkYXB0ZXIvY29udmVyc2F0aW9uQWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7TWVzc2FnZVR5cGV9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL21lc3NhZ2VBZGFwdGVyL21lc3NhZ2VBZGFwdGVyLmpzJztcbmltcG9ydCB0eXBlIHtBcGlSZXN1bHRzVHlwZX0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLmpzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25SZXF1ZXN0T3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ21lc3NhZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWRhcHRlck9wdGlvbnMge1xuICBzdHJpY3Q/OiBib29sZWFuO1xuICBhbGxvd1BhcnRpYWw/OiBib29sZWFuO1xuICBlbnZpcm9ubWVudD86ICdkZXZlbG9wbWVudCcgfCAncHJvZHVjdGlvbicgfCAndGVzdCc7XG4gIGN1c3RvbVZhbGlkYXRpb24/OiAoaW5wdXQ6IHVua25vd24pID0+IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUFjdGlvbnNPcHRpb25zIHtcbiAgbWVzc2FnZUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgbWVzc2FnZUFkYXB0ZXJPcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBNZXNzYWdlQXBpUmVzdWx0c1R5cGUgPSB7XG4gIG1lc3NhZ2VzPzoge1xuICAgIGFkZE1lc3NhZ2U/OiBNZXNzYWdlVHlwZTtcbiAgICBjb252ZXJzYXRpb25zPzogQ29udmVyc2F0aW9uVHlwZVtdO1xuICAgIGRpcmVjdENvbnZlcnNhdGlvbj86IENvbnZlcnNhdGlvblR5cGU7XG4gICAgZ2V0TWVzc2FnZT86IE1lc3NhZ2VUeXBlO1xuICAgIGdldE1lc3NhZ2VzPzogTWVzc2FnZVR5cGVbXTtcbiAgICBnZXRDb252ZXJzYXRpb25zPzogQ29udmVyc2F0aW9uVHlwZVtdO1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQWN0aW9ucyB7XG4gIHNlbmRNZXNzYWdlOiAobWVzc2FnZTogUGFydGlhbDxNZXNzYWdlVHlwZT4sIG1lc3NhZ2VQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPE1lc3NhZ2VUeXBlPjtcbiAgZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiAodXNlcklkOiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZT47XG4gIGdldE1lc3NhZ2VzOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgbWVzc2FnZVByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8TWVzc2FnZVR5cGVbXT47XG4gIGdldENvbnZlcnNhdGlvbnM6IChmcm9tPzogbnVtYmVyLCB0bz86IG51bWJlciwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb252ZXJzYXRpb25UeXBlW10+O1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KSA9PiB2b2lkO1xuICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnM6IChvcHRpb25zOiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGRlZmF1bHRNZXNzYWdlVmFsaWRhdG9yID0gKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogTWVzc2FnZUFkYXB0ZXJPcHRpb25zKSA9PiB2YWxpZGF0ZU1lc3NhZ2VJbnB1dChpbnB1dCk7XG5cbmNvbnN0IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IgPSAoXG4gIGN1c3RvbUFkYXB0ZXI/OiAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IGFueSxcbiAgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9uc1xuKSA9PiAoaW5wdXQ6IHVua25vd24sIHZhbGlkYXRvck9wdGlvbnM/OiBNZXNzYWdlQWRhcHRlck9wdGlvbnMpID0+IHtcbiAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IHsuLi5vcHRpb25zLCAuLi52YWxpZGF0b3JPcHRpb25zfTtcblxuICBsZXQgdmFsaWRhdGVkID0gZGVmYXVsdE1lc3NhZ2VWYWxpZGF0b3IoaW5wdXQsIG1lcmdlZE9wdGlvbnMpO1xuXG4gIGlmKGN1c3RvbUFkYXB0ZXIpIHtcbiAgICB2YWxpZGF0ZWQgPSBjdXN0b21BZGFwdGVyKHZhbGlkYXRlZCwgbWVyZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBpZihtZXJnZWRPcHRpb25zPy5jdXN0b21WYWxpZGF0aW9uKSB7XG4gICAgdmFsaWRhdGVkID0gbWVyZ2VkT3B0aW9ucy5jdXN0b21WYWxpZGF0aW9uKHZhbGlkYXRlZCkgYXMgTWVzc2FnZVR5cGU7XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1lc3NhZ2VBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogTWVzc2FnZUFjdGlvbnNPcHRpb25zXG4pOiBNZXNzYWdlQWN0aW9ucyA9PiB7XG4gIGxldCBtZXNzYWdlQWRhcHRlck9wdGlvbnMgPSBvcHRpb25zPy5tZXNzYWdlQWRhcHRlck9wdGlvbnMgfHwge307XG4gIGxldCBjdXN0b21NZXNzYWdlQWRhcHRlciA9IG9wdGlvbnM/Lm1lc3NhZ2VBZGFwdGVyO1xuXG4gIGxldCB2YWxpZGF0ZU1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlVmFsaWRhdG9yKGN1c3RvbU1lc3NhZ2VBZGFwdGVyLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuXG4gIGNvbnN0IHVwZGF0ZU1lc3NhZ2VBZGFwdGVyID0gKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucykgPT4gYW55KTogdm9pZCA9PiB7XG4gICAgY3VzdG9tTWVzc2FnZUFkYXB0ZXIgPSBhZGFwdGVyO1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlTWVzc2FnZUFkYXB0ZXJPcHRpb25zID0gKG9wdGlvbnM6IE1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk6IHZvaWQgPT4ge1xuICAgIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyA9IHsuLi5tZXNzYWdlQWRhcHRlck9wdGlvbnMsIC4uLm9wdGlvbnN9O1xuICAgIHZhbGlkYXRlTWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IoY3VzdG9tTWVzc2FnZUFkYXB0ZXIsIG1lc3NhZ2VBZGFwdGVyT3B0aW9ucyk7XG4gIH07XG5cbiAgY29uc3QgZ2V0QWN0aXZlUGVyc29uYUlkID0gKCk6IHN0cmluZyA9PiBwYXJzZUlkKFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24ucGVyc29uYUlkJykgfHwgJycpKTtcbiAgY29uc3QgZ2V0QWN0aXZlVXNlcklkID0gKCk6IHN0cmluZyA9PiBwYXJzZUlkKFN0cmluZyhmbHV4LmdldFN0YXRlKCd1c2VyLnNlc3Npb24udXNlcklkJykgfHwgJycpKTtcblxuICBjb25zdCBzZW5kTWVzc2FnZSA9IGFzeW5jIChcbiAgICBtZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2VUeXBlPixcbiAgICBtZXNzYWdlUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxNZXNzYWdlVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBuZXh0TWVzc2FnZSA9IHZhbGlkYXRlTWVzc2FnZShtZXNzYWdlLCBtZXNzYWdlQWRhcHRlck9wdGlvbnMpO1xuICAgICAgY29uc3QgcGVyc29uYUlkID0gcGFyc2VJZChTdHJpbmcobmV4dE1lc3NhZ2UucGVyc29uYUlkIHx8IGdldEFjdGl2ZVBlcnNvbmFJZCgpIHx8ICcnKSk7XG4gICAgICBjb25zdCB1c2VySWQgPSBwYXJzZUlkKFN0cmluZyhuZXh0TWVzc2FnZS51c2VySWQgfHwgZ2V0QWN0aXZlVXNlcklkKCkgfHwgJycpKTtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdHlwZTogJ01lc3NhZ2VJbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAuLi5uZXh0TWVzc2FnZSxcbiAgICAgICAgICAgIC4uLihwZXJzb25hSWQgJiYge3BlcnNvbmFJZH0pLFxuICAgICAgICAgICAgLi4uKHVzZXJJZCAmJiB7dXNlcklkfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAoZGF0YSBhcyBNZXNzYWdlQXBpUmVzdWx0c1R5cGUpPy5tZXNzYWdlcz8uYWRkTWVzc2FnZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe21lc3NhZ2UsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxNZXNzYWdlQXBpUmVzdWx0c1R5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnYWRkTWVzc2FnZScsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYWRkZWQnLCAnY29udGVudCcsICdtb2RpZmllZCcsICdtZXNzYWdlSWQnLCAndXNlciB7IHVzZXJJZCwgcGVyc29uYUlkLCBuYW1lLCB1c2VybmFtZSwgdGh1bWJVcmwsIGltYWdlVXJsIH0nLCAuLi5tZXNzYWdlUHJvcHNdLFxuICAgICAgICB7fVxuICAgICAgKS50aGVuKChyZXN1bHQpID0+ICgocmVzdWx0IGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSk/Lm1lc3NhZ2VzPy5hZGRNZXNzYWdlIHx8IHt9KSBhcyBNZXNzYWdlVHlwZSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkFERF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBtZXNzYWdlLmdldE1lc3NhZ2VzOiR7U3RyaW5nKG1lc3NhZ2U/LmNvbnZlcnNhdGlvbklkIHx8ICcnKX1gKTtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnbWVzc2FnZS5nZXRDb252ZXJzYXRpb25zJyk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldERpcmVjdENvbnZlcnNhdGlvbiA9IGFzeW5jIChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbnZlcnNhdGlvblR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb252ZXJzYXRpb25UeXBlPihmbHV4LCBgbWVzc2FnZS5nZXREaXJlY3RDb252ZXJzYXRpb246JHt1c2VySWR9YCwge3VzZXJJZH0sIHJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICB1c2VySWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogdXNlcklkXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcGlSZXN1bHRzVHlwZSA9IHt9KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbiA9IChkYXRhIGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSk/Lm1lc3NhZ2VzPy5kaXJlY3RDb252ZXJzYXRpb24gfHwge307XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtjb252ZXJzYXRpb24sIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PE1lc3NhZ2VBcGlSZXN1bHRzVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdkaXJlY3RDb252ZXJzYXRpb24nLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnZlcnNhdGlvbklkJywgJ21vZGlmaWVkJywgJ25hbWUnLCAndXNlcnMgeyB1c2VySWQsIHBlcnNvbmFJZCwgbmFtZSwgdXNlcm5hbWUsIHRodW1iVXJsLCBpbWFnZVVybCB9J10sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb252ZXJzYXRpb24gPSAoXG4gICAgICAgIChyZXN1bHQgYXMgdW5rbm93biBhcyB7Y29udmVyc2F0aW9uPzogQ29udmVyc2F0aW9uVHlwZX0pPy5jb252ZXJzYXRpb25cbiAgICAgICAgfHwgcmVzdWx0Py5tZXNzYWdlcz8uZGlyZWN0Q29udmVyc2F0aW9uXG4gICAgICAgIHx8IHt9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYG1lc3NhZ2UuZ2V0RGlyZWN0Q29udmVyc2F0aW9uOiR7dXNlcklkfWAsIHt1c2VySWR9LCBjb252ZXJzYXRpb24gYXMgQ29udmVyc2F0aW9uVHlwZSwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5HRVRfQ09OVk9fTElTVF9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gYXN5bmMgKFxuICAgIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gICAgbWVzc2FnZVByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8TWVzc2FnZVR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PE1lc3NhZ2VUeXBlW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICBgbWVzc2FnZS5nZXRNZXNzYWdlczoke2NvbnZlcnNhdGlvbklkfWAsXG4gICAgICAgIHtjb252ZXJzYXRpb25JZCwgbWVzc2FnZVByb3BzfSxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnNcbiAgICAgICk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udmVyc2F0aW9uSWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQnLFxuICAgICAgICAgIHZhbHVlOiBjb252ZXJzYXRpb25JZFxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9IEFycmF5LmlzQXJyYXkoKGRhdGEgYXMgTWVzc2FnZUFwaVJlc3VsdHNUeXBlKT8ubWVzc2FnZXM/LmdldE1lc3NhZ2VzKVxuICAgICAgICAgID8gKGRhdGEgYXMgTWVzc2FnZUFwaVJlc3VsdHNUeXBlKS5tZXNzYWdlcz8uZ2V0TWVzc2FnZXMgfHwgW11cbiAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtcbiAgICAgICAgICBjb252ZXJzYXRpb25JZCxcbiAgICAgICAgICBsaXN0OiBtZXNzYWdlcyxcbiAgICAgICAgICB0eXBlOiBNRVNTQUdFX0NPTlNUQU5UUy5HRVRfTElTVF9TVUNDRVNTXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8TWVzc2FnZUFwaVJlc3VsdHNUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2dldE1lc3NhZ2VzJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydhZGRlZCcsICdjb250ZW50JywgJ21vZGlmaWVkJywgJ21lc3NhZ2VJZCcsICd1c2VyIHsgdXNlcklkLCBwZXJzb25hSWQsIG5hbWUsIHVzZXJuYW1lLCB0aHVtYlVybCwgaW1hZ2VVcmwgfScsIC4uLm1lc3NhZ2VQcm9wc10sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IHJlc3VsdD8ubWVzc2FnZXM/LmdldE1lc3NhZ2VzIHx8IFtdO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYG1lc3NhZ2UuZ2V0TWVzc2FnZXM6JHtjb252ZXJzYXRpb25JZH1gLCB7Y29udmVyc2F0aW9uSWQsIG1lc3NhZ2VQcm9wc30sIG1lc3NhZ2VzIGFzIE1lc3NhZ2VUeXBlW10sIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRDb252ZXJzYXRpb25zID0gYXN5bmMgKFxuICAgIGZyb206IG51bWJlciA9IDAsXG4gICAgdG86IG51bWJlciA9IDEwLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Q29udmVyc2F0aW9uVHlwZVtdPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8Q29udmVyc2F0aW9uVHlwZVtdPihmbHV4LCAnbWVzc2FnZS5nZXRDb252ZXJzYXRpb25zJywge2Zyb20sIHRvfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogZnJvbVxuICAgICAgICB9LFxuICAgICAgICB0bzoge1xuICAgICAgICAgIHR5cGU6ICdJbnQnLFxuICAgICAgICAgIHZhbHVlOiB0b1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBpUmVzdWx0c1R5cGUgPSB7fSkgPT4ge1xuICAgICAgICBjb25zdCBjb252ZXJzYXRpb25zID0gQXJyYXkuaXNBcnJheSgoZGF0YSBhcyBNZXNzYWdlQXBpUmVzdWx0c1R5cGUpPy5tZXNzYWdlcz8uZ2V0Q29udmVyc2F0aW9ucylcbiAgICAgICAgICA/IChkYXRhIGFzIE1lc3NhZ2VBcGlSZXN1bHRzVHlwZSkubWVzc2FnZXM/LmdldENvbnZlcnNhdGlvbnMgfHwgW11cbiAgICAgICAgICA6IFtdO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7Y29udmVyc2F0aW9ucywgdHlwZTogTUVTU0FHRV9DT05TVEFOVFMuR0VUX0NPTlZPX0xJU1RfU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8TWVzc2FnZUFwaVJlc3VsdHNUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2dldENvbnZlcnNhdGlvbnMnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FkZGVkJywgJ2NvbnRlbnQnLCAnY29udmVyc2F0aW9uSWQnLCAnaXNEaXJlY3QnLCAnbW9kaWZpZWQnLCAnbmFtZScsICd1c2VycyB7IHVzZXJJZCwgcGVyc29uYUlkLCBuYW1lLCB1c2VybmFtZSwgdGh1bWJVcmwsIGltYWdlVXJsIH0nXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbnMgPSByZXN1bHQ/Lm1lc3NhZ2VzPy5nZXRDb252ZXJzYXRpb25zIHx8IFtdO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgJ21lc3NhZ2UuZ2V0Q29udmVyc2F0aW9ucycsIHtmcm9tLCB0b30sIGNvbnZlcnNhdGlvbnMgYXMgQ29udmVyc2F0aW9uVHlwZVtdLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IE1FU1NBR0VfQ09OU1RBTlRTLkdFVF9DT05WT19MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBzZW5kTWVzc2FnZSxcbiAgICBnZXREaXJlY3RDb252ZXJzYXRpb24sXG4gICAgZ2V0TWVzc2FnZXMsXG4gICAgZ2V0Q29udmVyc2F0aW9ucyxcbiAgICB1cGRhdGVNZXNzYWdlQWRhcHRlcixcbiAgICB1cGRhdGVNZXNzYWdlQWRhcHRlck9wdGlvbnNcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsicGFyc2VJZCIsInZhbGlkYXRlTWVzc2FnZUlucHV0IiwiTUVTU0FHRV9DT05TVEFOVFMiLCJhcHBNdXRhdGlvbiIsImFwcFF1ZXJ5IiwiY2xlYXJDYWNoZWRSZXF1ZXN0IiwiZ2V0Q2FjaGVkUmVxdWVzdCIsInNldENhY2hlZFJlcXVlc3QiLCJEQVRBX1RZUEUiLCJkZWZhdWx0TWVzc2FnZVZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZU1lc3NhZ2VWYWxpZGF0b3IiLCJjdXN0b21BZGFwdGVyIiwidmFsaWRhdG9yT3B0aW9ucyIsIm1lcmdlZE9wdGlvbnMiLCJ2YWxpZGF0ZWQiLCJjdXN0b21WYWxpZGF0aW9uIiwiY3JlYXRlTWVzc2FnZUFjdGlvbnMiLCJmbHV4IiwibWVzc2FnZUFkYXB0ZXJPcHRpb25zIiwiY3VzdG9tTWVzc2FnZUFkYXB0ZXIiLCJtZXNzYWdlQWRhcHRlciIsInZhbGlkYXRlTWVzc2FnZSIsInVwZGF0ZU1lc3NhZ2VBZGFwdGVyIiwiYWRhcHRlciIsInVwZGF0ZU1lc3NhZ2VBZGFwdGVyT3B0aW9ucyIsImdldEFjdGl2ZVBlcnNvbmFJZCIsIlN0cmluZyIsImdldFN0YXRlIiwiZ2V0QWN0aXZlVXNlcklkIiwic2VuZE1lc3NhZ2UiLCJtZXNzYWdlIiwibWVzc2FnZVByb3BzIiwicmVxdWVzdE9wdGlvbnMiLCJuZXh0TWVzc2FnZSIsInBlcnNvbmFJZCIsInVzZXJJZCIsInF1ZXJ5VmFyaWFibGVzIiwidHlwZSIsInZhbHVlIiwib25TdWNjZXNzIiwiZGF0YSIsIm1lc3NhZ2VzIiwiYWRkTWVzc2FnZSIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsInRoZW4iLCJyZXN1bHQiLCJlcnJvciIsIkFERF9JVEVNX0VSUk9SIiwiY29udmVyc2F0aW9uSWQiLCJnZXREaXJlY3RDb252ZXJzYXRpb24iLCJjYWNoZWRSZXN1bHQiLCJjb252ZXJzYXRpb24iLCJkaXJlY3RDb252ZXJzYXRpb24iLCJHRVRfQ09OVk9fTElTVF9TVUNDRVNTIiwiR0VUX0NPTlZPX0xJU1RfRVJST1IiLCJnZXRNZXNzYWdlcyIsIkFycmF5IiwiaXNBcnJheSIsImxpc3QiLCJHRVRfTElTVF9TVUNDRVNTIiwiR0VUX0xJU1RfRVJST1IiLCJnZXRDb252ZXJzYXRpb25zIiwiZnJvbSIsInRvIiwiY29udmVyc2F0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsU0FBUUEsT0FBTyxRQUFPLGVBQWU7QUFDckMsU0FBUUMsb0JBQW9CLFFBQU8sa0RBQWtEO0FBQ3JGLFNBQVFDLGlCQUFpQixRQUFPLCtCQUErQjtBQUMvRCxTQUFRQyxXQUFXLEVBQUVDLFFBQVEsUUFBTyxxQkFBcUI7QUFDekQsU0FBUUMsa0JBQWtCLEVBQUVDLGdCQUFnQixFQUFFQyxnQkFBZ0IsUUFBTyw4QkFBOEI7QUFRbkcsTUFBTUMsWUFBWTtBQWtDbEIsTUFBTUMsMEJBQTBCLENBQUNDLE9BQWdCQyxVQUFvQ1YscUJBQXFCUztBQUUxRyxNQUFNRSx5QkFBeUIsQ0FDN0JDLGVBQ0FGLFVBQ0csQ0FBQ0QsT0FBZ0JJO1FBQ3BCLE1BQU1DLGdCQUFnQjtZQUFDLEdBQUdKLE9BQU87WUFBRSxHQUFHRyxnQkFBZ0I7UUFBQTtRQUV0RCxJQUFJRSxZQUFZUCx3QkFBd0JDLE9BQU9LO1FBRS9DLElBQUdGLGVBQWU7WUFDaEJHLFlBQVlILGNBQWNHLFdBQVdEO1FBQ3ZDO1FBRUEsSUFBR0EsZUFBZUUsa0JBQWtCO1lBQ2xDRCxZQUFZRCxjQUFjRSxnQkFBZ0IsQ0FBQ0Q7UUFDN0M7UUFFQSxPQUFPQTtJQUNUO0FBRUEsT0FBTyxNQUFNRSx1QkFBdUIsQ0FDbENDLE1BQ0FSO0lBRUEsSUFBSVMsd0JBQXdCVCxTQUFTUyx5QkFBeUIsQ0FBQztJQUMvRCxJQUFJQyx1QkFBdUJWLFNBQVNXO0lBRXBDLElBQUlDLGtCQUFrQlgsdUJBQXVCUyxzQkFBc0JEO0lBRW5FLE1BQU1JLHVCQUF1QixDQUFDQztRQUM1QkosdUJBQXVCSTtRQUN2QkYsa0JBQWtCWCx1QkFBdUJTLHNCQUFzQkQ7SUFD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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { BaseAdapterOptions } from '../../utils/validatorFactory.js';
|
|
2
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
3
|
+
import type { Permission } from '../../adapters/permissionAdapter/permissionAdapter.js';
|
|
4
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
5
|
+
export interface PermissionAdapterOptions extends BaseAdapterOptions {
|
|
6
|
+
}
|
|
7
|
+
export interface PermissionActionsOptions {
|
|
8
|
+
permissionAdapter?: (input: unknown, options?: PermissionAdapterOptions) => any;
|
|
9
|
+
permissionAdapterOptions?: PermissionAdapterOptions;
|
|
10
|
+
}
|
|
11
|
+
export type PermissionApiResultsType = {
|
|
12
|
+
permissions: {
|
|
13
|
+
add?: Permission;
|
|
14
|
+
check?: boolean;
|
|
15
|
+
itemById?: Permission;
|
|
16
|
+
list?: Permission[];
|
|
17
|
+
listByUser?: Permission[];
|
|
18
|
+
remove?: Permission;
|
|
19
|
+
update?: Permission;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export interface PermissionActions {
|
|
23
|
+
add: (permissionData: Partial<Permission>, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
|
|
24
|
+
check: (userId: string, resource: string, requiredLevel: number, requestOptions?: ActionRequestOptions) => Promise<boolean>;
|
|
25
|
+
itemById: (permissionId: string, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
|
|
26
|
+
list: (from?: number, to?: number, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission[]>;
|
|
27
|
+
listByUser: (userId: string, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission[]>;
|
|
28
|
+
remove: (permissionId: string, requestOptions?: ActionRequestOptions) => Promise<Permission>;
|
|
29
|
+
update: (permission: Partial<Permission>, permissionProps?: string[], requestOptions?: ActionRequestOptions) => Promise<Permission>;
|
|
30
|
+
updatePermissionAdapter: (adapter: (input: unknown, options?: PermissionAdapterOptions) => any) => void;
|
|
31
|
+
updatePermissionAdapterOptions: (options: PermissionAdapterOptions) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare const createPermissionActions: (flux: FluxFramework, options?: PermissionActionsOptions) => PermissionActions;
|
|
34
|
+
//# sourceMappingURL=permissionActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissionActions.d.ts","sourceRoot":"","sources":["../../../src/actions/permissionActions/permissionActions.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uDAAuD,CAAC;AACtF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;CAAG;AAEvE,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,GAAG,CAAC;IAChF,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE;QACX,GAAG,CAAC,EAAE,UAAU,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;QACtB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACrI,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5H,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3H,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/H,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzH,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7F,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACpI,uBAAuB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,GAAG,KAAK,IAAI,CAAC;IACxG,8BAA8B,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAC7E;AAKD,eAAO,MAAM,uBAAuB,GAClC,MAAM,aAAa,EACnB,UAAU,wBAAwB,KACjC,iBAiWF,CAAC"}
|