@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
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2024-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 { CONNECTION_TYPES } from '../../constants/Collections.js';
|
|
6
|
+
import { appMutation, appQuery } from '../../utils/api.js';
|
|
7
|
+
import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
|
|
8
|
+
export const createConnectionActions = (flux)=>{
|
|
9
|
+
const addConnection = async (fromType, fromId, toType, toId, connectionType = CONNECTION_TYPES.MEMBER, metadata = {}, requestOptions = {})=>{
|
|
10
|
+
try {
|
|
11
|
+
const queryVariables = {
|
|
12
|
+
connection: {
|
|
13
|
+
type: 'ConnectionInput!',
|
|
14
|
+
value: {
|
|
15
|
+
connectionType,
|
|
16
|
+
fromId: parseId(fromId),
|
|
17
|
+
fromType,
|
|
18
|
+
metadata,
|
|
19
|
+
toId: parseId(toId),
|
|
20
|
+
toType
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return await appMutation(flux, 'addConnection', 'connections', queryVariables, [
|
|
25
|
+
'_from',
|
|
26
|
+
'_to',
|
|
27
|
+
'connectionType',
|
|
28
|
+
'fromId',
|
|
29
|
+
'fromType',
|
|
30
|
+
'metadata',
|
|
31
|
+
'toId',
|
|
32
|
+
'toType'
|
|
33
|
+
], {});
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error('Error adding connection:', error);
|
|
36
|
+
throw error;
|
|
37
|
+
} finally{
|
|
38
|
+
await clearCachedRequest(flux, `connection.getConnections:${fromType}:${fromId}:${toType || ''}`);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const getConnections = async (fromType, fromId, toType, filters = {}, requestOptions = {})=>{
|
|
42
|
+
try {
|
|
43
|
+
const cachedResult = getCachedRequest(flux, `connection.getConnections:${fromType}:${fromId}:${toType || ''}`, {
|
|
44
|
+
filters,
|
|
45
|
+
fromId,
|
|
46
|
+
fromType,
|
|
47
|
+
toType
|
|
48
|
+
}, requestOptions);
|
|
49
|
+
if (cachedResult) {
|
|
50
|
+
return cachedResult;
|
|
51
|
+
}
|
|
52
|
+
const queryVariables = {
|
|
53
|
+
fromId: {
|
|
54
|
+
type: 'ID!',
|
|
55
|
+
value: parseId(fromId)
|
|
56
|
+
},
|
|
57
|
+
fromType: {
|
|
58
|
+
type: 'String!',
|
|
59
|
+
value: fromType
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
if (toType) {
|
|
63
|
+
queryVariables.toType = {
|
|
64
|
+
type: 'String',
|
|
65
|
+
value: toType
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
Object.keys(filters).forEach((key)=>{
|
|
69
|
+
queryVariables[key] = {
|
|
70
|
+
type: 'String',
|
|
71
|
+
value: filters[key]
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
const result = await appQuery(flux, 'connections', 'connections', queryVariables, [
|
|
75
|
+
'_from',
|
|
76
|
+
'_to',
|
|
77
|
+
'connectionType',
|
|
78
|
+
'fromId',
|
|
79
|
+
'fromType',
|
|
80
|
+
'metadata',
|
|
81
|
+
'toId',
|
|
82
|
+
'toType'
|
|
83
|
+
], {});
|
|
84
|
+
return await setCachedRequest(flux, `connection.getConnections:${fromType}:${fromId}:${toType || ''}`, {
|
|
85
|
+
filters,
|
|
86
|
+
fromId,
|
|
87
|
+
fromType,
|
|
88
|
+
toType
|
|
89
|
+
}, result, requestOptions);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
console.error('Error getting connections:', error);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const removeConnection = async (fromType, fromId, toType, toId, requestOptions = {})=>{
|
|
96
|
+
try {
|
|
97
|
+
const queryVariables = {
|
|
98
|
+
fromId: {
|
|
99
|
+
type: 'ID!',
|
|
100
|
+
value: parseId(fromId)
|
|
101
|
+
},
|
|
102
|
+
fromType: {
|
|
103
|
+
type: 'String!',
|
|
104
|
+
value: fromType
|
|
105
|
+
},
|
|
106
|
+
toId: {
|
|
107
|
+
type: 'ID!',
|
|
108
|
+
value: parseId(toId)
|
|
109
|
+
},
|
|
110
|
+
toType: {
|
|
111
|
+
type: 'String!',
|
|
112
|
+
value: toType
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
await appMutation(flux, 'removeConnection', 'connections', queryVariables, [], {});
|
|
116
|
+
return true;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
console.error('Error removing connection:', error);
|
|
119
|
+
throw error;
|
|
120
|
+
} finally{
|
|
121
|
+
await clearCachedRequest(flux, `connection.getConnections:${fromType}:${fromId}:${toType || ''}`);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
return {
|
|
125
|
+
addConnection,
|
|
126
|
+
getConnections,
|
|
127
|
+
removeConnection
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9jb25uZWN0aW9uQWN0aW9ucy9jb25uZWN0aW9uQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUlkfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuXG5pbXBvcnQge0NPTk5FQ1RJT05fVFlQRVMsIEVER0VTfSBmcm9tICcuLi8uLi9jb25zdGFudHMvQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHthcHBNdXRhdGlvbiwgYXBwUXVlcnl9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQge2NsZWFyQ2FjaGVkUmVxdWVzdCwgZ2V0Q2FjaGVkUmVxdWVzdCwgc2V0Q2FjaGVkUmVxdWVzdH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7Q29sbGVjdGlvblR5cGUsIENvbm5lY3Rpb25UeXBlfSBmcm9tICcuLi8uLi9jb25zdGFudHMvQ29sbGVjdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUge0FwaVJlc3VsdHNUeXBlfSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHR5cGUge0Nvbm5lY3Rpb25FZGdlfSBmcm9tICcuLi8uLi90eXBlcy9lZGdlcy50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uUmVxdWVzdE9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvbkFjdGlvbnMge1xuICBhZGRDb25uZWN0aW9uOiAoXG4gICAgZnJvbVR5cGU6IENvbGxlY3Rpb25UeXBlLFxuICAgIGZyb21JZDogc3RyaW5nLFxuICAgIHRvVHlwZTogQ29sbGVjdGlvblR5cGUsXG4gICAgdG9JZDogc3RyaW5nLFxuICAgIGNvbm5lY3Rpb25UeXBlPzogQ29ubmVjdGlvblR5cGUsXG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnNcbiAgKSA9PiBQcm9taXNlPENvbm5lY3Rpb25FZGdlPjtcbiAgZ2V0Q29ubmVjdGlvbnM6IChcbiAgICBmcm9tVHlwZTogQ29sbGVjdGlvblR5cGUsXG4gICAgZnJvbUlkOiBzdHJpbmcsXG4gICAgdG9UeXBlPzogQ29sbGVjdGlvblR5cGUsXG4gICAgZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9uc1xuICApID0+IFByb21pc2U8Q29ubmVjdGlvbkVkZ2VbXT47XG4gIHJlbW92ZUNvbm5lY3Rpb246IChcbiAgICBmcm9tVHlwZTogQ29sbGVjdGlvblR5cGUsXG4gICAgZnJvbUlkOiBzdHJpbmcsXG4gICAgdG9UeXBlOiBDb2xsZWN0aW9uVHlwZSxcbiAgICB0b0lkOiBzdHJpbmcsXG4gICAgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9uc1xuICApID0+IFByb21pc2U8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvbkFwaVJlc3VsdHNUeXBlIGV4dGVuZHMgQXBpUmVzdWx0c1R5cGUge1xuICBjb25uZWN0aW9ucz86IHtcbiAgICBhZGQ/OiBDb25uZWN0aW9uRWRnZTtcbiAgICBsaXN0PzogQ29ubmVjdGlvbkVkZ2VbXTtcbiAgICByZW1vdmU/OiBib29sZWFuO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29ubmVjdGlvbkFjdGlvbnMgPSAoZmx1eDogRmx1eEZyYW1ld29yayk6IENvbm5lY3Rpb25BY3Rpb25zID0+IHtcbiAgY29uc3QgYWRkQ29ubmVjdGlvbiA9IGFzeW5jIChcbiAgICBmcm9tVHlwZTogQ29sbGVjdGlvblR5cGUsXG4gICAgZnJvbUlkOiBzdHJpbmcsXG4gICAgdG9UeXBlOiBDb2xsZWN0aW9uVHlwZSxcbiAgICB0b0lkOiBzdHJpbmcsXG4gICAgY29ubmVjdGlvblR5cGU6IENvbm5lY3Rpb25UeXBlID0gQ09OTkVDVElPTl9UWVBFUy5NRU1CRVIsXG4gICAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbm5lY3Rpb25FZGdlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB7dHlwZTogc3RyaW5nOyB2YWx1ZTogdW5rbm93bn0+ID0ge1xuICAgICAgICBjb25uZWN0aW9uOiB7XG4gICAgICAgICAgdHlwZTogJ0Nvbm5lY3Rpb25JbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBjb25uZWN0aW9uVHlwZSxcbiAgICAgICAgICAgIGZyb21JZDogcGFyc2VJZChmcm9tSWQpLFxuICAgICAgICAgICAgZnJvbVR5cGUsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHRvSWQ6IHBhcnNlSWQodG9JZCksXG4gICAgICAgICAgICB0b1R5cGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxDb25uZWN0aW9uRWRnZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdhZGRDb25uZWN0aW9uJyxcbiAgICAgICAgJ2Nvbm5lY3Rpb25zJyxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAnX2Zyb20nLFxuICAgICAgICAgICdfdG8nLFxuICAgICAgICAgICdjb25uZWN0aW9uVHlwZScsXG4gICAgICAgICAgJ2Zyb21JZCcsXG4gICAgICAgICAgJ2Zyb21UeXBlJyxcbiAgICAgICAgICAnbWV0YWRhdGEnLFxuICAgICAgICAgICd0b0lkJyxcbiAgICAgICAgICAndG9UeXBlJ1xuICAgICAgICBdLFxuICAgICAgICB7fVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhZGRpbmcgY29ubmVjdGlvbjonLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBjb25uZWN0aW9uLmdldENvbm5lY3Rpb25zOiR7ZnJvbVR5cGV9OiR7ZnJvbUlkfToke3RvVHlwZSB8fCAnJ31gKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZ2V0Q29ubmVjdGlvbnMgPSBhc3luYyAoXG4gICAgZnJvbVR5cGU6IENvbGxlY3Rpb25UeXBlLFxuICAgIGZyb21JZDogc3RyaW5nLFxuICAgIHRvVHlwZT86IENvbGxlY3Rpb25UeXBlLFxuICAgIGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPENvbm5lY3Rpb25FZGdlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb25uZWN0aW9uRWRnZVtdPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgYGNvbm5lY3Rpb24uZ2V0Q29ubmVjdGlvbnM6JHtmcm9tVHlwZX06JHtmcm9tSWR9OiR7dG9UeXBlIHx8ICcnfWAsXG4gICAgICAgIHtmaWx0ZXJzLCBmcm9tSWQsIGZyb21UeXBlLCB0b1R5cGV9LFxuICAgICAgICByZXF1ZXN0T3B0aW9uc1xuICAgICAgKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0KSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCB7dHlwZTogc3RyaW5nOyB2YWx1ZTogdW5rbm93bn0+ID0ge1xuICAgICAgICBmcm9tSWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VJZChmcm9tSWQpXG4gICAgICAgIH0sXG4gICAgICAgIGZyb21UeXBlOiB7XG4gICAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICAgIHZhbHVlOiBmcm9tVHlwZVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBpZih0b1R5cGUpIHtcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMudG9UeXBlID0ge1xuICAgICAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgIHZhbHVlOiB0b1R5cGVcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmtleXMoZmlsdGVycykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzW2tleV0gPSB7XG4gICAgICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgICAgICAgdmFsdWU6IGZpbHRlcnNba2V5XVxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PENvbm5lY3Rpb25FZGdlW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnY29ubmVjdGlvbnMnLFxuICAgICAgICAnY29ubmVjdGlvbnMnLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgW1xuICAgICAgICAgICdfZnJvbScsXG4gICAgICAgICAgJ190bycsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb25UeXBlJyxcbiAgICAgICAgICAnZnJvbUlkJyxcbiAgICAgICAgICAnZnJvbVR5cGUnLFxuICAgICAgICAgICdtZXRhZGF0YScsXG4gICAgICAgICAgJ3RvSWQnLFxuICAgICAgICAgICd0b1R5cGUnXG4gICAgICAgIF0sXG4gICAgICAgIHt9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChcbiAgICAgICAgZmx1eCxcbiAgICAgICAgYGNvbm5lY3Rpb24uZ2V0Q29ubmVjdGlvbnM6JHtmcm9tVHlwZX06JHtmcm9tSWR9OiR7dG9UeXBlIHx8ICcnfWAsXG4gICAgICAgIHtmaWx0ZXJzLCBmcm9tSWQsIGZyb21UeXBlLCB0b1R5cGV9LFxuICAgICAgICByZXN1bHQsXG4gICAgICAgIHJlcXVlc3RPcHRpb25zXG4gICAgICApO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdldHRpbmcgY29ubmVjdGlvbnM6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlbW92ZUNvbm5lY3Rpb24gPSBhc3luYyAoXG4gICAgZnJvbVR5cGU6IENvbGxlY3Rpb25UeXBlLFxuICAgIGZyb21JZDogc3RyaW5nLFxuICAgIHRvVHlwZTogQ29sbGVjdGlvblR5cGUsXG4gICAgdG9JZDogc3RyaW5nLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgZnJvbUlkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoZnJvbUlkKVxuICAgICAgICB9LFxuICAgICAgICBmcm9tVHlwZToge1xuICAgICAgICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICAgICAgICB2YWx1ZTogZnJvbVR5cGVcbiAgICAgICAgfSxcbiAgICAgICAgdG9JZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKHRvSWQpXG4gICAgICAgIH0sXG4gICAgICAgIHRvVHlwZToge1xuICAgICAgICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICAgICAgICB2YWx1ZTogdG9UeXBlXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IGFwcE11dGF0aW9uPGJvb2xlYW4+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAncmVtb3ZlQ29ubmVjdGlvbicsXG4gICAgICAgICdjb25uZWN0aW9ucycsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXSxcbiAgICAgICAge31cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbW92aW5nIGNvbm5lY3Rpb246JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgY29ubmVjdGlvbi5nZXRDb25uZWN0aW9uczoke2Zyb21UeXBlfToke2Zyb21JZH06JHt0b1R5cGUgfHwgJyd9YCk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWRkQ29ubmVjdGlvbixcbiAgICBnZXRDb25uZWN0aW9ucyxcbiAgICByZW1vdmVDb25uZWN0aW9uXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbInBhcnNlSWQiLCJDT05ORUNUSU9OX1RZUEVTIiwiYXBwTXV0YXRpb24iLCJhcHBRdWVyeSIsImNsZWFyQ2FjaGVkUmVxdWVzdCIsImdldENhY2hlZFJlcXVlc3QiLCJzZXRDYWNoZWRSZXF1ZXN0IiwiY3JlYXRlQ29ubmVjdGlvbkFjdGlvbnMiLCJmbHV4IiwiYWRkQ29ubmVjdGlvbiIsImZyb21UeXBlIiwiZnJvbUlkIiwidG9UeXBlIiwidG9JZCIsImNvbm5lY3Rpb25UeXBlIiwiTUVNQkVSIiwibWV0YWRhdGEiLCJyZXF1ZXN0T3B0aW9ucyIsInF1ZXJ5VmFyaWFibGVzIiwiY29ubmVjdGlvbiIsInR5cGUiLCJ2YWx1ZSIsImVycm9yIiwiY29uc29sZSIsImdldENvbm5lY3Rpb25zIiwiZmlsdGVycyIsImNhY2hlZFJlc3VsdCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicmVzdWx0IiwicmVtb3ZlQ29ubmVjdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBTyxRQUFPLGVBQWU7QUFFckMsU0FBUUMsZ0JBQWdCLFFBQWMsaUNBQWlDO0FBQ3ZFLFNBQVFDLFdBQVcsRUFBRUMsUUFBUSxRQUFPLHFCQUFxQjtBQUN6RCxTQUFRQyxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQUVDLGdCQUFnQixRQUFPLDhCQUE4QjtBQTBDbkcsT0FBTyxNQUFNQywwQkFBMEIsQ0FBQ0M7SUFDdEMsTUFBTUMsZ0JBQWdCLE9BQ3BCQyxVQUNBQyxRQUNBQyxRQUNBQyxNQUNBQyxpQkFBaUNiLGlCQUFpQmMsTUFBTSxFQUN4REMsV0FBZ0MsQ0FBQyxDQUFDLEVBQ2xDQyxpQkFBdUMsQ0FBQyxDQUFDO1FBRXpDLElBQUk7WUFDRixNQUFNQyxpQkFBaUU7Z0JBQ3JFQyxZQUFZO29CQUNWQyxNQUFNO29CQUNOQyxPQUFPO3dCQUNMUDt3QkFDQUgsUUFBUVgsUUFBUVc7d0JBQ2hCRDt3QkFDQU07d0JBQ0FILE1BQU1iLFFBQVFhO3dCQUNkRDtvQkFDRjtnQkFDRjtZQUNGO1lBRUEsT0FBTyxNQUFNVixZQUNYTSxNQUNBLGlCQUNBLGVBQ0FVLGdCQUNBO2dCQUNFO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2dCQUNBO2FBQ0QsRUFDRCxDQUFDO1FBRUwsRUFBRSxPQUFNSSxPQUFPO1lBQ2JDLFFBQVFELEtBQUssQ0FBQyw0QkFBNEJBO1lBQzFDLE1BQU1BO1FBQ1Is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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
+
import type { ContentInputType, ContentType } from '../../adapters/contentAdapter/contentAdapter.js';
|
|
3
|
+
import type { BaseAdapterOptions } from '../../utils/validatorFactory.js';
|
|
4
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
5
|
+
export interface ContentAdapterOptions extends BaseAdapterOptions {
|
|
6
|
+
}
|
|
7
|
+
export interface ContentActionsOptions {
|
|
8
|
+
contentAdapter?: (input: unknown, options?: ContentAdapterOptions) => any;
|
|
9
|
+
contentAdapterOptions?: ContentAdapterOptions;
|
|
10
|
+
}
|
|
11
|
+
export type ContentApiResultsType = {
|
|
12
|
+
contents: {
|
|
13
|
+
addContent: ContentType;
|
|
14
|
+
getContent: ContentType;
|
|
15
|
+
getContentByKey: ContentType;
|
|
16
|
+
getContentsByCategory: ContentType[];
|
|
17
|
+
getContentsList: ContentType[];
|
|
18
|
+
deleteContent: ContentType;
|
|
19
|
+
updateContent: ContentType;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export interface ContentActions {
|
|
23
|
+
add: (contentData: ContentInputType, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType>;
|
|
24
|
+
itemById: (contentId: string, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType>;
|
|
25
|
+
itemByKey: (key: string, locale?: string, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType>;
|
|
26
|
+
listByCategory: (category: string, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType[]>;
|
|
27
|
+
list: (contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType[]>;
|
|
28
|
+
delete: (contentId: string, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType>;
|
|
29
|
+
update: (content: ContentInputType, contentProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ContentType>;
|
|
30
|
+
updateContentAdapter: (adapter: (input: unknown, options?: ContentAdapterOptions) => any) => void;
|
|
31
|
+
updateContentAdapterOptions: (options: ContentAdapterOptions) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare const createContentActions: (flux: FluxFramework, options?: ContentActionsOptions) => ContentActions;
|
|
34
|
+
//# sourceMappingURL=contentActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contentActions.d.ts","sourceRoot":"","sources":["../../../src/actions/contentActions/contentActions.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AACrG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIxE,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAChE;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,EAAE;QACR,UAAU,EAAE,WAAW,CAAC;QACxB,UAAU,EAAE,WAAW,CAAC;QACxB,eAAe,EAAE,WAAW,CAAC;QAC7B,qBAAqB,EAAE,WAAW,EAAE,CAAC;QACrC,eAAe,EAAE,WAAW,EAAE,CAAC;QAC/B,aAAa,EAAE,WAAW,CAAC;QAC3B,aAAa,EAAE,WAAW,CAAC;KAC5B,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7H,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACtH,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAClI,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC7H,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACjG,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpH,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5H,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;AAID,eAAO,MAAM,oBAAoB,GAC/B,MAAM,aAAa,EACnB,UAAU,qBAAqB,KAC9B,cA0QF,CAAC"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025-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 { parseContentInput } from '../../adapters/contentAdapter/contentAdapter.js';
|
|
6
|
+
import { CONTENT_CONSTANTS } from '../../stores/contentStore.js';
|
|
7
|
+
import { appMutation, appQuery } from '../../utils/api.js';
|
|
8
|
+
import { createBaseActions } from '../../utils/baseActionFactory.js';
|
|
9
|
+
import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
|
|
10
|
+
const DATA_TYPE = 'contents';
|
|
11
|
+
const defaultContentValidator = (input, options)=>parseContentInput(input);
|
|
12
|
+
export const createContentActions = (flux, options)=>{
|
|
13
|
+
const contentBase = createBaseActions(flux, defaultContentValidator, {
|
|
14
|
+
...options?.contentAdapter && {
|
|
15
|
+
adapter: options.contentAdapter
|
|
16
|
+
},
|
|
17
|
+
...options?.contentAdapterOptions && {
|
|
18
|
+
adapterOptions: options.contentAdapterOptions
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const add = async (contentData, contentProps = [], requestOptions = {})=>{
|
|
22
|
+
try {
|
|
23
|
+
const queryVariables = {
|
|
24
|
+
content: {
|
|
25
|
+
type: 'ContentInput!',
|
|
26
|
+
value: contentBase.validator(contentData)
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const onSuccess = (data)=>{
|
|
30
|
+
const addContent = data?.contents?.addContent || {};
|
|
31
|
+
return flux.dispatch({
|
|
32
|
+
content: addContent,
|
|
33
|
+
type: CONTENT_CONSTANTS.ADD_ITEM_SUCCESS
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
return await appMutation(flux, 'addContent', DATA_TYPE, queryVariables, [
|
|
37
|
+
'contentId',
|
|
38
|
+
'key',
|
|
39
|
+
'locale',
|
|
40
|
+
'content',
|
|
41
|
+
...contentProps
|
|
42
|
+
], {
|
|
43
|
+
onSuccess
|
|
44
|
+
});
|
|
45
|
+
} catch (error) {
|
|
46
|
+
flux.dispatch({
|
|
47
|
+
error,
|
|
48
|
+
type: CONTENT_CONSTANTS.ADD_ITEM_ERROR
|
|
49
|
+
});
|
|
50
|
+
throw error;
|
|
51
|
+
} finally{
|
|
52
|
+
await clearCachedRequest(flux, 'content.list');
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const itemById = async (contentId, contentProps = [], requestOptions = {})=>{
|
|
56
|
+
try {
|
|
57
|
+
const cachedResult = getCachedRequest(flux, `content.itemById:${contentId}`, {
|
|
58
|
+
contentId,
|
|
59
|
+
contentProps
|
|
60
|
+
}, requestOptions);
|
|
61
|
+
if (cachedResult !== undefined) {
|
|
62
|
+
return cachedResult;
|
|
63
|
+
}
|
|
64
|
+
const queryVariables = {
|
|
65
|
+
contentId: {
|
|
66
|
+
type: 'ID!',
|
|
67
|
+
value: parseId(contentId)
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const onSuccess = (data)=>{
|
|
71
|
+
const content = data?.contents?.getContent || {};
|
|
72
|
+
return flux.dispatch({
|
|
73
|
+
content,
|
|
74
|
+
type: CONTENT_CONSTANTS.GET_ITEM_SUCCESS
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
const result = await appQuery(flux, 'content', DATA_TYPE, queryVariables, [
|
|
78
|
+
'contentId',
|
|
79
|
+
'key',
|
|
80
|
+
'locale',
|
|
81
|
+
'content',
|
|
82
|
+
'description',
|
|
83
|
+
'category',
|
|
84
|
+
'isActive',
|
|
85
|
+
...contentProps
|
|
86
|
+
], {
|
|
87
|
+
onSuccess
|
|
88
|
+
});
|
|
89
|
+
return await setCachedRequest(flux, `content.itemById:${contentId}`, {
|
|
90
|
+
contentId,
|
|
91
|
+
contentProps
|
|
92
|
+
}, result, requestOptions);
|
|
93
|
+
} catch (error) {
|
|
94
|
+
flux.dispatch({
|
|
95
|
+
error,
|
|
96
|
+
type: CONTENT_CONSTANTS.GET_ITEM_ERROR
|
|
97
|
+
});
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const itemByKey = async (key, locale = 'en', contentProps = [], requestOptions = {})=>{
|
|
102
|
+
try {
|
|
103
|
+
const cachedResult = getCachedRequest(flux, `content.itemByKey:${key}:${locale}`, {
|
|
104
|
+
key,
|
|
105
|
+
locale,
|
|
106
|
+
contentProps
|
|
107
|
+
}, requestOptions);
|
|
108
|
+
if (cachedResult !== undefined) {
|
|
109
|
+
return cachedResult;
|
|
110
|
+
}
|
|
111
|
+
const queryVariables = {
|
|
112
|
+
key: {
|
|
113
|
+
type: 'String!',
|
|
114
|
+
value: key
|
|
115
|
+
},
|
|
116
|
+
locale: {
|
|
117
|
+
type: 'String!',
|
|
118
|
+
value: locale
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const onSuccess = (data)=>{
|
|
122
|
+
const content = data?.contents?.getContentByKey || {};
|
|
123
|
+
return flux.dispatch({
|
|
124
|
+
content,
|
|
125
|
+
type: CONTENT_CONSTANTS.GET_ITEM_SUCCESS
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
const result = await appQuery(flux, 'contentByKey', DATA_TYPE, queryVariables, [
|
|
129
|
+
'contentId',
|
|
130
|
+
'key',
|
|
131
|
+
'locale',
|
|
132
|
+
'content',
|
|
133
|
+
'description',
|
|
134
|
+
'category',
|
|
135
|
+
'isActive',
|
|
136
|
+
...contentProps
|
|
137
|
+
], {
|
|
138
|
+
onSuccess
|
|
139
|
+
});
|
|
140
|
+
return await setCachedRequest(flux, `content.itemByKey:${key}:${locale}`, {
|
|
141
|
+
key,
|
|
142
|
+
locale,
|
|
143
|
+
contentProps
|
|
144
|
+
}, result, requestOptions);
|
|
145
|
+
} catch (error) {
|
|
146
|
+
flux.dispatch({
|
|
147
|
+
error,
|
|
148
|
+
type: CONTENT_CONSTANTS.GET_ITEM_ERROR
|
|
149
|
+
});
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
const listByCategory = async (category, contentProps = [], requestOptions = {})=>{
|
|
154
|
+
try {
|
|
155
|
+
const cachedResult = getCachedRequest(flux, `content.listByCategory:${category}`, {
|
|
156
|
+
category,
|
|
157
|
+
contentProps
|
|
158
|
+
}, requestOptions);
|
|
159
|
+
if (cachedResult !== undefined) {
|
|
160
|
+
return cachedResult;
|
|
161
|
+
}
|
|
162
|
+
const queryVariables = {
|
|
163
|
+
category: {
|
|
164
|
+
type: 'String!',
|
|
165
|
+
value: category
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
const onSuccess = (data)=>{
|
|
169
|
+
const contentsByCategory = data?.contents?.getContentsByCategory || [];
|
|
170
|
+
return flux.dispatch({
|
|
171
|
+
list: contentsByCategory,
|
|
172
|
+
type: CONTENT_CONSTANTS.GET_LIST_SUCCESS
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
const result = await appQuery(flux, 'contentsByCategory', DATA_TYPE, queryVariables, [
|
|
176
|
+
'contentId',
|
|
177
|
+
'key',
|
|
178
|
+
'locale',
|
|
179
|
+
'content',
|
|
180
|
+
'description',
|
|
181
|
+
'category',
|
|
182
|
+
'isActive',
|
|
183
|
+
...contentProps
|
|
184
|
+
], {
|
|
185
|
+
onSuccess
|
|
186
|
+
});
|
|
187
|
+
return await setCachedRequest(flux, `content.listByCategory:${category}`, {
|
|
188
|
+
category,
|
|
189
|
+
contentProps
|
|
190
|
+
}, result, requestOptions);
|
|
191
|
+
} catch (error) {
|
|
192
|
+
flux.dispatch({
|
|
193
|
+
error,
|
|
194
|
+
type: CONTENT_CONSTANTS.GET_LIST_ERROR
|
|
195
|
+
});
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
const list = async (contentProps = [], requestOptions = {})=>{
|
|
200
|
+
try {
|
|
201
|
+
const cachedResult = getCachedRequest(flux, 'content.list', {
|
|
202
|
+
contentProps
|
|
203
|
+
}, requestOptions);
|
|
204
|
+
if (cachedResult !== undefined) {
|
|
205
|
+
return cachedResult;
|
|
206
|
+
}
|
|
207
|
+
const onSuccess = (data)=>{
|
|
208
|
+
const contentsList = data?.contents?.getContentsList || [];
|
|
209
|
+
return flux.dispatch({
|
|
210
|
+
list: contentsList,
|
|
211
|
+
type: CONTENT_CONSTANTS.GET_LIST_SUCCESS
|
|
212
|
+
});
|
|
213
|
+
};
|
|
214
|
+
const result = await appQuery(flux, 'contentsList', DATA_TYPE, {}, [
|
|
215
|
+
'contentId',
|
|
216
|
+
'key',
|
|
217
|
+
'locale',
|
|
218
|
+
'content',
|
|
219
|
+
'description',
|
|
220
|
+
'category',
|
|
221
|
+
'isActive',
|
|
222
|
+
...contentProps
|
|
223
|
+
], {
|
|
224
|
+
onSuccess
|
|
225
|
+
});
|
|
226
|
+
return await setCachedRequest(flux, 'content.list', {
|
|
227
|
+
contentProps
|
|
228
|
+
}, result, requestOptions);
|
|
229
|
+
} catch (error) {
|
|
230
|
+
flux.dispatch({
|
|
231
|
+
error,
|
|
232
|
+
type: CONTENT_CONSTANTS.GET_LIST_ERROR
|
|
233
|
+
});
|
|
234
|
+
throw error;
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
const deleteContent = async (contentId, contentProps = [], requestOptions = {})=>{
|
|
238
|
+
try {
|
|
239
|
+
const queryVariables = {
|
|
240
|
+
contentId: {
|
|
241
|
+
type: 'ID!',
|
|
242
|
+
value: parseId(contentId)
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
const onSuccess = (data)=>{
|
|
246
|
+
const deleteContent = data?.contents?.deleteContent || {};
|
|
247
|
+
return flux.dispatch({
|
|
248
|
+
content: deleteContent,
|
|
249
|
+
type: CONTENT_CONSTANTS.REMOVE_ITEM_SUCCESS
|
|
250
|
+
});
|
|
251
|
+
};
|
|
252
|
+
return await appMutation(flux, 'deleteContent', DATA_TYPE, queryVariables, [
|
|
253
|
+
'contentId',
|
|
254
|
+
...contentProps
|
|
255
|
+
], {
|
|
256
|
+
onSuccess
|
|
257
|
+
});
|
|
258
|
+
} catch (error) {
|
|
259
|
+
flux.dispatch({
|
|
260
|
+
error,
|
|
261
|
+
type: CONTENT_CONSTANTS.REMOVE_ITEM_ERROR
|
|
262
|
+
});
|
|
263
|
+
throw error;
|
|
264
|
+
} finally{
|
|
265
|
+
await clearCachedRequest(flux, `content.itemById:${contentId}`);
|
|
266
|
+
await clearCachedRequest(flux, 'content.list');
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
const update = async (content, contentProps = [], requestOptions = {})=>{
|
|
270
|
+
try {
|
|
271
|
+
const queryVariables = {
|
|
272
|
+
content: {
|
|
273
|
+
type: 'ContentUpdateInput!',
|
|
274
|
+
value: contentBase.validator(content)
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
const onSuccess = (data)=>{
|
|
278
|
+
const updateContent = data?.contents?.updateContent || {};
|
|
279
|
+
return flux.dispatch({
|
|
280
|
+
content: updateContent,
|
|
281
|
+
type: CONTENT_CONSTANTS.UPDATE_ITEM_SUCCESS
|
|
282
|
+
});
|
|
283
|
+
};
|
|
284
|
+
return await appMutation(flux, 'updateContent', DATA_TYPE, queryVariables, [
|
|
285
|
+
'contentId',
|
|
286
|
+
...contentProps
|
|
287
|
+
], {
|
|
288
|
+
onSuccess
|
|
289
|
+
});
|
|
290
|
+
} catch (error) {
|
|
291
|
+
flux.dispatch({
|
|
292
|
+
error,
|
|
293
|
+
type: CONTENT_CONSTANTS.UPDATE_ITEM_ERROR
|
|
294
|
+
});
|
|
295
|
+
throw error;
|
|
296
|
+
} finally{
|
|
297
|
+
await clearCachedRequest(flux, `content.itemById:${String(content?.contentId || '')}`);
|
|
298
|
+
await clearCachedRequest(flux, 'content.list');
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
return {
|
|
302
|
+
add,
|
|
303
|
+
itemById,
|
|
304
|
+
itemByKey,
|
|
305
|
+
listByCategory,
|
|
306
|
+
list,
|
|
307
|
+
delete: deleteContent,
|
|
308
|
+
update,
|
|
309
|
+
updateContentAdapter: contentBase.updateAdapter,
|
|
310
|
+
updateContentAdapterOptions: contentBase.updateOptions
|
|
311
|
+
};
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9jb250ZW50QWN0aW9ucy9jb250ZW50QWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHsgcGFyc2VJZCB9IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7IHBhcnNlQ29udGVudElucHV0IH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvY29udGVudEFkYXB0ZXIvY29udGVudEFkYXB0ZXIuanMnO1xuaW1wb3J0IHsgQ09OVEVOVF9DT05TVEFOVFMgfSBmcm9tICcuLi8uLi9zdG9yZXMvY29udGVudFN0b3JlLmpzJztcbmltcG9ydCB7IGFwcE11dGF0aW9uLCBhcHBRdWVyeSB9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQgeyBjcmVhdGVCYXNlQWN0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2Jhc2VBY3Rpb25GYWN0b3J5LmpzJztcbmltcG9ydCB7Y2xlYXJDYWNoZWRSZXF1ZXN0LCBnZXRDYWNoZWRSZXF1ZXN0LCBzZXRDYWNoZWRSZXF1ZXN0fSBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0Q2FjaGUuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEZsdXhGcmFtZXdvcmsgfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUgeyBDb250ZW50SW5wdXRUeXBlLCBDb250ZW50VHlwZSB9IGZyb20gJy4uLy4uL2FkYXB0ZXJzL2NvbnRlbnRBZGFwdGVyL2NvbnRlbnRBZGFwdGVyLmpzJztcbmltcG9ydCB0eXBlIHsgQmFzZUFkYXB0ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ2NvbnRlbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50QWRhcHRlck9wdGlvbnMgZXh0ZW5kcyBCYXNlQWRhcHRlck9wdGlvbnMge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRBY3Rpb25zT3B0aW9ucyB7XG4gIGNvbnRlbnRBZGFwdGVyPzogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQ29udGVudEFkYXB0ZXJPcHRpb25zKSA9PiBhbnk7XG4gIGNvbnRlbnRBZGFwdGVyT3B0aW9ucz86IENvbnRlbnRBZGFwdGVyT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgQ29udGVudEFwaVJlc3VsdHNUeXBlID0ge1xuICBjb250ZW50czoge1xuICAgIGFkZENvbnRlbnQ6IENvbnRlbnRUeXBlO1xuICAgIGdldENvbnRlbnQ6IENvbnRlbnRUeXBlO1xuICAgIGdldENvbnRlbnRCeUtleTogQ29udGVudFR5cGU7XG4gICAgZ2V0Q29udGVudHNCeUNhdGVnb3J5OiBDb250ZW50VHlwZVtdO1xuICAgIGdldENvbnRlbnRzTGlzdDogQ29udGVudFR5cGVbXTtcbiAgICBkZWxldGVDb250ZW50OiBDb250ZW50VHlwZTtcbiAgICB1cGRhdGVDb250ZW50OiBDb250ZW50VHlwZTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEFjdGlvbnMge1xuICBhZGQ6IChjb250ZW50RGF0YTogQ29udGVudElucHV0VHlwZSwgY29udGVudFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udGVudFR5cGU+O1xuICBpdGVtQnlJZDogKGNvbnRlbnRJZDogc3RyaW5nLCBjb250ZW50UHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb250ZW50VHlwZT47XG4gIGl0ZW1CeUtleTogKGtleTogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcsIGNvbnRlbnRQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnRlbnRUeXBlPjtcbiAgbGlzdEJ5Q2F0ZWdvcnk6IChjYXRlZ29yeTogc3RyaW5nLCBjb250ZW50UHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb250ZW50VHlwZVtdPjtcbiAgbGlzdDogKGNvbnRlbnRQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPENvbnRlbnRUeXBlW10+O1xuICBkZWxldGU6IChjb250ZW50SWQ6IHN0cmluZywgY29udGVudFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8Q29udGVudFR5cGU+O1xuICB1cGRhdGU6IChjb250ZW50OiBDb250ZW50SW5wdXRUeXBlLCBjb250ZW50UHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxDb250ZW50VHlwZT47XG4gIHVwZGF0ZUNvbnRlbnRBZGFwdGVyOiAoYWRhcHRlcjogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQ29udGVudEFkYXB0ZXJPcHRpb25zKSA9PiBhbnkpID0+IHZvaWQ7XG4gIHVwZGF0ZUNvbnRlbnRBZGFwdGVyT3B0aW9uczogKG9wdGlvbnM6IENvbnRlbnRBZGFwdGVyT3B0aW9ucykgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVmYXVsdENvbnRlbnRWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBDb250ZW50QWRhcHRlck9wdGlvbnMpID0+IHBhcnNlQ29udGVudElucHV0KGlucHV0IGFzIENvbnRlbnRJbnB1dFR5cGUpO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGVudEFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM/OiBDb250ZW50QWN0aW9uc09wdGlvbnNcbik6IENvbnRlbnRBY3Rpb25zID0+IHtcbiAgY29uc3QgY29udGVudEJhc2UgPSBjcmVhdGVCYXNlQWN0aW9ucyhmbHV4LCBkZWZhdWx0Q29udGVudFZhbGlkYXRvciwge1xuICAgIC4uLihvcHRpb25zPy5jb250ZW50QWRhcHRlciAmJiB7YWRhcHRlcjogb3B0aW9ucy5jb250ZW50QWRhcHRlcn0pLFxuICAgIC4uLihvcHRpb25zPy5jb250ZW50QWRhcHRlck9wdGlvbnMgJiYge2FkYXB0ZXJPcHRpb25zOiBvcHRpb25zLmNvbnRlbnRBZGFwdGVyT3B0aW9uc30pXG4gIH0pO1xuICBjb25zdCBhZGQgPSBhc3luYyAoY29udGVudERhdGE6IENvbnRlbnRJbnB1dFR5cGUsIGNvbnRlbnRQcm9wczogc3RyaW5nW10gPSBbXSwgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge30pOiBQcm9taXNlPENvbnRlbnRUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgdHlwZTogJ0NvbnRlbnRJbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiBjb250ZW50QmFzZS52YWxpZGF0b3IoY29udGVudERhdGEpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBDb250ZW50QXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgYWRkQ29udGVudCA9IGRhdGE/LmNvbnRlbnRzPy5hZGRDb250ZW50IHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7Y29udGVudDogYWRkQ29udGVudCwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuQUREX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPENvbnRlbnRUeXBlPihmbHV4LCAnYWRkQ29udGVudCcsIERBVEFfVFlQRSwgcXVlcnlWYXJpYWJsZXMsIFsnY29udGVudElkJywgJ2tleScsICdsb2NhbGUnLCAnY29udGVudCcsIC4uLmNvbnRlbnRQcm9wc10sIHtvblN1Y2Nlc3N9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuQUREX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ2NvbnRlbnQubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpdGVtQnlJZCA9IGFzeW5jIChjb250ZW50SWQ6IHN0cmluZywgY29udGVudFByb3BzOiBzdHJpbmdbXSA9IFtdLCByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q29udGVudFR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb250ZW50VHlwZT4oZmx1eCwgYGNvbnRlbnQuaXRlbUJ5SWQ6JHtjb250ZW50SWR9YCwge2NvbnRlbnRJZCwgY29udGVudFByb3BzfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udGVudElkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoY29udGVudElkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udGVudEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBkYXRhPy5jb250ZW50cz8uZ2V0Q29udGVudCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnRlbnQsIHR5cGU6IENPTlRFTlRfQ09OU1RBTlRTLkdFVF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PENvbnRlbnRUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2NvbnRlbnQnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXG4gICAgICAgICAgJ2NvbnRlbnRJZCcsXG4gICAgICAgICAgJ2tleScsXG4gICAgICAgICAgJ2xvY2FsZScsXG4gICAgICAgICAgJ2NvbnRlbnQnLFxuICAgICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgJ2NhdGVnb3J5JyxcbiAgICAgICAgICAnaXNBY3RpdmUnLFxuICAgICAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBhd2FpdCBzZXRDYWNoZWRSZXF1ZXN0KGZsdXgsIGBjb250ZW50Lml0ZW1CeUlkOiR7Y29udGVudElkfWAsIHtjb250ZW50SWQsIGNvbnRlbnRQcm9wc30sIHJlc3VsdCwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBDT05URU5UX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGl0ZW1CeUtleSA9IGFzeW5jIChrZXk6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcgPSAnZW4nLCBjb250ZW50UHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxDb250ZW50VHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PENvbnRlbnRUeXBlPihmbHV4LCBgY29udGVudC5pdGVtQnlLZXk6JHtrZXl9OiR7bG9jYWxlfWAsIHtrZXksIGxvY2FsZSwgY29udGVudFByb3BzfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAga2V5OiB7XG4gICAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICAgIHZhbHVlOiBrZXlcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYWxlOiB7XG4gICAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICAgIHZhbHVlOiBsb2NhbGVcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnRlbnRBcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gZGF0YT8uY29udGVudHM/LmdldENvbnRlbnRCeUtleSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnRlbnQsIHR5cGU6IENPTlRFTlRfQ09OU1RBTlRTLkdFVF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PENvbnRlbnRUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2NvbnRlbnRCeUtleScsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAnY29udGVudElkJyxcbiAgICAgICAgICAna2V5JyxcbiAgICAgICAgICAnbG9jYWxlJyxcbiAgICAgICAgICAnY29udGVudCcsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnY2F0ZWdvcnknLFxuICAgICAgICAgICdpc0FjdGl2ZScsXG4gICAgICAgICAgLi4uY29udGVudFByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnRlbnQuaXRlbUJ5S2V5OiR7a2V5fToke2xvY2FsZX1gLCB7a2V5LCBsb2NhbGUsIGNvbnRlbnRQcm9wc30sIHJlc3VsdCwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBDT05URU5UX0NPTlNUQU5UUy5HRVRfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxpc3RCeUNhdGVnb3J5ID0gYXN5bmMgKGNhdGVnb3J5OiBzdHJpbmcsIGNvbnRlbnRQcm9wczogc3RyaW5nW10gPSBbXSwgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge30pOiBQcm9taXNlPENvbnRlbnRUeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb250ZW50VHlwZVtdPihmbHV4LCBgY29udGVudC5saXN0QnlDYXRlZ29yeToke2NhdGVnb3J5fWAsIHtjYXRlZ29yeSwgY29udGVudFByb3BzfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY2F0ZWdvcnk6IHtcbiAgICAgICAgICB0eXBlOiAnU3RyaW5nIScsXG4gICAgICAgICAgdmFsdWU6IGNhdGVnb3J5XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBDb250ZW50QXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgY29udGVudHNCeUNhdGVnb3J5ID0gZGF0YT8uY29udGVudHM/LmdldENvbnRlbnRzQnlDYXRlZ29yeSB8fCBbXTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe1xuICAgICAgICAgIGxpc3Q6IGNvbnRlbnRzQnlDYXRlZ29yeSxcbiAgICAgICAgICB0eXBlOiBDT05URU5UX0NPTlNUQU5UUy5HRVRfTElTVF9TVUNDRVNTXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8Q29udGVudFR5cGVbXT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdjb250ZW50c0J5Q2F0ZWdvcnknLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXG4gICAgICAgICAgJ2NvbnRlbnRJZCcsXG4gICAgICAgICAgJ2tleScsXG4gICAgICAgICAgJ2xvY2FsZScsXG4gICAgICAgICAgJ2NvbnRlbnQnLFxuICAgICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgJ2NhdGVnb3J5JyxcbiAgICAgICAgICAnaXNBY3RpdmUnLFxuICAgICAgICAgIC4uLmNvbnRlbnRQcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBhd2FpdCBzZXRDYWNoZWRSZXF1ZXN0KGZsdXgsIGBjb250ZW50Lmxpc3RCeUNhdGVnb3J5OiR7Y2F0ZWdvcnl9YCwge2NhdGVnb3J5LCBjb250ZW50UHJvcHN9LCByZXN1bHQsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBsaXN0ID0gYXN5bmMgKGNvbnRlbnRQcm9wczogc3RyaW5nW10gPSBbXSwgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge30pOiBQcm9taXNlPENvbnRlbnRUeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxDb250ZW50VHlwZVtdPihmbHV4LCAnY29udGVudC5saXN0Jywge2NvbnRlbnRQcm9wc30sIHJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IENvbnRlbnRBcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50c0xpc3QgPSBkYXRhPy5jb250ZW50cz8uZ2V0Q29udGVudHNMaXN0IHx8IFtdO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7XG4gICAgICAgICAgbGlzdDogY29udGVudHNMaXN0LFxuICAgICAgICAgIHR5cGU6IENPTlRFTlRfQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1NcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxDb250ZW50VHlwZVtdPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2NvbnRlbnRzTGlzdCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAge30sXG4gICAgICAgIFtcbiAgICAgICAgICAnY29udGVudElkJyxcbiAgICAgICAgICAna2V5JyxcbiAgICAgICAgICAnbG9jYWxlJyxcbiAgICAgICAgICAnY29udGVudCcsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnY2F0ZWdvcnknLFxuICAgICAgICAgICdpc0FjdGl2ZScsXG4gICAgICAgICAgLi4uY29udGVudFByb3BzXG4gICAgICAgIF0sXG4gICAgICAgIHtvblN1Y2Nlc3N9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgJ2NvbnRlbnQubGlzdCcsIHtjb250ZW50UHJvcHN9LCByZXN1bHQsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZWxldGVDb250ZW50ID0gYXN5bmMgKGNvbnRlbnRJZDogc3RyaW5nLCBjb250ZW50UHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxDb250ZW50VHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgY29udGVudElkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQoY29udGVudElkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udGVudEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbGV0ZUNvbnRlbnQgPSBkYXRhPy5jb250ZW50cz8uZGVsZXRlQ29udGVudCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnRlbnQ6IGRlbGV0ZUNvbnRlbnQsIHR5cGU6IENPTlRFTlRfQ09OU1RBTlRTLlJFTU9WRV9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxDb250ZW50VHlwZT4oZmx1eCwgJ2RlbGV0ZUNvbnRlbnQnLCBEQVRBX1RZUEUsIHF1ZXJ5VmFyaWFibGVzLCBbJ2NvbnRlbnRJZCcsIC4uLmNvbnRlbnRQcm9wc10sIHtvblN1Y2Nlc3N9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuUkVNT1ZFX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnRlbnQuaXRlbUJ5SWQ6JHtjb250ZW50SWR9YCk7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ2NvbnRlbnQubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBhc3luYyAoY29udGVudDogQ29udGVudElucHV0VHlwZSwgY29udGVudFByb3BzOiBzdHJpbmdbXSA9IFtdLCByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q29udGVudFR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICB0eXBlOiAnQ29udGVudFVwZGF0ZUlucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGNvbnRlbnRCYXNlLnZhbGlkYXRvcihjb250ZW50KVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQ29udGVudEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUNvbnRlbnQgPSBkYXRhPy5jb250ZW50cz8udXBkYXRlQ29udGVudCB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2NvbnRlbnQ6IHVwZGF0ZUNvbnRlbnQsIHR5cGU6IENPTlRFTlRfQ09OU1RBTlRTLlVQREFURV9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxDb250ZW50VHlwZT4oZmx1eCwgJ3VwZGF0ZUNvbnRlbnQnLCBEQVRBX1RZUEUsIHF1ZXJ5VmFyaWFibGVzLCBbJ2NvbnRlbnRJZCcsIC4uLmNvbnRlbnRQcm9wc10sIHtvblN1Y2Nlc3N9KTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQ09OVEVOVF9DT05TVEFOVFMuVVBEQVRFX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgYGNvbnRlbnQuaXRlbUJ5SWQ6JHtTdHJpbmcoY29udGVudD8uY29udGVudElkIHx8ICcnKX1gKTtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnY29udGVudC5saXN0Jyk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgYWRkLFxuICAgIGl0ZW1CeUlkLFxuICAgIGl0ZW1CeUtleSxcbiAgICBsaXN0QnlDYXRlZ29yeSxcbiAgICBsaXN0LFxuICAgIGRlbGV0ZTogZGVsZXRlQ29udGVudCxcbiAgICB1cGRhdGUsXG4gICAgdXBkYXRlQ29udGVudEFkYXB0ZXI6IGNvbnRlbnRCYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlQ29udGVudEFkYXB0ZXJPcHRpb25zOiBjb250ZW50QmFzZS51cGRhdGVPcHRpb25zXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbInBhcnNlSWQiLCJwYXJzZUNvbnRlbnRJbnB1dCIsIkNPTlRFTlRfQ09OU1RBTlRTIiwiYXBwTXV0YXRpb24iLCJhcHBRdWVyeSIsImNyZWF0ZUJhc2VBY3Rpb25zIiwiY2xlYXJDYWNoZWRSZXF1ZXN0IiwiZ2V0Q2FjaGVkUmVxdWVzdCIsInNldENhY2hlZFJlcXVlc3QiLCJEQVRBX1RZUEUiLCJkZWZhdWx0Q29udGVudFZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZUNvbnRlbnRBY3Rpb25zIiwiZmx1eCIsImNvbnRlbnRCYXNlIiwiY29udGVudEFkYXB0ZXIiLCJhZGFwdGVyIiwiY29udGVudEFkYXB0ZXJPcHRpb25zIiwiYWRhcHRlck9wdGlvbnMiLCJhZGQiLCJjb250ZW50RGF0YSIsImNvbnRlbnRQcm9wcyIsInJlcXVlc3RPcHRpb25zIiwicXVlcnlWYXJpYWJsZXMiLCJjb250ZW50IiwidHlwZSIsInZhbHVlIiwidmFsaWRhdG9yIiwib25TdWNjZXNzIiwiZGF0YSIsImFkZENvbnRlbnQiLCJjb250ZW50cyIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsImVycm9yIiwiQUREX0lURU1fRVJST1IiLCJpdGVtQnlJZCIsImNvbnRlbnRJZCIsImNhY2hlZFJlc3VsdCIsInVuZGVmaW5lZCIsImdldENvbnRlbnQiLCJHRVRfSVRFTV9TVUNDRVNTIiwicmVzdWx0IiwiR0VUX0lURU1fRVJST1IiLCJpdGVtQnlLZXkiLCJrZXkiLCJsb2NhbGUiLCJnZXRDb250ZW50QnlLZXkiLCJsaXN0QnlDYXRlZ29yeSIsImNhdGVnb3J5IiwiY29udGVudHNCeUNhdGVnb3J5IiwiZ2V0Q29udGVudHNCeUNhdGVnb3J5IiwibGlzdCIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImNvbnRlbnRzTGlzdCIsImdldENvbnRlbnRzTGlzdCIsImRlbGV0ZUNvbnRlbnQiLCJSRU1PVkVfSVRFTV9TVUNDRVNTIiwiUkVNT1ZFX0lURU1fRVJST1IiLCJ1cGRhdGUiLCJ1cGRhdGVDb250ZW50IiwiVVBEQVRFX0lURU1fU1VDQ0VTUyIsIlVQREFURV9JVEVNX0VSUk9SIiwiU3RyaW5nIiwiZGVsZXRlIiwidXBkYXRlQ29udGVudEFkYXB0ZXIiLCJ1cGRhdGVBZGFwdGVyIiwidXBkYXRlQ29udGVudEFkYXB0ZXJPcHRpb25zIiwidXBkYXRlT3B0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBU0EsT0FBTyxRQUFRLGVBQWU7QUFFdkMsU0FBU0MsaUJBQWlCLFFBQVEsa0RBQWtEO0FBQ3BGLFNBQVNDLGlCQUFpQixRQUFRLCtCQUErQjtBQUNqRSxTQUFTQyxXQUFXLEVBQUVDLFFBQVEsUUFBUSxxQkFBcUI7QUFDM0QsU0FBU0MsaUJBQWlCLFFBQVEsbUNBQW1DO0FBQ3JFLFNBQVFDLGtCQUFrQixFQUFFQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLFFBQU8sOEJBQThCO0FBT25HLE1BQU1DLFlBQVk7QUFrQ2xCLE1BQU1DLDBCQUEwQixDQUFDQyxPQUFnQkMsVUFBb0NYLGtCQUFrQlU7QUFFdkcsT0FBTyxNQUFNRSx1QkFBdUIsQ0FDbENDLE1BQ0FGO0lBRUEsTUFBTUcsY0FBY1Ysa0JBQWtCUyxNQUFNSix5QkFBeUI7UUFDbkUsR0FBSUUsU0FBU0ksa0JBQWtCO1lBQUNDLFNBQVNMLFFBQVFJLGNBQWM7UUFBQSxDQUFDO1FBQ2hFLEdBQUlKLFNBQVNNLHlCQUF5QjtZQUFDQyxnQkFBZ0JQLFFBQVFNLHFCQUFxQjtRQUFBLENBQUM7SUFDdkY7SUFDQSxNQUFNRSxNQUFNLE9BQU9DLGFBQStCQyxlQUF5QixFQUFFLEVBQUVDLGlCQUF1QyxDQUFDLENBQUM7UUFDdEgsSUFBSTtZQUNGLE1BQU1DLGlCQUFpQjtnQkFDckJDLFNBQVM7b0JBQ1BDLE1BQU07b0JBQ05D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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
+
import type { ConversationType } from '../../adapters/conversationAdapter/conversationAdapter.js';
|
|
3
|
+
import type { BaseAdapterOptions } from '../../utils/validatorFactory.js';
|
|
4
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
5
|
+
export interface ConversationAdapterOptions extends BaseAdapterOptions {
|
|
6
|
+
}
|
|
7
|
+
export interface ConversationActionsOptions {
|
|
8
|
+
conversationAdapter?: (input: unknown, options?: ConversationAdapterOptions) => any;
|
|
9
|
+
conversationAdapterOptions?: ConversationAdapterOptions;
|
|
10
|
+
}
|
|
11
|
+
export type ConversationApiResultsType = {
|
|
12
|
+
conversations: {
|
|
13
|
+
add?: ConversationType;
|
|
14
|
+
itemById?: ConversationType;
|
|
15
|
+
list?: ConversationType[];
|
|
16
|
+
remove?: ConversationType;
|
|
17
|
+
update?: ConversationType;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export interface ConversationActions {
|
|
21
|
+
add: (conversationData: Partial<ConversationType>, conversationProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
|
|
22
|
+
delete: (conversationId: string, conversationProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
|
|
23
|
+
itemById: (conversationId: string, conversationProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
|
|
24
|
+
list: (from?: number, to?: number, conversationProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ConversationType[]>;
|
|
25
|
+
update: (conversation: Partial<ConversationType>, conversationProps?: string[], requestOptions?: ActionRequestOptions) => Promise<ConversationType>;
|
|
26
|
+
updateConversationAdapter: (adapter: (input: unknown, options?: ConversationAdapterOptions) => any) => void;
|
|
27
|
+
updateConversationAdapterOptions: (options: ConversationAdapterOptions) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const createConversationActions: (flux: FluxFramework, options?: ConversationActionsOptions) => ConversationActions;
|
|
30
|
+
//# sourceMappingURL=conversationActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationActions.d.ts","sourceRoot":"","sources":["../../../src/actions/conversationActions/conversationActions.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,2DAA2D,CAAC;AAChG,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AAItE,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;CACrE;AAED,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,0BAA0B,KAAK,GAAG,CAAC;IACpF,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CACzD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,aAAa,EAAE;QACb,GAAG,CAAC,EAAE,gBAAgB,CAAC;QACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrJ,MAAM,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnI,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrI,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvI,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpJ,yBAAyB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,0BAA0B,KAAK,GAAG,KAAK,IAAI,CAAC;IAC5G,gCAAgC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACjF;AAKD,eAAO,MAAM,yBAAyB,GACpC,MAAM,aAAa,EACnB,UAAU,0BAA0B,KACnC,mBA+NF,CAAC"}
|