@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.
Files changed (329) hide show
  1. package/.github/copilot-instructions.md +167 -0
  2. package/AGENTS.md +13 -0
  3. package/CHANGELOG.md +112 -0
  4. package/GRAPHQL_VALIDATION_RESULTS.md +158 -0
  5. package/PERMISSION_GRAPHQL_INTEGRATION.md +293 -0
  6. package/PERMISSION_IMPLEMENTATION_SUMMARY.md +243 -0
  7. package/README.md +1123 -112
  8. package/SIGNIN_GRAPHQL_VALIDATION.md +125 -0
  9. package/VAULT_GRAPHQL_API_FINDINGS.md +312 -0
  10. package/docs/ACTIONS.md +63 -0
  11. package/docs/COLLECTIONS.md +1038 -0
  12. package/docs/CONNECTIONS.md +1367 -0
  13. package/docs/CRUD_INTEGRATION.md +702 -0
  14. package/examples/connections-usage.tsx +909 -0
  15. package/examples/content-actions-usage.ts +144 -0
  16. package/examples/crud-usage.tsx +847 -0
  17. package/examples/extensibility-usage.tsx +889 -0
  18. package/examples/i18n-import-examples.ts +86 -0
  19. package/examples/i18n-namespace-usage.ts +118 -0
  20. package/examples/i18next-singleton-demo.ts +187 -0
  21. package/examples/permission-system-usage.tsx +415 -0
  22. package/examples/project-details.tsx +397 -0
  23. package/examples/shared-i18n-usage.tsx +203 -0
  24. package/examples/signup-error-handling.ts +100 -0
  25. package/examples/translation-types.ts +86 -0
  26. package/examples/translation-usage.tsx +336 -0
  27. package/index.js +1 -0
  28. package/jest.config.mjs +28 -0
  29. package/lex.config.mjs +11 -2
  30. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts +22 -0
  31. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +1 -0
  32. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +197 -0
  33. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts +3 -0
  34. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +1 -0
  35. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +52 -0
  36. package/lib/actions/appActions/appActions.d.ts +29 -0
  37. package/lib/actions/appActions/appActions.d.ts.map +1 -0
  38. package/lib/actions/appActions/appActions.js +159 -0
  39. package/lib/actions/connectionActions/connectionActions.d.ts +19 -0
  40. package/lib/actions/connectionActions/connectionActions.d.ts.map +1 -0
  41. package/lib/actions/connectionActions/connectionActions.js +131 -0
  42. package/lib/actions/contentActions/contentActions.d.ts +34 -0
  43. package/lib/actions/contentActions/contentActions.d.ts.map +1 -0
  44. package/lib/actions/contentActions/contentActions.js +314 -0
  45. package/lib/actions/conversationActions/conversationActions.d.ts +30 -0
  46. package/lib/actions/conversationActions/conversationActions.d.ts.map +1 -0
  47. package/lib/actions/conversationActions/conversationActions.js +225 -0
  48. package/lib/actions/eventActions/eventActions.d.ts +27 -7
  49. package/lib/actions/eventActions/eventActions.d.ts.map +1 -0
  50. package/lib/actions/eventActions/eventActions.js +436 -2
  51. package/lib/actions/groupActions/groupActions.d.ts +30 -0
  52. package/lib/actions/groupActions/groupActions.d.ts.map +1 -0
  53. package/lib/actions/groupActions/groupActions.js +229 -0
  54. package/lib/actions/imageActions/imageActions.d.ts +16 -10
  55. package/lib/actions/imageActions/imageActions.d.ts.map +1 -0
  56. package/lib/actions/imageActions/imageActions.js +593 -2
  57. package/lib/actions/index.d.ts +21 -9
  58. package/lib/actions/index.d.ts.map +1 -0
  59. package/lib/actions/index.js +22 -2
  60. package/lib/actions/locationActions/locationActions.d.ts +11 -9
  61. package/lib/actions/locationActions/locationActions.d.ts.map +1 -0
  62. package/lib/actions/locationActions/locationActions.js +388 -2
  63. package/lib/actions/messageActions/messageActions.d.ts +16 -32
  64. package/lib/actions/messageActions/messageActions.d.ts.map +1 -0
  65. package/lib/actions/messageActions/messageActions.js +235 -2
  66. package/lib/actions/permissionActions/permissionActions.d.ts +34 -0
  67. package/lib/actions/permissionActions/permissionActions.d.ts.map +1 -0
  68. package/lib/actions/permissionActions/permissionActions.js +330 -0
  69. package/lib/actions/personaActions/personaActions.d.ts +65 -0
  70. package/lib/actions/personaActions/personaActions.d.ts.map +1 -0
  71. package/lib/actions/personaActions/personaActions.js +572 -0
  72. package/lib/actions/postActions/postActions.d.ts +12 -32
  73. package/lib/actions/postActions/postActions.d.ts.map +1 -0
  74. package/lib/actions/postActions/postActions.js +447 -2
  75. package/lib/actions/reactionActions/reactionActions.d.ts +13 -27
  76. package/lib/actions/reactionActions/reactionActions.d.ts.map +1 -0
  77. package/lib/actions/reactionActions/reactionActions.js +413 -2
  78. package/lib/actions/sseActions/sseActions.d.ts +1 -0
  79. package/lib/actions/sseActions/sseActions.d.ts.map +1 -0
  80. package/lib/actions/sseActions/sseActions.js +148 -2
  81. package/lib/actions/subscriptionActions/subscriptionActions.d.ts +24 -0
  82. package/lib/actions/subscriptionActions/subscriptionActions.d.ts.map +1 -0
  83. package/lib/actions/subscriptionActions/subscriptionActions.js +329 -0
  84. package/lib/actions/tagActions/tagActions.d.ts +13 -31
  85. package/lib/actions/tagActions/tagActions.d.ts.map +1 -0
  86. package/lib/actions/tagActions/tagActions.js +347 -2
  87. package/lib/actions/translationActions/translationActions.d.ts +38 -0
  88. package/lib/actions/translationActions/translationActions.d.ts.map +1 -0
  89. package/lib/actions/translationActions/translationActions.js +189 -0
  90. package/lib/actions/userActions/userActions.d.ts +44 -95
  91. package/lib/actions/userActions/userActions.d.ts.map +1 -0
  92. package/lib/actions/userActions/userActions.js +870 -2
  93. package/lib/actions/videoActions/videoActions.d.ts +41 -0
  94. package/lib/actions/videoActions/videoActions.d.ts.map +1 -0
  95. package/lib/actions/videoActions/videoActions.js +532 -0
  96. package/lib/actions/websocketActions/websocketActions.d.ts +20 -21
  97. package/lib/actions/websocketActions/websocketActions.d.ts.map +1 -0
  98. package/lib/actions/websocketActions/websocketActions.js +377 -2
  99. package/lib/adapters/appAdapter/appAdapter.d.ts +8 -0
  100. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -0
  101. package/lib/adapters/appAdapter/appAdapter.js +90 -0
  102. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +3 -2
  103. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -0
  104. package/lib/adapters/arangoAdapter/arangoAdapter.js +75 -2
  105. package/lib/adapters/contentAdapter/contentAdapter.d.ts +3 -2
  106. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -0
  107. package/lib/adapters/contentAdapter/contentAdapter.js +107 -2
  108. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +3 -2
  109. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -0
  110. package/lib/adapters/conversationAdapter/conversationAdapter.js +75 -2
  111. package/lib/adapters/eventAdapter/eventAdapter.d.ts +5 -2
  112. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -0
  113. package/lib/adapters/eventAdapter/eventAdapter.js +162 -2
  114. package/lib/adapters/fileAdapter/fileAdapter.d.ts +3 -2
  115. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -0
  116. package/lib/adapters/fileAdapter/fileAdapter.js +118 -2
  117. package/lib/adapters/groupAdapter/groupAdapter.d.ts +28 -0
  118. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -0
  119. package/lib/adapters/groupAdapter/groupAdapter.js +66 -0
  120. package/lib/adapters/imageAdapter/imageAdapter.d.ts +9 -2
  121. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -0
  122. package/lib/adapters/imageAdapter/imageAdapter.js +134 -2
  123. package/lib/adapters/index.d.ts +34 -16
  124. package/lib/adapters/index.d.ts.map +1 -0
  125. package/lib/adapters/index.js +19 -2
  126. package/lib/adapters/locationAdapter/locationAdapter.d.ts +3 -2
  127. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -0
  128. package/lib/adapters/locationAdapter/locationAdapter.js +95 -2
  129. package/lib/adapters/messageAdapter/messageAdapter.d.ts +23 -19
  130. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -0
  131. package/lib/adapters/messageAdapter/messageAdapter.js +82 -2
  132. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +41 -0
  133. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -0
  134. package/lib/adapters/permissionAdapter/permissionAdapter.js +120 -0
  135. package/lib/adapters/personaAdapter/personaAdapter.d.ts +28 -2
  136. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -0
  137. package/lib/adapters/personaAdapter/personaAdapter.js +161 -2
  138. package/lib/adapters/postAdapter/postAdapter.d.ts +3 -2
  139. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -0
  140. package/lib/adapters/postAdapter/postAdapter.js +115 -2
  141. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +5 -2
  142. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -0
  143. package/lib/adapters/reactionAdapter/reactionAdapter.js +81 -2
  144. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +3 -2
  145. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -0
  146. package/lib/adapters/reaktorAdapter/reaktorAdapter.js +58 -2
  147. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +3 -2
  148. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -0
  149. package/lib/adapters/sessionAdapter/sessionAdapter.js +80 -2
  150. package/lib/adapters/tagAdapter/tagAdapter.d.ts +3 -2
  151. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -0
  152. package/lib/adapters/tagAdapter/tagAdapter.js +98 -2
  153. package/lib/adapters/translationAdapter/translationAdapter.d.ts +21 -0
  154. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -0
  155. package/lib/adapters/translationAdapter/translationAdapter.js +55 -0
  156. package/lib/adapters/userAdapter/userAdapter.d.ts +18 -6
  157. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -0
  158. package/lib/adapters/userAdapter/userAdapter.js +302 -2
  159. package/lib/adapters/videoAdapter/videoAdapter.d.ts +8 -0
  160. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -0
  161. package/lib/adapters/videoAdapter/videoAdapter.js +194 -0
  162. package/lib/config/index.d.ts +19 -6
  163. package/lib/config/index.d.ts.map +1 -0
  164. package/lib/config/index.js +97 -2
  165. package/lib/constants/Collections.d.ts +44 -0
  166. package/lib/constants/Collections.d.ts.map +1 -0
  167. package/lib/constants/Collections.js +40 -0
  168. package/lib/constants/MetropolisConstants.d.ts +1 -0
  169. package/lib/constants/MetropolisConstants.d.ts.map +1 -0
  170. package/lib/constants/MetropolisConstants.js +15 -2
  171. package/lib/graphql/message.d.ts +1 -0
  172. package/lib/graphql/message.d.ts.map +1 -0
  173. package/lib/graphql/message.js +6 -4
  174. package/lib/graphql/notification.d.ts +1 -0
  175. package/lib/graphql/notification.d.ts.map +1 -0
  176. package/lib/graphql/notification.js +6 -4
  177. package/lib/graphql/session.d.ts +1 -0
  178. package/lib/graphql/session.d.ts.map +1 -0
  179. package/lib/graphql/session.js +4 -3
  180. package/lib/index.d.ts +45 -22
  181. package/lib/index.d.ts.map +1 -0
  182. package/lib/index.js +248 -2
  183. package/lib/stores/appStore.d.ts +1 -0
  184. package/lib/stores/appStore.d.ts.map +1 -0
  185. package/lib/stores/appStore.js +23 -2
  186. package/lib/stores/contentStore.d.ts +36 -0
  187. package/lib/stores/contentStore.d.ts.map +1 -0
  188. package/lib/stores/contentStore.js +139 -0
  189. package/lib/stores/conversationStore.d.ts +38 -0
  190. package/lib/stores/conversationStore.d.ts.map +1 -0
  191. package/lib/stores/conversationStore.js +117 -0
  192. package/lib/stores/eventStore.d.ts +4 -1
  193. package/lib/stores/eventStore.d.ts.map +1 -0
  194. package/lib/stores/eventStore.js +47 -2
  195. package/lib/stores/groupStore.d.ts +37 -0
  196. package/lib/stores/groupStore.d.ts.map +1 -0
  197. package/lib/stores/groupStore.js +68 -0
  198. package/lib/stores/imageStore.d.ts +6 -1
  199. package/lib/stores/imageStore.d.ts.map +1 -0
  200. package/lib/stores/imageStore.js +53 -2
  201. package/lib/stores/index.d.ts +20 -11
  202. package/lib/stores/index.d.ts.map +1 -0
  203. package/lib/stores/index.js +24 -2
  204. package/lib/stores/locationStore.d.ts +2 -1
  205. package/lib/stores/locationStore.d.ts.map +1 -0
  206. package/lib/stores/locationStore.js +42 -2
  207. package/lib/stores/messageStore.d.ts +19 -4
  208. package/lib/stores/messageStore.d.ts.map +1 -0
  209. package/lib/stores/messageStore.js +137 -2
  210. package/lib/stores/notificationStore.d.ts +33 -0
  211. package/lib/stores/notificationStore.d.ts.map +1 -0
  212. package/lib/stores/notificationStore.js +55 -0
  213. package/lib/stores/permissionStore.d.ts +37 -0
  214. package/lib/stores/permissionStore.d.ts.map +1 -0
  215. package/lib/stores/permissionStore.js +117 -0
  216. package/lib/stores/personaStore.d.ts +26 -0
  217. package/lib/stores/personaStore.d.ts.map +1 -0
  218. package/lib/stores/personaStore.js +118 -0
  219. package/lib/stores/postStore.d.ts +2 -1
  220. package/lib/stores/postStore.d.ts.map +1 -0
  221. package/lib/stores/postStore.js +53 -2
  222. package/lib/stores/reactionStore.d.ts +1 -0
  223. package/lib/stores/reactionStore.d.ts.map +1 -0
  224. package/lib/stores/reactionStore.js +28 -2
  225. package/lib/stores/subscriptionStore.d.ts +41 -0
  226. package/lib/stores/subscriptionStore.d.ts.map +1 -0
  227. package/lib/stores/subscriptionStore.js +85 -0
  228. package/lib/stores/tagStore.d.ts +8 -5
  229. package/lib/stores/tagStore.d.ts.map +1 -0
  230. package/lib/stores/tagStore.js +87 -2
  231. package/lib/stores/translationStore.d.ts +42 -0
  232. package/lib/stores/translationStore.d.ts.map +1 -0
  233. package/lib/stores/translationStore.js +122 -0
  234. package/lib/stores/userStore.d.ts +5 -4
  235. package/lib/stores/userStore.d.ts.map +1 -0
  236. package/lib/stores/userStore.js +319 -2
  237. package/lib/stores/videoStore.d.ts +39 -0
  238. package/lib/stores/videoStore.d.ts.map +1 -0
  239. package/lib/stores/videoStore.js +132 -0
  240. package/lib/stores/websocketStore.d.ts +1 -0
  241. package/lib/stores/websocketStore.d.ts.map +1 -0
  242. package/lib/stores/websocketStore.js +51 -2
  243. package/lib/types/apps.types.d.ts +17 -0
  244. package/lib/types/apps.types.d.ts.map +1 -0
  245. package/lib/types/apps.types.js +6 -0
  246. package/lib/types/common.types.d.ts +31 -0
  247. package/lib/types/common.types.d.ts.map +1 -0
  248. package/lib/types/common.types.js +6 -0
  249. package/lib/types/conversations.types.d.ts +17 -0
  250. package/lib/types/conversations.types.d.ts.map +1 -0
  251. package/lib/types/conversations.types.js +6 -0
  252. package/lib/types/edges.types.d.ts +38 -0
  253. package/lib/types/edges.types.d.ts.map +1 -0
  254. package/lib/types/edges.types.js +6 -0
  255. package/lib/types/groups.types.d.ts +19 -0
  256. package/lib/types/groups.types.d.ts.map +1 -0
  257. package/lib/types/groups.types.js +6 -0
  258. package/lib/types/index.d.ts +12 -0
  259. package/lib/types/index.d.ts.map +1 -0
  260. package/lib/types/index.js +12 -0
  261. package/lib/types/subscriptions.types.d.ts +32 -0
  262. package/lib/types/subscriptions.types.d.ts.map +1 -0
  263. package/lib/types/subscriptions.types.js +6 -0
  264. package/lib/types/videos.types.d.ts +61 -0
  265. package/lib/types/videos.types.d.ts.map +1 -0
  266. package/lib/types/videos.types.js +6 -0
  267. package/lib/utils/MetropolisProvider.d.ts +39 -15
  268. package/lib/utils/MetropolisProvider.d.ts.map +1 -0
  269. package/lib/utils/MetropolisProvider.js +31 -2
  270. package/lib/utils/actionFactory.d.ts +21 -19
  271. package/lib/utils/actionFactory.d.ts.map +1 -0
  272. package/lib/utils/actionFactory.js +95 -2
  273. package/lib/utils/api.d.ts +5 -4
  274. package/lib/utils/api.d.ts.map +1 -0
  275. package/lib/utils/api.js +252 -6
  276. package/lib/utils/app.d.ts +1 -0
  277. package/lib/utils/app.d.ts.map +1 -0
  278. package/lib/utils/app.js +15 -2
  279. package/lib/utils/baseActionFactory.d.ts +5 -23
  280. package/lib/utils/baseActionFactory.d.ts.map +1 -0
  281. package/lib/utils/baseActionFactory.js +72 -2
  282. package/lib/utils/configUtils.d.ts +11 -0
  283. package/lib/utils/configUtils.d.ts.map +1 -0
  284. package/lib/utils/configUtils.js +20 -0
  285. package/lib/utils/dateUtils.d.ts +1 -0
  286. package/lib/utils/dateUtils.d.ts.map +1 -0
  287. package/lib/utils/dateUtils.js +11 -2
  288. package/lib/utils/file.d.ts +3 -1
  289. package/lib/utils/file.d.ts.map +1 -0
  290. package/lib/utils/file.js +156 -2
  291. package/lib/utils/i18n.d.ts +7 -0
  292. package/lib/utils/i18n.d.ts.map +1 -0
  293. package/lib/utils/i18n.js +96 -0
  294. package/lib/utils/index.d.ts +20 -0
  295. package/lib/utils/index.d.ts.map +1 -0
  296. package/lib/utils/index.js +26 -0
  297. package/lib/utils/location.d.ts +4 -3
  298. package/lib/utils/location.d.ts.map +1 -0
  299. package/lib/utils/location.js +82 -2
  300. package/lib/utils/permissionUtils.d.ts +22 -0
  301. package/lib/utils/permissionUtils.d.ts.map +1 -0
  302. package/lib/utils/permissionUtils.js +72 -0
  303. package/lib/utils/requestCache.d.ts +8 -0
  304. package/lib/utils/requestCache.d.ts.map +1 -0
  305. package/lib/utils/requestCache.js +53 -0
  306. package/lib/utils/session.d.ts +14 -0
  307. package/lib/utils/session.d.ts.map +1 -0
  308. package/lib/utils/session.js +107 -0
  309. package/lib/utils/useConversationTyping.d.ts +26 -0
  310. package/lib/utils/useConversationTyping.d.ts.map +1 -0
  311. package/lib/utils/useConversationTyping.js +117 -0
  312. package/lib/utils/useMetropolis.d.ts +67 -12
  313. package/lib/utils/useMetropolis.d.ts.map +1 -0
  314. package/lib/utils/useMetropolis.js +311 -2
  315. package/lib/utils/useTranslations.d.ts +16 -0
  316. package/lib/utils/useTranslations.d.ts.map +1 -0
  317. package/lib/utils/useTranslations.js +105 -0
  318. package/lib/utils/validatorFactory.d.ts +3 -2
  319. package/lib/utils/validatorFactory.d.ts.map +1 -0
  320. package/lib/utils/validatorFactory.js +95 -2
  321. package/package.json +58 -17
  322. package/temp_signin.ts +73 -0
  323. package/lib/actions/profileActions/profileActions.d.ts +0 -50
  324. package/lib/actions/profileActions/profileActions.js +0 -2
  325. package/lib/adapters/profileAdapter/profileAdapter.d.ts +0 -32
  326. package/lib/adapters/profileAdapter/profileAdapter.js +0 -2
  327. package/lib/stores/profileStore.d.ts +0 -24
  328. package/lib/stores/profileStore.js +0 -2
  329. /package/{FACTORY_PATTERN_GUIDE.md → factoryPatternGuide.md} +0 -0
@@ -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":"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"}