@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
|
@@ -0,0 +1,330 @@
|
|
|
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, parseNum } from '@nlabs/utils';
|
|
5
|
+
import { validatePermissionInput } from '../../adapters/permissionAdapter/permissionAdapter.js';
|
|
6
|
+
import { PERMISSION_CONSTANTS } from '../../stores/permissionStore.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 = 'permissions';
|
|
11
|
+
const defaultPermissionValidator = (input, options)=>validatePermissionInput(input);
|
|
12
|
+
export const createPermissionActions = (flux, options)=>{
|
|
13
|
+
const permissionBase = createBaseActions(flux, defaultPermissionValidator, {
|
|
14
|
+
adapter: options?.permissionAdapter,
|
|
15
|
+
adapterOptions: options?.permissionAdapterOptions
|
|
16
|
+
});
|
|
17
|
+
const add = async (permissionData, permissionProps = [], requestOptions = {})=>{
|
|
18
|
+
try {
|
|
19
|
+
const queryVariables = {
|
|
20
|
+
permission: {
|
|
21
|
+
type: 'PermissionInput!',
|
|
22
|
+
value: permissionBase.validator(permissionData)
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const onSuccess = (data)=>{
|
|
26
|
+
const { permissions: { add: permission = {} } } = data;
|
|
27
|
+
return flux.dispatch({
|
|
28
|
+
permission,
|
|
29
|
+
type: PERMISSION_CONSTANTS.ADD_ITEM_SUCCESS
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return await appMutation(flux, 'add', DATA_TYPE, queryVariables, [
|
|
33
|
+
'permissionId',
|
|
34
|
+
'name',
|
|
35
|
+
'level',
|
|
36
|
+
'resource',
|
|
37
|
+
'userId',
|
|
38
|
+
...permissionProps
|
|
39
|
+
], {
|
|
40
|
+
onSuccess
|
|
41
|
+
});
|
|
42
|
+
} catch (error) {
|
|
43
|
+
flux.dispatch({
|
|
44
|
+
error,
|
|
45
|
+
type: PERMISSION_CONSTANTS.ADD_ITEM_ERROR
|
|
46
|
+
});
|
|
47
|
+
throw error;
|
|
48
|
+
} finally{
|
|
49
|
+
await clearCachedRequest(flux, 'permission.list');
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const check = async (userId, resource, requiredLevel, requestOptions = {})=>{
|
|
53
|
+
try {
|
|
54
|
+
const cachedResult = getCachedRequest(flux, `permission.check:${userId}:${resource}:${requiredLevel}`, {
|
|
55
|
+
requiredLevel,
|
|
56
|
+
resource,
|
|
57
|
+
userId
|
|
58
|
+
}, requestOptions);
|
|
59
|
+
if (cachedResult !== undefined) {
|
|
60
|
+
return cachedResult;
|
|
61
|
+
}
|
|
62
|
+
const queryVariables = {
|
|
63
|
+
userId: {
|
|
64
|
+
type: 'ID!',
|
|
65
|
+
value: parseId(userId)
|
|
66
|
+
},
|
|
67
|
+
resource: {
|
|
68
|
+
type: 'String!',
|
|
69
|
+
value: resource
|
|
70
|
+
},
|
|
71
|
+
requiredLevel: {
|
|
72
|
+
type: 'Int!',
|
|
73
|
+
value: parseNum(requiredLevel)
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const onSuccess = (data)=>{
|
|
77
|
+
const { permissions: { check: hasPermission = false } } = data;
|
|
78
|
+
return flux.dispatch({
|
|
79
|
+
hasPermission,
|
|
80
|
+
type: PERMISSION_CONSTANTS.CHECK_PERMISSION_SUCCESS
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const result = await appQuery(flux, 'check', DATA_TYPE, queryVariables, [], {
|
|
84
|
+
onSuccess
|
|
85
|
+
});
|
|
86
|
+
return await setCachedRequest(flux, `permission.check:${userId}:${resource}:${requiredLevel}`, {
|
|
87
|
+
requiredLevel,
|
|
88
|
+
resource,
|
|
89
|
+
userId
|
|
90
|
+
}, result, requestOptions);
|
|
91
|
+
} catch (error) {
|
|
92
|
+
flux.dispatch({
|
|
93
|
+
error,
|
|
94
|
+
type: PERMISSION_CONSTANTS.CHECK_PERMISSION_ERROR
|
|
95
|
+
});
|
|
96
|
+
throw error;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
const itemById = async (permissionId, permissionProps = [], requestOptions = {})=>{
|
|
100
|
+
try {
|
|
101
|
+
const cachedResult = getCachedRequest(flux, `permission.itemById:${permissionId}`, {
|
|
102
|
+
permissionId,
|
|
103
|
+
permissionProps
|
|
104
|
+
}, requestOptions);
|
|
105
|
+
if (cachedResult) {
|
|
106
|
+
return cachedResult;
|
|
107
|
+
}
|
|
108
|
+
const queryVariables = {
|
|
109
|
+
permissionId: {
|
|
110
|
+
type: 'ID!',
|
|
111
|
+
value: parseId(permissionId)
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const onSuccess = (data)=>{
|
|
115
|
+
const { permissions: { itemById: permission = {} } } = data;
|
|
116
|
+
return flux.dispatch({
|
|
117
|
+
permission,
|
|
118
|
+
type: PERMISSION_CONSTANTS.GET_ITEM_SUCCESS
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
const result = await appQuery(flux, 'itemById', DATA_TYPE, queryVariables, [
|
|
122
|
+
'permissionId',
|
|
123
|
+
'name',
|
|
124
|
+
'description',
|
|
125
|
+
'level',
|
|
126
|
+
'resource',
|
|
127
|
+
'userId',
|
|
128
|
+
'roleId',
|
|
129
|
+
'type',
|
|
130
|
+
'added',
|
|
131
|
+
'updated',
|
|
132
|
+
...permissionProps
|
|
133
|
+
], {
|
|
134
|
+
onSuccess
|
|
135
|
+
});
|
|
136
|
+
return await setCachedRequest(flux, `permission.itemById:${permissionId}`, {
|
|
137
|
+
permissionId,
|
|
138
|
+
permissionProps
|
|
139
|
+
}, result, requestOptions);
|
|
140
|
+
} catch (error) {
|
|
141
|
+
flux.dispatch({
|
|
142
|
+
error,
|
|
143
|
+
type: PERMISSION_CONSTANTS.GET_ITEM_ERROR
|
|
144
|
+
});
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const list = async (from = 0, to = 0, permissionProps = [], requestOptions = {})=>{
|
|
149
|
+
try {
|
|
150
|
+
const cachedResult = getCachedRequest(flux, 'permission.list', {
|
|
151
|
+
from,
|
|
152
|
+
to,
|
|
153
|
+
permissionProps
|
|
154
|
+
}, requestOptions);
|
|
155
|
+
if (cachedResult) {
|
|
156
|
+
return cachedResult;
|
|
157
|
+
}
|
|
158
|
+
const queryVariables = {
|
|
159
|
+
from: {
|
|
160
|
+
type: 'Int',
|
|
161
|
+
value: parseNum(from)
|
|
162
|
+
},
|
|
163
|
+
to: {
|
|
164
|
+
type: 'Int',
|
|
165
|
+
value: parseNum(to)
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
const onSuccess = (data)=>{
|
|
169
|
+
const { permissions: { list: permissionsList = [] } } = data;
|
|
170
|
+
return flux.dispatch({
|
|
171
|
+
list: permissionsList,
|
|
172
|
+
type: PERMISSION_CONSTANTS.GET_LIST_SUCCESS
|
|
173
|
+
});
|
|
174
|
+
};
|
|
175
|
+
const result = await appQuery(flux, 'list', DATA_TYPE, queryVariables, [
|
|
176
|
+
'permissionId',
|
|
177
|
+
'name',
|
|
178
|
+
'description',
|
|
179
|
+
'level',
|
|
180
|
+
'resource',
|
|
181
|
+
'userId',
|
|
182
|
+
'roleId',
|
|
183
|
+
'type',
|
|
184
|
+
...permissionProps
|
|
185
|
+
], {
|
|
186
|
+
onSuccess
|
|
187
|
+
});
|
|
188
|
+
return await setCachedRequest(flux, 'permission.list', {
|
|
189
|
+
from,
|
|
190
|
+
to,
|
|
191
|
+
permissionProps
|
|
192
|
+
}, result, requestOptions);
|
|
193
|
+
} catch (error) {
|
|
194
|
+
flux.dispatch({
|
|
195
|
+
error,
|
|
196
|
+
type: PERMISSION_CONSTANTS.GET_LIST_ERROR
|
|
197
|
+
});
|
|
198
|
+
throw error;
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
const listByUser = async (userId, permissionProps = [], requestOptions = {})=>{
|
|
202
|
+
try {
|
|
203
|
+
const cachedResult = getCachedRequest(flux, `permission.listByUser:${userId}`, {
|
|
204
|
+
permissionProps,
|
|
205
|
+
userId
|
|
206
|
+
}, requestOptions);
|
|
207
|
+
if (cachedResult) {
|
|
208
|
+
return cachedResult;
|
|
209
|
+
}
|
|
210
|
+
const queryVariables = {
|
|
211
|
+
userId: {
|
|
212
|
+
type: 'ID!',
|
|
213
|
+
value: parseId(userId)
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
const onSuccess = (data)=>{
|
|
217
|
+
const { permissions: { listByUser: permissionsList = [] } } = data;
|
|
218
|
+
return flux.dispatch({
|
|
219
|
+
list: permissionsList,
|
|
220
|
+
userId,
|
|
221
|
+
type: PERMISSION_CONSTANTS.GET_LIST_SUCCESS
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
const result = await appQuery(flux, 'listByUser', DATA_TYPE, queryVariables, [
|
|
225
|
+
'permissionId',
|
|
226
|
+
'name',
|
|
227
|
+
'description',
|
|
228
|
+
'level',
|
|
229
|
+
'resource',
|
|
230
|
+
'userId',
|
|
231
|
+
'roleId',
|
|
232
|
+
'type',
|
|
233
|
+
...permissionProps
|
|
234
|
+
], {
|
|
235
|
+
onSuccess
|
|
236
|
+
});
|
|
237
|
+
return await setCachedRequest(flux, `permission.listByUser:${userId}`, {
|
|
238
|
+
permissionProps,
|
|
239
|
+
userId
|
|
240
|
+
}, result, requestOptions);
|
|
241
|
+
} catch (error) {
|
|
242
|
+
flux.dispatch({
|
|
243
|
+
error,
|
|
244
|
+
type: PERMISSION_CONSTANTS.GET_LIST_ERROR
|
|
245
|
+
});
|
|
246
|
+
throw error;
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
const remove = async (permissionId, requestOptions = {})=>{
|
|
250
|
+
try {
|
|
251
|
+
const queryVariables = {
|
|
252
|
+
permissionId: {
|
|
253
|
+
type: 'ID!',
|
|
254
|
+
value: parseId(permissionId)
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
const onSuccess = (data)=>{
|
|
258
|
+
const { permissions: { remove: permission = {} } } = data;
|
|
259
|
+
return flux.dispatch({
|
|
260
|
+
permission,
|
|
261
|
+
type: PERMISSION_CONSTANTS.REMOVE_ITEM_SUCCESS
|
|
262
|
+
});
|
|
263
|
+
};
|
|
264
|
+
return await appMutation(flux, 'remove', DATA_TYPE, queryVariables, [
|
|
265
|
+
'permissionId'
|
|
266
|
+
], {
|
|
267
|
+
onSuccess
|
|
268
|
+
});
|
|
269
|
+
} catch (error) {
|
|
270
|
+
flux.dispatch({
|
|
271
|
+
error,
|
|
272
|
+
type: PERMISSION_CONSTANTS.REMOVE_ITEM_ERROR
|
|
273
|
+
});
|
|
274
|
+
throw error;
|
|
275
|
+
} finally{
|
|
276
|
+
await clearCachedRequest(flux, `permission.itemById:${permissionId}`);
|
|
277
|
+
await clearCachedRequest(flux, 'permission.list');
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
const update = async (permission, permissionProps = [], requestOptions = {})=>{
|
|
281
|
+
try {
|
|
282
|
+
const queryVariables = {
|
|
283
|
+
permission: {
|
|
284
|
+
type: 'PermissionInput!',
|
|
285
|
+
value: permissionBase.validator(permission)
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
const onSuccess = (data)=>{
|
|
289
|
+
const { permissions: { update: updatedPermission = {} } } = data;
|
|
290
|
+
return flux.dispatch({
|
|
291
|
+
permission: updatedPermission,
|
|
292
|
+
type: PERMISSION_CONSTANTS.UPDATE_ITEM_SUCCESS
|
|
293
|
+
});
|
|
294
|
+
};
|
|
295
|
+
return await appMutation(flux, 'update', DATA_TYPE, queryVariables, [
|
|
296
|
+
'permissionId',
|
|
297
|
+
'name',
|
|
298
|
+
'level',
|
|
299
|
+
'resource',
|
|
300
|
+
'description',
|
|
301
|
+
...permissionProps
|
|
302
|
+
], {
|
|
303
|
+
onSuccess
|
|
304
|
+
});
|
|
305
|
+
} catch (error) {
|
|
306
|
+
flux.dispatch({
|
|
307
|
+
error,
|
|
308
|
+
type: PERMISSION_CONSTANTS.UPDATE_ITEM_ERROR
|
|
309
|
+
});
|
|
310
|
+
throw error;
|
|
311
|
+
} finally{
|
|
312
|
+
await clearCachedRequest(flux, `permission.itemById:${String(permission?.permissionId || '')}`);
|
|
313
|
+
await clearCachedRequest(flux, 'permission.list');
|
|
314
|
+
await clearCachedRequest(flux, `permission.listByUser:${String(permission?.userId || '')}`);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
return {
|
|
318
|
+
add,
|
|
319
|
+
check,
|
|
320
|
+
itemById,
|
|
321
|
+
list,
|
|
322
|
+
listByUser,
|
|
323
|
+
remove,
|
|
324
|
+
update,
|
|
325
|
+
updatePermissionAdapter: permissionBase.updateAdapter,
|
|
326
|
+
updatePermissionAdapterOptions: permissionBase.updateAdapterOptions || permissionBase.updateOptions
|
|
327
|
+
};
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtwYXJzZUlkLCBwYXJzZU51bX0gZnJvbSAnQG5sYWJzL3V0aWxzJztcblxuaW1wb3J0IHt2YWxpZGF0ZVBlcm1pc3Npb25JbnB1dH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvcGVybWlzc2lvbkFkYXB0ZXIvcGVybWlzc2lvbkFkYXB0ZXIuanMnO1xuaW1wb3J0IHtQRVJNSVNTSU9OX0NPTlNUQU5UU30gZnJvbSAnLi4vLi4vc3RvcmVzL3Blcm1pc3Npb25TdG9yZS5qcyc7XG5pbXBvcnQge2FwcE11dGF0aW9uLCBhcHBRdWVyeX0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLmpzJztcbmltcG9ydCB7Y3JlYXRlQmFzZUFjdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL2Jhc2VBY3Rpb25GYWN0b3J5LmpzJztcbmltcG9ydCB7Y2xlYXJDYWNoZWRSZXF1ZXN0LCBnZXRDYWNoZWRSZXF1ZXN0LCBzZXRDYWNoZWRSZXF1ZXN0fSBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0Q2FjaGUuanMnO1xuXG5pbXBvcnQgdHlwZSB7QmFzZUFkYXB0ZXJPcHRpb25zfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JGYWN0b3J5LmpzJztcbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge1Blcm1pc3Npb259IGZyb20gJy4uLy4uL2FkYXB0ZXJzL3Blcm1pc3Npb25BZGFwdGVyL3Blcm1pc3Npb25BZGFwdGVyLmpzJztcbmltcG9ydCB0eXBlIHtBY3Rpb25SZXF1ZXN0T3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdENhY2hlLmpzJztcblxuY29uc3QgREFUQV9UWVBFID0gJ3Blcm1pc3Npb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uQWRhcHRlck9wdGlvbnMgZXh0ZW5kcyBCYXNlQWRhcHRlck9wdGlvbnMge31cblxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uQWN0aW9uc09wdGlvbnMge1xuICBwZXJtaXNzaW9uQWRhcHRlcj86IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IFBlcm1pc3Npb25BZGFwdGVyT3B0aW9ucykgPT4gYW55O1xuICBwZXJtaXNzaW9uQWRhcHRlck9wdGlvbnM/OiBQZXJtaXNzaW9uQWRhcHRlck9wdGlvbnM7XG59XG5cbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25BcGlSZXN1bHRzVHlwZSA9IHtcbiAgcGVybWlzc2lvbnM6IHtcbiAgICBhZGQ/OiBQZXJtaXNzaW9uO1xuICAgIGNoZWNrPzogYm9vbGVhbjtcbiAgICBpdGVtQnlJZD86IFBlcm1pc3Npb247XG4gICAgbGlzdD86IFBlcm1pc3Npb25bXTtcbiAgICBsaXN0QnlVc2VyPzogUGVybWlzc2lvbltdO1xuICAgIHJlbW92ZT86IFBlcm1pc3Npb247XG4gICAgdXBkYXRlPzogUGVybWlzc2lvbjtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbkFjdGlvbnMge1xuICBhZGQ6IChwZXJtaXNzaW9uRGF0YTogUGFydGlhbDxQZXJtaXNzaW9uPiwgcGVybWlzc2lvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UGVybWlzc2lvbj47XG4gIGNoZWNrOiAodXNlcklkOiBzdHJpbmcsIHJlc291cmNlOiBzdHJpbmcsIHJlcXVpcmVkTGV2ZWw6IG51bWJlciwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgaXRlbUJ5SWQ6IChwZXJtaXNzaW9uSWQ6IHN0cmluZywgcGVybWlzc2lvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UGVybWlzc2lvbj47XG4gIGxpc3Q6IChmcm9tPzogbnVtYmVyLCB0bz86IG51bWJlciwgcGVybWlzc2lvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UGVybWlzc2lvbltdPjtcbiAgbGlzdEJ5VXNlcjogKHVzZXJJZDogc3RyaW5nLCBwZXJtaXNzaW9uUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxQZXJtaXNzaW9uW10+O1xuICByZW1vdmU6IChwZXJtaXNzaW9uSWQ6IHN0cmluZywgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxQZXJtaXNzaW9uPjtcbiAgdXBkYXRlOiAocGVybWlzc2lvbjogUGFydGlhbDxQZXJtaXNzaW9uPiwgcGVybWlzc2lvblByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8UGVybWlzc2lvbj47XG4gIHVwZGF0ZVBlcm1pc3Npb25BZGFwdGVyOiAoYWRhcHRlcjogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogUGVybWlzc2lvbkFkYXB0ZXJPcHRpb25zKSA9PiBhbnkpID0+IHZvaWQ7XG4gIHVwZGF0ZVBlcm1pc3Npb25BZGFwdGVyT3B0aW9uczogKG9wdGlvbnM6IFBlcm1pc3Npb25BZGFwdGVyT3B0aW9ucykgPT4gdm9pZDtcbn1cblxuY29uc3QgZGVmYXVsdFBlcm1pc3Npb25WYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBQZXJtaXNzaW9uQWRhcHRlck9wdGlvbnMpID0+XG4gIHZhbGlkYXRlUGVybWlzc2lvbklucHV0KGlucHV0KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVBlcm1pc3Npb25BY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogUGVybWlzc2lvbkFjdGlvbnNPcHRpb25zXG4pOiBQZXJtaXNzaW9uQWN0aW9ucyA9PiB7XG4gIGNvbnN0IHBlcm1pc3Npb25CYXNlID0gY3JlYXRlQmFzZUFjdGlvbnMoZmx1eCwgZGVmYXVsdFBlcm1pc3Npb25WYWxpZGF0b3IsIHtcbiAgICBhZGFwdGVyOiBvcHRpb25zPy5wZXJtaXNzaW9uQWRhcHRlcixcbiAgICBhZGFwdGVyT3B0aW9uczogb3B0aW9ucz8ucGVybWlzc2lvbkFkYXB0ZXJPcHRpb25zXG4gIH0pO1xuXG4gIGNvbnN0IGFkZCA9IGFzeW5jIChcbiAgICBwZXJtaXNzaW9uRGF0YTogUGFydGlhbDxQZXJtaXNzaW9uPixcbiAgICBwZXJtaXNzaW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBwZXJtaXNzaW9uOiB7XG4gICAgICAgICAgdHlwZTogJ1Blcm1pc3Npb25JbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiBwZXJtaXNzaW9uQmFzZS52YWxpZGF0b3IocGVybWlzc2lvbkRhdGEpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBQZXJtaXNzaW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBlcm1pc3Npb25zOiB7YWRkOiBwZXJtaXNzaW9uID0ge319XG4gICAgICAgIH0gPSBkYXRhO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7cGVybWlzc2lvbiwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuQUREX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPFBlcm1pc3Npb24+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnYWRkJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydwZXJtaXNzaW9uSWQnLCAnbmFtZScsICdsZXZlbCcsICdyZXNvdXJjZScsICd1c2VySWQnLCAuLi5wZXJtaXNzaW9uUHJvcHNdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuQUREX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ3Blcm1pc3Npb24ubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjaGVjayA9IGFzeW5jIChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICByZXNvdXJjZTogc3RyaW5nLFxuICAgIHJlcXVpcmVkTGV2ZWw6IG51bWJlcixcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxib29sZWFuPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgYHBlcm1pc3Npb24uY2hlY2s6JHt1c2VySWR9OiR7cmVzb3VyY2V9OiR7cmVxdWlyZWRMZXZlbH1gLFxuICAgICAgICB7cmVxdWlyZWRMZXZlbCwgcmVzb3VyY2UsIHVzZXJJZH0sXG4gICAgICAgIHJlcXVlc3RPcHRpb25zXG4gICAgICApO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgdXNlcklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQodXNlcklkKVxuICAgICAgICB9LFxuICAgICAgICByZXNvdXJjZToge1xuICAgICAgICAgIHR5cGU6ICdTdHJpbmchJyxcbiAgICAgICAgICB2YWx1ZTogcmVzb3VyY2VcbiAgICAgICAgfSxcbiAgICAgICAgcmVxdWlyZWRMZXZlbDoge1xuICAgICAgICAgIHR5cGU6ICdJbnQhJyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0ocmVxdWlyZWRMZXZlbClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IFBlcm1pc3Npb25BcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcGVybWlzc2lvbnM6IHtjaGVjazogaGFzUGVybWlzc2lvbiA9IGZhbHNlfVxuICAgICAgICB9ID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2hhc1Blcm1pc3Npb24sIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLkNIRUNLX1BFUk1JU1NJT05fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8Ym9vbGVhbj4oZmx1eCwgJ2NoZWNrJywgREFUQV9UWVBFLCBxdWVyeVZhcmlhYmxlcywgW10sIHtvblN1Y2Nlc3N9KTtcbiAgICAgIHJldHVybiBhd2FpdCBzZXRDYWNoZWRSZXF1ZXN0KFxuICAgICAgICBmbHV4LFxuICAgICAgICBgcGVybWlzc2lvbi5jaGVjazoke3VzZXJJZH06JHtyZXNvdXJjZX06JHtyZXF1aXJlZExldmVsfWAsXG4gICAgICAgIHtyZXF1aXJlZExldmVsLCByZXNvdXJjZSwgdXNlcklkfSxcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICByZXF1ZXN0T3B0aW9uc1xuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuQ0hFQ0tfUEVSTUlTU0lPTl9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGl0ZW1CeUlkID0gYXN5bmMgKFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25Qcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPFBlcm1pc3Npb24+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxQZXJtaXNzaW9uPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgYHBlcm1pc3Npb24uaXRlbUJ5SWQ6JHtwZXJtaXNzaW9uSWR9YCxcbiAgICAgICAge3Blcm1pc3Npb25JZCwgcGVybWlzc2lvblByb3BzfSxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnNcbiAgICAgICk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCkge1xuICAgICAgICByZXR1cm4gY2FjaGVkUmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgcGVybWlzc2lvbklkOiB7XG4gICAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSWQocGVybWlzc2lvbklkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogUGVybWlzc2lvbkFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBwZXJtaXNzaW9uczoge2l0ZW1CeUlkOiBwZXJtaXNzaW9uID0ge319XG4gICAgICAgIH0gPSBkYXRhO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7cGVybWlzc2lvbiwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuR0VUX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBwUXVlcnk8UGVybWlzc2lvbj4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdpdGVtQnlJZCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAncGVybWlzc2lvbklkJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnbGV2ZWwnLFxuICAgICAgICAgICdyZXNvdXJjZScsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgJ3JvbGVJZCcsXG4gICAgICAgICAgJ3R5cGUnLFxuICAgICAgICAgICdhZGRlZCcsXG4gICAgICAgICAgJ3VwZGF0ZWQnLFxuICAgICAgICAgIC4uLnBlcm1pc3Npb25Qcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYHBlcm1pc3Npb24uaXRlbUJ5SWQ6JHtwZXJtaXNzaW9uSWR9YCwge3Blcm1pc3Npb25JZCwgcGVybWlzc2lvblByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLkdFVF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgbGlzdCA9IGFzeW5jIChcbiAgICBmcm9tOiBudW1iZXIgPSAwLFxuICAgIHRvOiBudW1iZXIgPSAwLFxuICAgIHBlcm1pc3Npb25Qcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPFBlcm1pc3Npb25bXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PFBlcm1pc3Npb25bXT4oZmx1eCwgJ3Blcm1pc3Npb24ubGlzdCcsIHtmcm9tLCB0bywgcGVybWlzc2lvblByb3BzfSwgcmVxdWVzdE9wdGlvbnMpO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0oZnJvbSlcbiAgICAgICAgfSxcbiAgICAgICAgdG86IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0odG8pXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBQZXJtaXNzaW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBlcm1pc3Npb25zOiB7bGlzdDogcGVybWlzc2lvbnNMaXN0ID0gW119XG4gICAgICAgIH0gPSBkYXRhO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7XG4gICAgICAgICAgbGlzdDogcGVybWlzc2lvbnNMaXN0LFxuICAgICAgICAgIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1NcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxQZXJtaXNzaW9uW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnbGlzdCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAncGVybWlzc2lvbklkJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnbGV2ZWwnLFxuICAgICAgICAgICdyZXNvdXJjZScsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgJ3JvbGVJZCcsXG4gICAgICAgICAgJ3R5cGUnLFxuICAgICAgICAgIC4uLnBlcm1pc3Npb25Qcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgJ3Blcm1pc3Npb24ubGlzdCcsIHtmcm9tLCB0bywgcGVybWlzc2lvblByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLkdFVF9MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgbGlzdEJ5VXNlciA9IGFzeW5jIChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBwZXJtaXNzaW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxQZXJtaXNzaW9uW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICBgcGVybWlzc2lvbi5saXN0QnlVc2VyOiR7dXNlcklkfWAsXG4gICAgICAgIHtwZXJtaXNzaW9uUHJvcHMsIHVzZXJJZH0sXG4gICAgICAgIHJlcXVlc3RPcHRpb25zXG4gICAgICApO1xuXG4gICAgICBpZihjYWNoZWRSZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIHVzZXJJZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKHVzZXJJZClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IFBlcm1pc3Npb25BcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgcGVybWlzc2lvbnM6IHtsaXN0QnlVc2VyOiBwZXJtaXNzaW9uc0xpc3QgPSBbXX1cbiAgICAgICAgfSA9IGRhdGE7XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtcbiAgICAgICAgICBsaXN0OiBwZXJtaXNzaW9uc0xpc3QsXG4gICAgICAgICAgdXNlcklkLFxuICAgICAgICAgIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1NcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxQZXJtaXNzaW9uW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnbGlzdEJ5VXNlcicsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAncGVybWlzc2lvbklkJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnbGV2ZWwnLFxuICAgICAgICAgICdyZXNvdXJjZScsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgJ3JvbGVJZCcsXG4gICAgICAgICAgJ3R5cGUnLFxuICAgICAgICAgIC4uLnBlcm1pc3Npb25Qcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7b25TdWNjZXNzfVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgYHBlcm1pc3Npb24ubGlzdEJ5VXNlcjoke3VzZXJJZH1gLCB7cGVybWlzc2lvblByb3BzLCB1c2VySWR9LCByZXN1bHQsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuR0VUX0xJU1RfRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCByZW1vdmUgPSBhc3luYyAocGVybWlzc2lvbklkOiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxQZXJtaXNzaW9uPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBwZXJtaXNzaW9uSWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VJZChwZXJtaXNzaW9uSWQpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBQZXJtaXNzaW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBlcm1pc3Npb25zOiB7cmVtb3ZlOiBwZXJtaXNzaW9uID0ge319XG4gICAgICAgIH0gPSBkYXRhO1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7cGVybWlzc2lvbiwgdHlwZTogUEVSTUlTU0lPTl9DT05TVEFOVFMuUkVNT1ZFX0lURU1fU1VDQ0VTU30pO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPFBlcm1pc3Npb24+KGZsdXgsICdyZW1vdmUnLCBEQVRBX1RZUEUsIHF1ZXJ5VmFyaWFibGVzLCBbJ3Blcm1pc3Npb25JZCddLCB7XG4gICAgICAgIG9uU3VjY2Vzc1xuICAgICAgfSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLlJFTU9WRV9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBwZXJtaXNzaW9uLml0ZW1CeUlkOiR7cGVybWlzc2lvbklkfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdwZXJtaXNzaW9uLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlID0gYXN5bmMgKFxuICAgIHBlcm1pc3Npb246IFBhcnRpYWw8UGVybWlzc2lvbj4sXG4gICAgcGVybWlzc2lvblByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8UGVybWlzc2lvbj4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgcGVybWlzc2lvbjoge1xuICAgICAgICAgIHR5cGU6ICdQZXJtaXNzaW9uSW5wdXQhJyxcbiAgICAgICAgICB2YWx1ZTogcGVybWlzc2lvbkJhc2UudmFsaWRhdG9yKHBlcm1pc3Npb24pXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBQZXJtaXNzaW9uQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHBlcm1pc3Npb25zOiB7dXBkYXRlOiB1cGRhdGVkUGVybWlzc2lvbiA9IHt9fVxuICAgICAgICB9ID0gZGF0YTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe3Blcm1pc3Npb246IHVwZGF0ZWRQZXJtaXNzaW9uLCB0eXBlOiBQRVJNSVNTSU9OX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248UGVybWlzc2lvbj4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICd1cGRhdGUnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ3Blcm1pc3Npb25JZCcsICduYW1lJywgJ2xldmVsJywgJ3Jlc291cmNlJywgJ2Rlc2NyaXB0aW9uJywgLi4ucGVybWlzc2lvblByb3BzXSxcbiAgICAgICAge29uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IFBFUk1JU1NJT05fQ09OU1RBTlRTLlVQREFURV9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBwZXJtaXNzaW9uLml0ZW1CeUlkOiR7U3RyaW5nKHBlcm1pc3Npb24/LnBlcm1pc3Npb25JZCB8fCAnJyl9YCk7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgJ3Blcm1pc3Npb24ubGlzdCcpO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBwZXJtaXNzaW9uLmxpc3RCeVVzZXI6JHtTdHJpbmcocGVybWlzc2lvbj8udXNlcklkIHx8ICcnKX1gKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBhZGQsXG4gICAgY2hlY2ssXG4gICAgaXRlbUJ5SWQsXG4gICAgbGlzdCxcbiAgICBsaXN0QnlVc2VyLFxuICAgIHJlbW92ZSxcbiAgICB1cGRhdGUsXG4gICAgdXBkYXRlUGVybWlzc2lvbkFkYXB0ZXI6IHBlcm1pc3Npb25CYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlUGVybWlzc2lvbkFkYXB0ZXJPcHRpb25zOiBwZXJtaXNzaW9uQmFzZS51cGRhdGVBZGFwdGVyT3B0aW9ucyB8fCBwZXJtaXNzaW9uQmFzZS51cGRhdGVPcHRpb25zXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbInBhcnNlSWQiLCJwYXJzZU51bSIsInZhbGlkYXRlUGVybWlzc2lvbklucHV0IiwiUEVSTUlTU0lPTl9DT05TVEFOVFMiLCJhcHBNdXRhdGlvbiIsImFwcFF1ZXJ5IiwiY3JlYXRlQmFzZUFjdGlvbnMiLCJjbGVhckNhY2hlZFJlcXVlc3QiLCJnZXRDYWNoZWRSZXF1ZXN0Iiwic2V0Q2FjaGVkUmVxdWVzdCIsIkRBVEFfVFlQRSIsImRlZmF1bHRQZXJtaXNzaW9uVmFsaWRhdG9yIiwiaW5wdXQiLCJvcHRpb25zIiwiY3JlYXRlUGVybWlzc2lvbkFjdGlvbnMiLCJmbHV4IiwicGVybWlzc2lvbkJhc2UiLCJhZGFwdGVyIiwicGVybWlzc2lvbkFkYXB0ZXIiLCJhZGFwdGVyT3B0aW9ucyIsInBlcm1pc3Npb25BZGFwdGVyT3B0aW9ucyIsImFkZCIsInBlcm1pc3Npb25EYXRhIiwicGVybWlzc2lvblByb3BzIiwicmVxdWVzdE9wdGlvbnMiLCJxdWVyeVZhcmlhYmxlcyIsInBlcm1pc3Npb24iLCJ0eXBlIiwidmFsdWUiLCJ2YWxpZGF0b3IiLCJvblN1Y2Nlc3MiLCJkYXRhIiwicGVybWlzc2lvbnMiLCJkaXNwYXRjaCIsIkFERF9JVEVNX1NVQ0NFU1MiLCJlcnJvciIsIkFERF9JVEVNX0VSUk9SIiwiY2hlY2siLCJ1c2VySWQiLCJyZXNvdXJjZSIsInJlcXVpcmVkTGV2ZWwiLCJjYWNoZWRSZXN1bHQiLCJ1bmRlZmluZWQiLCJoYXNQZXJtaXNzaW9uIiwiQ0hFQ0tfUEVSTUlTU0lPTl9TVUNDRVNTIiwicmVzdWx0IiwiQ0hFQ0tfUEVSTUlTU0lPTl9FUlJPUiIsIml0ZW1CeUlkIiwicGVybWlzc2lvbklkIiwiR0VUX0lURU1fU1VDQ0VTUyIsIkdFVF9JVEVNX0VSUk9SIiwibGlzdCIsImZyb20iLCJ0byIsInBlcm1pc3Npb25zTGlzdCIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImxpc3RCeVVzZXIiLCJyZW1vdmUiLCJSRU1PVkVfSVRFTV9TVUNDRVNTIiwiUkVNT1ZFX0lURU1fRVJST1IiLCJ1cGRhdGUiLCJ1cGRhdGVkUGVybWlzc2lvbiIsIlVQREFURV9JVEVNX1NVQ0NFU1MiLCJVUERBVEVfSVRFTV9FUlJPUiIsIlN0cmluZyIsInVwZGF0ZVBlcm1pc3Npb25BZGFwdGVyIiwidXBkYXRlQWRhcHRlciIsInVwZGF0ZVBlcm1pc3Npb25BZGFwdGVyT3B0aW9ucyIsInVwZGF0ZUFkYXB0ZXJPcHRpb25zIiwidXBkYXRlT3B0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBTyxFQUFFQyxRQUFRLFFBQU8sZUFBZTtBQUUvQyxTQUFRQyx1QkFBdUIsUUFBTyx3REFBd0Q7QUFDOUYsU0FBUUMsb0JBQW9CLFFBQU8sa0NBQWtDO0FBQ3JFLFNBQVFDLFdBQVcsRUFBRUMsUUFBUSxRQUFPLHFCQUFxQjtBQUN6RCxTQUFRQyxpQkFBaUIsUUFBTyxtQ0FBbUM7QUFDbkUsU0FBUUMsa0JBQWtCLEVBQUVDLGdCQUFnQixFQUFFQyxnQkFBZ0IsUUFBTyw4QkFBOEI7QUFPbkcsTUFBTUMsWUFBWTtBQWlDbEIsTUFBTUMsNkJBQTZCLENBQUNDLE9BQWdCQyxVQUNsRFgsd0JBQXdCVTtBQUUxQixPQUFPLE1BQU1FLDBCQUEwQixDQUNyQ0MsTUFDQUY7SUFFQSxNQUFNRyxpQkFBaUJWLGtCQUFrQlMsTUFB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
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
+
import type { PersonaType } from '../../adapters/personaAdapter/personaAdapter.js';
|
|
3
|
+
import type { ActionRequestOptions } from '../../utils/requestCache.js';
|
|
4
|
+
export interface PersonaAdapterOptions {
|
|
5
|
+
readonly strict?: boolean;
|
|
6
|
+
readonly allowPartial?: boolean;
|
|
7
|
+
readonly environment?: 'development' | 'production' | 'test';
|
|
8
|
+
readonly customValidation?: (input: unknown) => unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface PersonaActionsOptions {
|
|
11
|
+
readonly personaAdapter?: (input: unknown, options?: PersonaAdapterOptions) => any;
|
|
12
|
+
readonly personaAdapterOptions?: PersonaAdapterOptions;
|
|
13
|
+
}
|
|
14
|
+
export interface PersonaApiResultsType {
|
|
15
|
+
readonly personas: {
|
|
16
|
+
readonly addConnection?: boolean;
|
|
17
|
+
readonly addPersona?: PersonaType;
|
|
18
|
+
readonly deleteConnection?: boolean;
|
|
19
|
+
readonly deletePersona?: PersonaType;
|
|
20
|
+
readonly getPersonaById?: PersonaType;
|
|
21
|
+
readonly getPersonaListByIds?: PersonaType[];
|
|
22
|
+
readonly listByRelation?: PersonaType[];
|
|
23
|
+
readonly listByTags?: PersonaType[];
|
|
24
|
+
readonly updatePersona?: PersonaType;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export type PersonaRelationFilter = 'followers' | 'following' | 'friends';
|
|
28
|
+
export interface PersonaActions {
|
|
29
|
+
readonly blockPersona: (targetPersonaId: string) => Promise<boolean>;
|
|
30
|
+
readonly followPersona: (targetPersonaId: string) => Promise<boolean>;
|
|
31
|
+
readonly addPersona: (personaData: Partial<PersonaType>, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType>;
|
|
32
|
+
readonly getPersonaById: (personaId: string, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType>;
|
|
33
|
+
readonly getPersonaListByIds: (personaIds: string[], personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType[]>;
|
|
34
|
+
readonly listByRelation: (relation: PersonaRelationFilter, personaId?: string, from?: number, to?: number, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType[]>;
|
|
35
|
+
readonly listByTags: (username: string, tags: string[], from?: number, to?: number, personaProps?: string[], filters?: Record<string, unknown>, requestOptions?: ActionRequestOptions) => Promise<PersonaType[]>;
|
|
36
|
+
readonly unfollowPersona: (targetPersonaId: string) => Promise<boolean>;
|
|
37
|
+
readonly unblockPersona: (targetPersonaId: string) => Promise<boolean>;
|
|
38
|
+
readonly deletePersona: (personaId: string, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType>;
|
|
39
|
+
readonly updatePersona: (persona: Partial<PersonaType>, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<PersonaType>;
|
|
40
|
+
readonly updatePersonaAdapter: (adapter: (input: unknown, options?: PersonaAdapterOptions) => any) => void;
|
|
41
|
+
readonly updatePersonaAdapterOptions: (options: PersonaAdapterOptions) => void;
|
|
42
|
+
}
|
|
43
|
+
export declare const syncPersonaToSession: (flux: FluxFramework, persona?: Partial<PersonaType>) => void;
|
|
44
|
+
export declare const syncPersonaTagsToSession: (flux: FluxFramework, personaId?: string) => Promise<Record<string, unknown>>;
|
|
45
|
+
/**
|
|
46
|
+
* Factory function to create PersonaActions with enhanced adapter injection capabilities.
|
|
47
|
+
* Custom adapters are merged with default behavior, allowing partial overrides.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* // Basic usage with default adapters
|
|
51
|
+
* const personaActions = createPersonaActions(flux);
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* // Custom adapter that extends default behavior
|
|
55
|
+
* const customPersonaAdapter = (input: unknown, options?: PersonaAdapterOptions) => {
|
|
56
|
+
* // input is already validated by default adapter
|
|
57
|
+
* return input;
|
|
58
|
+
* };
|
|
59
|
+
*
|
|
60
|
+
* const personaActions = createPersonaActions(flux, {
|
|
61
|
+
* personaAdapter: customPersonaAdapter
|
|
62
|
+
* });
|
|
63
|
+
*/
|
|
64
|
+
export declare const createPersonaActions: (flux: FluxFramework, options?: PersonaActionsOptions) => PersonaActions;
|
|
65
|
+
//# sourceMappingURL=personaActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personaActions.d.ts","sourceRoot":"","sources":["../../../src/actions/personaActions/personaActions.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAexE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CACzD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAC;IACnF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;QACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC;QACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;QAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,CAAC;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;KACtC,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,QAAQ,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACjJ,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACrI,QAAQ,CAAC,mBAAmB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/I,QAAQ,CAAC,cAAc,EAAE,CACvB,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,cAAc,CAAC,EAAE,oBAAoB,KAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,CAAC,EAAE,MAAM,EACb,EAAE,CAAC,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,cAAc,CAAC,EAAE,oBAAoB,KAClC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,QAAQ,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACpI,QAAQ,CAAC,aAAa,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;IAChJ,QAAQ,CAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,qBAAqB,KAAK,GAAG,KAAK,IAAI,CAAC;IAC3G,QAAQ,CAAC,2BAA2B,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAChF;AAKD,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,EAAE,UAAS,OAAO,CAAC,WAAW,CAAM,SA2B3F,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,MAAM,aAAa,EACnB,YAAW,MAAW,KACrB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmCjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,aAAa,EACnB,UAAU,qBAAqB,KAC9B,cAifF,CAAC"}
|