@metarouter/ajs-starter-kit 1.0.89 → 1.0.91

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 (29) hide show
  1. package/.dist/clinch/connection.etag.json +1 -0
  2. package/.dist/clinch/connection.json +20 -0
  3. package/.dist/clinch/kit.etag.json +1 -0
  4. package/.dist/clinch/metadata.json +20 -0
  5. package/.dist/clinch/playbook.etag.json +1 -0
  6. package/.dist/clinch/playbook.json +492 -0
  7. package/.dist/commission-junction/connection.etag.json +1 -1
  8. package/.dist/commission-junction/connection.json +3 -3
  9. package/.dist/commission-junction/kit.etag.json +1 -1
  10. package/.dist/commission-junction/metadata.json +5 -1
  11. package/.dist/commission-junction/playbook.etag.json +1 -1
  12. package/.dist/commission-junction/playbook.json +3 -75
  13. package/.dist/google-ads/kit.etag.json +1 -1
  14. package/.dist/google-ads/metadata.json +4 -0
  15. package/.dist/google-ads/playbook.etag.json +1 -1
  16. package/.dist/google-ads/playbook.json +1 -13
  17. package/.dist/google-analytics-4-collect/connection.etag.json +1 -0
  18. package/.dist/google-analytics-4-collect/connection.json +20 -0
  19. package/.dist/google-analytics-4-collect/kit.etag.json +1 -0
  20. package/.dist/google-analytics-4-collect/metadata.json +20 -0
  21. package/.dist/google-analytics-4-collect/playbook.etag.json +1 -0
  22. package/.dist/google-analytics-4-collect/playbook.json +677 -0
  23. package/.dist/movable-ink-customer-data/kit.etag.json +1 -1
  24. package/.dist/movable-ink-customer-data/metadata.json +5 -1
  25. package/.dist/movable-ink-customer-data/playbook.etag.json +1 -1
  26. package/.dist/movable-ink-customer-data/playbook.json +1 -1
  27. package/README.md +9 -5
  28. package/index.js +24 -0
  29. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ "1fc63b74a748fc696e5fd9e74fbc26dc"
@@ -0,0 +1,20 @@
1
+ {
2
+ "default": {
3
+ "endpoint": "https://trk.clinch.co/trk",
4
+ "method": "GET",
5
+ "headers": [
6
+ {
7
+ "key": "Content-Type",
8
+ "value": "application/json"
9
+ },
10
+ {
11
+ "key": "User-Agent",
12
+ "fromEventKey": "context.userAgent"
13
+ },
14
+ {
15
+ "key": "HTTP_X_FORWARDED_FOR",
16
+ "fromEventKey": "context.ip"
17
+ }
18
+ ]
19
+ }
20
+ }
@@ -0,0 +1 @@
1
+ "bb5f1493bec844c06b5be5339db26bc8"
@@ -0,0 +1,20 @@
1
+ {
2
+ "isDraft": false,
3
+ "isBeta": true,
4
+ "friendlyName": "Clinch",
5
+ "description": "Clinch is a marketing platform that allows advertisers to create and deliver dynamic video ads that are tailored to individual viewers based on their interests, behaviors, and demographics.",
6
+ "logo": "https://cdn.metarouter.io/clinch.png",
7
+ "color": "#202020",
8
+ "eventSource": {
9
+ "isAndroidApp": false,
10
+ "isIosApp": false,
11
+ "isWebApp": true
12
+ },
13
+ "inputSchema": "analytics_js",
14
+ "releaseNotes": [
15
+ {
16
+ "date": "2024-04-24T00:00:00.000Z",
17
+ "note": "Version: 0.1.0\nBeta Version\nClinch initial release"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1 @@
1
+ "951c2216d3ed21325ca668032a97ee10"
@@ -0,0 +1,492 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "CLIENT_ID",
6
+ "exampleValue": "my-client-id",
7
+ "isOptional": false
8
+ },
9
+ {
10
+ "name": "DATA_SOURCE_ID",
11
+ "exampleValue": "my-data-source-id",
12
+ "isOptional": false
13
+ },
14
+ {
15
+ "name": "PARTNER_ID",
16
+ "defaultValue": "1022",
17
+ "isOptional": false
18
+ }
19
+ ],
20
+ "default": {
21
+ "filters": [
22
+ {
23
+ "byEventNames": {
24
+ "action": "allow",
25
+ "events": [
26
+ ""
27
+ ]
28
+ }
29
+ }
30
+ ]
31
+ },
32
+ "global": {
33
+ "enrichments": [
34
+ {
35
+ "staticString": "$$CLIENT_ID$$",
36
+ "outputKey": "cid"
37
+ },
38
+ {
39
+ "staticString": "$$DATA_SOURCE_ID$$",
40
+ "outputKey": "dsid"
41
+ },
42
+ {
43
+ "staticString": "$$PARTNER_ID$$",
44
+ "outputKey": "partner"
45
+ }
46
+ ],
47
+ "mappings": [
48
+ {
49
+ "inputKey": "input",
50
+ "outputKey": "timestamp",
51
+ "transforms": [
52
+ {
53
+ "expression": {
54
+ "body": "return MILLISECONDS_SINCE_EPOCH_FROM_RFC3999(TO_DATE_TIME(input.originalTimestamp or input.sentAt, { inputFormat = \"2006-01-02T15:04:05Z07:00\" }))",
55
+ "lang": "lua"
56
+ }
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ "inputKey": "context.ip",
62
+ "outputKey": "user_ip"
63
+ },
64
+ {
65
+ "inputKey": "context.userAgent",
66
+ "outputKey": "user_agent"
67
+ },
68
+ {
69
+ "inputKey": "context.page.referrer",
70
+ "outputKey": "referrer"
71
+ },
72
+ {
73
+ "inputKey": "input",
74
+ "outputKey": "hem",
75
+ "transforms": [
76
+ {
77
+ "expression": {
78
+ "body": "if input.context.traits.email then return TO_SHA256_HASH(LOWER(TRIM(input.context.traits.email))) end",
79
+ "lang": "lua"
80
+ }
81
+ }
82
+ ]
83
+ }
84
+ ],
85
+ "expressions": [
86
+ {
87
+ "body": "return input.context.providers.clinch or {}",
88
+ "lang": "lua"
89
+ }
90
+ ]
91
+ },
92
+ "eventSpecific": {
93
+ "page": {
94
+ "enrichments": [
95
+ {
96
+ "staticString": "PageView",
97
+ "outputKey": "type"
98
+ }
99
+ ]
100
+ },
101
+ "products_searched": {
102
+ "enrichments": [
103
+ {
104
+ "staticString": "Search",
105
+ "outputKey": "type"
106
+ }
107
+ ],
108
+ "mappings": [
109
+ {
110
+ "inputKey": "properties.query",
111
+ "outputKey": "term"
112
+ }
113
+ ]
114
+ },
115
+ "product_list_viewed": {
116
+ "enrichments": [
117
+ {
118
+ "staticString": "Category",
119
+ "outputKey": "type"
120
+ },
121
+ {
122
+ "staticString": "Ecommerce",
123
+ "outputKey": "product"
124
+ }
125
+ ],
126
+ "mappings": [
127
+ {
128
+ "inputKey": "properties.category",
129
+ "outputKey": "category"
130
+ },
131
+ {
132
+ "inputKey": "input",
133
+ "outputKey": "ids",
134
+ "transforms": [
135
+ {
136
+ "expression": {
137
+ "body": "return JOIN(PLUCK(input.properties.products, \"product_id\"), \",\")",
138
+ "lang": "lua"
139
+ }
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "inputKey": "input",
145
+ "outputKey": "amount",
146
+ "transforms": [
147
+ {
148
+ "expression": {
149
+ "body": "return SUM(MAP(input.properties.products, function (p) return (p.price or 0) * (p.quantity or 1) end))",
150
+ "lang": "lua"
151
+ }
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "inputKey": "properties.currency",
157
+ "outputKey": "currency",
158
+ "transforms": [
159
+ {
160
+ "modifyString": "uppercase"
161
+ }
162
+ ],
163
+ "defaultString": "USD"
164
+ }
165
+ ]
166
+ },
167
+ "product_viewed": {
168
+ "enrichments": [
169
+ {
170
+ "staticString": "Details",
171
+ "outputKey": "type"
172
+ },
173
+ {
174
+ "staticString": "Ecommerce",
175
+ "outputKey": "product"
176
+ }
177
+ ],
178
+ "mappings": [
179
+ {
180
+ "inputKey": "properties.category",
181
+ "outputKey": "category"
182
+ },
183
+ {
184
+ "inputKey": "properties.product_id",
185
+ "outputKey": "ids"
186
+ },
187
+ {
188
+ "inputKey": "input",
189
+ "outputKey": "amount",
190
+ "transforms": [
191
+ {
192
+ "expression": {
193
+ "body": "return input.properties.value or ((input.properties.price or 0) * (input.properties.quantity or 1))",
194
+ "lang": "lua"
195
+ }
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "inputKey": "properties.currency",
201
+ "outputKey": "currency",
202
+ "transforms": [
203
+ {
204
+ "modifyString": "uppercase"
205
+ }
206
+ ],
207
+ "defaultString": "USD"
208
+ }
209
+ ]
210
+ },
211
+ "product_added": {
212
+ "enrichments": [
213
+ {
214
+ "staticString": "AddtoCart",
215
+ "outputKey": "type"
216
+ },
217
+ {
218
+ "staticString": "Ecommerce",
219
+ "outputKey": "product"
220
+ }
221
+ ],
222
+ "mappings": [
223
+ {
224
+ "inputKey": "properties.category",
225
+ "outputKey": "category"
226
+ },
227
+ {
228
+ "inputKey": "properties.product_id",
229
+ "outputKey": "ids"
230
+ },
231
+ {
232
+ "inputKey": "input",
233
+ "outputKey": "amount",
234
+ "transforms": [
235
+ {
236
+ "expression": {
237
+ "body": "return input.properties.value or ((input.properties.price or 0) * (input.properties.quantity or 1))",
238
+ "lang": "lua"
239
+ }
240
+ }
241
+ ]
242
+ },
243
+ {
244
+ "inputKey": "properties.currency",
245
+ "outputKey": "currency",
246
+ "transforms": [
247
+ {
248
+ "modifyString": "uppercase"
249
+ }
250
+ ],
251
+ "defaultString": "USD"
252
+ }
253
+ ]
254
+ },
255
+ "product_added_to_wishlist": {
256
+ "enrichments": [
257
+ {
258
+ "staticString": "AddToWishList",
259
+ "outputKey": "type"
260
+ },
261
+ {
262
+ "staticString": "Ecommerce",
263
+ "outputKey": "product"
264
+ }
265
+ ],
266
+ "mappings": [
267
+ {
268
+ "inputKey": "properties.category",
269
+ "outputKey": "category"
270
+ },
271
+ {
272
+ "inputKey": "properties.product_id",
273
+ "outputKey": "ids"
274
+ },
275
+ {
276
+ "inputKey": "input",
277
+ "outputKey": "amount",
278
+ "transforms": [
279
+ {
280
+ "expression": {
281
+ "body": "return input.properties.value or ((input.properties.price or 0) * (input.properties.quantity or 1))",
282
+ "lang": "lua"
283
+ }
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ "inputKey": "properties.currency",
289
+ "outputKey": "currency",
290
+ "transforms": [
291
+ {
292
+ "modifyString": "uppercase"
293
+ }
294
+ ],
295
+ "defaultString": "USD"
296
+ }
297
+ ]
298
+ },
299
+ "product_removed": {
300
+ "enrichments": [
301
+ {
302
+ "staticString": "RemFromCart",
303
+ "outputKey": "type"
304
+ },
305
+ {
306
+ "staticString": "Ecommerce",
307
+ "outputKey": "product"
308
+ }
309
+ ],
310
+ "mappings": [
311
+ {
312
+ "inputKey": "properties.category",
313
+ "outputKey": "category"
314
+ },
315
+ {
316
+ "inputKey": "properties.product_id",
317
+ "outputKey": "ids"
318
+ },
319
+ {
320
+ "inputKey": "input",
321
+ "outputKey": "amount",
322
+ "transforms": [
323
+ {
324
+ "expression": {
325
+ "body": "return input.properties.value or ((input.properties.price or 0) * (input.properties.quantity or 1))",
326
+ "lang": "lua"
327
+ }
328
+ }
329
+ ]
330
+ },
331
+ {
332
+ "inputKey": "properties.currency",
333
+ "outputKey": "currency",
334
+ "transforms": [
335
+ {
336
+ "modifyString": "uppercase"
337
+ }
338
+ ],
339
+ "defaultString": "USD"
340
+ }
341
+ ]
342
+ },
343
+ "cart_viewed": {
344
+ "enrichments": [
345
+ {
346
+ "staticString": "CartPage",
347
+ "outputKey": "type"
348
+ },
349
+ {
350
+ "staticString": "Ecommerce",
351
+ "outputKey": "product"
352
+ }
353
+ ],
354
+ "mappings": [
355
+ {
356
+ "inputKey": "input",
357
+ "outputKey": "ids",
358
+ "transforms": [
359
+ {
360
+ "expression": {
361
+ "body": "return JOIN(PLUCK(input.properties.products, \"product_id\"), \",\")",
362
+ "lang": "lua"
363
+ }
364
+ }
365
+ ]
366
+ },
367
+ {
368
+ "inputKey": "input",
369
+ "outputKey": "amount",
370
+ "transforms": [
371
+ {
372
+ "expression": {
373
+ "body": "return SUM(MAP(input.properties.products, function (p) return (p.price or 0) * (p.quantity or 1) end))",
374
+ "lang": "lua"
375
+ }
376
+ }
377
+ ]
378
+ },
379
+ {
380
+ "inputKey": "properties.currency",
381
+ "outputKey": "currency",
382
+ "transforms": [
383
+ {
384
+ "modifyString": "uppercase"
385
+ }
386
+ ],
387
+ "defaultString": "USD"
388
+ }
389
+ ]
390
+ },
391
+ "checkout_started": {
392
+ "enrichments": [
393
+ {
394
+ "staticString": "Checkout",
395
+ "outputKey": "type"
396
+ },
397
+ {
398
+ "staticString": "Ecommerce",
399
+ "outputKey": "product"
400
+ }
401
+ ],
402
+ "mappings": [
403
+ {
404
+ "inputKey": "input",
405
+ "outputKey": "ids",
406
+ "transforms": [
407
+ {
408
+ "expression": {
409
+ "body": "return JOIN(PLUCK(input.properties.products, \"product_id\"), \",\")",
410
+ "lang": "lua"
411
+ }
412
+ }
413
+ ]
414
+ },
415
+ {
416
+ "inputKey": "input",
417
+ "outputKey": "amount",
418
+ "transforms": [
419
+ {
420
+ "expression": {
421
+ "body": "return SUM(MAP(input.properties.products, function (p) return (p.price or 0) * (p.quantity or 1) end))",
422
+ "lang": "lua"
423
+ }
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ "inputKey": "properties.currency",
429
+ "outputKey": "currency",
430
+ "transforms": [
431
+ {
432
+ "modifyString": "uppercase"
433
+ }
434
+ ],
435
+ "defaultString": "USD"
436
+ }
437
+ ]
438
+ },
439
+ "order_completed": {
440
+ "enrichments": [
441
+ {
442
+ "staticString": "Conv",
443
+ "outputKey": "type"
444
+ },
445
+ {
446
+ "staticString": "Ecommerce",
447
+ "outputKey": "product"
448
+ }
449
+ ],
450
+ "mappings": [
451
+ {
452
+ "inputKey": "input",
453
+ "outputKey": "ids",
454
+ "transforms": [
455
+ {
456
+ "expression": {
457
+ "body": "return JOIN(PLUCK(input.properties.products, \"product_id\"), \",\")",
458
+ "lang": "lua"
459
+ }
460
+ }
461
+ ]
462
+ },
463
+ {
464
+ "inputKey": "properties.order_id",
465
+ "outputKey": "orderId"
466
+ },
467
+ {
468
+ "inputKey": "input",
469
+ "outputKey": "amount",
470
+ "transforms": [
471
+ {
472
+ "expression": {
473
+ "body": "return SUM(MAP(input.properties.products, function (p) return (p.price or 0) * (p.quantity or 1) end))",
474
+ "lang": "lua"
475
+ }
476
+ }
477
+ ]
478
+ },
479
+ {
480
+ "inputKey": "properties.currency",
481
+ "outputKey": "currency",
482
+ "transforms": [
483
+ {
484
+ "modifyString": "uppercase"
485
+ }
486
+ ],
487
+ "defaultString": "USD"
488
+ }
489
+ ]
490
+ }
491
+ }
492
+ }
@@ -1 +1 @@
1
- "cbbaaf5da53298fcb3ae02a222edba8d"
1
+ "ed3de2ebee6666aa013cb7aa239592c1"
@@ -20,7 +20,7 @@
20
20
  }
21
21
  ],
22
22
  "transform": {
23
- "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n createOrders(\n newOrders: [%s]\n ) {\n orders {\n submissionId\n orderReceivedTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n eventTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n originState\n taxAmount\n confirmationNumber\n originCity\n itemId\n noCancellation\n orderSubtotal\n destinationCity\n destinationState\n }\n items {\n unitPrice\n quantity\n sku\n discount\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
23
+ "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n createOrders(\n newOrders: [%s]\n ) {\n orders {\n submissionId\n orderReceivedTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n eventTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n taxAmount\n itemId\n orderSubtotal\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
24
24
  "lang": "lua"
25
25
  }
26
26
  },
@@ -51,7 +51,7 @@
51
51
  }
52
52
  ],
53
53
  "transform": {
54
- "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n createOrders(\n newOrders: [%s]\n ) {\n orders {\n submissionId\n orderReceivedTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n eventTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n originState\n taxAmount\n confirmationNumber\n originCity\n itemId\n noCancellation\n orderSubtotal\n destinationCity\n destinationState\n }\n items {\n unitPrice\n quantity\n sku\n discount\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
54
+ "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n createOrders(\n newOrders: [%s]\n ) {\n orders {\n submissionId\n orderReceivedTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n eventTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n taxAmount\n itemId\n orderSubtotal\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
55
55
  "lang": "lua"
56
56
  }
57
57
  },
@@ -66,7 +66,7 @@
66
66
  }
67
67
  ],
68
68
  "transform": {
69
- "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n restateOrders(\n restatedOrders: [%s]\n ) {\n orders {\n submissionId\n updateTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n updateTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n originState\n taxAmount\n confirmationNumber\n originCity\n itemId\n noCancellation\n orderSubtotal\n destinationCity\n destinationState\n }\n items {\n unitPrice\n quantity\n sku\n discount\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
69
+ "body": "function tableToString(tbl)\n local result, isJsonArray = {}, true\n\n for k, v in pairs(tbl) do\n isJsonArray = isJsonArray and type(k) == \"number\" and math.floor(k) == k and k > 0\n\n local valueStr = (\n type(v) == \"table\" and tableToString(v) or\n type(v) == \"boolean\" and tostring(v) or\n type(v) == \"number\" and v or\n '\"' .. tostring(v) .. '\"'\n )\n\n if isJsonArray then\n result[#result + 1] = valueStr\n else\n result[#result + 1] = k .. \":\" .. valueStr\n end\n end\n\n return (isJsonArray and \"[\" or \"{\") .. table.concat(result, \",\") .. (isJsonArray and \"]\" or \"}\")\nend\n\n\nlocal graphQLString = string.format([[\n mutation {\n restateOrders(\n restatedOrders: [%s]\n ) {\n orders {\n submissionId\n updateTime\n advertiser {\n enterpriseId\n }\n actionTracker {\n id\n }\n updateTime\n orderId\n cjEvent\n amount\n discount\n verticalParameters {\n taxAmount\n itemId\n orderSubtotal\n }\n coupon\n currency\n }\n errors {\n message\n fields\n }\n }\n }\n]], tableToString(batch[1]))\n\nrequest.body = { query = graphQLString }\nreturn request",
70
70
  "lang": "lua"
71
71
  }
72
72
  }
@@ -1 +1 @@
1
- "ba3cf74b862aa0ad225420cf51a4d4cc"
1
+ "ed8fede0e7b161c01ac5e5b041e86530"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "isDraft": false,
3
- "isBeta": true,
3
+ "isBeta": false,
4
4
  "friendlyName": "Commission Junction",
5
5
  "description": "Commission Junction provides a platform that connects advertisers with a network of publishers, making it easier for both parties to find suitable partnerships.",
6
6
  "logo": "https://cdn.metarouter.io/commission-junction.png",
@@ -23,6 +23,10 @@
23
23
  {
24
24
  "date": "2024-03-20T00:00:00.000Z",
25
25
  "note": "Bugfix: `cjevent` spelling; `cjEvent` sent only for `order_completed` events.\nMoved the `actionTrackerId` value as the value of the `ACTION_TRACKER_ID` param."
26
+ },
27
+ {
28
+ "date": "2024-04-24T00:00:00.000Z",
29
+ "note": "Removed travel-related params and \"advanced integration\" `items` field.\nStable release version: 1.0.0."
26
30
  }
27
31
  ]
28
32
  }
@@ -1 +1 @@
1
- "84909ed873973ab26ee36e8dad54a318"
1
+ "528287e2fb3f5205291f07fb8a2013df"