@esri/telemetry-amazon 1.0.0-beta.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +119 -28
  3. package/dist/esm/auth.js +47 -0
  4. package/dist/esm/auth.js.map +1 -0
  5. package/dist/esm/auth.test.js +100 -0
  6. package/dist/esm/auth.test.js.map +1 -0
  7. package/dist/esm/build-access-properties.js +16 -0
  8. package/dist/esm/build-access-properties.js.map +1 -0
  9. package/dist/esm/build-access-properties.test.js +40 -0
  10. package/dist/esm/build-access-properties.test.js.map +1 -0
  11. package/dist/esm/create-event-log.js +31 -0
  12. package/dist/esm/create-event-log.js.map +1 -0
  13. package/dist/esm/create-event-log.test.js +273 -0
  14. package/dist/esm/create-event-log.test.js.map +1 -0
  15. package/dist/esm/create-page-view-log.js +19 -0
  16. package/dist/esm/create-page-view-log.js.map +1 -0
  17. package/dist/esm/create-page-view-log.test.js +69 -0
  18. package/dist/esm/create-page-view-log.test.js.map +1 -0
  19. package/dist/esm/format-telemetry-attributes.js +32 -0
  20. package/dist/esm/format-telemetry-attributes.js.map +1 -0
  21. package/dist/esm/format-telemetry-metrics.js +27 -0
  22. package/dist/esm/format-telemetry-metrics.js.map +1 -0
  23. package/dist/esm/format-telemetry-metrics.test.js +22 -0
  24. package/dist/esm/format-telemetry-metrics.test.js.map +1 -0
  25. package/dist/esm/get-portal-item-access-permissions.js +8 -0
  26. package/dist/esm/get-portal-item-access-permissions.js.map +1 -0
  27. package/dist/esm/get-portal-item-access-permissions.test.js +55 -0
  28. package/dist/esm/get-portal-item-access-permissions.test.js.map +1 -0
  29. package/dist/esm/index.js +63 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/index.test.js +196 -0
  32. package/dist/esm/index.test.js.map +1 -0
  33. package/dist/esm/set-portal-item-access-permissions.js +20 -0
  34. package/dist/esm/set-portal-item-access-permissions.js.map +1 -0
  35. package/dist/esm/set-portal-item-access-permissions.test.js +177 -0
  36. package/dist/esm/set-portal-item-access-permissions.test.js.map +1 -0
  37. package/dist/esm/types.js +2 -0
  38. package/dist/esm/types.js.map +1 -0
  39. package/dist/node/auth.js +51 -0
  40. package/dist/node/auth.js.map +1 -0
  41. package/dist/node/auth.test.js +103 -0
  42. package/dist/node/auth.test.js.map +1 -0
  43. package/dist/node/build-access-properties.js +20 -0
  44. package/dist/node/build-access-properties.js.map +1 -0
  45. package/dist/node/build-access-properties.test.js +42 -0
  46. package/dist/node/build-access-properties.test.js.map +1 -0
  47. package/dist/node/create-event-log.js +35 -0
  48. package/dist/node/create-event-log.js.map +1 -0
  49. package/dist/node/create-event-log.test.js +275 -0
  50. package/dist/node/create-event-log.test.js.map +1 -0
  51. package/dist/node/create-page-view-log.js +23 -0
  52. package/dist/node/create-page-view-log.js.map +1 -0
  53. package/dist/node/create-page-view-log.test.js +71 -0
  54. package/dist/node/create-page-view-log.test.js.map +1 -0
  55. package/dist/node/format-telemetry-attributes.js +36 -0
  56. package/dist/node/format-telemetry-attributes.js.map +1 -0
  57. package/dist/node/format-telemetry-metrics.js +31 -0
  58. package/dist/node/format-telemetry-metrics.js.map +1 -0
  59. package/dist/node/format-telemetry-metrics.test.js +24 -0
  60. package/dist/node/format-telemetry-metrics.test.js.map +1 -0
  61. package/dist/node/get-portal-item-access-permissions.js +12 -0
  62. package/dist/node/get-portal-item-access-permissions.js.map +1 -0
  63. package/dist/node/get-portal-item-access-permissions.test.js +58 -0
  64. package/dist/node/get-portal-item-access-permissions.test.js.map +1 -0
  65. package/dist/node/index.js +68 -0
  66. package/dist/node/index.js.map +1 -0
  67. package/dist/node/index.test.js +199 -0
  68. package/dist/node/index.test.js.map +1 -0
  69. package/dist/node/set-portal-item-access-permissions.js +24 -0
  70. package/dist/node/set-portal-item-access-permissions.js.map +1 -0
  71. package/dist/node/set-portal-item-access-permissions.test.js +180 -0
  72. package/dist/node/set-portal-item-access-permissions.test.js.map +1 -0
  73. package/dist/node/types.js +3 -0
  74. package/dist/node/types.js.map +1 -0
  75. package/dist/types/auth.d.ts +2 -0
  76. package/dist/types/auth.test.d.ts +1 -0
  77. package/dist/types/build-access-properties.d.ts +2 -0
  78. package/dist/types/build-access-properties.test.d.ts +1 -0
  79. package/dist/types/create-event-log.d.ts +6 -0
  80. package/dist/types/create-event-log.test.d.ts +1 -0
  81. package/dist/types/create-page-view-log.d.ts +8 -0
  82. package/dist/types/create-page-view-log.test.d.ts +1 -0
  83. package/dist/types/format-telemetry-attributes.d.ts +5 -0
  84. package/dist/types/format-telemetry-metrics.d.ts +2 -0
  85. package/dist/types/format-telemetry-metrics.test.d.ts +1 -0
  86. package/dist/types/get-portal-item-access-permissions.d.ts +2 -0
  87. package/dist/types/get-portal-item-access-permissions.test.d.ts +1 -0
  88. package/dist/types/index.d.ts +16 -0
  89. package/dist/types/index.test.d.ts +1 -0
  90. package/dist/types/set-portal-item-access-permissions.d.ts +3 -0
  91. package/dist/types/set-portal-item-access-permissions.test.d.ts +1 -0
  92. package/dist/types/types.d.ts +77 -0
  93. package/dist/umd/telemetry-amazon.js +6844 -0
  94. package/dist/umd/telemetry-amazon.js.map +1 -0
  95. package/dist/umd/telemetry-amazon.min.js +6844 -0
  96. package/dist/umd/telemetry-amazon.min.js.map +1 -0
  97. package/package.json +23 -6
  98. package/dist/telemetry-amazon.js.amd.js +0 -363
  99. package/dist/telemetry-amazon.js.amd.js.map +0 -1
  100. package/dist/telemetry-amazon.js.amd.min.js +0 -2
  101. package/dist/telemetry-amazon.js.amd.min.js.map +0 -1
  102. package/dist/telemetry-amazon.js.dojo.js +0 -363
  103. package/dist/telemetry-amazon.js.dojo.js.map +0 -1
  104. package/dist/telemetry-amazon.js.dojo.min.js +0 -2
  105. package/dist/telemetry-amazon.js.dojo.min.js.map +0 -1
  106. package/dist/telemetry-amazon.js.js +0 -367
  107. package/dist/telemetry-amazon.js.js.map +0 -1
  108. package/dist/telemetry-amazon.js.min.js +0 -2
  109. package/dist/telemetry-amazon.js.min.js.map +0 -1
@@ -0,0 +1,273 @@
1
+ import { createEventLog } from './create-event-log';
2
+ describe('Window defined - Browser', () => {
3
+ const originalWindowLocation = Object.assign({}, window.location);
4
+ let documentReferrerSpy;
5
+ beforeEach(() => {
6
+ jest.spyOn(window, 'location', 'get').mockImplementation(() => (Object.assign(Object.assign({}, originalWindowLocation), { hostname: 'https://hostname.com', pathname: '/path/name' })));
7
+ documentReferrerSpy = jest
8
+ .spyOn(document, 'referrer', 'get')
9
+ .mockImplementation(() => 'https://foo-bar.com');
10
+ jest.spyOn(global, 'Date').mockImplementation(() => new Date(0).toString());
11
+ });
12
+ afterEach(() => {
13
+ jest.restoreAllMocks();
14
+ });
15
+ test('createEventLog with referrer', () => {
16
+ const event = {
17
+ eventType: 'download',
18
+ category: 'foo',
19
+ action: 'bar',
20
+ label: 'buzz',
21
+ datasetId: 'abcdef0123456789',
22
+ timeMetric: 1.567,
23
+ count: 4,
24
+ };
25
+ const dimensionLookup = {
26
+ datasetId: 6,
27
+ someAttribute: 7,
28
+ };
29
+ const metricLookup = {
30
+ timeMetric: 1,
31
+ otherMetric: 3,
32
+ };
33
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
34
+ expect(result).toEqual({
35
+ action: 'bar',
36
+ category: 'foo',
37
+ dimension6: 'abcdef0123456789',
38
+ eventType: 'download',
39
+ hostname: 'https://hostname.com',
40
+ label: 'buzz',
41
+ path: '/path/name',
42
+ referrer: 'https://foo-bar.com',
43
+ name: 'download',
44
+ count: 4,
45
+ metric1: 1.567,
46
+ });
47
+ });
48
+ test('createEventLog without referrer', () => {
49
+ documentReferrerSpy.mockImplementationOnce(() => undefined);
50
+ const event = {
51
+ eventType: 'download',
52
+ category: 'foo',
53
+ action: 'bar',
54
+ label: 'buzz',
55
+ datasetId: 'abcdef0123456789',
56
+ timeMetric: 1.567,
57
+ count: 4,
58
+ };
59
+ const dimensionLookup = {
60
+ datasetId: 6,
61
+ someAttribute: 7,
62
+ };
63
+ const metricLookup = {
64
+ timeMetric: 1,
65
+ otherMetric: 3,
66
+ };
67
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
68
+ expect(result).toEqual({
69
+ action: 'bar',
70
+ category: 'foo',
71
+ dimension6: 'abcdef0123456789',
72
+ eventType: 'download',
73
+ hostname: 'https://hostname.com',
74
+ label: 'buzz',
75
+ path: '/path/name',
76
+ name: 'download',
77
+ count: 4,
78
+ metric1: 1.567,
79
+ });
80
+ });
81
+ test('createEventLog undefined eventType', () => {
82
+ const event = {
83
+ category: 'foo',
84
+ action: 'bar',
85
+ label: 'buzz',
86
+ datasetId: 'abcdef0123456789',
87
+ timeMetric: 1.567,
88
+ count: 4,
89
+ };
90
+ const dimensionLookup = {
91
+ datasetId: 6,
92
+ someAttribute: 7,
93
+ };
94
+ const metricLookup = {
95
+ timeMetric: 1,
96
+ otherMetric: 3,
97
+ };
98
+ const result = createEventLog({
99
+ event,
100
+ dimensionLookup,
101
+ metricLookup,
102
+ });
103
+ expect(result).toEqual({
104
+ action: 'bar',
105
+ category: 'foo',
106
+ dimension6: 'abcdef0123456789',
107
+ eventType: 'other',
108
+ hostname: 'https://hostname.com',
109
+ label: 'buzz',
110
+ path: '/path/name',
111
+ referrer: 'https://foo-bar.com',
112
+ name: 'other',
113
+ count: 4,
114
+ metric1: 1.567,
115
+ });
116
+ });
117
+ test('createEventLog undefined event', () => {
118
+ const event = {};
119
+ const dimensionLookup = {
120
+ datasetId: 6,
121
+ someAttribute: 7,
122
+ };
123
+ const metricLookup = {
124
+ timeMetric: 1,
125
+ otherMetric: 3,
126
+ };
127
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
128
+ expect(result).toEqual({
129
+ eventType: 'other',
130
+ hostname: 'https://hostname.com',
131
+ path: '/path/name',
132
+ referrer: 'https://foo-bar.com',
133
+ name: 'other',
134
+ });
135
+ });
136
+ });
137
+ describe('Window undefined - Server', () => {
138
+ beforeEach(() => {
139
+ jest.spyOn(global, 'window', 'get').mockImplementation(() => undefined);
140
+ });
141
+ afterEach(() => {
142
+ jest.restoreAllMocks();
143
+ });
144
+ test('createEventLog no hostname or pathname provided', () => {
145
+ const event = {
146
+ eventType: 'download',
147
+ category: 'foo',
148
+ action: 'bar',
149
+ label: 'buzz',
150
+ datasetId: 'abcdef0123456789',
151
+ timeMetric: 1.567,
152
+ count: 4,
153
+ };
154
+ const dimensionLookup = {
155
+ datasetId: 6,
156
+ someAttributes: 7,
157
+ };
158
+ const metricLookup = {
159
+ timeMetric: 1,
160
+ otherMetric: 3,
161
+ };
162
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
163
+ expect(result).toEqual({
164
+ action: 'bar',
165
+ category: 'foo',
166
+ dimension6: 'abcdef0123456789',
167
+ eventType: 'download',
168
+ label: 'buzz',
169
+ name: 'download',
170
+ count: 4,
171
+ metric1: 1.567,
172
+ });
173
+ });
174
+ test('createEventLog hostname provided, no pathname', () => {
175
+ const event = {
176
+ hostname: 'https//hostname.com',
177
+ eventType: 'download',
178
+ category: 'foo',
179
+ action: 'bar',
180
+ label: 'buzz',
181
+ datasetId: 'abcdef0123456789',
182
+ timeMetric: 1.567,
183
+ count: 4,
184
+ };
185
+ const dimensionLookup = {
186
+ datasetId: 6,
187
+ someAttributes: 7,
188
+ };
189
+ const metricLookup = {
190
+ timeMetric: 1,
191
+ otherMetric: 3,
192
+ };
193
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
194
+ expect(result).toEqual({
195
+ hostname: 'https//hostname.com',
196
+ action: 'bar',
197
+ category: 'foo',
198
+ dimension6: 'abcdef0123456789',
199
+ eventType: 'download',
200
+ label: 'buzz',
201
+ name: 'download',
202
+ count: 4,
203
+ metric1: 1.567,
204
+ });
205
+ });
206
+ test('createEventLog pathname provided, no hostname', () => {
207
+ const event = {
208
+ pathname: '/path/name',
209
+ eventType: 'download',
210
+ category: 'foo',
211
+ action: 'bar',
212
+ label: 'buzz',
213
+ datasetId: 'abcdef0123456789',
214
+ timeMetric: 1.567,
215
+ count: 4,
216
+ };
217
+ const dimensionLookup = {
218
+ datasetId: 6,
219
+ someAttributes: 7,
220
+ };
221
+ const metricLookup = {
222
+ timeMetric: 1,
223
+ otherMetric: 3,
224
+ };
225
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
226
+ expect(result).toEqual({
227
+ path: '/path/name',
228
+ action: 'bar',
229
+ category: 'foo',
230
+ dimension6: 'abcdef0123456789',
231
+ eventType: 'download',
232
+ label: 'buzz',
233
+ name: 'download',
234
+ count: 4,
235
+ metric1: 1.567,
236
+ });
237
+ });
238
+ test('createEventLog hostname and pathname provided', () => {
239
+ const event = {
240
+ hostname: 'https://hostname.com',
241
+ pathname: '/path/name',
242
+ eventType: 'download',
243
+ category: 'foo',
244
+ action: 'bar',
245
+ label: 'buzz',
246
+ datasetId: 'abcdef0123456789',
247
+ timeMetric: 1.567,
248
+ count: 4,
249
+ };
250
+ const dimensionLookup = {
251
+ datasetId: 6,
252
+ someAttributes: 7,
253
+ };
254
+ const metricLookup = {
255
+ timeMetric: 1,
256
+ otherMetric: 3,
257
+ };
258
+ const result = createEventLog({ event, dimensionLookup, metricLookup });
259
+ expect(result).toEqual({
260
+ hostname: 'https://hostname.com',
261
+ path: '/path/name',
262
+ action: 'bar',
263
+ category: 'foo',
264
+ dimension6: 'abcdef0123456789',
265
+ eventType: 'download',
266
+ label: 'buzz',
267
+ name: 'download',
268
+ count: 4,
269
+ metric1: 1.567,
270
+ });
271
+ });
272
+ });
273
+ //# sourceMappingURL=create-event-log.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-event-log.test.js","sourceRoot":"","sources":["../../src/create-event-log.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { formatTelemetryAttributes } from './format-telemetry-attributes';
2
+ import { formatTelemetryMetrics } from './format-telemetry-metrics';
3
+ export function createPageViewLog({ page, previousPage = {}, options = {}, dimensionLookup = {}, metricLookup = {}, }) {
4
+ const metrics = formatTelemetryMetrics(options, metricLookup);
5
+ const attributes = formatTelemetryAttributes({
6
+ telemetryData: options,
7
+ dimensionLookup,
8
+ excludeKeys: [
9
+ 'workflow',
10
+ ...Object.keys(metrics),
11
+ ...Object.keys(metricLookup),
12
+ ],
13
+ });
14
+ const { referrer, title } = document || {};
15
+ const { hostname, pathname } = window && window.location ? window.location : {};
16
+ return Object.assign(Object.assign({ name: 'pageView', referrer,
17
+ hostname, path: page || pathname, pageUrl: page || pathname, pageName: title, previousPageUrl: previousPage.pageUrl, previousPageName: previousPage.pageName }, attributes), metrics);
18
+ }
19
+ //# sourceMappingURL=create-page-view-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-page-view-log.js","sourceRoot":"","sources":["../../src/create-page-view-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,YAAY,GAAG,EAAE,EACjB,OAAO,GAAG,EAAE,EACZ,eAAe,GAAG,EAAE,EACpB,YAAY,GAAG,EAAE,GAOlB;IACC,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,yBAAyB,CAAC;QAC3C,aAAa,EAAE,OAAO;QACtB,eAAe;QACf,WAAW,EAAE;YACX,UAAU;YACV,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;SAC7B;KACF,CAAC,CAAC;IAEH,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAC1B,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAU,CAAC;IAE5D,qCACE,IAAI,EAAE,UAAU,EAChB,QAAQ;QACR,QAAQ,EACR,IAAI,EAAE,IAAI,IAAI,QAAQ,EACtB,OAAO,EAAE,IAAI,IAAI,QAAQ,EACzB,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,CAAC,OAAO,EACrC,gBAAgB,EAAE,YAAY,CAAC,QAAQ,IACpC,UAAU,GACV,OAAO,EACV;AACJ,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { createPageViewLog } from './create-page-view-log';
2
+ test('createPageViewLog', () => {
3
+ const page = 'path/to/page';
4
+ const dateSpy = jest
5
+ .spyOn(global, 'Date')
6
+ .mockImplementation(() => new Date(0).toString());
7
+ const result = createPageViewLog({ page });
8
+ expect(result).toEqual({
9
+ hostname: 'localhost',
10
+ pageName: '',
11
+ pageUrl: 'path/to/page',
12
+ path: 'path/to/page',
13
+ previousPageName: undefined,
14
+ previousPageUrl: undefined,
15
+ referrer: '',
16
+ name: 'pageView',
17
+ });
18
+ dateSpy.mockRestore();
19
+ });
20
+ test('createPageViewLog, with previous page info', () => {
21
+ const page = 'path/to/page';
22
+ const dateSpy = jest
23
+ .spyOn(global, 'Date')
24
+ .mockImplementation(() => new Date(0).toString());
25
+ const result = createPageViewLog({
26
+ page,
27
+ previousPage: { pageUrl: '/test', pageName: 'foo' },
28
+ });
29
+ expect(result).toEqual({
30
+ hostname: 'localhost',
31
+ pageName: '',
32
+ pageUrl: 'path/to/page',
33
+ path: 'path/to/page',
34
+ previousPageName: 'foo',
35
+ previousPageUrl: '/test',
36
+ referrer: '',
37
+ name: 'pageView',
38
+ });
39
+ dateSpy.mockRestore();
40
+ });
41
+ test('createPageViewLog, with optional telemetry data', () => {
42
+ const page = 'path/to/page';
43
+ const result = createPageViewLog({
44
+ page,
45
+ options: {
46
+ myDimension: 'boovar',
47
+ anotherDimension: 'bazvar',
48
+ myMetric: 1000,
49
+ anotherMetric: 500,
50
+ },
51
+ metricLookup: { myMetric: 5, anotherMetric: 34 },
52
+ dimensionLookup: { myDimension: 2, anotherDimension: 4 },
53
+ });
54
+ expect(result).toEqual({
55
+ hostname: 'localhost',
56
+ pageName: '',
57
+ pageUrl: 'path/to/page',
58
+ path: 'path/to/page',
59
+ previousPageName: undefined,
60
+ previousPageUrl: undefined,
61
+ referrer: '',
62
+ dimension2: 'boovar',
63
+ dimension4: 'bazvar',
64
+ metric5: 1000,
65
+ metric34: 500,
66
+ name: 'pageView',
67
+ });
68
+ });
69
+ //# sourceMappingURL=create-page-view-log.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-page-view-log.test.js","sourceRoot":"","sources":["../../src/create-page-view-log.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;SACrB,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAS,CAAC,CAAC;IAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,cAAc;QACpB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,SAAS;QAC1B,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACtD,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;SACrB,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,iBAAiB,CAAC;QAC/B,IAAI;QACJ,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC7C,CAAC,CAAC;IACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,cAAc;QACpB,gBAAgB,EAAE,KAAK;QACvB,eAAe,EAAE,OAAO;QACxB,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,WAAW,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC3D,MAAM,IAAI,GAAG,cAAc,CAAC;IAE5B,MAAM,MAAM,GAAG,iBAAiB,CAAC;QAC/B,IAAI;QACJ,OAAO,EAAE;YACP,WAAW,EAAE,QAAQ;YACrB,gBAAgB,EAAE,QAAQ;YAC1B,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,GAAG;SACnB;QACD,YAAY,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;QAChD,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE;KACzD,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,cAAc;QACpB,gBAAgB,EAAE,SAAS;QAC3B,eAAe,EAAE,SAAS;QAC1B,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ export function formatTelemetryAttributes({ telemetryData, dimensionLookup = {}, excludeKeys = [], }) {
2
+ return Object.keys(telemetryData)
3
+ .filter((key) => {
4
+ return !excludeKeys.includes(key);
5
+ })
6
+ .map((key) => {
7
+ if (dimensionLookup[key]) {
8
+ return {
9
+ key: getCustomDimensionKey(dimensionLookup, key),
10
+ value: telemetryData[key],
11
+ };
12
+ }
13
+ return {
14
+ key,
15
+ value: getValue(telemetryData, key),
16
+ };
17
+ })
18
+ .reduce((acc, { key, value }) => {
19
+ acc[key] = value;
20
+ return acc;
21
+ }, {});
22
+ }
23
+ function getValue(data, key) {
24
+ if (key === 'json') {
25
+ return data[key] ? JSON.stringify(data[key]) : 'null';
26
+ }
27
+ return data[key] === undefined ? 'null' : data[key].toString();
28
+ }
29
+ function getCustomDimensionKey(lookup, key) {
30
+ return `dimension${lookup[key]}`;
31
+ }
32
+ //# sourceMappingURL=format-telemetry-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-telemetry-attributes.js","sourceRoot":"","sources":["../../src/format-telemetry-attributes.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CAAC,EACxC,aAAa,EACb,eAAe,GAAG,EAAE,EACpB,WAAW,GAAG,EAAE,GAKjB;IACC,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO;gBACL,GAAG,EAAE,qBAAqB,CAAC,eAAe,EAAE,GAAG,CAAC;gBAChD,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;aAC1B,CAAC;SACH;QAED,OAAO;YACL,GAAG;YACH,KAAK,EAAE,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;SACpC,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,IAAyB,EAAE,GAAW;IACtD,IAAI,GAAG,KAAK,MAAM,EAAE;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KACvD;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA8B,EAC9B,GAAW;IAEX,OAAO,YAAY,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,27 @@
1
+ const METRICS = ['size', 'duration', 'position', 'number', 'count'];
2
+ export function formatTelemetryMetrics(telemetryData, metricLookup = {}) {
3
+ return Object.keys(telemetryData)
4
+ .filter((key) => {
5
+ return metricLookup[key] || METRICS.includes(key);
6
+ })
7
+ .map((key) => {
8
+ if (metricLookup[key]) {
9
+ return {
10
+ key: getCustomMetricKey(metricLookup, key),
11
+ value: telemetryData[key],
12
+ };
13
+ }
14
+ return {
15
+ key,
16
+ value: telemetryData[key],
17
+ };
18
+ })
19
+ .reduce((acc, { key, value }) => {
20
+ acc[key] = value;
21
+ return acc;
22
+ }, {});
23
+ }
24
+ function getCustomMetricKey(lookup, key) {
25
+ return `metric${lookup[key]}`;
26
+ }
27
+ //# sourceMappingURL=format-telemetry-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-telemetry-metrics.js","sourceRoot":"","sources":["../../src/format-telemetry-metrics.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEpE,MAAM,UAAU,sBAAsB,CACpC,aAAkC,EAClC,eAAoC,EAAE;IAEtC,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACd,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;YACrB,OAAO;gBACL,GAAG,EAAE,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC;gBAC1C,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;aAC1B,CAAC;SACH;QAED,OAAO;YACL,GAAG;YACH,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC;SAC1B,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAyB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;QACtD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CACzB,MAA8B,EAC9B,GAAW;IAEX,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { formatTelemetryMetrics } from './format-telemetry-metrics';
2
+ test('formatTelemetryAttributes: with specified exclusion', () => {
3
+ const telemetryData = {
4
+ eventType: 'download',
5
+ category: 'foo',
6
+ action: 'bar',
7
+ label: 'buzz',
8
+ datasetId: 'abcdef0123456789',
9
+ timeMetric: 43,
10
+ count: 44,
11
+ };
12
+ const metricLookup = {
13
+ timeMetric: 1,
14
+ otherMetric: 3,
15
+ };
16
+ const result = formatTelemetryMetrics(telemetryData, metricLookup);
17
+ expect(result).toEqual({
18
+ metric1: 43,
19
+ count: 44,
20
+ });
21
+ });
22
+ //# sourceMappingURL=format-telemetry-metrics.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-telemetry-metrics.test.js","sourceRoot":"","sources":["../../src/format-telemetry-metrics.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;IAC/D,MAAM,aAAa,GAAG;QACpB,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,kBAAkB;QAC7B,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;KACf,CAAC;IAEF,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { getItem } from '@esri/arcgis-rest-portal';
2
+ export async function getPortalItemAccessPermissions({ id, authentication, }) {
3
+ const { properties: { telemetry: { arcgis: { access = {} } = {} } = {} }, } = await getItem(id, {
4
+ authentication,
5
+ });
6
+ return { access };
7
+ }
8
+ //# sourceMappingURL=get-portal-item-access-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-portal-item-access-permissions.js","sourceRoot":"","sources":["../../src/get-portal-item-access-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,EAAE,EACF,cAAc,GACc;IAC5B,MAAM,EACJ,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GACjE,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE;QACpB,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { getPortalItemAccessPermissions } from './get-portal-item-access-permissions';
2
+ import * as portal from '@esri/arcgis-rest-portal';
3
+ jest.mock('@esri/arcgis-rest-portal');
4
+ const getItemMock = portal.getItem;
5
+ afterEach(() => {
6
+ jest.resetAllMocks();
7
+ });
8
+ describe('getPortalItemAccessPermissions', () => {
9
+ test('should call getItem with empty access property', async () => {
10
+ const id = 'id';
11
+ const authentication = 'baz';
12
+ getItemMock.mockResolvedValue({
13
+ id,
14
+ properties: { foo: 'foo', bar: 'bar' },
15
+ });
16
+ const result = await getPortalItemAccessPermissions({ id, authentication });
17
+ expect(getItemMock).toBeCalledTimes(1);
18
+ expect(getItemMock).toBeCalledWith(id, { authentication });
19
+ expect(result).toEqual({ access: {} });
20
+ });
21
+ test('should return getItem with access property values', async () => {
22
+ const id = 'id';
23
+ const authentication = 'baz';
24
+ const getItemReturnValue = {
25
+ id,
26
+ properties: {
27
+ foo: 'foo',
28
+ bar: 'bar',
29
+ telemetry: {
30
+ arcgis: {
31
+ access: {
32
+ public: {
33
+ updatedAt: 'updatedAt',
34
+ updatedBy: 'updatedBy',
35
+ },
36
+ },
37
+ },
38
+ },
39
+ },
40
+ };
41
+ getItemMock.mockResolvedValue(getItemReturnValue);
42
+ const result = await getPortalItemAccessPermissions({ id, authentication });
43
+ expect(getItemMock).toBeCalledTimes(1);
44
+ expect(getItemMock).toBeCalledWith(id, { authentication });
45
+ expect(result).toEqual({
46
+ access: {
47
+ public: {
48
+ updatedAt: 'updatedAt',
49
+ updatedBy: 'updatedBy',
50
+ },
51
+ },
52
+ });
53
+ });
54
+ });
55
+ //# sourceMappingURL=get-portal-item-access-permissions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-portal-item-access-permissions.test.js","sourceRoot":"","sources":["../../src/get-portal-item-access-permissions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AAGnD,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAoB,CAAC;AAEhD,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,MAAM,cAAc,GAAG,KAA+B,CAAC;QAEvD,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE;YACF,UAAU,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAE5E,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,MAAM,cAAc,GAAG,KAA+B,CAAC;QACvD,MAAM,kBAAkB,GAAG;YACzB,EAAE;YACF,UAAU,EAAE;gBACV,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,KAAK;gBACV,SAAS,EAAE;oBACT,MAAM,EAAE;wBACN,MAAM,EAAE;4BACN,MAAM,EAAE;gCACN,SAAS,EAAE,WAAW;gCACtB,SAAS,EAAE,WAAW;6BACvB;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QACF,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAE5E,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,MAAM,EAAE;gBACN,MAAM,EAAE;oBACN,SAAS,EAAE,WAAW;oBACtB,SAAS,EAAE,WAAW;iBACvB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { getCredentials } from './auth';
2
+ import { createEventLog } from './create-event-log';
3
+ import { createPageViewLog } from './create-page-view-log';
4
+ import Analytics from 'analytics';
5
+ import awsPinpointPlugin from '@analytics/aws-pinpoint';
6
+ import { setPortalItemAccessPermissions } from './set-portal-item-access-permissions';
7
+ import { getPortalItemAccessPermissions } from './get-portal-item-access-permissions';
8
+ export class Amazon {
9
+ constructor(options) {
10
+ this.name = 'amazon';
11
+ const { app = {}, fips, userPoolID } = options;
12
+ this.analytics = Analytics({
13
+ app: app.name,
14
+ version: app.version,
15
+ plugins: [
16
+ awsPinpointPlugin({
17
+ fips,
18
+ pinpointAppId: app.id,
19
+ getCredentials: () => {
20
+ return getCredentials(userPoolID, { fips });
21
+ },
22
+ }),
23
+ ],
24
+ });
25
+ Object.assign(this, options);
26
+ }
27
+ init() {
28
+ return Promise.resolve();
29
+ }
30
+ static async setAccessPermissions({ id, authentication, username, accessChangeset, }) {
31
+ return setPortalItemAccessPermissions({
32
+ id,
33
+ authentication,
34
+ username,
35
+ accessChangeset,
36
+ });
37
+ }
38
+ static async getAccessPermissions({ id, authentication, }) {
39
+ return getPortalItemAccessPermissions({ id, authentication });
40
+ }
41
+ logPageView(page, options) {
42
+ const telemetryPayload = createPageViewLog({
43
+ page,
44
+ previousPage: this.previousPage,
45
+ options,
46
+ dimensionLookup: this.dimensions,
47
+ metricLookup: this.metrics,
48
+ });
49
+ const { pageUrl, pageName } = telemetryPayload;
50
+ this.previousPage = { pageUrl, pageName };
51
+ this.analytics.track('pageView', telemetryPayload);
52
+ }
53
+ logEvent(event = {}) {
54
+ const telemetryPayload = createEventLog({
55
+ event,
56
+ dimensionLookup: this.dimensions,
57
+ metricLookup: this.metrics,
58
+ });
59
+ const { name } = telemetryPayload;
60
+ this.analytics.track(name, telemetryPayload);
61
+ }
62
+ }
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,SAAgC,MAAM,WAAW,CAAC;AACzD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAYxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,MAAM,OAAO,MAAM;IAQjB,YAAY,OAA+B;QAN3C,SAAI,GAAW,QAAQ,CAAC;QAOtB,MAAM,EAAE,GAAG,GAAG,EAAe,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YACzB,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE;gBACP,iBAAiB,CAAC;oBAChB,IAAI;oBACJ,aAAa,EAAE,GAAG,CAAC,EAAE;oBACrB,cAAc,EAAE,GAAG,EAAE;wBACnB,OAAO,cAAc,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,CAAC;iBACF,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,EACd,QAAQ,EACR,eAAe,GACa;QAC5B,OAAO,8BAA8B,CAAC;YACpC,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,GACc;QAC5B,OAAO,8BAA8B,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAyB;QACjD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;YACzC,IAAI;YACJ,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO;YACP,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,QAAsB,EAAE;QAC/B,MAAM,gBAAgB,GAAG,cAAc,CAAC;YACtC,KAAK;YACL,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;CACF"}