@nlabs/metropolisjs 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/copilot-instructions.md +55 -167
- package/AGENTS.md +52 -10
- package/README.md +52 -2
- package/docs/ACTIONS.md +84 -22
- package/docs/assets/metropolisjs-logo.png +0 -0
- package/examples/factory-pattern-usage.ts +15 -10
- package/lex.config.mjs +5 -8
- package/lib/actions/appActions/appActions.d.ts.map +1 -1
- package/lib/actions/appActions/appActions.js +77 -6
- package/lib/actions/awsRumActions/awsRumActions.d.ts +34 -0
- package/lib/actions/awsRumActions/awsRumActions.d.ts.map +1 -0
- package/lib/actions/awsRumActions/awsRumActions.js +183 -0
- package/lib/actions/crmActions/crmActions.d.ts +87 -0
- package/lib/actions/crmActions/crmActions.d.ts.map +1 -0
- package/lib/actions/crmActions/crmActions.js +338 -0
- package/lib/actions/index.d.ts +3 -0
- package/lib/actions/index.d.ts.map +1 -1
- package/lib/actions/index.js +4 -1
- package/lib/actions/restActions/restActions.d.ts +19 -0
- package/lib/actions/restActions/restActions.d.ts.map +1 -0
- package/lib/actions/restActions/restActions.js +40 -0
- package/lib/actions/userActions/userActions.d.ts +12 -0
- package/lib/actions/userActions/userActions.d.ts.map +1 -1
- package/lib/actions/userActions/userActions.js +20 -4
- package/lib/adapters/appAdapter/appAdapter.d.ts +2 -2
- package/lib/adapters/appAdapter/appAdapter.d.ts.map +1 -1
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts +2 -2
- package/lib/adapters/arangoAdapter/arangoAdapter.d.ts.map +1 -1
- package/lib/adapters/contentAdapter/contentAdapter.d.ts +2 -2
- package/lib/adapters/contentAdapter/contentAdapter.d.ts.map +1 -1
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts +2 -2
- package/lib/adapters/conversationAdapter/conversationAdapter.d.ts.map +1 -1
- package/lib/adapters/eventAdapter/eventAdapter.d.ts +2 -2
- package/lib/adapters/eventAdapter/eventAdapter.d.ts.map +1 -1
- package/lib/adapters/fileAdapter/fileAdapter.d.ts +2 -2
- package/lib/adapters/fileAdapter/fileAdapter.d.ts.map +1 -1
- package/lib/adapters/groupAdapter/groupAdapter.d.ts +2 -2
- package/lib/adapters/groupAdapter/groupAdapter.d.ts.map +1 -1
- package/lib/adapters/imageAdapter/imageAdapter.d.ts +2 -2
- package/lib/adapters/imageAdapter/imageAdapter.d.ts.map +1 -1
- package/lib/adapters/locationAdapter/locationAdapter.d.ts +2 -2
- package/lib/adapters/locationAdapter/locationAdapter.d.ts.map +1 -1
- package/lib/adapters/messageAdapter/messageAdapter.d.ts +2 -2
- package/lib/adapters/messageAdapter/messageAdapter.d.ts.map +1 -1
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts +2 -2
- package/lib/adapters/permissionAdapter/permissionAdapter.d.ts.map +1 -1
- package/lib/adapters/personaAdapter/personaAdapter.d.ts +2 -2
- package/lib/adapters/personaAdapter/personaAdapter.d.ts.map +1 -1
- package/lib/adapters/postAdapter/postAdapter.d.ts +2 -2
- package/lib/adapters/postAdapter/postAdapter.d.ts.map +1 -1
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts +2 -2
- package/lib/adapters/reactionAdapter/reactionAdapter.d.ts.map +1 -1
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts +2 -2
- package/lib/adapters/reaktorAdapter/reaktorAdapter.d.ts.map +1 -1
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts +2 -2
- package/lib/adapters/sessionAdapter/sessionAdapter.d.ts.map +1 -1
- package/lib/adapters/tagAdapter/tagAdapter.d.ts +2 -2
- package/lib/adapters/tagAdapter/tagAdapter.d.ts.map +1 -1
- package/lib/adapters/translationAdapter/translationAdapter.d.ts +2 -2
- package/lib/adapters/translationAdapter/translationAdapter.d.ts.map +1 -1
- package/lib/adapters/userAdapter/userAdapter.d.ts +2 -2
- package/lib/adapters/userAdapter/userAdapter.d.ts.map +1 -1
- package/lib/adapters/videoAdapter/videoAdapter.d.ts +2 -2
- package/lib/adapters/videoAdapter/videoAdapter.d.ts.map +1 -1
- package/lib/config/index.d.ts +9 -0
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +1 -1
- package/lib/constants/Collections.d.ts +16 -0
- package/lib/constants/Collections.d.ts.map +1 -1
- package/lib/constants/Collections.js +17 -1
- package/lib/index.d.ts +6 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -3
- package/lib/stores/appStore.d.ts +10 -0
- package/lib/stores/appStore.d.ts.map +1 -1
- package/lib/stores/appStore.js +12 -2
- package/lib/tests/actionTestScenarios.d.ts +20 -0
- package/lib/tests/actionTestScenarios.d.ts.map +1 -0
- package/lib/tests/actionTestScenarios.js +851 -0
- package/lib/tests/testGraphQLServer.d.ts.map +1 -0
- package/lib/tests/testGraphQLServer.js +197 -0
- package/lib/tests/testGraphQLServerSimple.d.ts.map +1 -0
- package/lib/tests/testGraphQLServerSimple.js +52 -0
- package/lib/types/crm.types.d.ts +100 -0
- package/lib/types/crm.types.d.ts.map +1 -0
- package/lib/types/crm.types.js +6 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +2 -1
- package/lib/utils/MetropolisProvider.d.ts +1 -1
- package/lib/utils/MetropolisProvider.d.ts.map +1 -1
- package/lib/utils/actionFactory.d.ts +7 -4
- package/lib/utils/actionFactory.d.ts.map +1 -1
- package/lib/utils/actionFactory.js +13 -1
- package/lib/utils/api.d.ts +15 -2
- package/lib/utils/api.d.ts.map +1 -1
- package/lib/utils/api.js +120 -32
- package/lib/utils/baseActionFactory.d.ts +2 -2
- package/lib/utils/dateUtils.d.ts +1 -1
- package/lib/utils/dateUtils.d.ts.map +1 -1
- package/lib/utils/index.d.ts +2 -2
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +3 -3
- package/lib/utils/location.d.ts +1 -1
- package/lib/utils/location.d.ts.map +1 -1
- package/lib/utils/requestCache.d.ts +1 -1
- package/lib/utils/requestCache.d.ts.map +1 -1
- package/lib/utils/useMetropolis.d.ts +3 -0
- package/lib/utils/useMetropolis.d.ts.map +1 -1
- package/lib/utils/useMetropolis.js +39 -6
- package/lib/utils/validatorFactory.d.ts +1 -1
- package/lib/utils/validatorFactory.d.ts.map +1 -1
- package/package.json +12 -12
- package/tsconfig.lint.json +2 -2
- package/tsconfig.test.json +3 -2
- package/jest.config.mjs +0 -28
- package/lib/__tests__/e2e/helpers/testGraphQLServer.d.ts.map +0 -1
- package/lib/__tests__/e2e/helpers/testGraphQLServer.js +0 -197
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.d.ts.map +0 -1
- package/lib/__tests__/e2e/helpers/testGraphQLServerSimple.js +0 -52
- /package/lib/{__tests__/e2e/helpers → tests}/testGraphQLServer.d.ts +0 -0
- /package/lib/{__tests__/e2e/helpers → tests}/testGraphQLServerSimple.d.ts +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/ import { parseId, parseNum } from '@nlabs/utils';
|
|
5
5
|
import { validateAppInput } from '../../adapters/appAdapter/appAdapter.js';
|
|
6
|
+
import { APP_CONSTANTS } from '../../stores/appStore.js';
|
|
6
7
|
import { appMutation, appQuery } from '../../utils/api.js';
|
|
7
8
|
import { createBaseActions } from '../../utils/baseActionFactory.js';
|
|
8
9
|
import { clearCachedRequest, getCachedRequest, setCachedRequest } from '../../utils/requestCache.js';
|
|
@@ -21,11 +22,25 @@ export const createAppActions = (flux, options)=>{
|
|
|
21
22
|
value: appBase.validator(appData)
|
|
22
23
|
}
|
|
23
24
|
};
|
|
25
|
+
const onSuccess = (data)=>{
|
|
26
|
+
const app = data?.apps?.add || {};
|
|
27
|
+
return flux.dispatch({
|
|
28
|
+
app,
|
|
29
|
+
type: APP_CONSTANTS.ADD_ITEM_SUCCESS
|
|
30
|
+
});
|
|
31
|
+
};
|
|
24
32
|
return await appMutation(flux, 'add', DATA_TYPE, queryVariables, [
|
|
25
33
|
'appId',
|
|
26
34
|
...appProps
|
|
27
|
-
]
|
|
35
|
+
], {
|
|
36
|
+
...requestOptions,
|
|
37
|
+
onSuccess
|
|
38
|
+
});
|
|
28
39
|
} catch (error) {
|
|
40
|
+
flux.dispatch({
|
|
41
|
+
error,
|
|
42
|
+
type: APP_CONSTANTS.ADD_ITEM_ERROR
|
|
43
|
+
});
|
|
29
44
|
throw error;
|
|
30
45
|
} finally{
|
|
31
46
|
await clearCachedRequest(flux, 'app.list');
|
|
@@ -46,6 +61,13 @@ export const createAppActions = (flux, options)=>{
|
|
|
46
61
|
value: parseId(appId)
|
|
47
62
|
}
|
|
48
63
|
};
|
|
64
|
+
const onSuccess = (data)=>{
|
|
65
|
+
const app = data?.apps?.itemById || {};
|
|
66
|
+
return flux.dispatch({
|
|
67
|
+
app,
|
|
68
|
+
type: APP_CONSTANTS.GET_ITEM_SUCCESS
|
|
69
|
+
});
|
|
70
|
+
};
|
|
49
71
|
const result = await appQuery(flux, 'itemById', DATA_TYPE, queryVariables, [
|
|
50
72
|
'apiKey',
|
|
51
73
|
'appId',
|
|
@@ -57,12 +79,19 @@ export const createAppActions = (flux, options)=>{
|
|
|
57
79
|
'url',
|
|
58
80
|
'userId',
|
|
59
81
|
...appProps
|
|
60
|
-
]
|
|
82
|
+
], {
|
|
83
|
+
...requestOptions,
|
|
84
|
+
onSuccess
|
|
85
|
+
});
|
|
61
86
|
return await setCachedRequest(flux, `app.itemById:${appId}`, {
|
|
62
87
|
appId,
|
|
63
88
|
appProps
|
|
64
89
|
}, result, requestOptions);
|
|
65
90
|
} catch (error) {
|
|
91
|
+
flux.dispatch({
|
|
92
|
+
error,
|
|
93
|
+
type: APP_CONSTANTS.GET_ITEM_ERROR
|
|
94
|
+
});
|
|
66
95
|
throw error;
|
|
67
96
|
}
|
|
68
97
|
};
|
|
@@ -86,6 +115,13 @@ export const createAppActions = (flux, options)=>{
|
|
|
86
115
|
value: parseNum(to)
|
|
87
116
|
}
|
|
88
117
|
};
|
|
118
|
+
const onSuccess = (data)=>{
|
|
119
|
+
const list = data?.apps?.list || [];
|
|
120
|
+
return flux.dispatch({
|
|
121
|
+
list,
|
|
122
|
+
type: APP_CONSTANTS.GET_LIST_SUCCESS
|
|
123
|
+
});
|
|
124
|
+
};
|
|
89
125
|
const result = await appQuery(flux, 'list', DATA_TYPE, queryVariables, [
|
|
90
126
|
'apiKey',
|
|
91
127
|
'appId',
|
|
@@ -97,13 +133,20 @@ export const createAppActions = (flux, options)=>{
|
|
|
97
133
|
'url',
|
|
98
134
|
'userId',
|
|
99
135
|
...appProps
|
|
100
|
-
]
|
|
136
|
+
], {
|
|
137
|
+
...requestOptions,
|
|
138
|
+
onSuccess
|
|
139
|
+
});
|
|
101
140
|
return await setCachedRequest(flux, 'app.list', {
|
|
102
141
|
from,
|
|
103
142
|
to,
|
|
104
143
|
appProps
|
|
105
144
|
}, result, requestOptions);
|
|
106
145
|
} catch (error) {
|
|
146
|
+
flux.dispatch({
|
|
147
|
+
error,
|
|
148
|
+
type: APP_CONSTANTS.GET_LIST_ERROR
|
|
149
|
+
});
|
|
107
150
|
throw error;
|
|
108
151
|
}
|
|
109
152
|
};
|
|
@@ -115,11 +158,25 @@ export const createAppActions = (flux, options)=>{
|
|
|
115
158
|
value: parseId(appId)
|
|
116
159
|
}
|
|
117
160
|
};
|
|
161
|
+
const onSuccess = (data)=>{
|
|
162
|
+
const app = data?.apps?.remove || {};
|
|
163
|
+
return flux.dispatch({
|
|
164
|
+
app,
|
|
165
|
+
type: APP_CONSTANTS.REMOVE_ITEM_SUCCESS
|
|
166
|
+
});
|
|
167
|
+
};
|
|
118
168
|
return await appMutation(flux, 'remove', DATA_TYPE, queryVariables, [
|
|
119
169
|
'appId',
|
|
120
170
|
...appProps
|
|
121
|
-
]
|
|
171
|
+
], {
|
|
172
|
+
...requestOptions,
|
|
173
|
+
onSuccess
|
|
174
|
+
});
|
|
122
175
|
} catch (error) {
|
|
176
|
+
flux.dispatch({
|
|
177
|
+
error,
|
|
178
|
+
type: APP_CONSTANTS.REMOVE_ITEM_ERROR
|
|
179
|
+
});
|
|
123
180
|
throw error;
|
|
124
181
|
} finally{
|
|
125
182
|
await clearCachedRequest(flux, `app.itemById:${appId}`);
|
|
@@ -134,11 +191,25 @@ export const createAppActions = (flux, options)=>{
|
|
|
134
191
|
value: appBase.validator(app)
|
|
135
192
|
}
|
|
136
193
|
};
|
|
194
|
+
const onSuccess = (data)=>{
|
|
195
|
+
const updatedApp = data?.apps?.update || {};
|
|
196
|
+
return flux.dispatch({
|
|
197
|
+
app: updatedApp,
|
|
198
|
+
type: APP_CONSTANTS.UPDATE_ITEM_SUCCESS
|
|
199
|
+
});
|
|
200
|
+
};
|
|
137
201
|
return await appMutation(flux, 'update', DATA_TYPE, queryVariables, [
|
|
138
202
|
'appId',
|
|
139
203
|
...appProps
|
|
140
|
-
]
|
|
204
|
+
], {
|
|
205
|
+
...requestOptions,
|
|
206
|
+
onSuccess
|
|
207
|
+
});
|
|
141
208
|
} catch (error) {
|
|
209
|
+
flux.dispatch({
|
|
210
|
+
error,
|
|
211
|
+
type: APP_CONSTANTS.UPDATE_ITEM_ERROR
|
|
212
|
+
});
|
|
142
213
|
throw error;
|
|
143
214
|
} finally{
|
|
144
215
|
await clearCachedRequest(flux, `app.itemById:${String(app?.appId || '')}`);
|
|
@@ -156,4 +227,4 @@ export const createAppActions = (flux, options)=>{
|
|
|
156
227
|
};
|
|
157
228
|
};
|
|
158
229
|
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9hcHBBY3Rpb25zL2FwcEFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGVBcHBJbnB1dH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvYXBwQWRhcHRlci9hcHBBZGFwdGVyLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0FwcFR5cGV9IGZyb20gJy4uLy4uL3R5cGVzL2FwcHMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0Jhc2VBZGFwdGVyT3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uUmVxdWVzdE9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmNvbnN0IERBVEFfVFlQRSA9ICdhcHBzJztcblxuZXhwb3J0IHR5cGUgQXBwQWRhcHRlck9wdGlvbnMgPSBCYXNlQWRhcHRlck9wdGlvbnM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQWN0aW9uc09wdGlvbnMge1xuICBhcHBBZGFwdGVyPzogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQXBwQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgYXBwQWRhcHRlck9wdGlvbnM/OiBBcHBBZGFwdGVyT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgQXBwQXBpUmVzdWx0c1R5cGUgPSB7XG4gIGFwcHM6IHtcbiAgICBhZGQ/OiBBcHBUeXBlO1xuICAgIGl0ZW1CeUlkPzogQXBwVHlwZTtcbiAgICBsaXN0PzogQXBwVHlwZVtdO1xuICAgIHJlbW92ZT86IEFwcFR5cGU7XG4gICAgdXBkYXRlPzogQXBwVHlwZTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQWN0aW9ucyB7XG4gIGFkZDogKGFwcERhdGE6IFBhcnRpYWw8QXBwVHlwZT4sIGFwcFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8QXBwVHlwZT47XG4gIGRlbGV0ZTogKGFwcElkOiBzdHJpbmcsIGFwcFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8QXBwVHlwZT47XG4gIGl0ZW1CeUlkOiAoYXBwSWQ6IHN0cmluZywgYXBwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxBcHBUeXBlPjtcbiAgbGlzdDogKGZyb20/OiBudW1iZXIsIHRvPzogbnVtYmVyLCBhcHBQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPEFwcFR5cGVbXT47XG4gIHVwZGF0ZTogKGFwcDogUGFydGlhbDxBcHBUeXBlPiwgYXBwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxBcHBUeXBlPjtcbiAgdXBkYXRlQXBwQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IEFwcEFkYXB0ZXJPcHRpb25zKSA9PiBhbnkpID0+IHZvaWQ7XG4gIHVwZGF0ZUFwcEFkYXB0ZXJPcHRpb25zOiAob3B0aW9uczogQXBwQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGRlZmF1bHRBcHBWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBBcHBBZGFwdGVyT3B0aW9ucykgPT5cbiAgdmFsaWRhdGVBcHBJbnB1dChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBcHBBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogQXBwQWN0aW9uc09wdGlvbnNcbik6IEFwcEFjdGlvbnMgPT4ge1xuICBjb25zdCBhcHBCYXNlID0gY3JlYXRlQmFzZUFjdGlvbnMoZmx1eCwgZGVmYXVsdEFwcFZhbGlkYXRvciwge1xuICAgIGFkYXB0ZXI6IG9wdGlvbnM/LmFwcEFkYXB0ZXIsXG4gICAgYWRhcHRlck9wdGlvbnM6IG9wdGlvbnM/LmFwcEFkYXB0ZXJPcHRpb25zXG4gIH0pO1xuXG4gIGNvbnN0IGFkZCA9IGFzeW5jIChcbiAgICBhcHBEYXRhOiBQYXJ0aWFsPEFwcFR5cGU+LFxuICAgIGFwcFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgYXBwOiB7XG4gICAgICAgICAgdHlwZTogJ0FwcElucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGFwcEJhc2UudmFsaWRhdG9yKGFwcERhdGEpXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxBcHBUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2FkZCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYXBwSWQnLCAuLi5hcHBQcm9wc11cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnYXBwLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaXRlbUJ5SWQgPSBhc3luYyAoYXBwSWQ6IHN0cmluZywgYXBwUHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8QXBwVHlwZT4oZmx1eCwgYGFwcC5pdGVtQnlJZDoke2FwcElkfWAsIHthcHBJZCwgYXBwUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBhcHBJZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKGFwcElkKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxBcHBUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2l0ZW1CeUlkJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgW1xuICAgICAgICAgICdhcGlLZXknLFxuICAgICAgICAgICdhcHBJZCcsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnaW1hZ2VVcmwnLFxuICAgICAgICAgICdpc0FjdGl2ZScsXG4gICAgICAgICAgJ25hbWUnLFxuICAgICAgICAgICdzZXR0aW5ncycsXG4gICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgLi4uYXBwUHJvcHNcbiAgICAgICAgXVxuICAgICAgKTtcbiAgICAgIHJldHVybiBhd2FpdCBzZXRDYWNoZWRSZXF1ZXN0KGZsdXgsIGBhcHAuaXRlbUJ5SWQ6JHthcHBJZH1gLCB7YXBwSWQsIGFwcFByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGxpc3QgPSBhc3luYyAoXG4gICAgZnJvbTogbnVtYmVyID0gMCxcbiAgICB0bzogbnVtYmVyID0gMTAsXG4gICAgYXBwUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxBcHBUeXBlW10+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gZ2V0Q2FjaGVkUmVxdWVzdDxBcHBUeXBlW10+KGZsdXgsICdhcHAubGlzdCcsIHtmcm9tLCB0bywgYXBwUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBmcm9tOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKGZyb20pXG4gICAgICAgIH0sXG4gICAgICAgIHRvOiB7XG4gICAgICAgICAgdHlwZTogJ0ludCcsXG4gICAgICAgICAgdmFsdWU6IHBhcnNlTnVtKHRvKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcHBRdWVyeTxBcHBUeXBlW10+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnbGlzdCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFtcbiAgICAgICAgICAnYXBpS2V5JyxcbiAgICAgICAgICAnYXBwSWQnLFxuICAgICAgICAgICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgJ2ltYWdlVXJsJyxcbiAgICAgICAgICAnaXNBY3RpdmUnLFxuICAgICAgICAgICduYW1lJyxcbiAgICAgICAgICAnc2V0dGluZ3MnLFxuICAgICAgICAgICd1cmwnLFxuICAgICAgICAgICd1c2VySWQnLFxuICAgICAgICAgIC4uLmFwcFByb3BzXG4gICAgICAgIF1cbiAgICAgICk7XG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCAnYXBwLmxpc3QnLCB7ZnJvbSwgdG8sIGFwcFByb3BzfSwgcmVzdWx0LCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRlbGV0ZUFwcCA9IGFzeW5jIChcbiAgICBhcHBJZDogc3RyaW5nLFxuICAgIGFwcFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgYXBwSWQ6IHtcbiAgICAgICAgICB0eXBlOiAnSUQhJyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VJZChhcHBJZClcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGF3YWl0IGFwcE11dGF0aW9uPEFwcFR5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAncmVtb3ZlJyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgWydhcHBJZCcsIC4uLmFwcFByb3BzXVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsIGBhcHAuaXRlbUJ5SWQ6JHthcHBJZH1gKTtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnYXBwLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlID0gYXN5bmMgKFxuICAgIGFwcDogUGFydGlhbDxBcHBUeXBlPixcbiAgICBhcHBQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEFwcFR5cGU+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGFwcDoge1xuICAgICAgICAgIHR5cGU6ICdBcHBVcGRhdGVJbnB1dCEnLFxuICAgICAgICAgIHZhbHVlOiBhcHBCYXNlLnZhbGlkYXRvcihhcHApXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxBcHBUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ3VwZGF0ZScsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYXBwSWQnLCAuLi5hcHBQcm9wc11cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgYXBwLml0ZW1CeUlkOiR7U3RyaW5nKGFwcD8uYXBwSWQgfHwgJycpfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdhcHAubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFkZCxcbiAgICBkZWxldGU6IGRlbGV0ZUFwcCxcbiAgICBpdGVtQnlJZCxcbiAgICBsaXN0LFxuICAgIHVwZGF0ZSxcbiAgICB1cGRhdGVBcHBBZGFwdGVyOiBhcHBCYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlQXBwQWRhcHRlck9wdGlvbnM6IGFwcEJhc2UudXBkYXRlT3B0aW9uc1xuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUlkIiwicGFyc2VOdW0iLCJ2YWxpZGF0ZUFwcElucHV0IiwiYXBwTXV0YXRpb24iLCJhcHBRdWVyeSIsImNyZWF0ZUJhc2VBY3Rpb25zIiwiY2xlYXJDYWNoZWRSZXF1ZXN0IiwiZ2V0Q2FjaGVkUmVxdWVzdCIsInNldENhY2hlZFJlcXVlc3QiLCJEQVRBX1RZUEUiLCJkZWZhdWx0QXBwVmFsaWRhdG9yIiwiaW5wdXQiLCJvcHRpb25zIiwiY3JlYXRlQXBwQWN0aW9ucyIsImZsdXgiLCJhcHBCYXNlIiwiYWRhcHRlciIsImFwcEFkYXB0ZXIiLCJhZGFwdGVyT3B0aW9ucyIsImFwcEFkYXB0ZXJPcHRpb25zIiwiYWRkIiwiYXBwRGF0YSIsImFwcFByb3BzIiwicmVxdWVzdE9wdGlvbnMiLCJxdWVyeVZhcmlhYmxlcyIsImFwcCIsInR5cGUiLCJ2YWx1ZSIsInZhbGlkYXRvciIsImVycm9yIiwiaXRlbUJ5SWQiLCJhcHBJZCIsImNhY2hlZFJlc3VsdCIsInVuZGVmaW5lZCIsInJlc3VsdCIsImxpc3QiLCJmcm9tIiwidG8iLCJkZWxldGVBcHAiLCJ1cGRhdGUiLCJTdHJpbmciLCJkZWxldGUiLCJ1cGRhdGVBcHBBZGFwdGVyIiwidXBkYXRlQWRhcHRlciIsInVwZGF0ZUFwcEFkYXB0ZXJPcHRpb25zIiwidXBkYXRlT3B0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBTyxFQUFFQyxRQUFRLFFBQU8sZUFBZTtBQUUvQyxTQUFRQyxnQkFBZ0IsUUFBTywwQ0FBMEM7QUFDekUsU0FBUUMsV0FBVyxFQUFFQyxRQUFRLFFBQU8scUJBQXFCO0FBQ3pELFNBQVFDLGlCQUFpQixRQUFPLG1DQUFtQztBQUNuRSxTQUFRQyxrQkFBa0IsRUFBRUMsZ0JBQWdCLEVBQUVDLGdCQUFnQixRQUFPLDhCQUE4QjtBQU9uRyxNQUFNQyxZQUFZO0FBNkJsQixNQUFNQyxzQkFBc0IsQ0FBQ0MsT0FBZ0JDLFVBQzNDVixpQkFBaUJTO0FBRW5CLE9BQU8sTUFBTUUsbUJBQW1CLENBQzlCQyxNQUNBRjtJQUVBLE1BQU1HLFVBQVVWLGtCQUFrQlMsTUFBTUoscUJBQXFCO1FBQzNETSxTQUFTSixTQUFTSztRQUNsQkMsZ0JBQWdCTixTQUFTTztJQUMzQjtJQUVBLE1BQU1DLE1BQU0sT0FDVkMsU0FDQUMsV0FBcUIsRUFBRSxFQUN2QkMsaUJBQXVDLENBQUMsQ0FBQztRQUV6QyxJQUFJO1lBQ0YsTUFBTUMsaUJBQWlCO2dCQUNyQkMsS0FBSztvQkFDSEMsTUFBTTtvQkFDTkMsT0FBT1osUUFBUWEsU0FBUyxDQUFDUDtnQkFDM0I7WUFDRjtZQUVBLE9BQU8sTUFBTWxCLFlBQ1hXLE1BQ0EsT0FDQUwsV0FDQWUsZ0JBQ0E7Z0JBQUM7bUJBQVlGO2FBQVM7UUFFMUIsRUFBRSxPQUFNTyxPQUFPO1lBQ2IsTUFBTUE7UUFDUixTQUFVO1lBQ1IsTUFBTXZCLG1CQUFtQlEsTUFBTTtRQUNqQztJQUNGO0lBRUEsTUFBTWdCLFdBQVcsT0FBT0MsT0FBZVQsV0FBcUIsRUFBRSxFQUFFQyxpQkFBdUMsQ0FBQyxDQUFDO1FB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
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9hcHBBY3Rpb25zL2FwcEFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cGFyc2VJZCwgcGFyc2VOdW19IGZyb20gJ0BubGFicy91dGlscyc7XG5cbmltcG9ydCB7dmFsaWRhdGVBcHBJbnB1dH0gZnJvbSAnLi4vLi4vYWRhcHRlcnMvYXBwQWRhcHRlci9hcHBBZGFwdGVyLmpzJztcbmltcG9ydCB7QVBQX0NPTlNUQU5UU30gZnJvbSAnLi4vLi4vc3RvcmVzL2FwcFN0b3JlLmpzJztcbmltcG9ydCB7YXBwTXV0YXRpb24sIGFwcFF1ZXJ5fSBmcm9tICcuLi8uLi91dGlscy9hcGkuanMnO1xuaW1wb3J0IHtjcmVhdGVCYXNlQWN0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvYmFzZUFjdGlvbkZhY3RvcnkuanMnO1xuaW1wb3J0IHtjbGVhckNhY2hlZFJlcXVlc3QsIGdldENhY2hlZFJlcXVlc3QsIHNldENhY2hlZFJlcXVlc3R9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuaW1wb3J0IHR5cGUge0FwcFR5cGV9IGZyb20gJy4uLy4uL3R5cGVzL2FwcHMudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0Jhc2VBZGFwdGVyT3B0aW9uc30gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9yRmFjdG9yeS5qcyc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uUmVxdWVzdE9wdGlvbnN9IGZyb20gJy4uLy4uL3V0aWxzL3JlcXVlc3RDYWNoZS5qcyc7XG5cbmNvbnN0IERBVEFfVFlQRSA9ICdhcHBzJztcblxuZXhwb3J0IHR5cGUgQXBwQWRhcHRlck9wdGlvbnMgPSBCYXNlQWRhcHRlck9wdGlvbnM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQWN0aW9uc09wdGlvbnMge1xuICBhcHBBZGFwdGVyPzogKGlucHV0OiB1bmtub3duLCBvcHRpb25zPzogQXBwQWRhcHRlck9wdGlvbnMpID0+IGFueTtcbiAgYXBwQWRhcHRlck9wdGlvbnM/OiBBcHBBZGFwdGVyT3B0aW9ucztcbn1cblxuZXhwb3J0IHR5cGUgQXBwQXBpUmVzdWx0c1R5cGUgPSB7XG4gIGFwcHM6IHtcbiAgICBhZGQ/OiBBcHBUeXBlO1xuICAgIGl0ZW1CeUlkPzogQXBwVHlwZTtcbiAgICBsaXN0PzogQXBwVHlwZVtdO1xuICAgIHJlbW92ZT86IEFwcFR5cGU7XG4gICAgdXBkYXRlPzogQXBwVHlwZTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQWN0aW9ucyB7XG4gIGFkZDogKGFwcERhdGE6IFBhcnRpYWw8QXBwVHlwZT4sIGFwcFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8QXBwVHlwZT47XG4gIGRlbGV0ZTogKGFwcElkOiBzdHJpbmcsIGFwcFByb3BzPzogc3RyaW5nW10sIHJlcXVlc3RPcHRpb25zPzogQWN0aW9uUmVxdWVzdE9wdGlvbnMpID0+IFByb21pc2U8QXBwVHlwZT47XG4gIGl0ZW1CeUlkOiAoYXBwSWQ6IHN0cmluZywgYXBwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxBcHBUeXBlPjtcbiAgbGlzdDogKGZyb20/OiBudW1iZXIsIHRvPzogbnVtYmVyLCBhcHBQcm9wcz86IHN0cmluZ1tdLCByZXF1ZXN0T3B0aW9ucz86IEFjdGlvblJlcXVlc3RPcHRpb25zKSA9PiBQcm9taXNlPEFwcFR5cGVbXT47XG4gIHVwZGF0ZTogKGFwcDogUGFydGlhbDxBcHBUeXBlPiwgYXBwUHJvcHM/OiBzdHJpbmdbXSwgcmVxdWVzdE9wdGlvbnM/OiBBY3Rpb25SZXF1ZXN0T3B0aW9ucykgPT4gUHJvbWlzZTxBcHBUeXBlPjtcbiAgdXBkYXRlQXBwQWRhcHRlcjogKGFkYXB0ZXI6IChpbnB1dDogdW5rbm93biwgb3B0aW9ucz86IEFwcEFkYXB0ZXJPcHRpb25zKSA9PiBhbnkpID0+IHZvaWQ7XG4gIHVwZGF0ZUFwcEFkYXB0ZXJPcHRpb25zOiAob3B0aW9uczogQXBwQWRhcHRlck9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGRlZmF1bHRBcHBWYWxpZGF0b3IgPSAoaW5wdXQ6IHVua25vd24sIG9wdGlvbnM/OiBBcHBBZGFwdGVyT3B0aW9ucykgPT5cbiAgdmFsaWRhdGVBcHBJbnB1dChpbnB1dCk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBcHBBY3Rpb25zID0gKFxuICBmbHV4OiBGbHV4RnJhbWV3b3JrLFxuICBvcHRpb25zPzogQXBwQWN0aW9uc09wdGlvbnNcbik6IEFwcEFjdGlvbnMgPT4ge1xuICBjb25zdCBhcHBCYXNlID0gY3JlYXRlQmFzZUFjdGlvbnMoZmx1eCwgZGVmYXVsdEFwcFZhbGlkYXRvciwge1xuICAgIGFkYXB0ZXI6IG9wdGlvbnM/LmFwcEFkYXB0ZXIsXG4gICAgYWRhcHRlck9wdGlvbnM6IG9wdGlvbnM/LmFwcEFkYXB0ZXJPcHRpb25zXG4gIH0pO1xuXG4gIGNvbnN0IGFkZCA9IGFzeW5jIChcbiAgICBhcHBEYXRhOiBQYXJ0aWFsPEFwcFR5cGU+LFxuICAgIGFwcFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgYXBwOiB7XG4gICAgICAgICAgdHlwZTogJ0FwcElucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGFwcEJhc2UudmFsaWRhdG9yKGFwcERhdGEpXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBwQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgYXBwID0gZGF0YT8uYXBwcz8uYWRkIHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7YXBwLCB0eXBlOiBBUFBfQ09OU1RBTlRTLkFERF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxBcHBUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ2FkZCcsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYXBwSWQnLCAuLi5hcHBQcm9wc10sXG4gICAgICAgIHsuLi5yZXF1ZXN0T3B0aW9ucywgb25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQVBQX0NPTlNUQU5UUy5BRERfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCAnYXBwLmxpc3QnKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaXRlbUJ5SWQgPSBhc3luYyAoYXBwSWQ6IHN0cmluZywgYXBwUHJvcHM6IHN0cmluZ1tdID0gW10sIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IGdldENhY2hlZFJlcXVlc3Q8QXBwVHlwZT4oZmx1eCwgYGFwcC5pdGVtQnlJZDoke2FwcElkfWAsIHthcHBJZCwgYXBwUHJvcHN9LCByZXF1ZXN0T3B0aW9ucyk7XG5cbiAgICAgIGlmKGNhY2hlZFJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWRSZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBhcHBJZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKGFwcElkKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEFwcEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwcCA9IGRhdGE/LmFwcHM/Lml0ZW1CeUlkIHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7YXBwLCB0eXBlOiBBUFBfQ09OU1RBTlRTLkdFVF9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PEFwcFR5cGU+KFxuICAgICAgICBmbHV4LFxuICAgICAgICAnaXRlbUJ5SWQnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbXG4gICAgICAgICAgJ2FwaUtleScsXG4gICAgICAgICAgJ2FwcElkJyxcbiAgICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgICdpbWFnZVVybCcsXG4gICAgICAgICAgJ2lzQWN0aXZlJyxcbiAgICAgICAgICAnbmFtZScsXG4gICAgICAgICAgJ3NldHRpbmdzJyxcbiAgICAgICAgICAndXJsJyxcbiAgICAgICAgICAndXNlcklkJyxcbiAgICAgICAgICAuLi5hcHBQcm9wc1xuICAgICAgICBdLFxuICAgICAgICB7Li4ucmVxdWVzdE9wdGlvbnMsIG9uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgICByZXR1cm4gYXdhaXQgc2V0Q2FjaGVkUmVxdWVzdChmbHV4LCBgYXBwLml0ZW1CeUlkOiR7YXBwSWR9YCwge2FwcElkLCBhcHBQcm9wc30sIHJlc3VsdCwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBBUFBfQ09OU1RBTlRTLkdFVF9JVEVNX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgbGlzdCA9IGFzeW5jIChcbiAgICBmcm9tOiBudW1iZXIgPSAwLFxuICAgIHRvOiBudW1iZXIgPSAxMCxcbiAgICBhcHBQcm9wczogc3RyaW5nW10gPSBbXSxcbiAgICByZXF1ZXN0T3B0aW9uczogQWN0aW9uUmVxdWVzdE9wdGlvbnMgPSB7fVxuICApOiBQcm9taXNlPEFwcFR5cGVbXT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjYWNoZWRSZXN1bHQgPSBnZXRDYWNoZWRSZXF1ZXN0PEFwcFR5cGVbXT4oZmx1eCwgJ2FwcC5saXN0Jywge2Zyb20sIHRvLCBhcHBQcm9wc30sIHJlcXVlc3RPcHRpb25zKTtcblxuICAgICAgaWYoY2FjaGVkUmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGNhY2hlZFJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnlWYXJpYWJsZXMgPSB7XG4gICAgICAgIGZyb206IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0oZnJvbSlcbiAgICAgICAgfSxcbiAgICAgICAgdG86IHtcbiAgICAgICAgICB0eXBlOiAnSW50JyxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VOdW0odG8pXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoZGF0YTogQXBwQXBpUmVzdWx0c1R5cGUpID0+IHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGE/LmFwcHM/Lmxpc3QgfHwgW107XG4gICAgICAgIHJldHVybiBmbHV4LmRpc3BhdGNoKHtsaXN0LCB0eXBlOiBBUFBfQ09OU1RBTlRTLkdFVF9MSVNUX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwcFF1ZXJ5PEFwcFR5cGVbXT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdsaXN0JyxcbiAgICAgICAgREFUQV9UWVBFLFxuICAgICAgICBxdWVyeVZhcmlhYmxlcyxcbiAgICAgICAgW1xuICAgICAgICAgICdhcGlLZXknLFxuICAgICAgICAgICdhcHBJZCcsXG4gICAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICAnaW1hZ2VVcmwnLFxuICAgICAgICAgICdpc0FjdGl2ZScsXG4gICAgICAgICAgJ25hbWUnLFxuICAgICAgICAgICdzZXR0aW5ncycsXG4gICAgICAgICAgJ3VybCcsXG4gICAgICAgICAgJ3VzZXJJZCcsXG4gICAgICAgICAgLi4uYXBwUHJvcHNcbiAgICAgICAgXSxcbiAgICAgICAgey4uLnJlcXVlc3RPcHRpb25zLCBvblN1Y2Nlc3N9XG4gICAgICApO1xuICAgICAgcmV0dXJuIGF3YWl0IHNldENhY2hlZFJlcXVlc3QoZmx1eCwgJ2FwcC5saXN0Jywge2Zyb20sIHRvLCBhcHBQcm9wc30sIHJlc3VsdCwgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIGZsdXguZGlzcGF0Y2goe2Vycm9yLCB0eXBlOiBBUFBfQ09OU1RBTlRTLkdFVF9MSVNUX0VSUk9SfSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGVsZXRlQXBwID0gYXN5bmMgKFxuICAgIGFwcElkOiBzdHJpbmcsXG4gICAgYXBwUHJvcHM6IHN0cmluZ1tdID0gW10sXG4gICAgcmVxdWVzdE9wdGlvbnM6IEFjdGlvblJlcXVlc3RPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxBcHBUeXBlPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHF1ZXJ5VmFyaWFibGVzID0ge1xuICAgICAgICBhcHBJZDoge1xuICAgICAgICAgIHR5cGU6ICdJRCEnLFxuICAgICAgICAgIHZhbHVlOiBwYXJzZUlkKGFwcElkKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3Qgb25TdWNjZXNzID0gKGRhdGE6IEFwcEFwaVJlc3VsdHNUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwcCA9IGRhdGE/LmFwcHM/LnJlbW92ZSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIGZsdXguZGlzcGF0Y2goe2FwcCwgdHlwZTogQVBQX0NPTlNUQU5UUy5SRU1PVkVfSVRFTV9TVUNDRVNTfSk7XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgYXBwTXV0YXRpb248QXBwVHlwZT4oXG4gICAgICAgIGZsdXgsXG4gICAgICAgICdyZW1vdmUnLFxuICAgICAgICBEQVRBX1RZUEUsXG4gICAgICAgIHF1ZXJ5VmFyaWFibGVzLFxuICAgICAgICBbJ2FwcElkJywgLi4uYXBwUHJvcHNdLFxuICAgICAgICB7Li4ucmVxdWVzdE9wdGlvbnMsIG9uU3VjY2Vzc31cbiAgICAgICk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgZmx1eC5kaXNwYXRjaCh7ZXJyb3IsIHR5cGU6IEFQUF9DT05TVEFOVFMuUkVNT1ZFX0lURU1fRVJST1J9KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBjbGVhckNhY2hlZFJlcXVlc3QoZmx1eCwgYGFwcC5pdGVtQnlJZDoke2FwcElkfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdhcHAubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCB1cGRhdGUgPSBhc3luYyAoXG4gICAgYXBwOiBQYXJ0aWFsPEFwcFR5cGU+LFxuICAgIGFwcFByb3BzOiBzdHJpbmdbXSA9IFtdLFxuICAgIHJlcXVlc3RPcHRpb25zOiBBY3Rpb25SZXF1ZXN0T3B0aW9ucyA9IHt9XG4gICk6IFByb21pc2U8QXBwVHlwZT4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBxdWVyeVZhcmlhYmxlcyA9IHtcbiAgICAgICAgYXBwOiB7XG4gICAgICAgICAgdHlwZTogJ0FwcFVwZGF0ZUlucHV0IScsXG4gICAgICAgICAgdmFsdWU6IGFwcEJhc2UudmFsaWRhdG9yKGFwcClcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChkYXRhOiBBcHBBcGlSZXN1bHRzVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkQXBwID0gZGF0YT8uYXBwcz8udXBkYXRlIHx8IHt9O1xuICAgICAgICByZXR1cm4gZmx1eC5kaXNwYXRjaCh7YXBwOiB1cGRhdGVkQXBwLCB0eXBlOiBBUFBfQ09OU1RBTlRTLlVQREFURV9JVEVNX1NVQ0NFU1N9KTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCBhcHBNdXRhdGlvbjxBcHBUeXBlPihcbiAgICAgICAgZmx1eCxcbiAgICAgICAgJ3VwZGF0ZScsXG4gICAgICAgIERBVEFfVFlQRSxcbiAgICAgICAgcXVlcnlWYXJpYWJsZXMsXG4gICAgICAgIFsnYXBwSWQnLCAuLi5hcHBQcm9wc10sXG4gICAgICAgIHsuLi5yZXF1ZXN0T3B0aW9ucywgb25TdWNjZXNzfVxuICAgICAgKTtcbiAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICBmbHV4LmRpc3BhdGNoKHtlcnJvciwgdHlwZTogQVBQX0NPTlNUQU5UUy5VUERBVEVfSVRFTV9FUlJPUn0pO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGNsZWFyQ2FjaGVkUmVxdWVzdChmbHV4LCBgYXBwLml0ZW1CeUlkOiR7U3RyaW5nKGFwcD8uYXBwSWQgfHwgJycpfWApO1xuICAgICAgYXdhaXQgY2xlYXJDYWNoZWRSZXF1ZXN0KGZsdXgsICdhcHAubGlzdCcpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGFkZCxcbiAgICBkZWxldGU6IGRlbGV0ZUFwcCxcbiAgICBpdGVtQnlJZCxcbiAgICBsaXN0LFxuICAgIHVwZGF0ZSxcbiAgICB1cGRhdGVBcHBBZGFwdGVyOiBhcHBCYXNlLnVwZGF0ZUFkYXB0ZXIsXG4gICAgdXBkYXRlQXBwQWRhcHRlck9wdGlvbnM6IGFwcEJhc2UudXBkYXRlT3B0aW9uc1xuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJwYXJzZUlkIiwicGFyc2VOdW0iLCJ2YWxpZGF0ZUFwcElucHV0IiwiQVBQX0NPTlNUQU5UUyIsImFwcE11dGF0aW9uIiwiYXBwUXVlcnkiLCJjcmVhdGVCYXNlQWN0aW9ucyIsImNsZWFyQ2FjaGVkUmVxdWVzdCIsImdldENhY2hlZFJlcXVlc3QiLCJzZXRDYWNoZWRSZXF1ZXN0IiwiREFUQV9UWVBFIiwiZGVmYXVsdEFwcFZhbGlkYXRvciIsImlucHV0Iiwib3B0aW9ucyIsImNyZWF0ZUFwcEFjdGlvbnMiLCJmbHV4IiwiYXBwQmFzZSIsImFkYXB0ZXIiLCJhcHBBZGFwdGVyIiwiYWRhcHRlck9wdGlvbnMiLCJhcHBBZGFwdGVyT3B0aW9ucyIsImFkZCIsImFwcERhdGEiLCJhcHBQcm9wcyIsInJlcXVlc3RPcHRpb25zIiwicXVlcnlWYXJpYWJsZXMiLCJhcHAiLCJ0eXBlIiwidmFsdWUiLCJ2YWxpZGF0b3IiLCJvblN1Y2Nlc3MiLCJkYXRhIiwiYXBwcyIsImRpc3BhdGNoIiwiQUREX0lURU1fU1VDQ0VTUyIsImVycm9yIiwiQUREX0lURU1fRVJST1IiLCJpdGVtQnlJZCIsImFwcElkIiwiY2FjaGVkUmVzdWx0IiwidW5kZWZpbmVkIiwiR0VUX0lURU1fU1VDQ0VTUyIsInJlc3VsdCIsIkdFVF9JVEVNX0VSUk9SIiwibGlzdCIsImZyb20iLCJ0byIsIkdFVF9MSVNUX1NVQ0NFU1MiLCJHRVRfTElTVF9FUlJPUiIsImRlbGV0ZUFwcCIsInJlbW92ZSIsIlJFTU9WRV9JVEVNX1NVQ0NFU1MiLCJSRU1PVkVfSVRFTV9FUlJPUiIsInVwZGF0ZSIsInVwZGF0ZWRBcHAiLCJVUERBVEVfSVRFTV9TVUNDRVNTIiwiVVBEQVRFX0lURU1fRVJST1IiLCJTdHJpbmciLCJkZWxldGUiLCJ1cGRhdGVBcHBBZGFwdGVyIiwidXBkYXRlQWRhcHRlciIsInVwZGF0ZUFwcEFkYXB0ZXJPcHRpb25zIiwidXBkYXRlT3B0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBTyxFQUFFQyxRQUFRLFFBQU8sZUFBZTtBQUUvQyxTQUFRQyxnQkFBZ0IsUUFBTywwQ0FBMEM7QUFDekUsU0FBUUMsYUFBYSxRQUFPLDJCQUEyQjtBQUN2RCxTQUFRQyxXQUFXLEVBQUVDLFFBQVEsUUFBTyxxQkFBcUI7QUFDekQsU0FBUUMsaUJBQWlCLFFBQU8sbUNBQW1DO0FBQ25FLFNBQVFDLGtCQUFrQixFQUFFQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLFFBQU8sOEJBQThCO0FBT25HLE1BQU1DLFlBQVk7QUE2QmxCLE1BQU1DLHNCQUFzQixDQUFDQyxPQUFnQkMsVUFDM0NYLGlCQUFpQlU7QUFFbkIsT0FBTyxNQUFNRSxtQkFBbUIsQ0FDOUJDLE1BQ0FGO0lBRUEsTUFBTUcsVUFBVVYsa0JBQWtCUyxNQUFNSixxQkFBcUI7UUFDM0RNLFNBQVNKLFNBQVNLO1FBQ2xCQyxnQkFBZ0JOLFNBQVNPO0lBQzNCO0lBRUEsTUFBTUMsTUFBTSxPQUNWQyxTQUNBQyxXQUFxQixFQUFFLEVBQ3ZCQyxpQkFBdUMsQ0FBQyxDQUFDO1FBRXpDLElBQUk7WUFDRixNQUFNQyxpQkFBaUI7Z0JBQ3JCQyxLQUFLO29CQUNIQyxNQUFNO29CQUNOQyxPQUFPWixRQUFRYSxTQUFTLENBQUNQO2dCQUMzQjtZQUNGO1lBQ0EsTUFBTVEsWUFBWSxDQUFDQztnQkFDakIsTUFBTUwsTUFBTUssTUFBTUMsTUFBTVgsT0FBTyxDQUFDO2dCQUNoQyxPQUFPTixLQUFLa0IsUUFBUSxDQUFDO29CQUFDUDtvQkFBS0MsTUFBTXhCLGNBQWMrQixnQkFBZ0I7Z0JBQUE7WUFDakU7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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
+
export declare const AWS_RUM_CONSTANTS: {
|
|
3
|
+
readonly TRACK_ERROR: "AWS_RUM_TRACK_ERROR";
|
|
4
|
+
readonly TRACK_QUEUED: "AWS_RUM_TRACK_QUEUED";
|
|
5
|
+
readonly TRACK_SUCCESS: "AWS_RUM_TRACK_SUCCESS";
|
|
6
|
+
};
|
|
7
|
+
export type AwsRumEventType = 'click' | 'page_view' | (string & {});
|
|
8
|
+
export type AwsRumProperty = boolean | number | string;
|
|
9
|
+
export interface AwsRumTrackInput {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
readonly path?: string;
|
|
12
|
+
readonly properties?: Record<string, AwsRumProperty>;
|
|
13
|
+
readonly type: AwsRumEventType;
|
|
14
|
+
}
|
|
15
|
+
export interface AwsRumEvent extends AwsRumTrackInput {
|
|
16
|
+
readonly eventId: string;
|
|
17
|
+
readonly journeyId: string;
|
|
18
|
+
readonly sequence: number;
|
|
19
|
+
readonly timestamp: number;
|
|
20
|
+
}
|
|
21
|
+
export interface AwsRumActionsOptions {
|
|
22
|
+
readonly appId?: string;
|
|
23
|
+
readonly debounceMs?: number;
|
|
24
|
+
readonly dedupeMs?: number;
|
|
25
|
+
readonly enabled?: boolean;
|
|
26
|
+
readonly throttleMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface AwsRumActions {
|
|
29
|
+
readonly destroy: () => Promise<void>;
|
|
30
|
+
readonly flush: () => Promise<void>;
|
|
31
|
+
readonly track: (event: AwsRumTrackInput) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare const createAwsRumActions: (flux: FluxFramework, options?: AwsRumActionsOptions) => AwsRumActions;
|
|
34
|
+
//# sourceMappingURL=awsRumActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awsRumActions.d.ts","sourceRoot":"","sources":["../../../src/actions/awsRumActions/awsRumActions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACnD;AAyDD,eAAO,MAAM,mBAAmB,GAC9B,MAAM,aAAa,EACnB,UAAS,oBAAyB,KACjC,aAyHF,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
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 { rumMutation } from '../../utils/api.js';
|
|
5
|
+
export const AWS_RUM_CONSTANTS = {
|
|
6
|
+
TRACK_ERROR: 'AWS_RUM_TRACK_ERROR',
|
|
7
|
+
TRACK_QUEUED: 'AWS_RUM_TRACK_QUEUED',
|
|
8
|
+
TRACK_SUCCESS: 'AWS_RUM_TRACK_SUCCESS'
|
|
9
|
+
};
|
|
10
|
+
const DEFAULT_DEBOUNCE_MS = 250;
|
|
11
|
+
const DEFAULT_DEDUPE_MS = 1000;
|
|
12
|
+
const DEFAULT_THROTTLE_MS = 1000;
|
|
13
|
+
const MAX_PROPERTIES = 20;
|
|
14
|
+
const MAX_SEEN_EVENTS = 500;
|
|
15
|
+
const createId = ()=>{
|
|
16
|
+
if (typeof globalThis.crypto?.randomUUID === 'function') {
|
|
17
|
+
return globalThis.crypto.randomUUID();
|
|
18
|
+
}
|
|
19
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
20
|
+
};
|
|
21
|
+
const normalizeText = (value, maxLength)=>String(value || '').trim().slice(0, maxLength);
|
|
22
|
+
const sanitizeProperties = (properties = {})=>Object.entries(properties).slice(0, MAX_PROPERTIES).reduce((result, [key, value])=>{
|
|
23
|
+
const propertyKey = normalizeText(key, 64);
|
|
24
|
+
if (!propertyKey || ![
|
|
25
|
+
'boolean',
|
|
26
|
+
'number',
|
|
27
|
+
'string'
|
|
28
|
+
].includes(typeof value)) {
|
|
29
|
+
return result;
|
|
30
|
+
}
|
|
31
|
+
result[propertyKey] = typeof value === 'string' ? normalizeText(value, 256) : value;
|
|
32
|
+
return result;
|
|
33
|
+
}, {});
|
|
34
|
+
const sanitizeEvent = (event)=>{
|
|
35
|
+
const name = normalizeText(event.name, 128);
|
|
36
|
+
const type = normalizeText(event.type, 64);
|
|
37
|
+
if (!name || !type) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const path = normalizeText(event.path, 256).split('?')[0].split('#')[0];
|
|
41
|
+
return {
|
|
42
|
+
name,
|
|
43
|
+
...path ? {
|
|
44
|
+
path
|
|
45
|
+
} : {},
|
|
46
|
+
properties: sanitizeProperties(event.properties),
|
|
47
|
+
type
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const eventFingerprint = (event)=>{
|
|
51
|
+
const properties = Object.entries(event.properties || {}).sort(([left], [right])=>left.localeCompare(right));
|
|
52
|
+
return JSON.stringify([
|
|
53
|
+
event.type,
|
|
54
|
+
event.name,
|
|
55
|
+
event.path || '',
|
|
56
|
+
properties
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
export const createAwsRumActions = (flux, options = {})=>{
|
|
60
|
+
const appId = normalizeText(options.appId, 128);
|
|
61
|
+
const debounceMs = Math.max(0, options.debounceMs ?? DEFAULT_DEBOUNCE_MS);
|
|
62
|
+
const dedupeMs = Math.max(0, options.dedupeMs ?? DEFAULT_DEDUPE_MS);
|
|
63
|
+
const enabled = options.enabled !== false;
|
|
64
|
+
const throttleMs = Math.max(0, options.throttleMs ?? DEFAULT_THROTTLE_MS);
|
|
65
|
+
const journeyId = createId();
|
|
66
|
+
const pendingEvents = new Map();
|
|
67
|
+
const seenEvents = new Map();
|
|
68
|
+
let flushPromise;
|
|
69
|
+
let lastFlushAt = 0;
|
|
70
|
+
let sequence = 0;
|
|
71
|
+
let timer;
|
|
72
|
+
const pruneSeenEvents = ()=>{
|
|
73
|
+
if (seenEvents.size <= MAX_SEEN_EVENTS) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const cutoff = Date.now() - dedupeMs;
|
|
77
|
+
seenEvents.forEach((timestamp, fingerprint)=>{
|
|
78
|
+
if (timestamp < cutoff) {
|
|
79
|
+
seenEvents.delete(fingerprint);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
const flush = async ()=>{
|
|
84
|
+
if (flushPromise) {
|
|
85
|
+
return flushPromise;
|
|
86
|
+
}
|
|
87
|
+
if (!enabled || !appId || pendingEvents.size === 0) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (timer) {
|
|
91
|
+
clearTimeout(timer);
|
|
92
|
+
timer = undefined;
|
|
93
|
+
}
|
|
94
|
+
const events = [
|
|
95
|
+
...pendingEvents.values()
|
|
96
|
+
];
|
|
97
|
+
pendingEvents.clear();
|
|
98
|
+
lastFlushAt = Date.now();
|
|
99
|
+
flushPromise = rumMutation(flux, 'track', 'rum', {
|
|
100
|
+
batch: {
|
|
101
|
+
type: 'RumBatchInput!',
|
|
102
|
+
value: {
|
|
103
|
+
appId,
|
|
104
|
+
events
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}, [
|
|
108
|
+
'accepted',
|
|
109
|
+
'appId'
|
|
110
|
+
]).then(async ()=>{
|
|
111
|
+
await flux.dispatch({
|
|
112
|
+
appId,
|
|
113
|
+
events,
|
|
114
|
+
type: AWS_RUM_CONSTANTS.TRACK_SUCCESS
|
|
115
|
+
});
|
|
116
|
+
}).catch(async (error)=>{
|
|
117
|
+
events.forEach((event)=>pendingEvents.set(eventFingerprint(event), event));
|
|
118
|
+
await flux.dispatch({
|
|
119
|
+
appId,
|
|
120
|
+
error,
|
|
121
|
+
events,
|
|
122
|
+
type: AWS_RUM_CONSTANTS.TRACK_ERROR
|
|
123
|
+
});
|
|
124
|
+
}).finally(()=>{
|
|
125
|
+
flushPromise = undefined;
|
|
126
|
+
});
|
|
127
|
+
return flushPromise;
|
|
128
|
+
};
|
|
129
|
+
const scheduleFlush = ()=>{
|
|
130
|
+
if (timer) {
|
|
131
|
+
clearTimeout(timer);
|
|
132
|
+
}
|
|
133
|
+
const throttleRemaining = Math.max(0, throttleMs - (Date.now() - lastFlushAt));
|
|
134
|
+
timer = setTimeout(()=>void flush(), Math.max(debounceMs, throttleRemaining));
|
|
135
|
+
};
|
|
136
|
+
const track = (input)=>{
|
|
137
|
+
if (!enabled || !appId) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const event = sanitizeEvent(input);
|
|
141
|
+
if (!event) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const fingerprint = eventFingerprint(event);
|
|
145
|
+
const now = Date.now();
|
|
146
|
+
const lastSeenAt = seenEvents.get(fingerprint) || 0;
|
|
147
|
+
if (seenEvents.has(fingerprint) && now - lastSeenAt < dedupeMs) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
seenEvents.set(fingerprint, now);
|
|
151
|
+
pruneSeenEvents();
|
|
152
|
+
sequence += 1;
|
|
153
|
+
const queuedEvent = {
|
|
154
|
+
...event,
|
|
155
|
+
eventId: createId(),
|
|
156
|
+
journeyId,
|
|
157
|
+
sequence,
|
|
158
|
+
timestamp: now
|
|
159
|
+
};
|
|
160
|
+
pendingEvents.set(fingerprint, queuedEvent);
|
|
161
|
+
void flux.dispatch({
|
|
162
|
+
appId,
|
|
163
|
+
event: queuedEvent,
|
|
164
|
+
type: AWS_RUM_CONSTANTS.TRACK_QUEUED
|
|
165
|
+
});
|
|
166
|
+
scheduleFlush();
|
|
167
|
+
};
|
|
168
|
+
const destroy = async ()=>{
|
|
169
|
+
if (timer) {
|
|
170
|
+
clearTimeout(timer);
|
|
171
|
+
timer = undefined;
|
|
172
|
+
}
|
|
173
|
+
await flush();
|
|
174
|
+
seenEvents.clear();
|
|
175
|
+
};
|
|
176
|
+
return {
|
|
177
|
+
destroy,
|
|
178
|
+
flush,
|
|
179
|
+
track
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L21ldHJvcG9saXNqcy9zcmMvYWN0aW9ucy9hd3NSdW1BY3Rpb25zL2F3c1J1bUFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjYtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7cnVtTXV0YXRpb259IGZyb20gJy4uLy4uL3V0aWxzL2FwaS5qcyc7XG5cbmltcG9ydCB0eXBlIHtGbHV4RnJhbWV3b3JrfSBmcm9tICdAbmxhYnMvYXJraGFtanMnO1xuXG5leHBvcnQgY29uc3QgQVdTX1JVTV9DT05TVEFOVFMgPSB7XG4gIFRSQUNLX0VSUk9SOiAnQVdTX1JVTV9UUkFDS19FUlJPUicsXG4gIFRSQUNLX1FVRVVFRDogJ0FXU19SVU1fVFJBQ0tfUVVFVUVEJyxcbiAgVFJBQ0tfU1VDQ0VTUzogJ0FXU19SVU1fVFJBQ0tfU1VDQ0VTUydcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEF3c1J1bUV2ZW50VHlwZSA9ICdjbGljaycgfCAncGFnZV92aWV3JyB8IChzdHJpbmcgJiB7fSk7XG5leHBvcnQgdHlwZSBBd3NSdW1Qcm9wZXJ0eSA9IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdzUnVtVHJhY2tJbnB1dCB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIEF3c1J1bVByb3BlcnR5PjtcbiAgcmVhZG9ubHkgdHlwZTogQXdzUnVtRXZlbnRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c1J1bUV2ZW50IGV4dGVuZHMgQXdzUnVtVHJhY2tJbnB1dCB7XG4gIHJlYWRvbmx5IGV2ZW50SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgam91cm5leUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcXVlbmNlOiBudW1iZXI7XG4gIHJlYWRvbmx5IHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF3c1J1bUFjdGlvbnNPcHRpb25zIHtcbiAgcmVhZG9ubHkgYXBwSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlYm91bmNlTXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGRlZHVwZU1zPzogbnVtYmVyO1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGhyb3R0bGVNcz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBd3NSdW1BY3Rpb25zIHtcbiAgcmVhZG9ubHkgZGVzdHJveTogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgcmVhZG9ubHkgZmx1c2g6ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHJlYWRvbmx5IHRyYWNrOiAoZXZlbnQ6IEF3c1J1bVRyYWNrSW5wdXQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfTVMgPSAyNTA7XG5jb25zdCBERUZBVUxUX0RFRFVQRV9NUyA9IDEwMDA7XG5jb25zdCBERUZBVUxUX1RIUk9UVExFX01TID0gMTAwMDtcbmNvbnN0IE1BWF9QUk9QRVJUSUVTID0gMjA7XG5jb25zdCBNQVhfU0VFTl9FVkVOVFMgPSA1MDA7XG5cbmNvbnN0IGNyZWF0ZUlkID0gKCk6IHN0cmluZyA9PiB7XG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmNyeXB0bz8ucmFuZG9tVVVJRCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21VVUlEKCk7XG4gIH1cblxuICByZXR1cm4gYCR7RGF0ZS5ub3coKS50b1N0cmluZygzNil9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9YDtcbn07XG5cbmNvbnN0IG5vcm1hbGl6ZVRleHQgPSAodmFsdWU6IHVua25vd24sIG1heExlbmd0aDogbnVtYmVyKTogc3RyaW5nID0+XG4gIFN0cmluZyh2YWx1ZSB8fCAnJykudHJpbSgpLnNsaWNlKDAsIG1heExlbmd0aCk7XG5cbmNvbnN0IHNhbml0aXplUHJvcGVydGllcyA9IChcbiAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgQXdzUnVtUHJvcGVydHk+ID0ge31cbik6IFJlY29yZDxzdHJpbmcsIEF3c1J1bVByb3BlcnR5PiA9PiBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzKVxuICAuc2xpY2UoMCwgTUFYX1BST1BFUlRJRVMpXG4gIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgQXdzUnVtUHJvcGVydHk+PigocmVzdWx0LCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eUtleSA9IG5vcm1hbGl6ZVRleHQoa2V5LCA2NCk7XG5cbiAgICBpZighcHJvcGVydHlLZXkgfHwgIVsnYm9vbGVhbicsICdudW1iZXInLCAnc3RyaW5nJ10uaW5jbHVkZXModHlwZW9mIHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXN1bHRbcHJvcGVydHlLZXldID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IG5vcm1hbGl6ZVRleHQodmFsdWUsIDI1NikgOiB2YWx1ZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LCB7fSk7XG5cbmNvbnN0IHNhbml0aXplRXZlbnQgPSAoZXZlbnQ6IEF3c1J1bVRyYWNrSW5wdXQpOiBBd3NSdW1UcmFja0lucHV0IHwgbnVsbCA9PiB7XG4gIGNvbnN0IG5hbWUgPSBub3JtYWxpemVUZXh0KGV2ZW50Lm5hbWUsIDEyOCk7XG4gIGNvbnN0IHR5cGUgPSBub3JtYWxpemVUZXh0KGV2ZW50LnR5cGUsIDY0KTtcblxuICBpZighbmFtZSB8fCAhdHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IG5vcm1hbGl6ZVRleHQoZXZlbnQucGF0aCwgMjU2KS5zcGxpdCgnPycpWzBdLnNwbGl0KCcjJylbMF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIC4uLihwYXRoID8ge3BhdGh9IDoge30pLFxuICAgIHByb3BlcnRpZXM6IHNhbml0aXplUHJvcGVydGllcyhldmVudC5wcm9wZXJ0aWVzKSxcbiAgICB0eXBlXG4gIH07XG59O1xuXG5jb25zdCBldmVudEZpbmdlcnByaW50ID0gKGV2ZW50OiBBd3NSdW1UcmFja0lucHV0KTogc3RyaW5nID0+IHtcbiAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5lbnRyaWVzKGV2ZW50LnByb3BlcnRpZXMgfHwge30pLnNvcnQoKFtsZWZ0XSwgW3JpZ2h0XSkgPT4gbGVmdC5sb2NhbGVDb21wYXJlKHJpZ2h0KSk7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbZXZlbnQudHlwZSwgZXZlbnQubmFtZSwgZXZlbnQucGF0aCB8fCAnJywgcHJvcGVydGllc10pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUF3c1J1bUFjdGlvbnMgPSAoXG4gIGZsdXg6IEZsdXhGcmFtZXdvcmssXG4gIG9wdGlvbnM6IEF3c1J1bUFjdGlvbnNPcHRpb25zID0ge31cbik6IEF3c1J1bUFjdGlvbnMgPT4ge1xuICBjb25zdCBhcHBJZCA9IG5vcm1hbGl6ZVRleHQob3B0aW9ucy5hcHBJZCwgMTI4KTtcbiAgY29uc3QgZGVib3VuY2VNcyA9IE1hdGgubWF4KDAsIG9wdGlvbnMuZGVib3VuY2VNcyA/PyBERUZBVUxUX0RFQk9VTkNFX01TKTtcbiAgY29uc3QgZGVkdXBlTXMgPSBNYXRoLm1heCgwLCBvcHRpb25zLmRlZHVwZU1zID8/IERFRkFVTFRfREVEVVBFX01TKTtcbiAgY29uc3QgZW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlZCAhPT0gZmFsc2U7XG4gIGNvbnN0IHRocm90dGxlTXMgPSBNYXRoLm1heCgwLCBvcHRpb25zLnRocm90dGxlTXMgPz8gREVGQVVMVF9USFJPVFRMRV9NUyk7XG4gIGNvbnN0IGpvdXJuZXlJZCA9IGNyZWF0ZUlkKCk7XG4gIGNvbnN0IHBlbmRpbmdFdmVudHMgPSBuZXcgTWFwPHN0cmluZywgQXdzUnVtRXZlbnQ+KCk7XG4gIGNvbnN0IHNlZW5FdmVudHMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBsZXQgZmx1c2hQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkO1xuICBsZXQgbGFzdEZsdXNoQXQgPSAwO1xuICBsZXQgc2VxdWVuY2UgPSAwO1xuICBsZXQgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHBydW5lU2VlbkV2ZW50cyA9ICgpOiB2b2lkID0+IHtcbiAgICBpZihzZWVuRXZlbnRzLnNpemUgPD0gTUFYX1NFRU5fRVZFTlRTKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3V0b2ZmID0gRGF0ZS5ub3coKSAtIGRlZHVwZU1zO1xuICAgIHNlZW5FdmVudHMuZm9yRWFjaCgodGltZXN0YW1wLCBmaW5nZXJwcmludCkgPT4ge1xuICAgICAgaWYodGltZXN0YW1wIDwgY3V0b2ZmKSB7XG4gICAgICAgIHNlZW5FdmVudHMuZGVsZXRlKGZpbmdlcnByaW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICBjb25zdCBmbHVzaCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZihmbHVzaFByb21pc2UpIHtcbiAgICAgIHJldHVybiBmbHVzaFByb21pc2U7XG4gICAgfVxuXG4gICAgaWYoIWVuYWJsZWQgfHwgIWFwcElkIHx8IHBlbmRpbmdFdmVudHMuc2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmKHRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgdGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnRzID0gWy4uLnBlbmRpbmdFdmVudHMudmFsdWVzKCldO1xuICAgIHBlbmRpbmdFdmVudHMuY2xlYXIoKTtcbiAgICBsYXN0Rmx1c2hBdCA9IERhdGUubm93KCk7XG5cbiAgICBmbHVzaFByb21pc2UgPSBydW1NdXRhdGlvbihmbHV4LCAndHJhY2snLCAncnVtJywge1xuICAgICAgYmF0Y2g6IHtcbiAgICAgICAgdHlwZTogJ1J1bUJhdGNoSW5wdXQhJyxcbiAgICAgICAgdmFsdWU6IHthcHBJZCwgZXZlbnRzfVxuICAgICAgfVxuICAgIH0sIFsnYWNjZXB0ZWQnLCAnYXBwSWQnXSlcbiAgICAgIC50aGVuKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgZmx1eC5kaXNwYXRjaCh7YXBwSWQsIGV2ZW50cywgdHlwZTogQVdTX1JVTV9DT05TVEFOVFMuVFJBQ0tfU1VDQ0VTU30pO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChhc3luYyAoZXJyb3IpID0+IHtcbiAgICAgICAgZXZlbnRzLmZvckVhY2goKGV2ZW50KSA9PiBwZW5kaW5nRXZlbnRzLnNldChldmVudEZpbmdlcnByaW50KGV2ZW50KSwgZXZlbnQpKTtcbiAgICAgICAgYXdhaXQgZmx1eC5kaXNwYXRjaCh7YXBwSWQsIGVycm9yLCBldmVudHMsIHR5cGU6IEFXU19SVU1fQ09OU1RBTlRTLlRSQUNLX0VSUk9SfSk7XG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBmbHVzaFByb21pc2UgPSB1bmRlZmluZWQ7XG4gICAgICB9KTtcblxuICAgIHJldHVybiBmbHVzaFByb21pc2U7XG4gIH07XG5cbiAgY29uc3Qgc2NoZWR1bGVGbHVzaCA9ICgpOiB2b2lkID0+IHtcbiAgICBpZih0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aHJvdHRsZVJlbWFpbmluZyA9IE1hdGgubWF4KDAsIHRocm90dGxlTXMgLSAoRGF0ZS5ub3coKSAtIGxhc3RGbHVzaEF0KSk7XG4gICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHZvaWQgZmx1c2goKSwgTWF0aC5tYXgoZGVib3VuY2VNcywgdGhyb3R0bGVSZW1haW5pbmcpKTtcbiAgfTtcblxuICBjb25zdCB0cmFjayA9IChpbnB1dDogQXdzUnVtVHJhY2tJbnB1dCk6IHZvaWQgPT4ge1xuICAgIGlmKCFlbmFibGVkIHx8ICFhcHBJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50ID0gc2FuaXRpemVFdmVudChpbnB1dCk7XG5cbiAgICBpZighZXZlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5nZXJwcmludCA9IGV2ZW50RmluZ2VycHJpbnQoZXZlbnQpO1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbGFzdFNlZW5BdCA9IHNlZW5FdmVudHMuZ2V0KGZpbmdlcnByaW50KSB8fCAwO1xuXG4gICAgaWYoc2VlbkV2ZW50cy5oYXMoZmluZ2VycHJpbnQpICYmIG5vdyAtIGxhc3RTZWVuQXQgPCBkZWR1cGVNcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlZW5FdmVudHMuc2V0KGZpbmdlcnByaW50LCBub3cpO1xuICAgIHBydW5lU2VlbkV2ZW50cygpO1xuICAgIHNlcXVlbmNlICs9IDE7XG5cbiAgICBjb25zdCBxdWV1ZWRFdmVudDogQXdzUnVtRXZlbnQgPSB7XG4gICAgICAuLi5ldmVudCxcbiAgICAgIGV2ZW50SWQ6IGNyZWF0ZUlkKCksXG4gICAgICBqb3VybmV5SWQsXG4gICAgICBzZXF1ZW5jZSxcbiAgICAgIHRpbWVzdGFtcDogbm93XG4gICAgfTtcblxuICAgIHBlbmRpbmdFdmVudHMuc2V0KGZpbmdlcnByaW50LCBxdWV1ZWRFdmVudCk7XG4gICAgdm9pZCBmbHV4LmRpc3BhdGNoKHthcHBJZCwgZXZlbnQ6IHF1ZXVlZEV2ZW50LCB0eXBlOiBBV1NfUlVNX0NPTlNUQU5UUy5UUkFDS19RVUVVRUR9KTtcbiAgICBzY2hlZHVsZUZsdXNoKCk7XG4gIH07XG5cbiAgY29uc3QgZGVzdHJveSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBpZih0aW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGF3YWl0IGZsdXNoKCk7XG4gICAgc2VlbkV2ZW50cy5jbGVhcigpO1xuICB9O1xuXG4gIHJldHVybiB7ZGVzdHJveSwgZmx1c2gsIHRyYWNrfTtcbn07XG4iXSwibmFtZXMiOlsicnVtTXV0YXRpb24iLCJBV1NfUlVNX0NPTlNUQU5UUyIsIlRSQUNLX0VSUk9SIiwiVFJBQ0tfUVVFVUVEIiwiVFJBQ0tfU1VDQ0VTUyIsIkRFRkFVTFRfREVCT1VOQ0VfTVMiLCJERUZBVUxUX0RFRFVQRV9NUyIsIkRFRkFVTFRfVEhST1RUTEVfTVMiLCJNQVhfUFJPUEVSVElFUyIsIk1BWF9TRUVOX0VWRU5UUyIsImNyZWF0ZUlkIiwiZ2xvYmFsVGhpcyIsImNyeXB0byIsInJhbmRvbVVVSUQiLCJEYXRlIiwibm93IiwidG9TdHJpbmciLCJNYXRoIiwicmFuZG9tIiwic2xpY2UiLCJub3JtYWxpemVUZXh0IiwidmFsdWUiLCJtYXhMZW5ndGgiLCJTdHJpbmciLCJ0cmltIiwic2FuaXRpemVQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJyZXN1bHQiLCJrZXkiLCJwcm9wZXJ0eUtleSIsImluY2x1ZGVzIiwic2FuaXRpemVFdmVudCIsImV2ZW50IiwibmFtZSIsInR5cGUiLCJwYXRoIiwic3BsaXQiLCJldmVudEZpbmdlcnByaW50Iiwic29ydCIsImxlZnQiLCJyaWdodCIsImxvY2FsZUNvbXBhcmUiLCJKU09OIiwic3RyaW5naWZ5IiwiY3JlYXRlQXdzUnVtQWN0aW9ucyIsImZsdXgiLCJvcHRpb25zIiwiYXBwSWQiLCJkZWJvdW5jZU1zIiwibWF4IiwiZGVkdXBlTXMiLCJlbmFibGVkIiwidGhyb3R0bGVNcyIsImpvdXJuZXlJZCIsInBlbmRpbmdFdmVudHMiLCJNYXAiLCJzZWVuRXZlbnRzIiwiZmx1c2hQcm9taXNlIiwibGFzdEZsdXNoQXQiLCJzZXF1ZW5jZSIsInRpbWVyIiwicHJ1bmVTZWVuRXZlbnRzIiwic2l6ZSIsImN1dG9mZiIsImZvckVhY2giLCJ0aW1lc3RhbXAiLCJmaW5nZXJwcmludCIsImRlbGV0ZSIsImZsdXNoIiwiY2xlYXJUaW1lb3V0IiwidW5kZWZpbmVkIiwiZXZlbnRzIiwidmFsdWVzIiwiY2xlYXIiLCJiYXRjaCIsInRoZW4iLCJkaXNwYXRjaCIsImNhdGNoIiwiZXJyb3IiLCJzZXQiLCJmaW5hbGx5Iiwic2NoZWR1bGVGbHVzaCIsInRocm90dGxlUmVtYWluaW5nIiwic2V0VGltZW91dCIsInRyYWNrIiwiaW5wdXQiLCJsYXN0U2VlbkF0IiwiZ2V0IiwiaGFzIiwicXVldWVkRXZlbnQiLCJldmVudElkIiwiZGVzdHJveSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsV0FBVyxRQUFPLHFCQUFxQjtBQUkvQyxPQUFPLE1BQU1DLG9CQUFvQjtJQUMvQkMsYUFBYTtJQUNiQyxjQUFjO0lBQ2RDLGVBQWU7QUFDakIsRUFBVztBQWlDWCxNQUFNQyxzQkFBc0I7QUFDNUIsTUFBTUMsb0JBQW9CO0FBQzFCLE1BQU1DLHNCQUFzQjtBQUM1QixNQUFNQyxpQkFBaUI7QUFDdkIsTUFBTUMsa0JBQWtCO0FBRXhCLE1BQU1DLFdBQVc7SUFDZixJQUFHLE9BQU9DLFdBQVdDLE1BQU0sRUFBRUMsZUFBZSxZQUFZO1FBQ3RELE9BQU9GLFdBQVdDLE1BQU0sQ0FBQ0MsVUFBVTtJQUNyQztJQUVBLE9BQU8sR0FBR0MsS0FBS0MsR0FBRyxHQUFHQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUVDLEtBQUtDLE1BQU0sR0FBR0YsUUFBUSxDQUFDLElBQUlHLEtBQUssQ0FBQyxJQUFJO0FBQzVFO0FBRUEsTUFBTUMsZ0JBQWdC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
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { FluxFramework } from '@nlabs/arkhamjs';
|
|
2
|
+
import type { User } from '../../adapters/userAdapter/userAdapter.js';
|
|
3
|
+
import type { ApiOptions } from '../../utils/api.js';
|
|
4
|
+
import type { CustomerNotification, CustomerOrder, MailingList, ShopifyCustomerOrderInput, SupportTicket, SupportTicketEvent, SupportTicketMessage, SupportTicketStatus } from '../../types/crm.types.js';
|
|
5
|
+
export declare const CRM_CONSTANTS: {
|
|
6
|
+
readonly ADD_SUPPORT_TICKET_MESSAGE_ERROR: "CRM_ADD_SUPPORT_TICKET_MESSAGE_ERROR";
|
|
7
|
+
readonly ADD_SUPPORT_TICKET_MESSAGE_SUCCESS: "CRM_ADD_SUPPORT_TICKET_MESSAGE_SUCCESS";
|
|
8
|
+
readonly ADD_USER_TO_MAILING_LIST_ERROR: "CRM_ADD_USER_TO_MAILING_LIST_ERROR";
|
|
9
|
+
readonly ADD_USER_TO_MAILING_LIST_SUCCESS: "CRM_ADD_USER_TO_MAILING_LIST_SUCCESS";
|
|
10
|
+
readonly CREATE_MAILING_LIST_ERROR: "CRM_CREATE_MAILING_LIST_ERROR";
|
|
11
|
+
readonly CREATE_MAILING_LIST_SUCCESS: "CRM_CREATE_MAILING_LIST_SUCCESS";
|
|
12
|
+
readonly CREATE_SUPPORT_TICKET_ERROR: "CRM_CREATE_SUPPORT_TICKET_ERROR";
|
|
13
|
+
readonly CREATE_SUPPORT_TICKET_SUCCESS: "CRM_CREATE_SUPPORT_TICKET_SUCCESS";
|
|
14
|
+
readonly CUSTOMER_NOTIFICATIONS_BY_USER_ERROR: "CRM_CUSTOMER_NOTIFICATIONS_BY_USER_ERROR";
|
|
15
|
+
readonly CUSTOMER_NOTIFICATIONS_BY_USER_SUCCESS: "CRM_CUSTOMER_NOTIFICATIONS_BY_USER_SUCCESS";
|
|
16
|
+
readonly CUSTOMER_ORDERS_BY_USER_ERROR: "CRM_CUSTOMER_ORDERS_BY_USER_ERROR";
|
|
17
|
+
readonly CUSTOMER_ORDERS_BY_USER_SUCCESS: "CRM_CUSTOMER_ORDERS_BY_USER_SUCCESS";
|
|
18
|
+
readonly ELIGIBLE_MAILING_USERS_ERROR: "CRM_ELIGIBLE_MAILING_USERS_ERROR";
|
|
19
|
+
readonly ELIGIBLE_MAILING_USERS_SUCCESS: "CRM_ELIGIBLE_MAILING_USERS_SUCCESS";
|
|
20
|
+
readonly INGEST_SHOPIFY_CUSTOMER_ORDER_ERROR: "CRM_INGEST_SHOPIFY_CUSTOMER_ORDER_ERROR";
|
|
21
|
+
readonly INGEST_SHOPIFY_CUSTOMER_ORDER_SUCCESS: "CRM_INGEST_SHOPIFY_CUSTOMER_ORDER_SUCCESS";
|
|
22
|
+
readonly MAILING_LIST_USERS_ERROR: "CRM_MAILING_LIST_USERS_ERROR";
|
|
23
|
+
readonly MAILING_LIST_USERS_SUCCESS: "CRM_MAILING_LIST_USERS_SUCCESS";
|
|
24
|
+
readonly MAILING_LISTS_ERROR: "CRM_MAILING_LISTS_ERROR";
|
|
25
|
+
readonly MAILING_LISTS_SUCCESS: "CRM_MAILING_LISTS_SUCCESS";
|
|
26
|
+
readonly REMOVE_USER_FROM_MAILING_LIST_ERROR: "CRM_REMOVE_USER_FROM_MAILING_LIST_ERROR";
|
|
27
|
+
readonly REMOVE_USER_FROM_MAILING_LIST_SUCCESS: "CRM_REMOVE_USER_FROM_MAILING_LIST_SUCCESS";
|
|
28
|
+
readonly SUPPORT_TICKET_EVENTS_ERROR: "CRM_SUPPORT_TICKET_EVENTS_ERROR";
|
|
29
|
+
readonly SUPPORT_TICKET_EVENTS_SUCCESS: "CRM_SUPPORT_TICKET_EVENTS_SUCCESS";
|
|
30
|
+
readonly SUPPORT_TICKET_MESSAGES_ERROR: "CRM_SUPPORT_TICKET_MESSAGES_ERROR";
|
|
31
|
+
readonly SUPPORT_TICKET_MESSAGES_SUCCESS: "CRM_SUPPORT_TICKET_MESSAGES_SUCCESS";
|
|
32
|
+
readonly SUPPORT_TICKETS_ERROR: "CRM_SUPPORT_TICKETS_ERROR";
|
|
33
|
+
readonly SUPPORT_TICKETS_SUCCESS: "CRM_SUPPORT_TICKETS_SUCCESS";
|
|
34
|
+
readonly UPDATE_SUPPORT_TICKET_STATUS_ERROR: "CRM_UPDATE_SUPPORT_TICKET_STATUS_ERROR";
|
|
35
|
+
readonly UPDATE_SUPPORT_TICKET_STATUS_SUCCESS: "CRM_UPDATE_SUPPORT_TICKET_STATUS_SUCCESS";
|
|
36
|
+
readonly USERS_BY_PURCHASED_PRODUCT_ERROR: "CRM_USERS_BY_PURCHASED_PRODUCT_ERROR";
|
|
37
|
+
readonly USERS_BY_PURCHASED_PRODUCT_SUCCESS: "CRM_USERS_BY_PURCHASED_PRODUCT_SUCCESS";
|
|
38
|
+
};
|
|
39
|
+
export interface CrmActionsOptions {
|
|
40
|
+
}
|
|
41
|
+
export type CrmApiResultsType = {
|
|
42
|
+
readonly crm: {
|
|
43
|
+
readonly addSupportTicketMessage?: SupportTicketMessage;
|
|
44
|
+
readonly addUserToMailingList?: MailingList;
|
|
45
|
+
readonly createMailingList?: MailingList;
|
|
46
|
+
readonly createSupportTicket?: SupportTicket;
|
|
47
|
+
readonly customerNotificationsByUser?: CustomerNotification[];
|
|
48
|
+
readonly customerOrdersByUser?: CustomerOrder[];
|
|
49
|
+
readonly eligibleMailingUsers?: User[];
|
|
50
|
+
readonly ingestShopifyCustomerOrder?: CustomerOrder;
|
|
51
|
+
readonly mailingLists?: MailingList[];
|
|
52
|
+
readonly mailingListUsers?: User[];
|
|
53
|
+
readonly removeUserFromMailingList?: boolean;
|
|
54
|
+
readonly supportTicketEvents?: SupportTicketEvent[];
|
|
55
|
+
readonly supportTicketMessages?: SupportTicketMessage[];
|
|
56
|
+
readonly supportTickets?: SupportTicket[];
|
|
57
|
+
readonly updateSupportTicketStatus?: SupportTicket;
|
|
58
|
+
readonly usersByPurchasedProduct?: User[];
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
export interface CrmActions {
|
|
62
|
+
readonly addSupportTicketMessage: (message: Partial<SupportTicketMessage>, messageProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicketMessage>;
|
|
63
|
+
readonly addUserToMailingList: (userId: string, mailingListId: string, source?: string, mailingListProps?: string[], requestOptions?: ApiOptions) => Promise<MailingList>;
|
|
64
|
+
readonly createMailingList: (mailingList: Partial<MailingList>, mailingListProps?: string[], requestOptions?: ApiOptions) => Promise<MailingList>;
|
|
65
|
+
readonly createSupportTicket: (ticket: Partial<SupportTicket>, ticketProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicket>;
|
|
66
|
+
readonly customerNotificationsByUser: (userId: string, notificationProps?: string[], requestOptions?: ApiOptions) => Promise<CustomerNotification[]>;
|
|
67
|
+
readonly customerOrdersByUser: (userId: string, orderProps?: string[], requestOptions?: ApiOptions) => Promise<CustomerOrder[]>;
|
|
68
|
+
readonly eligibleMailingUsers: (options?: {
|
|
69
|
+
readonly excludeOpenSupportTickets?: boolean;
|
|
70
|
+
readonly mailingListId?: string;
|
|
71
|
+
readonly productId?: string;
|
|
72
|
+
}, userProps?: string[], requestOptions?: ApiOptions) => Promise<User[]>;
|
|
73
|
+
readonly ingestShopifyCustomerOrder: (order: ShopifyCustomerOrderInput, orderProps?: string[], requestOptions?: ApiOptions) => Promise<CustomerOrder>;
|
|
74
|
+
readonly mailingLists: (mailingListProps?: string[], requestOptions?: ApiOptions) => Promise<MailingList[]>;
|
|
75
|
+
readonly mailingListUsers: (mailingListId: string, userProps?: string[], requestOptions?: ApiOptions) => Promise<User[]>;
|
|
76
|
+
readonly removeUserFromMailingList: (userId: string, mailingListId: string, requestOptions?: ApiOptions) => Promise<boolean>;
|
|
77
|
+
readonly supportTicketEvents: (supportTicketId: string, eventProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicketEvent[]>;
|
|
78
|
+
readonly supportTicketMessages: (supportTicketId: string, messageProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicketMessage[]>;
|
|
79
|
+
readonly supportTickets: (filters?: {
|
|
80
|
+
readonly status?: string;
|
|
81
|
+
readonly userId?: string;
|
|
82
|
+
}, ticketProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicket[]>;
|
|
83
|
+
readonly updateSupportTicketStatus: (supportTicketId: string, status: SupportTicketStatus, resolutionSummary?: string, ticketProps?: string[], requestOptions?: ApiOptions) => Promise<SupportTicket>;
|
|
84
|
+
readonly usersByPurchasedProduct: (productId: string, userProps?: string[], requestOptions?: ApiOptions) => Promise<User[]>;
|
|
85
|
+
}
|
|
86
|
+
export declare const createCrmActions: (flux: FluxFramework, _options?: CrmActionsOptions) => CrmActions;
|
|
87
|
+
//# sourceMappingURL=crmActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crmActions.d.ts","sourceRoot":"","sources":["../../../src/actions/crmActions/crmActions.ts"],"names":[],"mappings":"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"}
|