@segment/action-destinations 3.337.2 → 3.337.3

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 (106) hide show
  1. package/dist/destinations/customerio/createUpdateDevice/generated-types.d.ts +3 -0
  2. package/dist/destinations/customerio/createUpdateDevice/index.js +29 -17
  3. package/dist/destinations/customerio/createUpdateDevice/index.js.map +1 -1
  4. package/dist/destinations/customerio/createUpdateObject/generated-types.d.ts +3 -0
  5. package/dist/destinations/customerio/createUpdateObject/index.js +80 -39
  6. package/dist/destinations/customerio/createUpdateObject/index.js.map +1 -1
  7. package/dist/destinations/customerio/createUpdatePerson/generated-types.d.ts +4 -1
  8. package/dist/destinations/customerio/createUpdatePerson/index.d.ts +1 -1
  9. package/dist/destinations/customerio/createUpdatePerson/index.js +51 -41
  10. package/dist/destinations/customerio/createUpdatePerson/index.js.map +1 -1
  11. package/dist/destinations/customerio/deleteDevice/index.js +15 -5
  12. package/dist/destinations/customerio/deleteDevice/index.js.map +1 -1
  13. package/dist/destinations/customerio/deleteObject/generated-types.d.ts +4 -0
  14. package/dist/destinations/customerio/deleteObject/generated-types.js +3 -0
  15. package/dist/destinations/customerio/deleteObject/generated-types.js.map +1 -0
  16. package/dist/destinations/customerio/deleteObject/index.d.ts +5 -0
  17. package/dist/destinations/customerio/deleteObject/index.js +48 -0
  18. package/dist/destinations/customerio/deleteObject/index.js.map +1 -0
  19. package/dist/destinations/customerio/deletePerson/generated-types.d.ts +3 -0
  20. package/dist/destinations/customerio/deletePerson/generated-types.js +3 -0
  21. package/dist/destinations/customerio/deletePerson/generated-types.js.map +1 -0
  22. package/dist/destinations/customerio/deletePerson/index.d.ts +5 -0
  23. package/dist/destinations/customerio/deletePerson/index.js +41 -0
  24. package/dist/destinations/customerio/deletePerson/index.js.map +1 -0
  25. package/dist/destinations/customerio/deleteRelationship/generated-types.d.ts +6 -0
  26. package/dist/destinations/customerio/deleteRelationship/generated-types.js +3 -0
  27. package/dist/destinations/customerio/deleteRelationship/generated-types.js.map +1 -0
  28. package/dist/destinations/customerio/deleteRelationship/index.d.ts +5 -0
  29. package/dist/destinations/customerio/deleteRelationship/index.js +82 -0
  30. package/dist/destinations/customerio/deleteRelationship/index.js.map +1 -0
  31. package/dist/destinations/customerio/index.js +37 -15
  32. package/dist/destinations/customerio/index.js.map +1 -1
  33. package/dist/destinations/customerio/reportDeliveryEvent/generated-types.d.ts +10 -0
  34. package/dist/destinations/customerio/reportDeliveryEvent/generated-types.js +3 -0
  35. package/dist/destinations/customerio/reportDeliveryEvent/generated-types.js.map +1 -0
  36. package/dist/destinations/customerio/reportDeliveryEvent/index.d.ts +5 -0
  37. package/dist/destinations/customerio/reportDeliveryEvent/index.js +121 -0
  38. package/dist/destinations/customerio/reportDeliveryEvent/index.js.map +1 -0
  39. package/dist/destinations/customerio/suppressPerson/generated-types.d.ts +3 -0
  40. package/dist/destinations/customerio/suppressPerson/generated-types.js +3 -0
  41. package/dist/destinations/customerio/suppressPerson/generated-types.js.map +1 -0
  42. package/dist/destinations/customerio/suppressPerson/index.d.ts +5 -0
  43. package/dist/destinations/customerio/suppressPerson/index.js +41 -0
  44. package/dist/destinations/customerio/suppressPerson/index.js.map +1 -0
  45. package/dist/destinations/customerio/test-helper.d.ts +6 -0
  46. package/dist/destinations/customerio/test-helper.js +84 -0
  47. package/dist/destinations/customerio/test-helper.js.map +1 -0
  48. package/dist/destinations/customerio/trackEvent/index.js +26 -32
  49. package/dist/destinations/customerio/trackEvent/index.js.map +1 -1
  50. package/dist/destinations/customerio/trackPageView/generated-types.d.ts +1 -0
  51. package/dist/destinations/customerio/trackPageView/index.js +26 -29
  52. package/dist/destinations/customerio/trackPageView/index.js.map +1 -1
  53. package/dist/destinations/customerio/trackScreenView/generated-types.d.ts +1 -0
  54. package/dist/destinations/customerio/trackScreenView/index.js +25 -29
  55. package/dist/destinations/customerio/trackScreenView/index.js.map +1 -1
  56. package/dist/destinations/customerio/unsuppressPerson/generated-types.d.ts +3 -0
  57. package/dist/destinations/customerio/unsuppressPerson/generated-types.js +3 -0
  58. package/dist/destinations/customerio/unsuppressPerson/generated-types.js.map +1 -0
  59. package/dist/destinations/customerio/unsuppressPerson/index.d.ts +5 -0
  60. package/dist/destinations/customerio/unsuppressPerson/index.js +41 -0
  61. package/dist/destinations/customerio/unsuppressPerson/index.js.map +1 -0
  62. package/dist/destinations/customerio/utils.d.ts +44 -2
  63. package/dist/destinations/customerio/utils.js +88 -13
  64. package/dist/destinations/customerio/utils.js.map +1 -1
  65. package/dist/destinations/segment/segment-properties.d.ts +1 -0
  66. package/dist/destinations/segment/segment-properties.js +7 -1
  67. package/dist/destinations/segment/segment-properties.js.map +1 -1
  68. package/dist/destinations/segment/sendGroup/generated-types.d.ts +1 -0
  69. package/dist/destinations/segment/sendGroup/index.js +3 -2
  70. package/dist/destinations/segment/sendGroup/index.js.map +1 -1
  71. package/dist/destinations/segment/sendIdentify/generated-types.d.ts +1 -0
  72. package/dist/destinations/segment/sendIdentify/index.js +3 -2
  73. package/dist/destinations/segment/sendIdentify/index.js.map +1 -1
  74. package/dist/destinations/segment/sendPage/generated-types.d.ts +1 -0
  75. package/dist/destinations/segment/sendPage/index.js +3 -2
  76. package/dist/destinations/segment/sendPage/index.js.map +1 -1
  77. package/dist/destinations/segment/sendScreen/generated-types.d.ts +1 -0
  78. package/dist/destinations/segment/sendScreen/index.js +3 -2
  79. package/dist/destinations/segment/sendScreen/index.js.map +1 -1
  80. package/dist/destinations/segment/sendTrack/generated-types.d.ts +1 -0
  81. package/dist/destinations/segment/sendTrack/index.js +3 -2
  82. package/dist/destinations/segment/sendTrack/index.js.map +1 -1
  83. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.d.ts +1 -0
  84. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js +381 -0
  85. package/dist/destinations/snap-conversions-api/_tests_/capiV2tests.js.map +1 -0
  86. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.d.ts +1 -0
  87. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js +499 -0
  88. package/dist/destinations/snap-conversions-api/_tests_/capiV3tests.js.map +1 -0
  89. package/dist/destinations/snap-conversions-api/_tests_/index.test.js +4 -352
  90. package/dist/destinations/snap-conversions-api/_tests_/index.test.js.map +1 -1
  91. package/dist/destinations/snap-conversions-api/index.js.map +1 -1
  92. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js +24 -20
  93. package/dist/destinations/snap-conversions-api/reportConversionEvent/index.js.map +1 -1
  94. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.d.ts +4 -0
  95. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js +97 -0
  96. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v2.js.map +1 -0
  97. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.d.ts +8 -0
  98. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js +126 -0
  99. package/dist/destinations/snap-conversions-api/reportConversionEvent/snap-capi-v3.js.map +1 -0
  100. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.d.ts +13 -0
  101. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js +40 -0
  102. package/dist/destinations/snap-conversions-api/reportConversionEvent/utils.js.map +1 -0
  103. package/dist/destinations/snap-conversions-api/snap-capi-properties.d.ts +0 -5
  104. package/dist/destinations/snap-conversions-api/snap-capi-properties.js +1 -86
  105. package/dist/destinations/snap-conversions-api/snap-capi-properties.js.map +1 -1
  106. package/package.json +1 -1
@@ -0,0 +1,499 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.capiV3tests = void 0;
7
+ const nock_1 = __importDefault(require("nock"));
8
+ const actions_core_1 = require("@segment/actions-core");
9
+ const index_1 = __importDefault(require("../index"));
10
+ const testDestination = actions_core_1.createTestIntegration(index_1.default);
11
+ const timestamp = '2022-05-12T15:21:15.449Z';
12
+ const settings = {
13
+ snap_app_id: 'test123',
14
+ pixel_id: 'test123',
15
+ app_id: 'test123'
16
+ };
17
+ const accessToken = 'test123';
18
+ const refreshToken = 'test123';
19
+ const testEvent = actions_core_1.createTestEvent({
20
+ timestamp: timestamp,
21
+ messageId: 'test-message-rv4t40s898k',
22
+ event: 'PURCHASE',
23
+ type: 'track',
24
+ properties: {
25
+ email: ' Test123@gmail.com ',
26
+ phone: '+44 844 412 4653',
27
+ event_tag: 'back-to-school',
28
+ number_items: 10,
29
+ revenue: '15',
30
+ currency: 'USD',
31
+ level: 3
32
+ }
33
+ });
34
+ const features = {
35
+ ['actions-snap-api-migration-test-capiv3']: false,
36
+ ['actions-snap-api-migration-use-capiv3']: true
37
+ };
38
+ const capiV3tests = () => describe('CAPIv3 Implementation', () => {
39
+ it('should use products array over number_items, product_id and category fields', async () => {
40
+ nock_1.default(/.*/).post(/.*/).reply(200);
41
+ const event = actions_core_1.createTestEvent({
42
+ ...testEvent,
43
+ properties: {
44
+ email: 'test123@gmail.com',
45
+ phone: '+44 844 412 4653',
46
+ event_tag: 'back-to-school',
47
+ quantity: 10,
48
+ revenue: '15',
49
+ currency: 'USD',
50
+ level: 3,
51
+ products: [
52
+ { product_id: '123', category: 'games', brand: 'Hasbro' },
53
+ { product_id: '456', category: 'games', brand: 'Mattel' }
54
+ ]
55
+ },
56
+ context: {}
57
+ });
58
+ const responses = await testDestination.testAction('reportConversionEvent', {
59
+ event,
60
+ settings,
61
+ useDefaultMappings: true,
62
+ auth: {
63
+ accessToken,
64
+ refreshToken
65
+ },
66
+ features,
67
+ mapping: {
68
+ event_type: 'PURCHASE',
69
+ event_conversion_type: 'WEB'
70
+ }
71
+ });
72
+ expect(responses).not.toBeNull();
73
+ expect(responses[0].status).toBe(200);
74
+ const body = JSON.parse(responses[0].options.body);
75
+ const { data } = body;
76
+ expect(data.length).toBe(1);
77
+ const { integration, event_name, event_time, user_data, custom_data, action_source, app_data } = data[0];
78
+ const { em, ph } = user_data;
79
+ const { brands, content_category, content_ids, currency, num_items, value } = custom_data;
80
+ expect(integration).toBe('segment');
81
+ expect(event_name).toBe('PURCHASE');
82
+ expect(event_time).toBe(1652368875449);
83
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
84
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
85
+ expect(currency).toBe('USD');
86
+ expect(value).toBe(15);
87
+ expect(action_source).toBe('website');
88
+ expect(app_data).toBeUndefined();
89
+ expect(brands).toEqual(['Hasbro', 'Mattel']);
90
+ expect(content_category).toEqual(['games', 'games']);
91
+ expect(content_ids).toEqual(['123', '456']);
92
+ expect(num_items).toBe(2);
93
+ });
94
+ it('should handle a basic event', async () => {
95
+ nock_1.default(/.*/).post(/.*/).reply(200);
96
+ const event = actions_core_1.createTestEvent(testEvent);
97
+ const responses = await testDestination.testAction('reportConversionEvent', {
98
+ event,
99
+ settings,
100
+ useDefaultMappings: true,
101
+ auth: {
102
+ accessToken,
103
+ refreshToken
104
+ },
105
+ features,
106
+ mapping: {
107
+ event_type: 'PURCHASE',
108
+ event_conversion_type: 'WEB'
109
+ }
110
+ });
111
+ expect(responses).not.toBeNull();
112
+ expect(responses[0].status).toBe(200);
113
+ const body = JSON.parse(responses[0].options.body);
114
+ const { data } = body;
115
+ expect(data.length).toBe(1);
116
+ const { integration, event_name, event_source_url, event_time, user_data, custom_data, action_source, app_data } = data[0];
117
+ const { client_ip_address, client_user_agent, em, ph } = user_data;
118
+ const { currency, value } = custom_data;
119
+ expect(integration).toBe('segment');
120
+ expect(event_name).toBe('PURCHASE');
121
+ expect(event_source_url).toBe('https://segment.com/academy/');
122
+ expect(event_time).toBe(1652368875449);
123
+ expect(client_ip_address).toBe('8.8.8.8');
124
+ expect(client_user_agent).toBe('Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1');
125
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
126
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
127
+ expect(currency).toBe('USD');
128
+ expect(value).toBe(15);
129
+ expect(action_source).toBe('website');
130
+ expect(app_data).toBeUndefined();
131
+ });
132
+ it('should fail web event without pixel_id', async () => {
133
+ nock_1.default(/.*/).post(/.*/).reply(200);
134
+ const event = actions_core_1.createTestEvent(testEvent);
135
+ await expect(testDestination.testAction('reportConversionEvent', {
136
+ event,
137
+ settings: {
138
+ snap_app_id: 'test123'
139
+ },
140
+ useDefaultMappings: true,
141
+ auth: {
142
+ accessToken,
143
+ refreshToken
144
+ },
145
+ features,
146
+ mapping: {
147
+ event_type: 'PURCHASE',
148
+ event_conversion_type: 'WEB'
149
+ }
150
+ })).rejects.toThrowError('If event conversion type is "WEB" then Pixel ID must be defined');
151
+ });
152
+ it('should fail app event without snap_app_id', async () => {
153
+ nock_1.default(/.*/).post(/.*/).reply(200);
154
+ const event = actions_core_1.createTestEvent(testEvent);
155
+ await expect(testDestination.testAction('reportConversionEvent', {
156
+ event,
157
+ settings: {
158
+ pixel_id: 'test123',
159
+ app_id: 'test123'
160
+ },
161
+ useDefaultMappings: true,
162
+ auth: {
163
+ accessToken,
164
+ refreshToken
165
+ },
166
+ features,
167
+ mapping: {
168
+ event_type: 'PURCHASE',
169
+ event_conversion_type: 'MOBILE_APP'
170
+ }
171
+ })).rejects.toThrowError('If event conversion type is "MOBILE_APP" then Snap App ID and App ID must be defined');
172
+ });
173
+ it('should handle an offline event conversion type', async () => {
174
+ nock_1.default(/.*/).post(/.*/).reply(200);
175
+ const event = actions_core_1.createTestEvent(testEvent);
176
+ const responses = await testDestination.testAction('reportConversionEvent', {
177
+ event,
178
+ settings,
179
+ useDefaultMappings: true,
180
+ auth: {
181
+ accessToken,
182
+ refreshToken
183
+ },
184
+ features,
185
+ mapping: {
186
+ event_type: 'SAVE',
187
+ event_conversion_type: 'OFFLINE'
188
+ }
189
+ });
190
+ expect(responses).not.toBeNull();
191
+ expect(responses[0].status).toBe(200);
192
+ const body = JSON.parse(responses[0].options.body);
193
+ const { data } = body;
194
+ expect(data.length).toBe(1);
195
+ const { integration, event_name, event_source_url, event_time, user_data, custom_data, action_source, app_data } = data[0];
196
+ const { client_ip_address, client_user_agent, em, ph } = user_data;
197
+ const { currency, value } = custom_data;
198
+ expect(integration).toBe('segment');
199
+ expect(event_name).toBe('SAVE');
200
+ expect(event_source_url).toBe('https://segment.com/academy/');
201
+ expect(event_time).toBe(1652368875449);
202
+ expect(client_ip_address).toBe('8.8.8.8');
203
+ expect(client_user_agent).toBe('Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1');
204
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
205
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
206
+ expect(currency).toBe('USD');
207
+ expect(value).toBe(15);
208
+ expect(action_source).toBe('other');
209
+ expect(app_data).toBeUndefined();
210
+ });
211
+ it('should handle a mobile app event conversion type', async () => {
212
+ nock_1.default(/.*/).post(/.*/).reply(200);
213
+ const event = actions_core_1.createTestEvent(testEvent);
214
+ const responses = await testDestination.testAction('reportConversionEvent', {
215
+ event,
216
+ settings: {
217
+ snap_app_id: '123',
218
+ app_id: '123'
219
+ },
220
+ useDefaultMappings: true,
221
+ auth: {
222
+ accessToken,
223
+ refreshToken
224
+ },
225
+ features,
226
+ mapping: {
227
+ device_model: 'iPhone12,1',
228
+ os_version: '17.2',
229
+ event_type: 'SAVE',
230
+ event_conversion_type: 'MOBILE_APP'
231
+ }
232
+ });
233
+ expect(responses[0].status).toBe(200);
234
+ const body = JSON.parse(responses[0].options.body);
235
+ const { data } = body;
236
+ expect(data.length).toBe(1);
237
+ const { integration, event_name, event_source_url, event_time, user_data, custom_data, action_source, app_data } = data[0];
238
+ const { client_ip_address, client_user_agent, em, ph } = user_data;
239
+ const { currency, value } = custom_data;
240
+ expect(integration).toBe('segment');
241
+ expect(event_name).toBe('SAVE');
242
+ expect(event_source_url).toBe('https://segment.com/academy/');
243
+ expect(event_time).toBe(1652368875449);
244
+ expect(client_ip_address).toBe('8.8.8.8');
245
+ expect(client_user_agent).toBe('Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1');
246
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
247
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
248
+ expect(currency).toBe('USD');
249
+ expect(value).toBe(15);
250
+ expect(action_source).toBe('app');
251
+ expect(app_data.extinfo).toEqual(['i2', '', '', '', '17.2', 'iPhone12,1', '', '', '', '', '', '', '', '', '', '']);
252
+ });
253
+ it('should fail invalid currency', async () => {
254
+ nock_1.default(/.*/).post(/.*/).reply(200);
255
+ const event = actions_core_1.createTestEvent({
256
+ ...testEvent,
257
+ properties: {
258
+ currency: 'Galleon'
259
+ }
260
+ });
261
+ await expect(testDestination.testAction('reportConversionEvent', {
262
+ event,
263
+ settings,
264
+ useDefaultMappings: true,
265
+ auth: {
266
+ accessToken,
267
+ refreshToken
268
+ },
269
+ features,
270
+ mapping: {
271
+ event_type: 'PURCHASE',
272
+ event_conversion_type: 'WEB'
273
+ }
274
+ })).rejects.toThrowError('Galleon is not a valid currency code.');
275
+ });
276
+ it('should fail missing event conversion type', async () => {
277
+ nock_1.default(/.*/).post(/.*/).reply(200);
278
+ const event = actions_core_1.createTestEvent(testEvent);
279
+ await expect(testDestination.testAction('reportConversionEvent', {
280
+ event,
281
+ settings,
282
+ useDefaultMappings: true,
283
+ auth: {
284
+ accessToken,
285
+ refreshToken
286
+ },
287
+ features,
288
+ mapping: {
289
+ event_type: 'PURCHASE'
290
+ }
291
+ })).rejects.toThrowError("The root value is missing the required field 'event_conversion_type'.");
292
+ });
293
+ it('should handle a custom event', async () => {
294
+ nock_1.default(/.*/).post(/.*/).reply(200);
295
+ const event = actions_core_1.createTestEvent({
296
+ ...testEvent,
297
+ event: 'CUSTOM_EVENT_5'
298
+ });
299
+ const responses = await testDestination.testAction('reportConversionEvent', {
300
+ event,
301
+ settings: {
302
+ snap_app_id: '123',
303
+ app_id: '123'
304
+ },
305
+ useDefaultMappings: true,
306
+ auth: {
307
+ accessToken,
308
+ refreshToken
309
+ },
310
+ features,
311
+ mapping: {
312
+ event_type: { '@path': '$.event' },
313
+ event_conversion_type: 'MOBILE_APP'
314
+ }
315
+ });
316
+ expect(responses).not.toBeNull();
317
+ expect(responses[0].status).toBe(200);
318
+ const body = JSON.parse(responses[0].options.body);
319
+ const { data } = body;
320
+ expect(data.length).toBe(1);
321
+ const { integration, event_name, event_source_url, event_time, user_data, custom_data, action_source, app_data } = data[0];
322
+ const { client_ip_address, client_user_agent, em, ph } = user_data;
323
+ const { currency, value } = custom_data;
324
+ expect(integration).toBe('segment');
325
+ expect(event_name).toBe('CUSTOM_EVENT_5');
326
+ expect(event_source_url).toBe('https://segment.com/academy/');
327
+ expect(event_time).toBe(1652368875449);
328
+ expect(client_ip_address).toBe('8.8.8.8');
329
+ expect(client_user_agent).toBe('Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1');
330
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
331
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
332
+ expect(currency).toBe('USD');
333
+ expect(value).toBe(15);
334
+ expect(action_source).toBe('app');
335
+ expect(app_data).toBeUndefined();
336
+ });
337
+ it('should fail event missing all Snap identifiers', async () => {
338
+ const event = actions_core_1.createTestEvent({
339
+ ...testEvent,
340
+ properties: {},
341
+ context: {}
342
+ });
343
+ await expect(testDestination.testAction('reportConversionEvent', {
344
+ event,
345
+ settings,
346
+ useDefaultMappings: true,
347
+ auth: {
348
+ accessToken,
349
+ refreshToken
350
+ },
351
+ features,
352
+ mapping: {
353
+ event_type: 'PURCHASE',
354
+ event_conversion_type: 'WEB'
355
+ }
356
+ })).rejects.toThrowError('Payload must contain values for Email or Phone Number or Mobile Ad Identifier or both IP Address and User Agent fields');
357
+ });
358
+ it('should handle event with email as only Snap identifier', async () => {
359
+ nock_1.default(/.*/).post(/.*/).reply(200);
360
+ const event = actions_core_1.createTestEvent({
361
+ ...testEvent,
362
+ properties: {
363
+ email: 'test123@gmail.com'
364
+ },
365
+ context: {}
366
+ });
367
+ const responses = await testDestination.testAction('reportConversionEvent', {
368
+ event,
369
+ settings,
370
+ useDefaultMappings: true,
371
+ auth: {
372
+ accessToken,
373
+ refreshToken
374
+ },
375
+ features,
376
+ mapping: {
377
+ event_type: 'PURCHASE',
378
+ event_conversion_type: 'WEB'
379
+ }
380
+ });
381
+ expect(responses).not.toBeNull();
382
+ expect(responses[0].status).toBe(200);
383
+ const body = JSON.parse(responses[0].options.body);
384
+ const { data } = body;
385
+ expect(data.length).toBe(1);
386
+ const { integration, event_name, event_time, user_data, action_source } = data[0];
387
+ const { em } = user_data;
388
+ expect(integration).toBe('segment');
389
+ expect(event_name).toBe('PURCHASE');
390
+ expect(event_time).toBe(1652368875449);
391
+ expect(em[0]).toBe('cc779c04191c2e736d89e45c11339c8382832bcaf70383f7df94e3d08ba7a6d9');
392
+ expect(action_source).toBe('website');
393
+ });
394
+ it('should handle event with phone as only Snap identifier', async () => {
395
+ nock_1.default(/.*/).post(/.*/).reply(200);
396
+ const event = actions_core_1.createTestEvent({
397
+ ...testEvent,
398
+ properties: {
399
+ phone: '+44 844 412 4653'
400
+ },
401
+ context: {}
402
+ });
403
+ const responses = await testDestination.testAction('reportConversionEvent', {
404
+ event,
405
+ settings,
406
+ useDefaultMappings: true,
407
+ auth: {
408
+ accessToken,
409
+ refreshToken
410
+ },
411
+ features,
412
+ mapping: {
413
+ event_type: 'PURCHASE',
414
+ event_conversion_type: 'WEB'
415
+ }
416
+ });
417
+ const body = JSON.parse(responses[0].options.body);
418
+ const { data } = body;
419
+ expect(data.length).toBe(1);
420
+ const { integration, event_name, event_time, user_data, action_source } = data[0];
421
+ const { ph } = user_data;
422
+ expect(integration).toBe('segment');
423
+ expect(event_name).toBe('PURCHASE');
424
+ expect(event_time).toBe(1652368875449);
425
+ expect(ph[0]).toBe('dc008fda46e2e64002cf2f82a4906236282d431c4f75e5b60bfe79fc48546383');
426
+ expect(action_source).toBe('website');
427
+ });
428
+ it('should handle event with advertising_id as only Snap identifier', async () => {
429
+ nock_1.default(/.*/).post(/.*/).reply(200);
430
+ const advertisingId = '87a7def4-b6e9-4bf7-91b6-66372842007a';
431
+ const event = actions_core_1.createTestEvent({
432
+ ...testEvent,
433
+ properties: {},
434
+ context: {
435
+ device: {
436
+ advertisingId
437
+ }
438
+ }
439
+ });
440
+ const responses = await testDestination.testAction('reportConversionEvent', {
441
+ event,
442
+ settings,
443
+ useDefaultMappings: true,
444
+ auth: {
445
+ accessToken,
446
+ refreshToken
447
+ },
448
+ features,
449
+ mapping: {
450
+ event_type: 'PURCHASE',
451
+ event_conversion_type: 'WEB'
452
+ }
453
+ });
454
+ const body = JSON.parse(responses[0].options.body);
455
+ const { data } = body;
456
+ expect(data.length).toBe(1);
457
+ const { integration, event_name, event_time, user_data, action_source } = data[0];
458
+ const { madid } = user_data;
459
+ expect(integration).toBe('segment');
460
+ expect(event_name).toBe('PURCHASE');
461
+ expect(event_time).toBe(1652368875449);
462
+ expect(madid).toBe(advertisingId);
463
+ expect(action_source).toBe('website');
464
+ });
465
+ it('should handle event with ip and user_agent as only Snap identifiers', async () => {
466
+ nock_1.default(/.*/).post(/.*/).reply(200);
467
+ const event = actions_core_1.createTestEvent({
468
+ ...testEvent,
469
+ properties: {}
470
+ });
471
+ const responses = await testDestination.testAction('reportConversionEvent', {
472
+ event,
473
+ settings,
474
+ useDefaultMappings: true,
475
+ auth: {
476
+ accessToken,
477
+ refreshToken
478
+ },
479
+ features,
480
+ mapping: {
481
+ event_type: 'PURCHASE',
482
+ event_conversion_type: 'WEB'
483
+ }
484
+ });
485
+ const body = JSON.parse(responses[0].options.body);
486
+ const { data } = body;
487
+ expect(data.length).toBe(1);
488
+ const { integration, event_name, event_time, user_data, action_source } = data[0];
489
+ const { client_ip_address, client_user_agent } = user_data;
490
+ expect(integration).toBe('segment');
491
+ expect(event_name).toBe('PURCHASE');
492
+ expect(event_time).toBe(1652368875449);
493
+ expect(client_ip_address).toBe('8.8.8.8');
494
+ expect(client_user_agent).toBe('Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1');
495
+ expect(action_source).toBe('website');
496
+ });
497
+ });
498
+ exports.capiV3tests = capiV3tests;
499
+ //# sourceMappingURL=capiV3tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capiV3tests.js","sourceRoot":"","sources":["../../../../src/destinations/snap-conversions-api/_tests_/capiV3tests.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,wDAA8E;AAC9E,qDAAiC;AAGjC,MAAM,eAAe,GAAG,oCAAqB,CAAC,eAAU,CAAC,CAAA;AACzD,MAAM,SAAS,GAAG,0BAA0B,CAAA;AAC5C,MAAM,QAAQ,GAAa;IACzB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;CAClB,CAAA;AACD,MAAM,WAAW,GAAG,SAAS,CAAA;AAC7B,MAAM,YAAY,GAAG,SAAS,CAAA;AAE9B,MAAM,SAAS,GAAG,8BAAe,CAAC;IAChC,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,OAAO;IACb,UAAU,EAAE;QACV,KAAK,EAAE,0BAA0B;QACjC,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,gBAAgB;QAC3B,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,CAAC;KACT;CACF,CAAC,CAAA;AAEF,MAAM,QAAQ,GAAG;IACf,CAAC,wCAAwC,CAAC,EAAE,KAAK;IACjD,CAAC,uCAAuC,CAAC,EAAE,IAAI;CAChD,CAAA;AAEM,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,mBAAmB;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,SAAS,EAAE,gBAAgB;gBAC3B,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE;oBACR,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACzD,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;iBAC1D;aACF;YACD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAC5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACxG,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAC5B,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QAEzF,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAEtC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAA;QAEhC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC5C,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAC9G,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAClE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QAEvC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5B,uIAAuI,CACxI,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAClD,KAAK;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,SAAS;aACvB;YACD,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CAAC,iEAAiE,CAAC,CAAA;IAC3F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAClD,KAAK;YACL,QAAQ,EAAE;gBACR,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,SAAS;aAClB;YACD,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,YAAY;aACpC;SACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CAAC,sFAAsF,CAAC,CAAA;IAChH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM;gBAClB,qBAAqB,EAAE,SAAS;aACjC;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAC9G,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAClE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QAEvC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5B,uIAAuI,CACxI,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,KAAK;aACd;YACD,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,YAAY,EAAE,YAAY;gBAC1B,UAAU,EAAE,MAAM;gBAClB,UAAU,EAAE,MAAM;gBAClB,qBAAqB,EAAE,YAAY;aACpC;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAC9G,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAClE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QAEvC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/B,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5B,uIAAuI,CACxI,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACpH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE;gBACV,QAAQ,EAAE,SAAS;aACpB;SACF,CAAC,CAAA;QAEF,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAClD,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC,SAAS,CAAC,CAAA;QAExC,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAClD,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;aACvB;SACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CAAC,uEAAuE,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEhC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,KAAK,EAAE,gBAAgB;SACxB,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ,EAAE;gBACR,WAAW,EAAE,KAAK;gBAClB,MAAM,EAAE,KAAK;aACd;YACD,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;gBAClC,qBAAqB,EAAE,YAAY;aACpC;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,GAC9G,IAAI,CAAC,CAAC,CAAC,CAAA;QACT,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAClE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,WAAW,CAAA;QAEvC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;QAC7D,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5B,uIAAuI,CACxI,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,MAAM,CACV,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAClD,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CACH,CAAC,OAAO,CAAC,YAAY,CACpB,wHAAwH,CACzH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,mBAAmB;aAC3B;YACD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjF,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAExB,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,kBAAkB;aAC1B;YACD,OAAO,EAAE,EAAE;SACZ,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjF,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAA;QAExB,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;QACtF,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,aAAa,GAAG,sCAAsC,CAAA;QAC5D,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE,EAAE;YACd,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,aAAa;iBACd;aACF;SACF,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjF,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;QAE3B,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACjC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,cAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,8BAAe,CAAC;YAC5B,GAAG,SAAS;YACZ,UAAU,EAAE,EAAE;SACf,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,uBAAuB,EAAE;YAC1E,KAAK;YACL,QAAQ;YACR,kBAAkB,EAAE,IAAI;YACxB,IAAI,EAAE;gBACJ,WAAW;gBACX,YAAY;aACb;YACD,QAAQ;YACR,OAAO,EAAE;gBACP,UAAU,EAAE,UAAU;gBACtB,qBAAqB,EAAE,KAAK;aAC7B;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAc,CAAC,CAAA;QAE5D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QACrB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAE3B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACjF,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;QAE1D,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAC5B,uIAAuI,CACxI,CAAA;QACD,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AArjBS,QAAA,WAAW,eAqjBpB"}