@nlabs/metropolisjs 0.3.4 → 0.3.5

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 (117) hide show
  1. package/.github/copilot-instructions.md +55 -167
  2. package/AGENTS.md +52 -10
  3. package/README.md +52 -2
  4. package/docs/ACTIONS.md +84 -22
  5. package/docs/assets/metropolisjs-logo.png +0 -0
  6. package/examples/factory-pattern-usage.ts +15 -10
  7. package/lex.config.mjs +5 -8
  8. package/lib/actions/appActions/appActions.d.ts.map +1 -1
  9. package/lib/actions/appActions/appActions.js +77 -6
  10. package/lib/actions/crmActions/crmActions.d.ts +87 -0
  11. package/lib/actions/crmActions/crmActions.d.ts.map +1 -0
  12. package/lib/actions/crmActions/crmActions.js +338 -0
  13. package/lib/actions/index.d.ts +2 -0
  14. package/lib/actions/index.d.ts.map +1 -1
  15. package/lib/actions/index.js +3 -1
  16. package/lib/actions/restActions/restActions.d.ts +19 -0
  17. package/lib/actions/restActions/restActions.d.ts.map +1 -0
  18. package/lib/actions/restActions/restActions.js +40 -0
  19. package/lib/actions/userActions/userActions.d.ts +12 -0
  20. package/lib/actions/userActions/userActions.d.ts.map +1 -1
  21. package/lib/actions/userActions/userActions.js +20 -4
  22. package/lib/adapters/appAdapter/appAdapter.d.ts +2 -2
  23. package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -1
  24. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +2 -2
  25. package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -1
  26. package/lib/adapters/contentAdapter/contentAdapter.d.ts +2 -2
  27. package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -1
  28. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +2 -2
  29. package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -1
  30. package/lib/adapters/eventAdapter/eventAdapter.d.ts +2 -2
  31. package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -1
  32. package/lib/adapters/fileAdapter/fileAdapter.d.ts +2 -2
  33. package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -1
  34. package/lib/adapters/groupAdapter/groupAdapter.d.ts +2 -2
  35. package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -1
  36. package/lib/adapters/imageAdapter/imageAdapter.d.ts +2 -2
  37. package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -1
  38. package/lib/adapters/locationAdapter/locationAdapter.d.ts +2 -2
  39. package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -1
  40. package/lib/adapters/messageAdapter/messageAdapter.d.ts +2 -2
  41. package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -1
  42. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +2 -2
  43. package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -1
  44. package/lib/adapters/personaAdapter/personaAdapter.d.ts +2 -2
  45. package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -1
  46. package/lib/adapters/postAdapter/postAdapter.d.ts +2 -2
  47. package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -1
  48. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +2 -2
  49. package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -1
  50. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +2 -2
  51. package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -1
  52. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +2 -2
  53. package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -1
  54. package/lib/adapters/tagAdapter/tagAdapter.d.ts +2 -2
  55. package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -1
  56. package/lib/adapters/translationAdapter/translationAdapter.d.ts +2 -2
  57. package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -1
  58. package/lib/adapters/userAdapter/userAdapter.d.ts +2 -2
  59. package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -1
  60. package/lib/adapters/videoAdapter/videoAdapter.d.ts +2 -2
  61. package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -1
  62. package/lib/config/index.d.ts +1 -0
  63. package/lib/config/index.d.ts.map +1 -1
  64. package/lib/config/index.js +1 -1
  65. package/lib/constants/Collections.d.ts +16 -0
  66. package/lib/constants/Collections.d.ts.map +1 -1
  67. package/lib/constants/Collections.js +17 -1
  68. package/lib/index.d.ts +4 -2
  69. package/lib/index.d.ts.map +1 -1
  70. package/lib/index.js +5 -3
  71. package/lib/stores/appStore.d.ts +10 -0
  72. package/lib/stores/appStore.d.ts.map +1 -1
  73. package/lib/stores/appStore.js +12 -2
  74. package/lib/tests/actionTestScenarios.d.ts +20 -0
  75. package/lib/tests/actionTestScenarios.d.ts.map +1 -0
  76. package/lib/tests/actionTestScenarios.js +851 -0
  77. package/lib/tests/testGraphQLServer.d.ts.map +1 -0
  78. package/lib/tests/testGraphQLServer.js +197 -0
  79. package/lib/tests/testGraphQLServerSimple.d.ts.map +1 -0
  80. package/lib/tests/testGraphQLServerSimple.js +52 -0
  81. package/lib/types/crm.types.d.ts +100 -0
  82. package/lib/types/crm.types.d.ts.map +1 -0
  83. package/lib/types/crm.types.js +6 -0
  84. package/lib/types/index.d.ts +1 -0
  85. package/lib/types/index.d.ts.map +1 -1
  86. package/lib/types/index.js +2 -1
  87. package/lib/utils/actionFactory.d.ts +6 -4
  88. package/lib/utils/actionFactory.d.ts.map +1 -1
  89. package/lib/utils/actionFactory.js +9 -1
  90. package/lib/utils/api.d.ts +14 -2
  91. package/lib/utils/api.d.ts.map +1 -1
  92. package/lib/utils/api.js +114 -32
  93. package/lib/utils/baseActionFactory.d.ts +2 -2
  94. package/lib/utils/dateUtils.d.ts +1 -1
  95. package/lib/utils/dateUtils.d.ts.map +1 -1
  96. package/lib/utils/index.d.ts +2 -2
  97. package/lib/utils/index.d.ts.map +1 -1
  98. package/lib/utils/index.js +3 -3
  99. package/lib/utils/location.d.ts +1 -1
  100. package/lib/utils/location.d.ts.map +1 -1
  101. package/lib/utils/requestCache.d.ts +1 -1
  102. package/lib/utils/requestCache.d.ts.map +1 -1
  103. package/lib/utils/useMetropolis.d.ts +2 -0
  104. package/lib/utils/useMetropolis.d.ts.map +1 -1
  105. package/lib/utils/useMetropolis.js +19 -1
  106. package/lib/utils/validatorFactory.d.ts +1 -1
  107. package/lib/utils/validatorFactory.d.ts.map +1 -1
  108. package/package.json +9 -9
  109. package/tsconfig.lint.json +2 -2
  110. package/tsconfig.test.json +3 -2
  111. package/jest.config.mjs +0 -28
  112. package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +0 -1
  113. package/lib/__tests__/e2e/helpers/testGraphQLServer.js +0 -197
  114. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +0 -1
  115. package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +0 -52
  116. /package/lib/{__tests__/e2e/helpers → tests}/testGraphQLServer.d.ts +0 -0
  117. /package/lib/{__tests__/e2e/helpers → tests}/testGraphQLServerSimple.d.ts +0 -0
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { appMutation, appQuery } from '../../utils/api.js';
5
+ const DATA_TYPE = 'crm';
6
+ const documentKey = (id)=>String(id || '').split('/').pop() || '';
7
+ export const CRM_CONSTANTS = {
8
+ ADD_SUPPORT_TICKET_MESSAGE_ERROR: 'CRM_ADD_SUPPORT_TICKET_MESSAGE_ERROR',
9
+ ADD_SUPPORT_TICKET_MESSAGE_SUCCESS: 'CRM_ADD_SUPPORT_TICKET_MESSAGE_SUCCESS',
10
+ ADD_USER_TO_MAILING_LIST_ERROR: 'CRM_ADD_USER_TO_MAILING_LIST_ERROR',
11
+ ADD_USER_TO_MAILING_LIST_SUCCESS: 'CRM_ADD_USER_TO_MAILING_LIST_SUCCESS',
12
+ CREATE_MAILING_LIST_ERROR: 'CRM_CREATE_MAILING_LIST_ERROR',
13
+ CREATE_MAILING_LIST_SUCCESS: 'CRM_CREATE_MAILING_LIST_SUCCESS',
14
+ CREATE_SUPPORT_TICKET_ERROR: 'CRM_CREATE_SUPPORT_TICKET_ERROR',
15
+ CREATE_SUPPORT_TICKET_SUCCESS: 'CRM_CREATE_SUPPORT_TICKET_SUCCESS',
16
+ CUSTOMER_NOTIFICATIONS_BY_USER_ERROR: 'CRM_CUSTOMER_NOTIFICATIONS_BY_USER_ERROR',
17
+ CUSTOMER_NOTIFICATIONS_BY_USER_SUCCESS: 'CRM_CUSTOMER_NOTIFICATIONS_BY_USER_SUCCESS',
18
+ CUSTOMER_ORDERS_BY_USER_ERROR: 'CRM_CUSTOMER_ORDERS_BY_USER_ERROR',
19
+ CUSTOMER_ORDERS_BY_USER_SUCCESS: 'CRM_CUSTOMER_ORDERS_BY_USER_SUCCESS',
20
+ ELIGIBLE_MAILING_USERS_ERROR: 'CRM_ELIGIBLE_MAILING_USERS_ERROR',
21
+ ELIGIBLE_MAILING_USERS_SUCCESS: 'CRM_ELIGIBLE_MAILING_USERS_SUCCESS',
22
+ INGEST_SHOPIFY_CUSTOMER_ORDER_ERROR: 'CRM_INGEST_SHOPIFY_CUSTOMER_ORDER_ERROR',
23
+ INGEST_SHOPIFY_CUSTOMER_ORDER_SUCCESS: 'CRM_INGEST_SHOPIFY_CUSTOMER_ORDER_SUCCESS',
24
+ MAILING_LIST_USERS_ERROR: 'CRM_MAILING_LIST_USERS_ERROR',
25
+ MAILING_LIST_USERS_SUCCESS: 'CRM_MAILING_LIST_USERS_SUCCESS',
26
+ MAILING_LISTS_ERROR: 'CRM_MAILING_LISTS_ERROR',
27
+ MAILING_LISTS_SUCCESS: 'CRM_MAILING_LISTS_SUCCESS',
28
+ REMOVE_USER_FROM_MAILING_LIST_ERROR: 'CRM_REMOVE_USER_FROM_MAILING_LIST_ERROR',
29
+ REMOVE_USER_FROM_MAILING_LIST_SUCCESS: 'CRM_REMOVE_USER_FROM_MAILING_LIST_SUCCESS',
30
+ SUPPORT_TICKET_EVENTS_ERROR: 'CRM_SUPPORT_TICKET_EVENTS_ERROR',
31
+ SUPPORT_TICKET_EVENTS_SUCCESS: 'CRM_SUPPORT_TICKET_EVENTS_SUCCESS',
32
+ SUPPORT_TICKET_MESSAGES_ERROR: 'CRM_SUPPORT_TICKET_MESSAGES_ERROR',
33
+ SUPPORT_TICKET_MESSAGES_SUCCESS: 'CRM_SUPPORT_TICKET_MESSAGES_SUCCESS',
34
+ SUPPORT_TICKETS_ERROR: 'CRM_SUPPORT_TICKETS_ERROR',
35
+ SUPPORT_TICKETS_SUCCESS: 'CRM_SUPPORT_TICKETS_SUCCESS',
36
+ UPDATE_SUPPORT_TICKET_STATUS_ERROR: 'CRM_UPDATE_SUPPORT_TICKET_STATUS_ERROR',
37
+ UPDATE_SUPPORT_TICKET_STATUS_SUCCESS: 'CRM_UPDATE_SUPPORT_TICKET_STATUS_SUCCESS',
38
+ USERS_BY_PURCHASED_PRODUCT_ERROR: 'CRM_USERS_BY_PURCHASED_PRODUCT_ERROR',
39
+ USERS_BY_PURCHASED_PRODUCT_SUCCESS: 'CRM_USERS_BY_PURCHASED_PRODUCT_SUCCESS'
40
+ };
41
+ const USER_FIELDS = [
42
+ 'userId',
43
+ 'email',
44
+ 'firstName',
45
+ 'lastName',
46
+ 'marketingOptIn',
47
+ 'shopifyCustomerId'
48
+ ];
49
+ const MAILING_LIST_FIELDS = [
50
+ 'mailingListId',
51
+ 'name',
52
+ 'description',
53
+ 'status',
54
+ 'createdByUserId',
55
+ 'added',
56
+ 'modified'
57
+ ];
58
+ const CUSTOMER_ORDER_FIELDS = [
59
+ 'customerOrderId',
60
+ 'userId',
61
+ 'shopifyCustomerId',
62
+ 'shopifyOrderId',
63
+ 'productIds',
64
+ 'totalPrice',
65
+ 'currency',
66
+ 'purchasedAt',
67
+ 'added',
68
+ 'modified'
69
+ ];
70
+ const SUPPORT_TICKET_FIELDS = [
71
+ 'supportTicketId',
72
+ 'userId',
73
+ 'type',
74
+ 'status',
75
+ 'priority',
76
+ 'subject',
77
+ 'description',
78
+ 'productId',
79
+ 'shopifyOrderId',
80
+ 'assignedToUserId',
81
+ 'resolutionSummary',
82
+ 'resolvedAt',
83
+ 'closedAt',
84
+ 'added',
85
+ 'modified'
86
+ ];
87
+ const SUPPORT_TICKET_MESSAGE_FIELDS = [
88
+ 'supportTicketMessageId',
89
+ 'supportTicketId',
90
+ 'authorUserId',
91
+ 'visibility',
92
+ 'body',
93
+ 'added',
94
+ 'modified'
95
+ ];
96
+ const SUPPORT_TICKET_EVENT_FIELDS = [
97
+ 'supportTicketEventId',
98
+ 'supportTicketId',
99
+ 'actorUserId',
100
+ 'eventType',
101
+ 'fromValue',
102
+ 'toValue',
103
+ 'added',
104
+ 'modified'
105
+ ];
106
+ const CUSTOMER_NOTIFICATION_FIELDS = [
107
+ 'customerNotificationId',
108
+ 'userId',
109
+ 'supportTicketId',
110
+ 'type',
111
+ 'status',
112
+ 'subject',
113
+ 'body',
114
+ 'sentAt',
115
+ 'providerMessageId',
116
+ 'errorMessage',
117
+ 'added',
118
+ 'modified'
119
+ ];
120
+ export const createCrmActions = (flux, _options)=>{
121
+ const withSuccess = (requestOptions, type, payloadKey, selector)=>({
122
+ ...requestOptions,
123
+ onSuccess: (data)=>flux.dispatch({
124
+ [payloadKey]: selector(data),
125
+ type
126
+ })
127
+ });
128
+ const crmQuery = async (name, queryVariables, returnProperties, requestOptions, successType, errorType, payloadKey, selector)=>{
129
+ try {
130
+ return await appQuery(flux, name, DATA_TYPE, queryVariables, returnProperties, withSuccess(requestOptions, successType, payloadKey, selector));
131
+ } catch (error) {
132
+ flux.dispatch({
133
+ error,
134
+ type: errorType
135
+ });
136
+ throw error;
137
+ }
138
+ };
139
+ const crmMutation = async (name, queryVariables, returnProperties, requestOptions, successType, errorType, payloadKey, selector)=>{
140
+ try {
141
+ return await appMutation(flux, name, DATA_TYPE, queryVariables, returnProperties, withSuccess(requestOptions, successType, payloadKey, selector));
142
+ } catch (error) {
143
+ flux.dispatch({
144
+ error,
145
+ type: errorType
146
+ });
147
+ throw error;
148
+ }
149
+ };
150
+ const mailingLists = async (mailingListProps = [], requestOptions = {})=>crmQuery('mailingLists', {}, [
151
+ ...MAILING_LIST_FIELDS,
152
+ ...mailingListProps
153
+ ], requestOptions, CRM_CONSTANTS.MAILING_LISTS_SUCCESS, CRM_CONSTANTS.MAILING_LISTS_ERROR, 'list', (data)=>data?.crm?.mailingLists || []);
154
+ const createMailingList = async (mailingList, mailingListProps = [], requestOptions = {})=>crmMutation('createMailingList', {
155
+ mailingList: {
156
+ type: 'MailingListInput!',
157
+ value: mailingList
158
+ }
159
+ }, [
160
+ ...MAILING_LIST_FIELDS,
161
+ ...mailingListProps
162
+ ], requestOptions, CRM_CONSTANTS.CREATE_MAILING_LIST_SUCCESS, CRM_CONSTANTS.CREATE_MAILING_LIST_ERROR, 'mailingList', (data)=>data?.crm?.createMailingList || {});
163
+ const addUserToMailingList = async (userId, mailingListId, source = 'manual', mailingListProps = [], requestOptions = {})=>crmMutation('addUserToMailingList', {
164
+ mailingListId: {
165
+ type: 'ID!',
166
+ value: documentKey(mailingListId)
167
+ },
168
+ source: {
169
+ type: 'String',
170
+ value: source
171
+ },
172
+ userId: {
173
+ type: 'ID!',
174
+ value: documentKey(userId)
175
+ }
176
+ }, [
177
+ ...MAILING_LIST_FIELDS,
178
+ ...mailingListProps
179
+ ], requestOptions, CRM_CONSTANTS.ADD_USER_TO_MAILING_LIST_SUCCESS, CRM_CONSTANTS.ADD_USER_TO_MAILING_LIST_ERROR, 'mailingList', (data)=>data?.crm?.addUserToMailingList || {});
180
+ const removeUserFromMailingList = async (userId, mailingListId, requestOptions = {})=>crmMutation('removeUserFromMailingList', {
181
+ mailingListId: {
182
+ type: 'ID!',
183
+ value: documentKey(mailingListId)
184
+ },
185
+ userId: {
186
+ type: 'ID!',
187
+ value: documentKey(userId)
188
+ }
189
+ }, [], requestOptions, CRM_CONSTANTS.REMOVE_USER_FROM_MAILING_LIST_SUCCESS, CRM_CONSTANTS.REMOVE_USER_FROM_MAILING_LIST_ERROR, 'removed', (data)=>data?.crm?.removeUserFromMailingList || false);
190
+ const mailingListUsers = async (mailingListId, userProps = [], requestOptions = {})=>crmQuery('mailingListUsers', {
191
+ mailingListId: {
192
+ type: 'ID!',
193
+ value: documentKey(mailingListId)
194
+ }
195
+ }, [
196
+ ...USER_FIELDS,
197
+ ...userProps
198
+ ], requestOptions, CRM_CONSTANTS.MAILING_LIST_USERS_SUCCESS, CRM_CONSTANTS.MAILING_LIST_USERS_ERROR, 'list', (data)=>data?.crm?.mailingListUsers || []);
199
+ const eligibleMailingUsers = async (options = {}, userProps = [], requestOptions = {})=>crmQuery('eligibleMailingUsers', {
200
+ excludeOpenSupportTickets: {
201
+ type: 'Boolean',
202
+ value: options.excludeOpenSupportTickets
203
+ },
204
+ mailingListId: {
205
+ type: 'ID',
206
+ value: options.mailingListId ? documentKey(options.mailingListId) : undefined
207
+ },
208
+ productId: {
209
+ type: 'ID',
210
+ value: options.productId
211
+ }
212
+ }, [
213
+ ...USER_FIELDS,
214
+ ...userProps
215
+ ], requestOptions, CRM_CONSTANTS.ELIGIBLE_MAILING_USERS_SUCCESS, CRM_CONSTANTS.ELIGIBLE_MAILING_USERS_ERROR, 'list', (data)=>data?.crm?.eligibleMailingUsers || []);
216
+ const usersByPurchasedProduct = async (productId, userProps = [], requestOptions = {})=>crmQuery('usersByPurchasedProduct', {
217
+ productId: {
218
+ type: 'ID!',
219
+ value: productId
220
+ }
221
+ }, [
222
+ ...USER_FIELDS,
223
+ ...userProps
224
+ ], requestOptions, CRM_CONSTANTS.USERS_BY_PURCHASED_PRODUCT_SUCCESS, CRM_CONSTANTS.USERS_BY_PURCHASED_PRODUCT_ERROR, 'list', (data)=>data?.crm?.usersByPurchasedProduct || []);
225
+ const ingestShopifyCustomerOrder = async (order, orderProps = [], requestOptions = {})=>crmMutation('ingestShopifyCustomerOrder', {
226
+ order: {
227
+ type: 'ShopifyCustomerOrderInput!',
228
+ value: order
229
+ }
230
+ }, [
231
+ ...CUSTOMER_ORDER_FIELDS,
232
+ ...orderProps
233
+ ], requestOptions, CRM_CONSTANTS.INGEST_SHOPIFY_CUSTOMER_ORDER_SUCCESS, CRM_CONSTANTS.INGEST_SHOPIFY_CUSTOMER_ORDER_ERROR, 'customerOrder', (data)=>data?.crm?.ingestShopifyCustomerOrder || {});
234
+ const customerOrdersByUser = async (userId, orderProps = [], requestOptions = {})=>crmQuery('customerOrdersByUser', {
235
+ userId: {
236
+ type: 'ID!',
237
+ value: documentKey(userId)
238
+ }
239
+ }, [
240
+ ...CUSTOMER_ORDER_FIELDS,
241
+ ...orderProps
242
+ ], requestOptions, CRM_CONSTANTS.CUSTOMER_ORDERS_BY_USER_SUCCESS, CRM_CONSTANTS.CUSTOMER_ORDERS_BY_USER_ERROR, 'list', (data)=>data?.crm?.customerOrdersByUser || []);
243
+ const createSupportTicket = async (ticket, ticketProps = [], requestOptions = {})=>crmMutation('createSupportTicket', {
244
+ ticket: {
245
+ type: 'SupportTicketInput!',
246
+ value: ticket
247
+ }
248
+ }, [
249
+ ...SUPPORT_TICKET_FIELDS,
250
+ ...ticketProps
251
+ ], requestOptions, CRM_CONSTANTS.CREATE_SUPPORT_TICKET_SUCCESS, CRM_CONSTANTS.CREATE_SUPPORT_TICKET_ERROR, 'supportTicket', (data)=>data?.crm?.createSupportTicket || {});
252
+ const supportTickets = async (filters = {}, ticketProps = [], requestOptions = {})=>crmQuery('supportTickets', {
253
+ status: {
254
+ type: 'String',
255
+ value: filters.status
256
+ },
257
+ userId: {
258
+ type: 'ID',
259
+ value: filters.userId ? documentKey(filters.userId) : undefined
260
+ }
261
+ }, [
262
+ ...SUPPORT_TICKET_FIELDS,
263
+ ...ticketProps
264
+ ], requestOptions, CRM_CONSTANTS.SUPPORT_TICKETS_SUCCESS, CRM_CONSTANTS.SUPPORT_TICKETS_ERROR, 'list', (data)=>data?.crm?.supportTickets || []);
265
+ const updateSupportTicketStatus = async (supportTicketId, status, resolutionSummary = '', ticketProps = [], requestOptions = {})=>crmMutation('updateSupportTicketStatus', {
266
+ resolutionSummary: {
267
+ type: 'String',
268
+ value: resolutionSummary
269
+ },
270
+ status: {
271
+ type: 'String!',
272
+ value: status
273
+ },
274
+ supportTicketId: {
275
+ type: 'ID!',
276
+ value: documentKey(supportTicketId)
277
+ }
278
+ }, [
279
+ ...SUPPORT_TICKET_FIELDS,
280
+ ...ticketProps
281
+ ], requestOptions, CRM_CONSTANTS.UPDATE_SUPPORT_TICKET_STATUS_SUCCESS, CRM_CONSTANTS.UPDATE_SUPPORT_TICKET_STATUS_ERROR, 'supportTicket', (data)=>data?.crm?.updateSupportTicketStatus || {});
282
+ const addSupportTicketMessage = async (message, messageProps = [], requestOptions = {})=>crmMutation('addSupportTicketMessage', {
283
+ message: {
284
+ type: 'SupportTicketMessageInput!',
285
+ value: message
286
+ }
287
+ }, [
288
+ ...SUPPORT_TICKET_MESSAGE_FIELDS,
289
+ ...messageProps
290
+ ], requestOptions, CRM_CONSTANTS.ADD_SUPPORT_TICKET_MESSAGE_SUCCESS, CRM_CONSTANTS.ADD_SUPPORT_TICKET_MESSAGE_ERROR, 'supportTicketMessage', (data)=>data?.crm?.addSupportTicketMessage || {});
291
+ const supportTicketMessages = async (supportTicketId, messageProps = [], requestOptions = {})=>crmQuery('supportTicketMessages', {
292
+ supportTicketId: {
293
+ type: 'ID!',
294
+ value: documentKey(supportTicketId)
295
+ }
296
+ }, [
297
+ ...SUPPORT_TICKET_MESSAGE_FIELDS,
298
+ ...messageProps
299
+ ], requestOptions, CRM_CONSTANTS.SUPPORT_TICKET_MESSAGES_SUCCESS, CRM_CONSTANTS.SUPPORT_TICKET_MESSAGES_ERROR, 'list', (data)=>data?.crm?.supportTicketMessages || []);
300
+ const supportTicketEvents = async (supportTicketId, eventProps = [], requestOptions = {})=>crmQuery('supportTicketEvents', {
301
+ supportTicketId: {
302
+ type: 'ID!',
303
+ value: documentKey(supportTicketId)
304
+ }
305
+ }, [
306
+ ...SUPPORT_TICKET_EVENT_FIELDS,
307
+ ...eventProps
308
+ ], requestOptions, CRM_CONSTANTS.SUPPORT_TICKET_EVENTS_SUCCESS, CRM_CONSTANTS.SUPPORT_TICKET_EVENTS_ERROR, 'list', (data)=>data?.crm?.supportTicketEvents || []);
309
+ const customerNotificationsByUser = async (userId, notificationProps = [], requestOptions = {})=>crmQuery('customerNotificationsByUser', {
310
+ userId: {
311
+ type: 'ID!',
312
+ value: documentKey(userId)
313
+ }
314
+ }, [
315
+ ...CUSTOMER_NOTIFICATION_FIELDS,
316
+ ...notificationProps
317
+ ], requestOptions, CRM_CONSTANTS.CUSTOMER_NOTIFICATIONS_BY_USER_SUCCESS, CRM_CONSTANTS.CUSTOMER_NOTIFICATIONS_BY_USER_ERROR, 'list', (data)=>data?.crm?.customerNotificationsByUser || []);
318
+ return {
319
+ addSupportTicketMessage,
320
+ addUserToMailingList,
321
+ createMailingList,
322
+ createSupportTicket,
323
+ customerNotificationsByUser,
324
+ customerOrdersByUser,
325
+ eligibleMailingUsers,
326
+ ingestShopifyCustomerOrder,
327
+ mailingLists,
328
+ mailingListUsers,
329
+ removeUserFromMailingList,
330
+ supportTicketEvents,
331
+ supportTicketMessages,
332
+ supportTickets,
333
+ updateSupportTicketStatus,
334
+ usersByPurchasedProduct
335
+ };
336
+ };
337
+
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9jcm1BY3Rpb25zL2NybUFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuXG5pbXBvcnQgdHlwZSB7Rmx1eEZyYW1ld29ya30gZnJvbSAnQG5sYWJzL2Fya2hhbWpzJztcbmltcG9ydCB0eXBlIHtVc2VyfSBmcm9tICcuLi8uLi9hZGFwdGVycy91c2VyQWRhcHRlci91c2VyQWRhcHRlci5qcyc7XG5pbXBvcnQgdHlwZSB7QXBpT3B0aW9ucywgQXBpUXVlcnlWYXJpYWJsZXN9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEN1c3RvbWVyTm90aWZpY2F0aW9uLFxuICBDdXN0b21lck9yZGVyLFxuICBNYWlsaW5nTGlzdCxcbiAgU2hvcGlmeUN1c3RvbWVyT3JkZXJJbnB1dCxcbiAgU3VwcG9ydFRpY2tldCxcbiAgU3VwcG9ydFRpY2tldEV2ZW50LFxuICBTdXBwb3J0VGlja2V0TWVzc2FnZSxcbiAgU3VwcG9ydFRpY2tldFN0YXR1c1xufSBmcm9tICcuLi8uLi90eXBlcy9jcm0udHlwZXMuanMnO1xuXG5jb25zdCBEQVRBX1RZUEUgPSAnY3JtJztcbmNvbnN0IGRvY3VtZW50S2V5ID0gKGlkOiBzdHJpbmcpOiBzdHJpbmcgPT4gU3RyaW5nKGlkIHx8ICcnKS5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuXG5leHBvcnQgY29uc3QgQ1JNX0NPTlNUQU5UUyA9IHtcbiAgQUREX1NVUFBPUlRfVElDS0VUX01FU1NBR0VfRVJST1I6ICdDUk1fQUREX1NVUFBPUlRfVElDS0VUX01FU1NBR0VfRVJST1InLFxuICBBRERfU1VQUE9SVF9USUNLRVRfTUVTU0FHRV9TVUNDRVNTOiAnQ1JNX0FERF9TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFX1NVQ0NFU1MnLFxuICBBRERfVVNFUl9UT19NQUlMSU5HX0xJU1RfRVJST1I6ICdDUk1fQUREX1VTRVJfVE9fTUFJTElOR19MSVNUX0VSUk9SJyxcbiAgQUREX1VTRVJfVE9fTUFJTElOR19MSVNUX1NVQ0NFU1M6ICdDUk1fQUREX1VTRVJfVE9fTUFJTElOR19MSVNUX1NVQ0NFU1MnLFxuICBDUkVBVEVfTUFJTElOR19MSVNUX0VSUk9SOiAnQ1JNX0NSRUFURV9NQUlMSU5HX0xJU1RfRVJST1InLFxuICBDUkVBVEVfTUFJTElOR19MSVNUX1NVQ0NFU1M6ICdDUk1fQ1JFQVRFX01BSUxJTkdfTElTVF9TVUNDRVNTJyxcbiAgQ1JFQVRFX1NVUFBPUlRfVElDS0VUX0VSUk9SOiAnQ1JNX0NSRUFURV9TVVBQT1JUX1RJQ0tFVF9FUlJPUicsXG4gIENSRUFURV9TVVBQT1JUX1RJQ0tFVF9TVUNDRVNTOiAnQ1JNX0NSRUFURV9TVVBQT1JUX1RJQ0tFVF9TVUNDRVNTJyxcbiAgQ1VTVE9NRVJfTk9USUZJQ0FUSU9OU19CWV9VU0VSX0VSUk9SOiAnQ1JNX0NVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9FUlJPUicsXG4gIENVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9TVUNDRVNTOiAnQ1JNX0NVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9TVUNDRVNTJyxcbiAgQ1VTVE9NRVJfT1JERVJTX0JZX1VTRVJfRVJST1I6ICdDUk1fQ1VTVE9NRVJfT1JERVJTX0JZX1VTRVJfRVJST1InLFxuICBDVVNUT01FUl9PUkRFUlNfQllfVVNFUl9TVUNDRVNTOiAnQ1JNX0NVU1RPTUVSX09SREVSU19CWV9VU0VSX1NVQ0NFU1MnLFxuICBFTElHSUJMRV9NQUlMSU5HX1VTRVJTX0VSUk9SOiAnQ1JNX0VMSUdJQkxFX01BSUxJTkdfVVNFUlNfRVJST1InLFxuICBFTElHSUJMRV9NQUlMSU5HX1VTRVJTX1NVQ0NFU1M6ICdDUk1fRUxJR0lCTEVfTUFJTElOR19VU0VSU19TVUNDRVNTJyxcbiAgSU5HRVNUX1NIT1BJRllfQ1VTVE9NRVJfT1JERVJfRVJST1I6ICdDUk1fSU5HRVNUX1NIT1BJRllfQ1VTVE9NRVJfT1JERVJfRVJST1InLFxuICBJTkdFU1RfU0hPUElGWV9DVVNUT01FUl9PUkRFUl9TVUNDRVNTOiAnQ1JNX0lOR0VTVF9TSE9QSUZZX0NVU1RPTUVSX09SREVSX1NVQ0NFU1MnLFxuICBNQUlMSU5HX0xJU1RfVVNFUlNfRVJST1I6ICdDUk1fTUFJTElOR19MSVNUX1VTRVJTX0VSUk9SJyxcbiAgTUFJTElOR19MSVNUX1VTRVJTX1NVQ0NFU1M6ICdDUk1fTUFJTElOR19MSVNUX1VTRVJTX1NVQ0NFU1MnLFxuICBNQUlMSU5HX0xJU1RTX0VSUk9SOiAnQ1JNX01BSUxJTkdfTElTVFNfRVJST1InLFxuICBNQUlMSU5HX0xJU1RTX1NVQ0NFU1M6ICdDUk1fTUFJTElOR19MSVNUU19TVUNDRVNTJyxcbiAgUkVNT1ZFX1VTRVJfRlJPTV9NQUlMSU5HX0xJU1RfRVJST1I6ICdDUk1fUkVNT1ZFX1VTRVJfRlJPTV9NQUlMSU5HX0xJU1RfRVJST1InLFxuICBSRU1PVkVfVVNFUl9GUk9NX01BSUxJTkdfTElTVF9TVUNDRVNTOiAnQ1JNX1JFTU9WRV9VU0VSX0ZST01fTUFJTElOR19MSVNUX1NVQ0NFU1MnLFxuICBTVVBQT1JUX1RJQ0tFVF9FVkVOVFNfRVJST1I6ICdDUk1fU1VQUE9SVF9USUNLRVRfRVZFTlRTX0VSUk9SJyxcbiAgU1VQUE9SVF9USUNLRVRfRVZFTlRTX1NVQ0NFU1M6ICdDUk1fU1VQUE9SVF9USUNLRVRfRVZFTlRTX1NVQ0NFU1MnLFxuICBTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFU19FUlJPUjogJ0NSTV9TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFU19FUlJPUicsXG4gIFNVUFBPUlRfVElDS0VUX01FU1NBR0VTX1NVQ0NFU1M6ICdDUk1fU1VQUE9SVF9USUNLRVRfTUVTU0FHRVNfU1VDQ0VTUycsXG4gIFNVUFBPUlRfVElDS0VUU19FUlJPUjogJ0NSTV9TVVBQT1JUX1RJQ0tFVFNfRVJST1InLFxuICBTVVBQT1JUX1RJQ0tFVFNfU1VDQ0VTUzogJ0NSTV9TVVBQT1JUX1RJQ0tFVFNfU1VDQ0VTUycsXG4gIFVQREFURV9TVVBQT1JUX1RJQ0tFVF9TVEFUVVNfRVJST1I6ICdDUk1fVVBEQVRFX1NVUFBPUlRfVElDS0VUX1NUQVRVU19FUlJPUicsXG4gIFVQREFURV9TVVBQT1JUX1RJQ0tFVF9TVEFUVVNfU1VDQ0VTUzogJ0NSTV9VUERBVEVfU1VQUE9SVF9USUNLRVRfU1RBVFVTX1NVQ0NFU1MnLFxuICBVU0VSU19CWV9QVVJDSEFTRURfUFJPRFVDVF9FUlJPUjogJ0NSTV9VU0VSU19CWV9QVVJDSEFTRURfUFJPRFVDVF9FUlJPUicsXG4gIFVTRVJTX0JZX1BVUkNIQVNFRF9QUk9EVUNUX1NVQ0NFU1M6ICdDUk1fVVNFUlNfQllfUFVSQ0hBU0VEX1BST0RVQ1RfU1VDQ0VTUydcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IFVTRVJfRklFTERTID0gWyd1c2VySWQnLCAnZW1haWwnLCAnZmlyc3ROYW1lJywgJ2xhc3ROYW1lJywgJ21hcmtldGluZ09wdEluJywgJ3Nob3BpZnlDdXN0b21lcklkJ107XG5jb25zdCBNQUlMSU5HX0xJU1RfRklFTERTID0gWydtYWlsaW5nTGlzdElkJywgJ25hbWUnLCAnZGVzY3JpcHRpb24nLCAnc3RhdHVzJywgJ2NyZWF0ZWRCeVVzZXJJZCcsICdhZGRlZCcsICdtb2RpZmllZCddO1xuY29uc3QgQ1VTVE9NRVJfT1JERVJfRklFTERTID0gWydjdXN0b21lck9yZGVySWQnLCAndXNlcklkJywgJ3Nob3BpZnlDdXN0b21lcklkJywgJ3Nob3BpZnlPcmRlcklkJywgJ3Byb2R1Y3RJZHMnLCAndG90YWxQcmljZScsICdjdXJyZW5jeScsICdwdXJjaGFzZWRBdCcsICdhZGRlZCcsICdtb2RpZmllZCddO1xuY29uc3QgU1VQUE9SVF9USUNLRVRfRklFTERTID0gW1xuICAnc3VwcG9ydFRpY2tldElkJyxcbiAgJ3VzZXJJZCcsXG4gICd0eXBlJyxcbiAgJ3N0YXR1cycsXG4gICdwcmlvcml0eScsXG4gICdzdWJqZWN0JyxcbiAgJ2Rlc2NyaXB0aW9uJyxcbiAgJ3Byb2R1Y3RJZCcsXG4gICdzaG9waWZ5T3JkZXJJZCcsXG4gICdhc3NpZ25lZFRvVXNlcklkJyxcbiAgJ3Jlc29sdXRpb25TdW1tYXJ5JyxcbiAgJ3Jlc29sdmVkQXQnLFxuICAnY2xvc2VkQXQnLFxuICAnYWRkZWQnLFxuICAnbW9kaWZpZWQnXG5dO1xuY29uc3QgU1VQUE9SVF9USUNLRVRfTUVTU0FHRV9GSUVMRFMgPSBbJ3N1cHBvcnRUaWNrZXRNZXNzYWdlSWQnLCAnc3VwcG9ydFRpY2tldElkJywgJ2F1dGhvclVzZXJJZCcsICd2aXNpYmlsaXR5JywgJ2JvZHknLCAnYWRkZWQnLCAnbW9kaWZpZWQnXTtcbmNvbnN0IFNVUFBPUlRfVElDS0VUX0VWRU5UX0ZJRUxEUyA9IFsnc3VwcG9ydFRpY2tldEV2ZW50SWQnLCAnc3VwcG9ydFRpY2tldElkJywgJ2FjdG9yVXNlcklkJywgJ2V2ZW50VHlwZScsICdmcm9tVmFsdWUnLCAndG9WYWx1ZScsICdhZGRlZCcsICdtb2RpZmllZCddO1xuY29uc3QgQ1VTVE9NRVJfTk9USUZJQ0FUSU9OX0ZJRUxEUyA9IFsnY3VzdG9tZXJOb3RpZmljYXRpb25JZCcsICd1c2VySWQnLCAnc3VwcG9ydFRpY2tldElkJywgJ3R5cGUnLCAnc3RhdHVzJywgJ3N1YmplY3QnLCAnYm9keScsICdzZW50QXQnLCAncHJvdmlkZXJNZXNzYWdlSWQnLCAnZXJyb3JNZXNzYWdlJywgJ2FkZGVkJywgJ21vZGlmaWVkJ107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JtQWN0aW9uc09wdGlvbnMge31cblxuZXhwb3J0IHR5cGUgQ3JtQXBpUmVzdWx0c1R5cGUgPSB7XG4gIHJlYWRvbmx5IGNybToge1xuICAgIHJlYWRvbmx5IGFkZFN1cHBvcnRUaWNrZXRNZXNzYWdlPzogU3VwcG9ydFRpY2tldE1lc3NhZ2U7XG4gICAgcmVhZG9ubHkgYWRkVXNlclRvTWFpbGluZ0xpc3Q/OiBNYWlsaW5nTGlzdDtcbiAgICByZWFkb25seSBjcmVhdGVNYWlsaW5nTGlzdD86IE1haWxpbmdMaXN0O1xuICAgIHJlYWRvbmx5IGNyZWF0ZVN1cHBvcnRUaWNrZXQ/OiBTdXBwb3J0VGlja2V0O1xuICAgIHJlYWRvbmx5IGN1c3RvbWVyTm90aWZpY2F0aW9uc0J5VXNlcj86IEN1c3RvbWVyTm90aWZpY2F0aW9uW107XG4gICAgcmVhZG9ubHkgY3VzdG9tZXJPcmRlcnNCeVVzZXI/OiBDdXN0b21lck9yZGVyW107XG4gICAgcmVhZG9ubHkgZWxpZ2libGVNYWlsaW5nVXNlcnM/OiBVc2VyW107XG4gICAgcmVhZG9ubHkgaW5nZXN0U2hvcGlmeUN1c3RvbWVyT3JkZXI/OiBDdXN0b21lck9yZGVyO1xuICAgIHJlYWRvbmx5IG1haWxpbmdMaXN0cz86IE1haWxpbmdMaXN0W107XG4gICAgcmVhZG9ubHkgbWFpbGluZ0xpc3RVc2Vycz86IFVzZXJbXTtcbiAgICByZWFkb25seSByZW1vdmVVc2VyRnJvbU1haWxpbmdMaXN0PzogYm9vbGVhbjtcbiAgICByZWFkb25seSBzdXBwb3J0VGlja2V0RXZlbnRzPzogU3VwcG9ydFRpY2tldEV2ZW50W107XG4gICAgcmVhZG9ubHkgc3VwcG9ydFRpY2tldE1lc3NhZ2VzPzogU3VwcG9ydFRpY2tldE1lc3NhZ2VbXTtcbiAgICByZWFkb25seSBzdXBwb3J0VGlja2V0cz86IFN1cHBvcnRUaWNrZXRbXTtcbiAgICByZWFkb25seSB1cGRhdGVTdXBwb3J0VGlja2V0U3RhdHVzPzogU3VwcG9ydFRpY2tldDtcbiAgICByZWFkb25seSB1c2Vyc0J5UHVyY2hhc2VkUHJvZHVjdD86IFVzZXJbXTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JtQWN0aW9ucyB7XG4gIHJlYWRvbmx5IGFkZFN1cHBvcnRUaWNrZXRNZXNzYWdlOiAobWVzc2FnZTogUGFydGlhbDxTdXBwb3J0VGlja2V0TWVzc2FnZT4sIG1lc3NhZ2VQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8U3VwcG9ydFRpY2tldE1lc3NhZ2U+O1xuICByZWFkb25seSBhZGRVc2VyVG9NYWlsaW5nTGlzdDogKHVzZXJJZDogc3RyaW5nLCBtYWlsaW5nTGlzdElkOiBzdHJpbmcsIHNvdXJjZT86IHN0cmluZywgbWFpbGluZ0xpc3RQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8TWFpbGluZ0xpc3Q+O1xuICByZWFkb25seSBjcmVhdGVNYWlsaW5nTGlzdDogKG1haWxpbmdMaXN0OiBQYXJ0aWFsPE1haWxpbmdMaXN0PiwgbWFpbGluZ0xpc3RQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8TWFpbGluZ0xpc3Q+O1xuICByZWFkb25seSBjcmVhdGVTdXBwb3J0VGlja2V0OiAodGlja2V0OiBQYXJ0aWFsPFN1cHBvcnRUaWNrZXQ+LCB0aWNrZXRQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8U3VwcG9ydFRpY2tldD47XG4gIHJlYWRvbmx5IGN1c3RvbWVyTm90aWZpY2F0aW9uc0J5VXNlcjogKHVzZXJJZDogc3RyaW5nLCBub3RpZmljYXRpb25Qcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8Q3VzdG9tZXJOb3RpZmljYXRpb25bXT47XG4gIHJlYWRvbmx5IGN1c3RvbWVyT3JkZXJzQnlVc2VyOiAodXNlcklkOiBzdHJpbmcsIG9yZGVyUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBcGlPcHRpb25zKSA9PiBQcm9taXNlPEN1c3RvbWVyT3JkZXJbXT47XG4gIHJlYWRvbmx5IGVsaWdpYmxlTWFpbGluZ1VzZXJzOiAob3B0aW9ucz86IHtyZWFkb25seSBleGNsdWRlT3BlblN1cHBvcnRUaWNrZXRzPzogYm9vbGVhbjsgcmVhZG9ubHkgbWFpbGluZ0xpc3RJZD86IHN0cmluZzsgcmVhZG9ubHkgcHJvZHVjdElkPzogc3RyaW5nfSwgdXNlclByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxVc2VyW10+O1xuICByZWFkb25seSBpbmdlc3RTaG9waWZ5Q3VzdG9tZXJPcmRlcjogKG9yZGVyOiBTaG9waWZ5Q3VzdG9tZXJPcmRlcklucHV0LCBvcmRlclByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxDdXN0b21lck9yZGVyPjtcbiAgcmVhZG9ubHkgbWFpbGluZ0xpc3RzOiAobWFpbGluZ0xpc3RQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8TWFpbGluZ0xpc3RbXT47XG4gIHJlYWRvbmx5IG1haWxpbmdMaXN0VXNlcnM6IChtYWlsaW5nTGlzdElkOiBzdHJpbmcsIHVzZXJQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8VXNlcltdPjtcbiAgcmVhZG9ubHkgcmVtb3ZlVXNlckZyb21NYWlsaW5nTGlzdDogKHVzZXJJZDogc3RyaW5nLCBtYWlsaW5nTGlzdElkOiBzdHJpbmcsIHJlcXVlc3RPcHRpb25zPzogQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgcmVhZG9ubHkgc3VwcG9ydFRpY2tldEV2ZW50czogKHN1cHBvcnRUaWNrZXRJZDogc3RyaW5nLCBldmVudFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQXBpT3B0aW9ucykgPT4gUHJvbWlzZTxTdXBwb3J0VGlja2V0RXZlbnRbXT47XG4gIHJlYWRvbmx5IHN1cHBvcnRUaWNrZXRNZXNzYWdlczogKHN1cHBvcnRUaWNrZXRJZDogc3RyaW5nLCBtZXNzYWdlUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBcGlPcHRpb25zKSA9PiBQcm9taXNlPFN1cHBvcnRUaWNrZXRNZXNzYWdlW10+O1xuICByZWFkb25seSBzdXBwb3J0VGlja2V0czogKGZpbHRlcnM/OiB7cmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nOyByZWFkb25seSB1c2VySWQ/OiBzdHJpbmd9LCB0aWNrZXRQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8U3VwcG9ydFRpY2tldFtdPjtcbiAgcmVhZG9ubHkgdXBkYXRlU3VwcG9ydFRpY2tldFN0YXR1czogKHN1cHBvcnRUaWNrZXRJZDogc3RyaW5nLCBzdGF0dXM6IFN1cHBvcnRUaWNrZXRTdGF0dXMsIHJlc29sdXRpb25TdW1tYXJ5Pzogc3RyaW5nLCB0aWNrZXRQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8U3VwcG9ydFRpY2tldD47XG4gIHJlYWRvbmx5IHVzZXJzQnlQdXJjaGFzZWRQcm9kdWN0OiAocHJvZHVjdElkOiBzdHJpbmcsIHVzZXJQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFwaU9wdGlvbnMpID0+IFByb21pc2U8VXNlcltdPjtcbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNybUFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIF9vcHRpb25zPzogQ3JtQWN0aW9uc09wdGlvbnNcbik6IENybUFjdGlvbnMgPT4ge1xuICBjb25zdCB3aXRoU3VjY2VzcyA9IChcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgcGF5bG9hZEtleTogc3RyaW5nLFxuICAgIHNlbGVjdG9yOiAoZGF0YTogQ3JtQXBpUmVzdWx0c1R5cGUpID0+IHVua25vd25cbiAgKTogQXBpT3B0aW9ucyA9PiAoe1xuICAgIC4uLnJlcXVlc3RPcHRpb25zLFxuICAgIG9uU3VjY2VzczogKGRhdGE6IENybUFwaVJlc3VsdHNUeXBlKSA9PiBmbHV4LmRpc3BhdGNoKHtbcGF5bG9hZEtleV06IHNlbGVjdG9yKGRhdGEpLCB0eXBlfSlcbiAgfSk7XG5cbiAgY29uc3QgY3JtUXVlcnkgPSBhc3luYyA8VD4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5VmFyaWFibGVzOiBBcGlRdWVyeVZhcmlhYmxlcyxcbiAgICByZXR1cm5Qcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyxcbiAgICBzdWNjZXNzVHlwZTogc3RyaW5nLFxuICAgIGVycm9yVHlwZTogc3RyaW5nLFxuICAgIHBheWxvYWRLZXk6IHN0cmluZyxcbiAgICBzZWxlY3RvcjogKGRhdGE6IENybUFwaVJlc3VsdHNUeXBlKSA9PiB1bmtub3duXG4gICk6IFByb21pc2U8VD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgYXBwUXVlcnk8VD4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIHJldHVyblByb3BlcnRpZXMsXG4gICAgICAgIHdpdGhTdWNjZXNzKHJlcXVlc3RPcHRpb25zLCBzdWNjZXNzVHlwZSwgcGF5bG9hZEtleSwgc2VsZWN0b3IpXG4gICAgICApO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBlcnJvclR5cGV9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjcm1NdXRhdGlvbiA9IGFzeW5jIDxUPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgcXVlcnlWYXJpYWJsZXM6IEFwaVF1ZXJ5VmFyaWFibGVzLFxuICAgIHJldHVyblByb3BlcnRpZXM6IHN0cmluZ1tdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBcGlPcHRpb25zLFxuICAgIHN1Y2Nlc3NUeXBlOiBzdHJpbmcsXG4gICAgZXJyb3JUeXBlOiBzdHJpbmcsXG4gICAgcGF5bG9hZEtleTogc3RyaW5nLFxuICAgIHNlbGVjdG9yOiAoZGF0YTogQ3JtQXBpUmVzdWx0c1R5cGUpID0+IHVua25vd25cbiAgKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxUPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgcmV0dXJuUHJvcGVydGllcyxcbiAgICAgICAgd2l0aFN1Y2Nlc3MocmVxdWVzdE9wdGlvbnMsIHN1Y2Nlc3NUeXBlLCBwYXlsb2FkS2V5LCBzZWxlY3RvcilcbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IGVycm9yVHlwZX0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IG1haWxpbmdMaXN0cyA9IGFzeW5jIChcbiAgICBtYWlsaW5nTGlzdFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBcGlPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxNYWlsaW5nTGlzdFtdPiA9PiBjcm1RdWVyeTxNYWlsaW5nTGlzdFtdPihcbiAgICAnbWFpbGluZ0xpc3RzJyxcbiAgICB7fSxcbiAgICBbLi4uTUFJTElOR19MSVNUX0ZJRUxEUywgLi4ubWFpbGluZ0xpc3RQcm9wc10sXG4gICAgcmVxdWVzdE9wdGlvbnMsXG4gICAgQ1JNX0NPTlNUQU5UUy5NQUlMSU5HX0xJU1RTX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5NQUlMSU5HX0xJU1RTX0VSUk9SLFxuICAgICdsaXN0JyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5tYWlsaW5nTGlzdHMgfHwgW11cbiAgKTtcblxuICBjb25zdCBjcmVhdGVNYWlsaW5nTGlzdCA9IGFzeW5jIChcbiAgICBtYWlsaW5nTGlzdDogUGFydGlhbDxNYWlsaW5nTGlzdD4sXG4gICAgbWFpbGluZ0xpc3RQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8TWFpbGluZ0xpc3Q+ID0+IGNybU11dGF0aW9uPE1haWxpbmdMaXN0PihcbiAgICAnY3JlYXRlTWFpbGluZ0xpc3QnLFxuICAgIHtcbiAgICAgIG1haWxpbmdMaXN0OiB7XG4gICAgICAgIHR5cGU6ICdNYWlsaW5nTGlzdElucHV0IScsXG4gICAgICAgIHZhbHVlOiBtYWlsaW5nTGlzdFxuICAgICAgfVxuICAgIH0sXG4gICAgWy4uLk1BSUxJTkdfTElTVF9GSUVMRFMsIC4uLm1haWxpbmdMaXN0UHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuQ1JFQVRFX01BSUxJTkdfTElTVF9TVUNDRVNTLFxuICAgIENSTV9DT05TVEFOVFMuQ1JFQVRFX01BSUxJTkdfTElTVF9FUlJPUixcbiAgICAnbWFpbGluZ0xpc3QnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LmNyZWF0ZU1haWxpbmdMaXN0IHx8IHt9XG4gICk7XG5cbiAgY29uc3QgYWRkVXNlclRvTWFpbGluZ0xpc3QgPSBhc3luYyAoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgbWFpbGluZ0xpc3RJZDogc3RyaW5nLFxuICAgIHNvdXJjZSA9ICdtYW51YWwnLFxuICAgIG1haWxpbmdMaXN0UHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPE1haWxpbmdMaXN0PiA9PiBjcm1NdXRhdGlvbjxNYWlsaW5nTGlzdD4oXG4gICAgJ2FkZFVzZXJUb01haWxpbmdMaXN0JyxcbiAgICB7XG4gICAgICBtYWlsaW5nTGlzdElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogZG9jdW1lbnRLZXkobWFpbGluZ0xpc3RJZClcbiAgICAgIH0sXG4gICAgICBzb3VyY2U6IHtcbiAgICAgICAgdHlwZTogJ1N0cmluZycsXG4gICAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICAgIH0sXG4gICAgICB1c2VySWQ6IHtcbiAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgIHZhbHVlOiBkb2N1bWVudEtleSh1c2VySWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbLi4uTUFJTElOR19MSVNUX0ZJRUxEUywgLi4ubWFpbGluZ0xpc3RQcm9wc10sXG4gICAgcmVxdWVzdE9wdGlvbnMsXG4gICAgQ1JNX0NPTlNUQU5UUy5BRERfVVNFUl9UT19NQUlMSU5HX0xJU1RfU1VDQ0VTUyxcbiAgICBDUk1fQ09OU1RBTlRTLkFERF9VU0VSX1RPX01BSUxJTkdfTElTVF9FUlJPUixcbiAgICAnbWFpbGluZ0xpc3QnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LmFkZFVzZXJUb01haWxpbmdMaXN0IHx8IHt9XG4gICk7XG5cbiAgY29uc3QgcmVtb3ZlVXNlckZyb21NYWlsaW5nTGlzdCA9IGFzeW5jIChcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBtYWlsaW5nTGlzdElkOiBzdHJpbmcsXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IGNybU11dGF0aW9uPGJvb2xlYW4+KFxuICAgICdyZW1vdmVVc2VyRnJvbU1haWxpbmdMaXN0JyxcbiAgICB7XG4gICAgICBtYWlsaW5nTGlzdElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogZG9jdW1lbnRLZXkobWFpbGluZ0xpc3RJZClcbiAgICAgIH0sXG4gICAgICB1c2VySWQ6IHtcbiAgICAgICAgdHlwZTogJ0lEIScsXG4gICAgICAgIHZhbHVlOiBkb2N1bWVudEtleSh1c2VySWQpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXSxcbiAgICByZXF1ZXN0T3B0aW9ucyxcbiAgICBDUk1fQ09OU1RBTlRTLlJFTU9WRV9VU0VSX0ZST01fTUFJTElOR19MSVNUX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5SRU1PVkVfVVNFUl9GUk9NX01BSUxJTkdfTElTVF9FUlJPUixcbiAgICAncmVtb3ZlZCcsXG4gICAgKGRhdGEpID0+IGRhdGE/LmNybT8ucmVtb3ZlVXNlckZyb21NYWlsaW5nTGlzdCB8fCBmYWxzZVxuICApO1xuXG4gIGNvbnN0IG1haWxpbmdMaXN0VXNlcnMgPSBhc3luYyAoXG4gICAgbWFpbGluZ0xpc3RJZDogc3RyaW5nLFxuICAgIHVzZXJQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8VXNlcltdPiA9PiBjcm1RdWVyeTxVc2VyW10+KFxuICAgICdtYWlsaW5nTGlzdFVzZXJzJyxcbiAgICB7XG4gICAgICBtYWlsaW5nTGlzdElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogZG9jdW1lbnRLZXkobWFpbGluZ0xpc3RJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5VU0VSX0ZJRUxEUywgLi4udXNlclByb3BzXSxcbiAgICByZXF1ZXN0T3B0aW9ucyxcbiAgICBDUk1fQ09OU1RBTlRTLk1BSUxJTkdfTElTVF9VU0VSU19TVUNDRVNTLFxuICAgIENSTV9DT05TVEFOVFMuTUFJTElOR19MSVNUX1VTRVJTX0VSUk9SLFxuICAgICdsaXN0JyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5tYWlsaW5nTGlzdFVzZXJzIHx8IFtdXG4gICk7XG5cbiAgY29uc3QgZWxpZ2libGVNYWlsaW5nVXNlcnMgPSBhc3luYyAoXG4gICAgb3B0aW9uczoge3JlYWRvbmx5IGV4Y2x1ZGVPcGVuU3VwcG9ydFRpY2tldHM/OiBib29sZWFuOyByZWFkb25seSBtYWlsaW5nTGlzdElkPzogc3RyaW5nOyByZWFkb25seSBwcm9kdWN0SWQ/OiBzdHJpbmd9ID0ge30sXG4gICAgdXNlclByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBcGlPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxVc2VyW10+ID0+IGNybVF1ZXJ5PFVzZXJbXT4oXG4gICAgJ2VsaWdpYmxlTWFpbGluZ1VzZXJzJyxcbiAgICB7XG4gICAgICBleGNsdWRlT3BlblN1cHBvcnRUaWNrZXRzOiB7XG4gICAgICAgIHR5cGU6ICdCb29sZWFuJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMuZXhjbHVkZU9wZW5TdXBwb3J0VGlja2V0c1xuICAgICAgfSxcbiAgICAgIG1haWxpbmdMaXN0SWQ6IHtcbiAgICAgICAgdHlwZTogJ0lEJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMubWFpbGluZ0xpc3RJZCA/IGRvY3VtZW50S2V5KG9wdGlvbnMubWFpbGluZ0xpc3RJZCkgOiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICBwcm9kdWN0SWQ6IHtcbiAgICAgICAgdHlwZTogJ0lEJyxcbiAgICAgICAgdmFsdWU6IG9wdGlvbnMucHJvZHVjdElkXG4gICAgICB9XG4gICAgfSxcbiAgICBbLi4uVVNFUl9GSUVMRFMsIC4uLnVzZXJQcm9wc10sXG4gICAgcmVxdWVzdE9wdGlvbnMsXG4gICAgQ1JNX0NPTlNUQU5UUy5FTElHSUJMRV9NQUlMSU5HX1VTRVJTX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5FTElHSUJMRV9NQUlMSU5HX1VTRVJTX0VSUk9SLFxuICAgICdsaXN0JyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5lbGlnaWJsZU1haWxpbmdVc2VycyB8fCBbXVxuICApO1xuXG4gIGNvbnN0IHVzZXJzQnlQdXJjaGFzZWRQcm9kdWN0ID0gYXN5bmMgKFxuICAgIHByb2R1Y3RJZDogc3RyaW5nLFxuICAgIHVzZXJQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8VXNlcltdPiA9PiBjcm1RdWVyeTxVc2VyW10+KFxuICAgICd1c2Vyc0J5UHVyY2hhc2VkUHJvZHVjdCcsXG4gICAge1xuICAgICAgcHJvZHVjdElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogcHJvZHVjdElkXG4gICAgICB9XG4gICAgfSxcbiAgICBbLi4uVVNFUl9GSUVMRFMsIC4uLnVzZXJQcm9wc10sXG4gICAgcmVxdWVzdE9wdGlvbnMsXG4gICAgQ1JNX0NPTlNUQU5UUy5VU0VSU19CWV9QVVJDSEFTRURfUFJPRFVDVF9TVUNDRVNTLFxuICAgIENSTV9DT05TVEFOVFMuVVNFUlNfQllfUFVSQ0hBU0VEX1BST0RVQ1RfRVJST1IsXG4gICAgJ2xpc3QnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LnVzZXJzQnlQdXJjaGFzZWRQcm9kdWN0IHx8IFtdXG4gICk7XG5cbiAgY29uc3QgaW5nZXN0U2hvcGlmeUN1c3RvbWVyT3JkZXIgPSBhc3luYyAoXG4gICAgb3JkZXI6IFNob3BpZnlDdXN0b21lck9yZGVySW5wdXQsXG4gICAgb3JkZXJQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8Q3VzdG9tZXJPcmRlcj4gPT4gY3JtTXV0YXRpb248Q3VzdG9tZXJPcmRlcj4oXG4gICAgJ2luZ2VzdFNob3BpZnlDdXN0b21lck9yZGVyJyxcbiAgICB7XG4gICAgICBvcmRlcjoge1xuICAgICAgICB0eXBlOiAnU2hvcGlmeUN1c3RvbWVyT3JkZXJJbnB1dCEnLFxuICAgICAgICB2YWx1ZTogb3JkZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5DVVNUT01FUl9PUkRFUl9GSUVMRFMsIC4uLm9yZGVyUHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuSU5HRVNUX1NIT1BJRllfQ1VTVE9NRVJfT1JERVJfU1VDQ0VTUyxcbiAgICBDUk1fQ09OU1RBTlRTLklOR0VTVF9TSE9QSUZZX0NVU1RPTUVSX09SREVSX0VSUk9SLFxuICAgICdjdXN0b21lck9yZGVyJyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5pbmdlc3RTaG9waWZ5Q3VzdG9tZXJPcmRlciB8fCB7fVxuICApO1xuXG4gIGNvbnN0IGN1c3RvbWVyT3JkZXJzQnlVc2VyID0gYXN5bmMgKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIG9yZGVyUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEN1c3RvbWVyT3JkZXJbXT4gPT4gY3JtUXVlcnk8Q3VzdG9tZXJPcmRlcltdPihcbiAgICAnY3VzdG9tZXJPcmRlcnNCeVVzZXInLFxuICAgIHtcbiAgICAgIHVzZXJJZDoge1xuICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgdmFsdWU6IGRvY3VtZW50S2V5KHVzZXJJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5DVVNUT01FUl9PUkRFUl9GSUVMRFMsIC4uLm9yZGVyUHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuQ1VTVE9NRVJfT1JERVJTX0JZX1VTRVJfU1VDQ0VTUyxcbiAgICBDUk1fQ09OU1RBTlRTLkNVU1RPTUVSX09SREVSU19CWV9VU0VSX0VSUk9SLFxuICAgICdsaXN0JyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5jdXN0b21lck9yZGVyc0J5VXNlciB8fCBbXVxuICApO1xuXG4gIGNvbnN0IGNyZWF0ZVN1cHBvcnRUaWNrZXQgPSBhc3luYyAoXG4gICAgdGlja2V0OiBQYXJ0aWFsPFN1cHBvcnRUaWNrZXQ+LFxuICAgIHRpY2tldFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBcGlPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxTdXBwb3J0VGlja2V0PiA9PiBjcm1NdXRhdGlvbjxTdXBwb3J0VGlja2V0PihcbiAgICAnY3JlYXRlU3VwcG9ydFRpY2tldCcsXG4gICAge1xuICAgICAgdGlja2V0OiB7XG4gICAgICAgIHR5cGU6ICdTdXBwb3J0VGlja2V0SW5wdXQhJyxcbiAgICAgICAgdmFsdWU6IHRpY2tldFxuICAgICAgfVxuICAgIH0sXG4gICAgWy4uLlNVUFBPUlRfVElDS0VUX0ZJRUxEUywgLi4udGlja2V0UHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuQ1JFQVRFX1NVUFBPUlRfVElDS0VUX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5DUkVBVEVfU1VQUE9SVF9USUNLRVRfRVJST1IsXG4gICAgJ3N1cHBvcnRUaWNrZXQnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LmNyZWF0ZVN1cHBvcnRUaWNrZXQgfHwge31cbiAgKTtcblxuICBjb25zdCBzdXBwb3J0VGlja2V0cyA9IGFzeW5jIChcbiAgICBmaWx0ZXJzOiB7cmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nOyByZWFkb25seSB1c2VySWQ/OiBzdHJpbmd9ID0ge30sXG4gICAgdGlja2V0UHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPFN1cHBvcnRUaWNrZXRbXT4gPT4gY3JtUXVlcnk8U3VwcG9ydFRpY2tldFtdPihcbiAgICAnc3VwcG9ydFRpY2tldHMnLFxuICAgIHtcbiAgICAgIHN0YXR1czoge1xuICAgICAgICB0eXBlOiAnU3RyaW5nJyxcbiAgICAgICAgdmFsdWU6IGZpbHRlcnMuc3RhdHVzXG4gICAgICB9LFxuICAgICAgdXNlcklkOiB7XG4gICAgICAgIHR5cGU6ICdJRCcsXG4gICAgICAgIHZhbHVlOiBmaWx0ZXJzLnVzZXJJZCA/IGRvY3VtZW50S2V5KGZpbHRlcnMudXNlcklkKSA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH0sXG4gICAgWy4uLlNVUFBPUlRfVElDS0VUX0ZJRUxEUywgLi4udGlja2V0UHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuU1VQUE9SVF9USUNLRVRTX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5TVVBQT1JUX1RJQ0tFVFNfRVJST1IsXG4gICAgJ2xpc3QnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LnN1cHBvcnRUaWNrZXRzIHx8IFtdXG4gICk7XG5cbiAgY29uc3QgdXBkYXRlU3VwcG9ydFRpY2tldFN0YXR1cyA9IGFzeW5jIChcbiAgICBzdXBwb3J0VGlja2V0SWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IFN1cHBvcnRUaWNrZXRTdGF0dXMsXG4gICAgcmVzb2x1dGlvblN1bW1hcnkgPSAnJyxcbiAgICB0aWNrZXRQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8U3VwcG9ydFRpY2tldD4gPT4gY3JtTXV0YXRpb248U3VwcG9ydFRpY2tldD4oXG4gICAgJ3VwZGF0ZVN1cHBvcnRUaWNrZXRTdGF0dXMnLFxuICAgIHtcbiAgICAgIHJlc29sdXRpb25TdW1tYXJ5OiB7XG4gICAgICAgIHR5cGU6ICdTdHJpbmcnLFxuICAgICAgICB2YWx1ZTogcmVzb2x1dGlvblN1bW1hcnlcbiAgICAgIH0sXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgdHlwZTogJ1N0cmluZyEnLFxuICAgICAgICB2YWx1ZTogc3RhdHVzXG4gICAgICB9LFxuICAgICAgc3VwcG9ydFRpY2tldElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogZG9jdW1lbnRLZXkoc3VwcG9ydFRpY2tldElkKVxuICAgICAgfVxuICAgIH0sXG4gICAgWy4uLlNVUFBPUlRfVElDS0VUX0ZJRUxEUywgLi4udGlja2V0UHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuVVBEQVRFX1NVUFBPUlRfVElDS0VUX1NUQVRVU19TVUNDRVNTLFxuICAgIENSTV9DT05TVEFOVFMuVVBEQVRFX1NVUFBPUlRfVElDS0VUX1NUQVRVU19FUlJPUixcbiAgICAnc3VwcG9ydFRpY2tldCcsXG4gICAgKGRhdGEpID0+IGRhdGE/LmNybT8udXBkYXRlU3VwcG9ydFRpY2tldFN0YXR1cyB8fCB7fVxuICApO1xuXG4gIGNvbnN0IGFkZFN1cHBvcnRUaWNrZXRNZXNzYWdlID0gYXN5bmMgKFxuICAgIG1lc3NhZ2U6IFBhcnRpYWw8U3VwcG9ydFRpY2tldE1lc3NhZ2U+LFxuICAgIG1lc3NhZ2VQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8U3VwcG9ydFRpY2tldE1lc3NhZ2U+ID0+IGNybU11dGF0aW9uPFN1cHBvcnRUaWNrZXRNZXNzYWdlPihcbiAgICAnYWRkU3VwcG9ydFRpY2tldE1lc3NhZ2UnLFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgdHlwZTogJ1N1cHBvcnRUaWNrZXRNZXNzYWdlSW5wdXQhJyxcbiAgICAgICAgdmFsdWU6IG1lc3NhZ2VcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFX0ZJRUxEUywgLi4ubWVzc2FnZVByb3BzXSxcbiAgICByZXF1ZXN0T3B0aW9ucyxcbiAgICBDUk1fQ09OU1RBTlRTLkFERF9TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5BRERfU1VQUE9SVF9USUNLRVRfTUVTU0FHRV9FUlJPUixcbiAgICAnc3VwcG9ydFRpY2tldE1lc3NhZ2UnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LmFkZFN1cHBvcnRUaWNrZXRNZXNzYWdlIHx8IHt9XG4gICk7XG5cbiAgY29uc3Qgc3VwcG9ydFRpY2tldE1lc3NhZ2VzID0gYXN5bmMgKFxuICAgIHN1cHBvcnRUaWNrZXRJZDogc3RyaW5nLFxuICAgIG1lc3NhZ2VQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8U3VwcG9ydFRpY2tldE1lc3NhZ2VbXT4gPT4gY3JtUXVlcnk8U3VwcG9ydFRpY2tldE1lc3NhZ2VbXT4oXG4gICAgJ3N1cHBvcnRUaWNrZXRNZXNzYWdlcycsXG4gICAge1xuICAgICAgc3VwcG9ydFRpY2tldElkOiB7XG4gICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICB2YWx1ZTogZG9jdW1lbnRLZXkoc3VwcG9ydFRpY2tldElkKVxuICAgICAgfVxuICAgIH0sXG4gICAgWy4uLlNVUFBPUlRfVElDS0VUX01FU1NBR0VfRklFTERTLCAuLi5tZXNzYWdlUHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuU1VQUE9SVF9USUNLRVRfTUVTU0FHRVNfU1VDQ0VTUyxcbiAgICBDUk1fQ09OU1RBTlRTLlNVUFBPUlRfVElDS0VUX01FU1NBR0VTX0VSUk9SLFxuICAgICdsaXN0JyxcbiAgICAoZGF0YSkgPT4gZGF0YT8uY3JtPy5zdXBwb3J0VGlja2V0TWVzc2FnZXMgfHwgW11cbiAgKTtcblxuICBjb25zdCBzdXBwb3J0VGlja2V0RXZlbnRzID0gYXN5bmMgKFxuICAgIHN1cHBvcnRUaWNrZXRJZDogc3RyaW5nLFxuICAgIGV2ZW50UHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPFN1cHBvcnRUaWNrZXRFdmVudFtdPiA9PiBjcm1RdWVyeTxTdXBwb3J0VGlja2V0RXZlbnRbXT4oXG4gICAgJ3N1cHBvcnRUaWNrZXRFdmVudHMnLFxuICAgIHtcbiAgICAgIHN1cHBvcnRUaWNrZXRJZDoge1xuICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgdmFsdWU6IGRvY3VtZW50S2V5KHN1cHBvcnRUaWNrZXRJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5TVVBQT1JUX1RJQ0tFVF9FVkVOVF9GSUVMRFMsIC4uLmV2ZW50UHJvcHNdLFxuICAgIHJlcXVlc3RPcHRpb25zLFxuICAgIENSTV9DT05TVEFOVFMuU1VQUE9SVF9USUNLRVRfRVZFTlRTX1NVQ0NFU1MsXG4gICAgQ1JNX0NPTlNUQU5UUy5TVVBQT1JUX1RJQ0tFVF9FVkVOVFNfRVJST1IsXG4gICAgJ2xpc3QnLFxuICAgIChkYXRhKSA9PiBkYXRhPy5jcm0/LnN1cHBvcnRUaWNrZXRFdmVudHMgfHwgW11cbiAgKTtcblxuICBjb25zdCBjdXN0b21lck5vdGlmaWNhdGlvbnNCeVVzZXIgPSBhc3luYyAoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgbm90aWZpY2F0aW9uUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFwaU9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEN1c3RvbWVyTm90aWZpY2F0aW9uW10+ID0+IGNybVF1ZXJ5PEN1c3RvbWVyTm90aWZpY2F0aW9uW10+KFxuICAgICdjdXN0b21lck5vdGlmaWNhdGlvbnNCeVVzZXInLFxuICAgIHtcbiAgICAgIHVzZXJJZDoge1xuICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgdmFsdWU6IGRvY3VtZW50S2V5KHVzZXJJZClcbiAgICAgIH1cbiAgICB9LFxuICAgIFsuLi5DVVNUT01FUl9OT1RJRklDQVRJT05fRklFTERTLCAuLi5ub3RpZmljYXRpb25Qcm9wc10sXG4gICAgcmVxdWVzdE9wdGlvbnMsXG4gICAgQ1JNX0NPTlNUQU5UUy5DVVNUT01FUl9OT1RJRklDQVRJT05TX0JZX1VTRVJfU1VDQ0VTUyxcbiAgICBDUk1fQ09OU1RBTlRTLkNVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9FUlJPUixcbiAgICAnbGlzdCcsXG4gICAgKGRhdGEpID0+IGRhdGE/LmNybT8uY3VzdG9tZXJOb3RpZmljYXRpb25zQnlVc2VyIHx8IFtdXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRTdXBwb3J0VGlja2V0TWVzc2FnZSxcbiAgICBhZGRVc2VyVG9NYWlsaW5nTGlzdCxcbiAgICBjcmVhdGVNYWlsaW5nTGlzdCxcbiAgICBjcmVhdGVTdXBwb3J0VGlja2V0LFxuICAgIGN1c3RvbWVyTm90aWZpY2F0aW9uc0J5VXNlcixcbiAgICBjdXN0b21lck9yZGVyc0J5VXNlcixcbiAgICBlbGlnaWJsZU1haWxpbmdVc2VycyxcbiAgICBpbmdlc3RTaG9waWZ5Q3VzdG9tZXJPcmRlcixcbiAgICBtYWlsaW5nTGlzdHMsXG4gICAgbWFpbGluZ0xpc3RVc2VycyxcbiAgICByZW1vdmVVc2VyRnJvbU1haWxpbmdMaXN0LFxuICAgIHN1cHBvcnRUaWNrZXRFdmVudHMsXG4gICAgc3VwcG9ydFRpY2tldE1lc3NhZ2VzLFxuICAgIHN1cHBvcnRUaWNrZXRzLFxuICAgIHVwZGF0ZVN1cHBvcnRUaWNrZXRTdGF0dXMsXG4gICAgdXNlcnNCeVB1cmNoYXNlZFByb2R1Y3RcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiYXBwTXV0YXRpb24iLCJhcHBRdWVyeSIsIkRBVEFfVFlQRSIsImRvY3VtZW50S2V5IiwiaWQiLCJTdHJpbmciLCJzcGxpdCIsInBvcCIsIkNSTV9DT05TVEFOVFMiLCJBRERfU1VQUE9SVF9USUNLRVRfTUVTU0FHRV9FUlJPUiIsIkFERF9TVVBQT1JUX1RJQ0tFVF9NRVNTQUdFX1NVQ0NFU1MiLCJBRERfVVNFUl9UT19NQUlMSU5HX0xJU1RfRVJST1IiLCJBRERfVVNFUl9UT19NQUlMSU5HX0xJU1RfU1VDQ0VTUyIsIkNSRUFURV9NQUlMSU5HX0xJU1RfRVJST1IiLCJDUkVBVEVfTUFJTElOR19MSVNUX1NVQ0NFU1MiLCJDUkVBVEVfU1VQUE9SVF9USUNLRVRfRVJST1IiLCJDUkVBVEVfU1VQUE9SVF9USUNLRVRfU1VDQ0VTUyIsIkNVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9FUlJPUiIsIkNVU1RPTUVSX05PVElGSUNBVElPTlNfQllfVVNFUl9TVUNDRVNTIiwiQ1VTVE9NRVJfT1JERVJTX0JZX1VTRVJfRVJST1IiLCJDVVNUT01FUl9PUkRFUlNfQllfVVNFUl9TVUNDRVNTIiwiRUxJR0lCTEVfTUFJTElOR19VU0VSU19FUlJPUiIsIkVMSUdJQkxFX01BSUxJTkdfVVNFUlNfU1VDQ0VTUyIsIklOR0VTVF9TSE9QSUZZX0NVU1RPTUVSX09SREVSX0VSUk9SIiwiSU5HRVNUX1NIT1BJRllfQ1VTVE9NRVJfT1JERVJfU1VDQ0VTUyIsIk1BSUxJTkdfTElTVF9VU0VSU19FUlJPUiIsIk1BSUxJTkdfTElTVF9VU0VSU19TVUNDRVNTIiwiTUFJTElOR19MSVNUU19FUlJPUiIsIk1BSUxJTkdfTElTVFNfU1VDQ0VTUyIsIlJFTU9WRV9VU0VSX0ZST01fTUFJTElOR19MSVNUX0VSUk9SIiwiUkVNT1ZFX1VTRVJfRlJPTV9NQUlMSU5HX0xJU1RfU1VDQ0VTUyIsIlNVUFBPUlRfVElDS0VUX0VWRU5UU19FUlJPUiIsIlNVUFBPUlRfVElDS0VUX0VWRU5UU19TVUNDRVNTIiwiU1VQUE9SVF9USUNLRVRfTUVTU0FHRVNfRVJST1IiLCJTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFU19TVUNDRVNTIiwiU1VQUE9SVF9USUNLRVRTX0VSUk9SIiwiU1VQUE9SVF9USUNLRVRTX1NVQ0NFU1MiLCJVUERBVEVfU1VQUE9SVF9USUNLRVRfU1RBVFVTX0VSUk9SIiwiVVBEQVRFX1NVUFBPUlRfVElDS0VUX1NUQVRVU19TVUNDRVNTIiwiVVNFUlNfQllfUFVSQ0hBU0VEX1BST0RVQ1RfRVJST1IiLCJVU0VSU19CWV9QVVJDSEFTRURfUFJPRFVDVF9TVUNDRVNTIiwiVVNFUl9GSUVMRFMiLCJNQUlMSU5HX0xJU1RfRklFTERTIiwiQ1VTVE9NRVJfT1JERVJfRklFTERTIiwiU1VQUE9SVF9USUNLRVRfRklFTERTIiwiU1VQUE9SVF9USUNLRVRfTUVTU0FHRV9GSUVMRFMiLCJTVVBQT1JUX1RJQ0tFVF9FVkVOVF9GSUVMRFMiLCJDVVNUT01FUl9OT1RJRklDQVRJT05fRklFTERTIiwiY3JlYXRlQ3JtQWN0aW9ucyIsImZsdXgiLCJfb3B0aW9ucyIsIndpdGhTdWNjZXNzIiwicmVxdWVzdE9wdGlvbnMiLCJ0eXBlIiwicGF5bG9hZEtleSIsInNlbGVjdG9yIiwib25TdWNjZXNzIiwiZGF0YSIsImRpc3BhdGNoIiwiY3JtUXVlcnkiLCJuYW1lIiwicXVlcnlWYXJpYWJsZXMiLCJyZXR1cm5Qcm9wZXJ0aWVzIiwic3VjY2Vzc1R5cGUiLCJlcnJvclR5cGUiLCJlcnJvciIsImNybU11dGF0aW9uIiwibWFpbGluZ0xpc3RzIiwibWFpbGluZ0xpc3RQcm9wcyIsImNybSIsImNyZWF0ZU1haWxpbmdMaXN0IiwibWFpbGluZ0xpc3QiLCJ2YWx1ZSIsImFkZFVzZXJUb01haWxpbmdMaXN0IiwidXNlcklkIiwibWFpbGluZ0xpc3RJZCIsInNvdXJjZSIsInJlbW92ZVVzZXJGcm9tTWFpbGluZ0xpc3QiLCJtYWlsaW5nTGlzdFVzZXJzIiwidXNlclByb3BzIiwiZWxpZ2libGVNYWlsaW5nVXNlcnMiLCJvcHRpb25zIiwiZXhjbHVkZU9wZW5TdXBwb3J0VGlja2V0cyIsInVuZGVmaW5lZCIsInByb2R1Y3RJZCIsInVzZXJzQnlQdXJjaGFzZWRQcm9kdWN0IiwiaW5nZXN0U2hvcGlmeUN1c3RvbWVyT3JkZXIiLCJvcmRlciIsIm9yZGVyUHJvcHMiLCJjdXN0b21lck9yZGVyc0J5VXNlciIsImNyZWF0ZVN1cHBvcnRUaWNrZXQiLCJ0aWNrZXQiLCJ0aWNrZXRQcm9wcyIsInN1cHBvcnRUaWNrZXRzIiwiZmlsdGVycyIsInN0YXR1cyIsInVwZGF0ZVN1cHBvcnRUaWNrZXRTdGF0dXMiLCJzdXBwb3J0VGlja2V0SWQiLCJyZXNvbHV0aW9uU3VtbWFyeSIsImFkZFN1cHBvcnRUaWNrZXRNZXNzYWdlIiwibWVzc2FnZSIsIm1lc3NhZ2VQcm9wcyIsInN1cHBvcnRUaWNrZXRNZXNzYWdlcyIsInN1cHBvcnRUaWNrZXRFdmVudHMiLCJldmVudFByb3BzIiwiY3VzdG9tZXJOb3RpZmljYXRpb25zQnlVc2VyIiwibm90aWZpY2F0aW9uUHJvcHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFdBQVcsRUFBRUMsUUFBUSxRQUFPLHFCQUFxQjtBQWdCekQsTUFBTUMsWUFBWTtBQUNsQixNQUFNQyxjQUFjLENBQUNDLEtBQXVCQyxPQUFPRCxNQUFNLElBQUlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHLE1BQU07QUFFakYsT0FBTyxNQUFNQyxnQkFBZ0I7SUFDM0JDLGtDQUFrQztJQUNsQ0Msb0NBQW9DO0lBQ3BDQyxnQ0FBZ0M7SUFDaENDLGtDQUFrQztJQUNsQ0MsMkJBQTJCO0lBQzNCQyw2QkFBNkI7SUFDN0JDLDZCQUE2QjtJQUM3QkMsK0JBQStCO0lBQy9CQyxzQ0FBc0M7SUFDdENDLHdDQUF3QztJQUN4Q0MsK0JBQStCO0lBQy9CQyxpQ0FBaUM7SUFDakNDLDhCQUE4QjtJQUM5QkMsZ0NBQWdDO0lBQ2hDQyxxQ0FBcUM7SUFDckNDLHVDQUF1QztJQUN2Q0MsMEJBQTBCO0lBQzFCQyw0QkFBNEI7SUFDNUJDLHFCQUFxQjtJQUNyQkMsdUJBQXVCO0lBQ3ZCQyxxQ0FBcUM7SUFDckNDLHVDQUF1QztJQUN2Q0MsNkJBQTZCO0lBQzdCQywrQkFBK0I7SUFDL0JDLCtCQUErQjtJQUMvQkMsaUNBQWlDO0lBQ2pDQyx1QkFBdUI7SUFDdkJDLHlCQUF5QjtJQUN6QkMsb0NBQW9DO0lBQ3BDQyxzQ0FBc0M7SUFDdENDLGtDQUFrQztJQUNsQ0Msb0NBQW9DO0FBQ3RDLEVBQVc7QUFFWCxNQUFNQyxjQUFjO0lBQUM7SUFBVTtJQUFTO0lBQWE7SUFBWTtJQUFrQjtDQUFvQjtBQUN2RyxNQUFNQyxzQkFBc0I7SUFBQztJQUFpQjtJQUFRO0lBQWU7SUFBVTtJQUFtQjtJQUFTO0NBQVc7QUFDdEgsTUFBTUMsd0JBQXdCO0lBQUM7SUFBbUI7SUFBVTtJQUFxQjtJQUFr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
@@ -2,6 +2,7 @@ export * from './appActions/appActions.js';
2
2
  export * from './connectionActions/connectionActions.js';
3
3
  export * from './contentActions/contentActions.js';
4
4
  export * from './conversationActions/conversationActions.js';
5
+ export * from './crmActions/crmActions.js';
5
6
  export * from './eventActions/eventActions.js';
6
7
  export * from './groupActions/groupActions.js';
7
8
  export * from './imageActions/imageActions.js';
@@ -11,6 +12,7 @@ export * from './permissionActions/permissionActions.js';
11
12
  export * from './postActions/postActions.js';
12
13
  export * from './personaActions/personaActions.js';
13
14
  export * from './reactionActions/reactionActions.js';
15
+ export * from './restActions/restActions.js';
14
16
  export * from './sseActions/sseActions.js';
15
17
  export * from './subscriptionActions/subscriptionActions.js';
16
18
  export * from './tagActions/tagActions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0CAA0C,CAAC;AACzD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wCAAwC,CAAC"}
@@ -2,6 +2,7 @@ export * from './appActions/appActions.js';
2
2
  export * from './connectionActions/connectionActions.js';
3
3
  export * from './contentActions/contentActions.js';
4
4
  export * from './conversationActions/conversationActions.js';
5
+ export * from './crmActions/crmActions.js';
5
6
  export * from './eventActions/eventActions.js';
6
7
  export * from './groupActions/groupActions.js';
7
8
  export * from './imageActions/imageActions.js';
@@ -11,6 +12,7 @@ export * from './permissionActions/permissionActions.js';
11
12
  export * from './postActions/postActions.js';
12
13
  export * from './personaActions/personaActions.js';
13
14
  export * from './reactionActions/reactionActions.js';
15
+ export * from './restActions/restActions.js';
14
16
  export * from './sseActions/sseActions.js';
15
17
  export * from './subscriptionActions/subscriptionActions.js';
16
18
  export * from './tagActions/tagActions.js';
@@ -19,4 +21,4 @@ export * from './userActions/userActions.js';
19
21
  export * from './videoActions/videoActions.js';
20
22
  export * from './websocketActions/websocketActions.js';
21
23
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcEFjdGlvbnMvYXBwQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb25BY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGVudEFjdGlvbnMvY29udGVudEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudEFjdGlvbnMvZXZlbnRBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXBBY3Rpb25zL2dyb3VwQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlQWN0aW9ucy9pbWFnZUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGlvbkFjdGlvbnMvcmVhY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3NlQWN0aW9ucy9zc2VBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uQWN0aW9ucy9zdWJzY3JpcHRpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdGFnQWN0aW9ucy90YWdBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRpb25BY3Rpb25zL3RyYW5zbGF0aW9uQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJBY3Rpb25zL3VzZXJBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlkZW9BY3Rpb25zL3ZpZGVvQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dlYnNvY2tldEFjdGlvbnMvd2Vic29ja2V0QWN0aW9ucy5qcyc7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkI7QUFDM0MsY0FBYywyQ0FBMkM7QUFDekQsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYywrQ0FBK0M7QUFDN0QsY0FBYyxpQ0FBaUM7QUFDL0MsY0FBYyxpQ0FBaUM7QUFDL0MsY0FBYyxpQ0FBaUM7QUFDL0MsY0FBYyx1Q0FBdUM7QUFDckQsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYywyQ0FBMkM7QUFDekQsY0FBYywrQkFBK0I7QUFDN0MsY0FBYyxxQ0FBcUM7QUFDbkQsY0FBYyx1Q0FBdUM7QUFDckQsY0FBYyw2QkFBNkI7QUFDM0MsY0FBYywrQ0FBK0M7QUFDN0QsY0FBYyw2QkFBNkI7QUFDM0MsY0FBYyw2Q0FBNkM7QUFDM0QsY0FBYywrQkFBK0I7QUFDN0MsY0FBYyxpQ0FBaUM7QUFDL0MsY0FBYyx5Q0FBeUMifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcEFjdGlvbnMvYXBwQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2Nvbm5lY3Rpb25BY3Rpb25zL2Nvbm5lY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGVudEFjdGlvbnMvY29udGVudEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb252ZXJzYXRpb25BY3Rpb25zL2NvbnZlcnNhdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcm1BY3Rpb25zL2NybUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudEFjdGlvbnMvZXZlbnRBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdXBBY3Rpb25zL2dyb3VwQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlQWN0aW9ucy9pbWFnZUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NhdGlvbkFjdGlvbnMvbG9jYXRpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVzc2FnZUFjdGlvbnMvbWVzc2FnZUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uQWN0aW9ucy9wZXJtaXNzaW9uQWN0aW9ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc3RBY3Rpb25zL3Bvc3RBY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGVyc29uYUFjdGlvbnMvcGVyc29uYUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGlvbkFjdGlvbnMvcmVhY3Rpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzdEFjdGlvbnMvcmVzdEFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zc2VBY3Rpb25zL3NzZUFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25BY3Rpb25zL3N1YnNjcmlwdGlvbkFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90YWdBY3Rpb25zL3RhZ0FjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbkFjdGlvbnMvdHJhbnNsYXRpb25BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlckFjdGlvbnMvdXNlckFjdGlvbnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlb0FjdGlvbnMvdmlkZW9BY3Rpb25zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vic29ja2V0QWN0aW9ucy93ZWJzb2NrZXRBY3Rpb25zLmpzJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLDJDQUEyQztBQUN6RCxjQUFjLHFDQUFxQztBQUNuRCxjQUFjLCtDQUErQztBQUM3RCxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLGlDQUFpQztBQUMvQyxjQUFjLGlDQUFpQztBQUMvQyxjQUFjLGlDQUFpQztBQUMvQyxjQUFjLHVDQUF1QztBQUNyRCxjQUFjLHFDQUFxQztBQUNuRCxjQUFjLDJDQUEyQztBQUN6RCxjQUFjLCtCQUErQjtBQUM3QyxjQUFjLHFDQUFxQztBQUNuRCxjQUFjLHVDQUF1QztBQUNyRCxjQUFjLCtCQUErQjtBQUM3QyxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLCtDQUErQztBQUM3RCxjQUFjLDZCQUE2QjtBQUMzQyxjQUFjLDZDQUE2QztBQUMzRCxjQUFjLCtCQUErQjtBQUM3QyxjQUFjLGlDQUFpQztBQUMvQyxjQUFjLHlDQUF5QyJ9
@@ -0,0 +1,19 @@
1
+ import type { FluxFramework } from '@nlabs/arkhamjs';
2
+ import type { RestApiOptions, RestMethod } from '../../utils/api.js';
3
+ export declare const REST_CONSTANTS: {
4
+ readonly REQUEST_ERROR: "REST_REQUEST_ERROR";
5
+ readonly REQUEST_SUCCESS: "REST_REQUEST_SUCCESS";
6
+ };
7
+ export interface RestActionsOptions {
8
+ readonly authenticate?: boolean;
9
+ readonly requestOptions?: RestApiOptions;
10
+ }
11
+ export interface RestActions {
12
+ delete: <T = unknown>(endpoint: string, params?: unknown, requestOptions?: RestApiOptions) => Promise<T>;
13
+ get: <T = unknown>(endpoint: string, params?: unknown, requestOptions?: RestApiOptions) => Promise<T>;
14
+ post: <T = unknown>(endpoint: string, params?: unknown, requestOptions?: RestApiOptions) => Promise<T>;
15
+ put: <T = unknown>(endpoint: string, params?: unknown, requestOptions?: RestApiOptions) => Promise<T>;
16
+ request: <T = unknown>(endpoint: string, method?: RestMethod, params?: unknown, requestOptions?: RestApiOptions) => Promise<T>;
17
+ }
18
+ export declare const createRestActions: (flux: FluxFramework, options?: RestActionsOptions) => RestActions;
19
+ //# sourceMappingURL=restActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restActions.d.ts","sourceRoot":"","sources":["../../../src/actions/restActions/restActions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAE,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnE,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACzG,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtG,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACvG,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtG,OAAO,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAChI;AAED,eAAO,MAAM,iBAAiB,GAC5B,MAAM,aAAa,EACnB,UAAS,kBAAuB,KAC/B,WAkCF,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Copyright (c) 2026-Present, Nitrogen Labs, Inc.
3
+ * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
4
+ */ import { restRequest } from '../../utils/api.js';
5
+ export const REST_CONSTANTS = {
6
+ REQUEST_ERROR: 'REST_REQUEST_ERROR',
7
+ REQUEST_SUCCESS: 'REST_REQUEST_SUCCESS'
8
+ };
9
+ export const createRestActions = (flux, options = {})=>{
10
+ const buildRequestOptions = (requestOptions = {})=>({
11
+ ...options.requestOptions,
12
+ ...requestOptions,
13
+ authenticate: requestOptions.authenticate ?? options.authenticate ?? options.requestOptions?.authenticate
14
+ });
15
+ const request = async (endpoint, method = 'GET', params, requestOptions = {})=>{
16
+ try {
17
+ const result = await restRequest(flux, endpoint, method, params, buildRequestOptions(requestOptions));
18
+ await flux.dispatch({
19
+ result,
20
+ type: REST_CONSTANTS.REQUEST_SUCCESS
21
+ });
22
+ return result;
23
+ } catch (error) {
24
+ await flux.dispatch({
25
+ error,
26
+ type: REST_CONSTANTS.REQUEST_ERROR
27
+ });
28
+ throw error;
29
+ }
30
+ };
31
+ return {
32
+ delete: (endpoint, params, requestOptions)=>request(endpoint, 'DELETE', params, requestOptions),
33
+ get: (endpoint, params, requestOptions)=>request(endpoint, 'GET', params, requestOptions),
34
+ post: (endpoint, params, requestOptions)=>request(endpoint, 'POST', params, requestOptions),
35
+ put: (endpoint, params, requestOptions)=>request(endpoint, 'PUT', params, requestOptions),
36
+ request
37
+ };
38
+ };
39
+
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9yZXN0QWN0aW9ucy9yZXN0QWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNi1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtyZXN0UmVxdWVzdH0gZnJvbSAnLi4vLi4vdXRpbHMvYXBpLmpzJztcblxuaW1wb3J0IHR5cGUge0ZsdXhGcmFtZXdvcmt9IGZyb20gJ0BubGFicy9hcmtoYW1qcyc7XG5pbXBvcnQgdHlwZSB7UmVzdEFwaU9wdGlvbnMsIFJlc3RNZXRob2R9IGZyb20gJy4uLy4uL3V0aWxzL2FwaS5qcyc7XG5cbmV4cG9ydCBjb25zdCBSRVNUX0NPTlNUQU5UUyA9IHtcbiAgUkVRVUVTVF9FUlJPUjogJ1JFU1RfUkVRVUVTVF9FUlJPUicsXG4gIFJFUVVFU1RfU1VDQ0VTUzogJ1JFU1RfUkVRVUVTVF9TVUNDRVNTJ1xufSBhcyBjb25zdDtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0QWN0aW9uc09wdGlvbnMge1xuICByZWFkb25seSBhdXRoZW50aWNhdGU/OiBib29sZWFuO1xuICByZWFkb25seSByZXF1ZXN0T3B0aW9ucz86IFJlc3RBcGlPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RBY3Rpb25zIHtcbiAgZGVsZXRlOiA8VCA9IHVua25vd24+KGVuZHBvaW50OiBzdHJpbmcsIHBhcmFtcz86IHVua25vd24sIHJlcXVlc3RPcHRpb25zPzogUmVzdEFwaU9wdGlvbnMpID0+IFByb21pc2U8VD47XG4gIGdldDogPFQgPSB1bmtub3duPihlbmRwb2ludDogc3RyaW5nLCBwYXJhbXM/OiB1bmtub3duLCByZXF1ZXN0T3B0aW9ucz86IFJlc3RBcGlPcHRpb25zKSA9PiBQcm9taXNlPFQ+O1xuICBwb3N0OiA8VCA9IHVua25vd24+KGVuZHBvaW50OiBzdHJpbmcsIHBhcmFtcz86IHVua25vd24sIHJlcXVlc3RPcHRpb25zPzogUmVzdEFwaU9wdGlvbnMpID0+IFByb21pc2U8VD47XG4gIHB1dDogPFQgPSB1bmtub3duPihlbmRwb2ludDogc3RyaW5nLCBwYXJhbXM/OiB1bmtub3duLCByZXF1ZXN0T3B0aW9ucz86IFJlc3RBcGlPcHRpb25zKSA9PiBQcm9taXNlPFQ+O1xuICByZXF1ZXN0OiA8VCA9IHVua25vd24+KGVuZHBvaW50OiBzdHJpbmcsIG1ldGhvZD86IFJlc3RNZXRob2QsIHBhcmFtcz86IHVua25vd24sIHJlcXVlc3RPcHRpb25zPzogUmVzdEFwaU9wdGlvbnMpID0+IFByb21pc2U8VD47XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVSZXN0QWN0aW9ucyA9IChcbiAgZmx1eDogRmx1eEZyYW1ld29yayxcbiAgb3B0aW9uczogUmVzdEFjdGlvbnNPcHRpb25zID0ge31cbik6IFJlc3RBY3Rpb25zID0+IHtcbiAgY29uc3QgYnVpbGRSZXF1ZXN0T3B0aW9ucyA9IChyZXF1ZXN0T3B0aW9uczogUmVzdEFwaU9wdGlvbnMgPSB7fSk6IFJlc3RBcGlPcHRpb25zID0+ICh7XG4gICAgLi4ub3B0aW9ucy5yZXF1ZXN0T3B0aW9ucyxcbiAgICAuLi5yZXF1ZXN0T3B0aW9ucyxcbiAgICBhdXRoZW50aWNhdGU6IHJlcXVlc3RPcHRpb25zLmF1dGhlbnRpY2F0ZSA/PyBvcHRpb25zLmF1dGhlbnRpY2F0ZSA/PyBvcHRpb25zLnJlcXVlc3RPcHRpb25zPy5hdXRoZW50aWNhdGVcbiAgfSk7XG5cbiAgY29uc3QgcmVxdWVzdCA9IGFzeW5jIDxUID0gdW5rbm93bj4oXG4gICAgZW5kcG9pbnQ6IHN0cmluZyxcbiAgICBtZXRob2Q6IFJlc3RNZXRob2QgPSAnR0VUJyxcbiAgICBwYXJhbXM/OiB1bmtub3duLFxuICAgIHJlcXVlc3RPcHRpb25zOiBSZXN0QXBpT3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8VD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXN0UmVxdWVzdDxUPihmbHV4LCBlbmRwb2ludCwgbWV0aG9kLCBwYXJhbXMsIGJ1aWxkUmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpKTtcbiAgICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe3Jlc3VsdCwgdHlwZTogUkVTVF9DT05TVEFOVFMuUkVRVUVTVF9TVUNDRVNTfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGF3YWl0IGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBSRVNUX0NPTlNUQU5UUy5SRVFVRVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBkZWxldGU6IDxUID0gdW5rbm93bj4oZW5kcG9pbnQ6IHN0cmluZywgcGFyYW1zPzogdW5rbm93biwgcmVxdWVzdE9wdGlvbnM/OiBSZXN0QXBpT3B0aW9ucykgPT5cbiAgICAgIHJlcXVlc3Q8VD4oZW5kcG9pbnQsICdERUxFVEUnLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKSxcbiAgICBnZXQ6IDxUID0gdW5rbm93bj4oZW5kcG9pbnQ6IHN0cmluZywgcGFyYW1zPzogdW5rbm93biwgcmVxdWVzdE9wdGlvbnM/OiBSZXN0QXBpT3B0aW9ucykgPT5cbiAgICAgIHJlcXVlc3Q8VD4oZW5kcG9pbnQsICdHRVQnLCBwYXJhbXMsIHJlcXVlc3RPcHRpb25zKSxcbiAgICBwb3N0OiA8VCA9IHVua25vd24+KGVuZHBvaW50OiBzdHJpbmcsIHBhcmFtcz86IHVua25vd24sIHJlcXVlc3RPcHRpb25zPzogUmVzdEFwaU9wdGlvbnMpID0+XG4gICAgICByZXF1ZXN0PFQ+KGVuZHBvaW50LCAnUE9TVCcsIHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLFxuICAgIHB1dDogPFQgPSB1bmtub3duPihlbmRwb2ludDogc3RyaW5nLCBwYXJhbXM/OiB1bmtub3duLCByZXF1ZXN0T3B0aW9ucz86IFJlc3RBcGlPcHRpb25zKSA9PlxuICAgICAgcmVxdWVzdDxUPihlbmRwb2ludCwgJ1BVVCcsIHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLFxuICAgIHJlcXVlc3RcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsicmVzdFJlcXVlc3QiLCJSRVNUX0NPTlNUQU5UUyIsIlJFUVVFU1RfRVJST1IiLCJSRVFVRVNUX1NVQ0NFU1MiLCJjcmVhdGVSZXN0QWN0aW9ucyIsImZsdXgiLCJvcHRpb25zIiwiYnVpbGRSZXF1ZXN0T3B0aW9ucyIsInJlcXVlc3RPcHRpb25zIiwiYXV0aGVudGljYXRlIiwicmVxdWVzdCIsImVuZHBvaW50IiwibWV0aG9kIiwicGFyYW1zIiwicmVzdWx0IiwiZGlzcGF0Y2giLCJ0eXBlIiwiZXJyb3IiLCJkZWxldGUiLCJnZXQiLCJwb3N0IiwicHV0Il0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxXQUFXLFFBQU8scUJBQXFCO0FBSy9DLE9BQU8sTUFBTUMsaUJBQWlCO0lBQzVCQyxlQUFlO0lBQ2ZDLGlCQUFpQjtBQUNuQixFQUFXO0FBZVgsT0FBTyxNQUFNQyxvQkFBb0IsQ0FDL0JDLE1BQ0FDLFVBQThCLENBQUMsQ0FBQztJQUVoQyxNQUFNQyxzQkFBc0IsQ0FBQ0MsaUJBQWlDLENBQUMsQ0FBQyxHQUFzQixDQUFBO1lBQ3BGLEdBQUdGLFFBQVFFLGNBQWM7WUFDekIsR0FBR0EsY0FBYztZQUNqQkMsY0FBY0QsZUFBZUMsWUFBWSxJQUFJSCxRQUFRRyxZQUFZLElBQUlILFFBQVFFLGNBQWMsRUFBRUM7UUFDL0YsQ0FBQTtJQUVBLE1BQU1DLFVBQVUsT0FDZEMsVUFDQUMsU0FBcUIsS0FBSyxFQUMxQkMsUUFDQUwsaUJBQWlDLENBQUMsQ0FBQztRQUVuQyxJQUFJO1lBQ0YsTUFBTU0sU0FBUyxNQUFNZCxZQUFlSyxNQUFNTSxVQUFVQyxRQUFRQyxRQUFRTixvQkFBb0JDO1lBQ3hGLE1BQU1ILEtBQUtVLFFBQVEsQ0FBQztnQkFBQ0Q7Z0JBQVFFLE1BQU1mLGVBQWVFLGVBQWU7WUFBQTtZQUNqRSxPQUFPVztRQUNULEVBQUUsT0FBTUcsT0FBTztZQUNiLE1BQU1aLEtBQUtVLFFBQVEsQ0FBQztnQkFBQ0U7Z0JBQU9ELE1BQU1mLGVBQWVDLGFBQWE7WUFBQTtZQUM5RCxNQUFNZTtRQUNSO0lBQ0Y7SUFFQSxPQUFPO1FBQ0xDLFFBQVEsQ0FBY1AsVUFBa0JFLFFBQWtCTCxpQkFDeERFLFFBQVdDLFVBQVUsVUFBVUUsUUFBUUw7UUFDekNXLEtBQUssQ0FBY1IsVUFBa0JFLFFBQWtCTCxpQkFDckRFLFFBQVdDLFVBQVUsT0FBT0UsUUFBUUw7UUFDdENZLE1BQU0sQ0FBY1QsVUFBa0JFLFFBQWtCTCxpQkFDdERFLFFBQVdDLFVBQVUsUUFBUUUsUUFBUUw7UUFDdkNhLEtBQUssQ0FBY1YsVUFBa0JFLFFBQWtCTCxpQkFDckRFLFFBQVdDLFVBQVUsT0FBT0UsUUFBUUw7UUFDdENFO0lBQ0Y7QUFDRixFQUFFIn0=
@@ -13,6 +13,16 @@ export interface VerificationEmailOptions {
13
13
  readonly template?: string;
14
14
  readonly text?: string;
15
15
  }
16
+ export interface PasswordResetRequest {
17
+ readonly email?: string;
18
+ readonly phone?: string;
19
+ readonly username?: string;
20
+ }
21
+ export interface PasswordResetConfirmation extends PasswordResetRequest {
22
+ readonly code: string;
23
+ readonly password: string;
24
+ readonly type?: 'email' | 'phone';
25
+ }
16
26
  export interface UserApiResultsType {
17
27
  readonly users: {
18
28
  readonly activeCount?: number;
@@ -66,10 +76,12 @@ export interface userActions {
66
76
  listByReactions: (username: string, reactionNames: string[], from?: number, to?: number, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<User[]>;
67
77
  listByTags: (username: string, tagNames: string[], from?: number, to?: number, personaProps?: string[], requestOptions?: ActionRequestOptions) => Promise<User[]>;
68
78
  forgotPassword: (username: string, requestOptions?: ActionRequestOptions) => Promise<boolean>;
79
+ requestPasswordReset: (request: string | PasswordResetRequest, requestOptions?: ActionRequestOptions) => Promise<boolean>;
69
80
  isLoggedIn: () => boolean;
70
81
  refreshSession: (token?: string, expires?: number, requestOptions?: ActionRequestOptions) => Promise<SessionType>;
71
82
  remove: (userId: string, requestOptions?: ActionRequestOptions) => Promise<User>;
72
83
  resetPassword: (username: string, password: string, code: string, type: 'email' | 'phone', requestOptions?: ActionRequestOptions) => Promise<boolean>;
84
+ completePasswordReset: (confirmation: PasswordResetConfirmation, requestOptions?: ActionRequestOptions) => Promise<boolean>;
73
85
  search: (query: string, userProps?: string[], requestOptions?: ActionRequestOptions) => Promise<User[]>;
74
86
  sendVerificationEmail: (email: string, emailOptions?: VerificationEmailOptions, requestOptions?: ActionRequestOptions) => Promise<boolean>;
75
87
  session: (userProps?: string[], requestOptions?: ActionRequestOptions) => Promise<User>;
@@ -1 +1 @@
1
- {"version":3,"file":"userActions.d.ts","sourceRoot":"","sources":["../../../src/actions/userActions/userActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userActions.d.ts","sourceRoot":"","sources":["../../../src/actions/userActions/userActions.ts"],"names":[],"mappings":"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"}