@metarouter/ajs-starter-kit 1.0.161 → 1.0.163

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 (36) hide show
  1. package/.dist/ad-marketplace/kit.etag.json +1 -1
  2. package/.dist/ad-marketplace/metadata.json +5 -1
  3. package/.dist/ad-marketplace/playbook.etag.json +1 -1
  4. package/.dist/ad-marketplace/playbook.json +1 -1
  5. package/.dist/axon/kit.etag.json +1 -1
  6. package/.dist/axon/metadata.json +5 -1
  7. package/.dist/axon/playbook.etag.json +1 -1
  8. package/.dist/axon/playbook.json +1 -1
  9. package/.dist/connection-schemas.json +4 -0
  10. package/.dist/gcs/kit.etag.json +1 -1
  11. package/.dist/gcs/metadata.json +5 -1
  12. package/.dist/gcs/playbook.etag.json +1 -1
  13. package/.dist/gcs/playbook.json +1 -1
  14. package/.dist/hightouch/kit.etag.json +1 -1
  15. package/.dist/hightouch/metadata.json +4 -0
  16. package/.dist/hightouch/playbook.etag.json +1 -1
  17. package/.dist/hightouch/playbook.json +3 -3
  18. package/.dist/kargo/kit.etag.json +1 -1
  19. package/.dist/kargo/metadata.json +5 -1
  20. package/.dist/kargo/playbook.etag.json +1 -1
  21. package/.dist/kargo/playbook.json +1 -1
  22. package/.dist/stdout/connection.etag.json +1 -0
  23. package/.dist/stdout/connection.json +3 -0
  24. package/.dist/stdout/kit.etag.json +1 -0
  25. package/.dist/stdout/metadata.json +21 -0
  26. package/.dist/stdout/playbook.etag.json +1 -0
  27. package/.dist/stdout/playbook.json +12 -0
  28. package/.dist/wirtualna-polska/connection.etag.json +1 -0
  29. package/.dist/wirtualna-polska/connection.json +57 -0
  30. package/.dist/wirtualna-polska/kit.etag.json +1 -0
  31. package/.dist/wirtualna-polska/metadata.json +21 -0
  32. package/.dist/wirtualna-polska/playbook.etag.json +1 -0
  33. package/.dist/wirtualna-polska/playbook.json +360 -0
  34. package/README.md +14 -5
  35. package/index.js +21 -0
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- "38b83a2a384b40e3dbcc6d03c27b2221 -"
1
+ "27857c4a676065632e443cd8036ee73f -"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "isDraft": false,
3
3
  "isDeprecated": false,
4
- "isBeta": true,
4
+ "isBeta": false,
5
5
  "friendlyName": "adMarketplace",
6
6
  "description": "adMarketplace is a performance advertising platform that connects advertisers and publishers through native search placements outside traditional search engines.",
7
7
  "logo": "https://cdn.metarouter.io/adMarketplace.png",
@@ -20,6 +20,10 @@
20
20
  {
21
21
  "date": "2026-02-25T21:00:00.000Z",
22
22
  "note": "Version: 0.2.0\nMade endpoint a parameter."
23
+ },
24
+ {
25
+ "date": "2026-03-18T21:00:00.000Z",
26
+ "note": "Version: 1.0.0\nStable Release"
23
27
  }
24
28
  ]
25
29
  }
@@ -1 +1 @@
1
- "f5c1eb1f60bb775ccae865fbe06076ea -"
1
+ "87512da4b642ff7f7df990986f7a3256 -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.0",
2
+ "version": "1.0.0",
3
3
  "params": [
4
4
  {
5
5
  "name": "ADVERTISER_ID",
@@ -1 +1 @@
1
- "49b2bda0f9cda2e5241e9ace07c4fb12 -"
1
+ "276cc7a16c88418688c3f677bc25b80d -"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "isDraft": false,
3
3
  "isDeprecated": false,
4
- "isBeta": true,
4
+ "isBeta": false,
5
5
  "friendlyName": "Axon",
6
6
  "description": "Axon by AppLovin is the company's AI-powered advertising platform, rebranded from its earlier ad tech offerings to focus on automated, performance-driven campaign management.",
7
7
  "logo": "https://cdn.metarouter.io/axon.png",
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2026-02-04T21:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nAxon initial release"
19
+ },
20
+ {
21
+ "date": "2026-03-18T21:00:00.000Z",
22
+ "note": "Version: 1.0.0\nStable Release"
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "012f2c496a6ef7c6fcd63cc131c4a385 -"
1
+ "dc45b7b815a927232caa736bf848345a -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "1.0.0",
3
3
  "global": {
4
4
  "mappings": [
5
5
  {
@@ -541,6 +541,10 @@
541
541
  ],
542
542
  "additionalProperties": false
543
543
  },
544
+ "stdout": {
545
+ "type": "object",
546
+ "additionalProperties": false
547
+ },
544
548
  "testTimeout": {
545
549
  "type": "object",
546
550
  "properties": {
@@ -1 +1 @@
1
- "aba9533defe19a6feea2a6f14d9b15ab -"
1
+ "d617097025513990b32639947f37aa06 -"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "isDraft": false,
3
3
  "isDeprecated": false,
4
- "isBeta": true,
4
+ "isBeta": false,
5
5
  "friendlyName": "Google Cloud Storage",
6
6
  "description": "Cloud Storage is a service for storing your objects in Google Cloud.",
7
7
  "logo": "https://cdn.metarouter.io/logo.svg",
@@ -32,6 +32,10 @@
32
32
  {
33
33
  "date": "2025-10-15T00:00:00.000Z",
34
34
  "note": "Version: 0.2.1\nAdded friendly names to expressions"
35
+ },
36
+ {
37
+ "date": "2026-03-18T21:00:00.000Z",
38
+ "note": "Version: 1.0.0\nStable Release"
35
39
  }
36
40
  ]
37
41
  }
@@ -1 +1 @@
1
- "687cc206e8f52d2bfc94657d957db708 -"
1
+ "e3484ab7e6b7e4c9c36b3b9b99095c92 -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.1",
2
+ "version": "1.0.0",
3
3
  "global": {
4
4
  "expressions": [
5
5
  {
@@ -1 +1 @@
1
- "12d0f4ea559aeda3a5ce8e1c6475367b -"
1
+ "ad8cd33f08d5145fc6f4d54d888f72d0 -"
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2026-01-14T21:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nHightouch initial release"
19
+ },
20
+ {
21
+ "date": "2026-03-18T21:00:00.000Z",
22
+ "note": "Version: 0.1.1\nMap full traits object to traits field of identify"
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "c16cf52e8a3fa69bb15072a42e76605f -"
1
+ "eddff853e310aaf4882ae74be87229fe -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.1.1",
3
3
  "global": {
4
4
  "mappings": [
5
5
  {
@@ -188,8 +188,8 @@
188
188
  "identify": {
189
189
  "mappings": [
190
190
  {
191
- "inputKey": "traits.email",
192
- "outputKey": "traits.email"
191
+ "inputKey": "traits",
192
+ "outputKey": "traits"
193
193
  }
194
194
  ]
195
195
  },
@@ -1 +1 @@
1
- "d1f25b939568b01fe00c42fd77ac67a4 -"
1
+ "e17c2f206dea4076c5a4adaa57c5c5b4 -"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "isDraft": false,
3
3
  "isDeprecated": false,
4
- "isBeta": true,
4
+ "isBeta": false,
5
5
  "friendlyName": "Kargo",
6
6
  "description": "Kargo is a digital advertising technology company that helps brands deliver high-impact, creative ad experiences across mobile, web, connected TV, and social platforms.",
7
7
  "logo": "https://cdn.metarouter.io/kargo.png",
@@ -16,6 +16,10 @@
16
16
  {
17
17
  "date": "2026-02-25T00:00:00.000Z",
18
18
  "note": "Version: 0.1.0\nBeta Version\nKargo Event API initial release"
19
+ },
20
+ {
21
+ "date": "2026-03-11T00:00:00.000Z",
22
+ "note": "Version: 1.0.0\nStable Release"
19
23
  }
20
24
  ]
21
25
  }
@@ -1 +1 @@
1
- "556a909b7801ac71a72fad924fe3d185 -"
1
+ "80fb4175161ca8ee40d87708eeff400c -"
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "1.0.0",
3
3
  "default": {
4
4
  "filters": [
5
5
  {
@@ -0,0 +1 @@
1
+ "274e1ffddde9df4f424752db1c725e21 -"
@@ -0,0 +1,3 @@
1
+ {
2
+ "stdout": {}
3
+ }
@@ -0,0 +1 @@
1
+ "f08f7074316ccfe70395b29128a95d59 -"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Stdout",
6
+ "description": "Outputs processed events to the forwarder pod's standard output, providing a human-readable view of the final event payload after all transforms have been applied. Useful for verifying event structure, debugging transforms, and validating pipeline behavior without requiring an external destination.",
7
+ "logo": "https://cdn.metarouter.io/stdout.png",
8
+ "color": "#FFFFFF",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2026-03-18T21:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nStdout initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "7add18a90eaf1af252f6beeda176233a -"
@@ -0,0 +1,12 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "global": {
4
+ "expressions": [
5
+ {
6
+ "body": "return input",
7
+ "lang": "lua",
8
+ "name": "Full Payload"
9
+ }
10
+ ]
11
+ }
12
+ }
@@ -0,0 +1 @@
1
+ "945daa7ddabeeb268aea180d379b08c1 -"
@@ -0,0 +1,57 @@
1
+ {
2
+ "params": [
3
+ {
4
+ "name": "CLIENT_ID",
5
+ "exampleValue": "my-client-id"
6
+ },
7
+ {
8
+ "name": "CLIENT_SECRET",
9
+ "exampleValue": "my-client-secret"
10
+ }
11
+ ],
12
+ "default": {
13
+ "endpoint": "https://pixel.wp.pl/s2s/v1/events/batch",
14
+ "method": "POST",
15
+ "headers": [
16
+ {
17
+ "key": "Accept-Encoding",
18
+ "value": "application/json"
19
+ },
20
+ {
21
+ "key": "Content-Type",
22
+ "value": "application/json"
23
+ }
24
+ ],
25
+ "batchSize": 50,
26
+ "transform": {
27
+ "lang": "lua",
28
+ "body": "request.body = { events = batch }\nreturn request"
29
+ },
30
+ "oauth2Auth": {
31
+ "request": {
32
+ "body": [
33
+ {
34
+ "key": "client_id",
35
+ "value": "$$CLIENT_ID$$"
36
+ },
37
+ {
38
+ "key": "client_secret",
39
+ "value": "$$CLIENT_SECRET$$"
40
+ },
41
+ {
42
+ "key": "grant_type",
43
+ "value": "client_credentials"
44
+ },
45
+ {
46
+ "key": "scopes",
47
+ "value": "[\"s2s.events.push\"]"
48
+ }
49
+ ],
50
+ "contentType": "application/json",
51
+ "method": "POST",
52
+ "url": "https://pixel.wp.pl/s2s/v1/oauth/token"
53
+ },
54
+ "responseAccessTokenKey": "accessToken"
55
+ }
56
+ }
57
+ }
@@ -0,0 +1 @@
1
+ "9dca155ae5ca42066940048a91ea621c -"
@@ -0,0 +1,21 @@
1
+ {
2
+ "isDraft": false,
3
+ "isDeprecated": false,
4
+ "isBeta": true,
5
+ "friendlyName": "Wirtualna Polska",
6
+ "description": "Wirtualna Polska (WP) is one of the largest digital media and technology companies in Poland, operating a major online portal that provides news, entertainment, business, lifestyle, and sports content.",
7
+ "logo": "https://cdn.metarouter.io/wirtualna-polska.png",
8
+ "color": "#cc0000",
9
+ "eventSource": {
10
+ "isAndroidApp": true,
11
+ "isIosApp": true,
12
+ "isWebApp": true
13
+ },
14
+ "inputSchema": "analytics_js",
15
+ "releaseNotes": [
16
+ {
17
+ "date": "2026-03-11T21:00:00.000Z",
18
+ "note": "Version: 0.1.0\nBeta Version\nWirtualna Polska initial release"
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1 @@
1
+ "7d6bbb0bd7b844da22f533dd147f4a06 -"
@@ -0,0 +1,360 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "params": [
4
+ {
5
+ "name": "PIXEL_ID",
6
+ "exampleValue": "my-pixel-id"
7
+ }
8
+ ],
9
+ "global": {
10
+ "enrichments": [
11
+ {
12
+ "staticString": "$$PIXEL_ID$$",
13
+ "outputKey": "pixel_id"
14
+ }
15
+ ],
16
+ "mappings": [
17
+ {
18
+ "inputKey": "context.providers.wirtualnaPolska.userId",
19
+ "outputKey": "user_id"
20
+ },
21
+ {
22
+ "inputKey": "context.providers.wirtualnaPolska.sessionId",
23
+ "outputKey": "session_id"
24
+ },
25
+ {
26
+ "inputKey": "context.providers.wirtualnaPolska.statid",
27
+ "outputKey": "statid"
28
+ },
29
+ {
30
+ "inputKey": "anonymousId",
31
+ "outputKey": "provider_user_id"
32
+ },
33
+ {
34
+ "inputKey": "userId",
35
+ "outputKey": "longtermId"
36
+ },
37
+ {
38
+ "inputKey": "timestamp",
39
+ "outputKey": "timestamp"
40
+ },
41
+ {
42
+ "inputKey": "context.page.referrer",
43
+ "outputKey": "referer"
44
+ },
45
+ {
46
+ "inputKey": "context.os.name",
47
+ "outputKey": "os"
48
+ },
49
+ {
50
+ "inputKey": "context.timezone",
51
+ "outputKey": "timezone"
52
+ },
53
+ {
54
+ "inputKey": "context.ip",
55
+ "outputKey": "origin_meta.source_ip"
56
+ },
57
+ {
58
+ "inputKey": "context.userAgent",
59
+ "outputKey": "origin_meta.user_agent"
60
+ },
61
+ {
62
+ "inputKey": "input",
63
+ "outputKey": "url",
64
+ "transforms": [
65
+ {
66
+ "expression": {
67
+ "lang": "lua",
68
+ "body": "local url = input.context.page.url or input.properties.url\nif url and url ~= \"\" then return url end\nreturn \"$$PIXEL_ID$$\" .. \".s2s.wp.pl\""
69
+ }
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "inputKey": "input",
75
+ "outputKey": "host",
76
+ "transforms": [
77
+ {
78
+ "expression": {
79
+ "lang": "lua",
80
+ "body": "local url = input.context.page.url or input.properties.url\nif not url or url == \"\" then return end\nreturn url:match(\"^https?://([^/]+)\")"
81
+ }
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "inputKey": "input",
87
+ "outputKey": "email_hash",
88
+ "transforms": [
89
+ {
90
+ "expression": {
91
+ "lang": "lua",
92
+ "body": "local email = input.traits.email\nif not email then return end\n\nemail = TRIM(email)\nemail = LOWER(email)\n\nlocal user, domain = email:match(\"^(.+)@(.+)$\")\nif not user or not domain then return end\n\nuser = user:match(\"^([^+]+)\") or user\n\nif domain == \"gmail.com\" then\n user = user:gsub(\"%.\", \"\")\nend\n\nreturn TO_SHA256_HASH(user .. \"@\" .. domain)"
93
+ }
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "inputKey": "input",
99
+ "outputKey": "app",
100
+ "transforms": [
101
+ {
102
+ "expression": {
103
+ "lang": "lua",
104
+ "body": "local a = input.context.app\nif not a then return end\nlocal device = input.context.device\nlocal platform\nif device then\n local t = LOWER(TRIM(device.type))\n if t == \"ios\" then platform = 1\n elseif t == \"android\" then platform = 2 end\nend\nreturn {\n build = a.build,\n version = a.version,\n name = a.name,\n package = a.namespace,\n platform = platform\n}"
105
+ }
106
+ }
107
+ ]
108
+ }
109
+ ],
110
+ "expressions": [
111
+ {
112
+ "lang": "lua",
113
+ "name": "Mobile Advertising ID",
114
+ "body": "local type = LOWER(TRIM(input.context.device.type))\nlocal advertisingId = input.context.device.advertisingId\n\nif type == 'android' then\n return { gaid = advertisingId }\nelseif type == 'ios' then\n return { idfa = advertisingId, idfv = input.context.device.id }\nend"
115
+ }
116
+ ]
117
+ },
118
+ "default": {
119
+ "filters": [
120
+ {
121
+ "byEventNames": {
122
+ "action": "allow",
123
+ "events": [
124
+ ""
125
+ ]
126
+ }
127
+ }
128
+ ]
129
+ },
130
+ "eventSpecific": {
131
+ "product_viewed": {
132
+ "enrichments": [
133
+ {
134
+ "staticString": "ViewContent",
135
+ "outputKey": "event_type"
136
+ }
137
+ ],
138
+ "mappings": [
139
+ {
140
+ "inputKey": "properties.currency",
141
+ "outputKey": "currency"
142
+ },
143
+ {
144
+ "inputKey": "input",
145
+ "outputKey": "contents",
146
+ "transforms": [
147
+ {
148
+ "expression": {
149
+ "lang": "lua",
150
+ "body": "local p = input.properties\nreturn {\n{\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n}\n}"
151
+ }
152
+ }
153
+ ]
154
+ }
155
+ ]
156
+ },
157
+ "product_added": {
158
+ "enrichments": [
159
+ {
160
+ "staticString": "AddToCart",
161
+ "outputKey": "event_type"
162
+ }
163
+ ],
164
+ "mappings": [
165
+ {
166
+ "inputKey": "properties.currency",
167
+ "outputKey": "currency"
168
+ },
169
+ {
170
+ "inputKey": "input",
171
+ "outputKey": "contents",
172
+ "transforms": [
173
+ {
174
+ "expression": {
175
+ "lang": "lua",
176
+ "body": "local p = input.properties\nreturn {\n{\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n}\n}"
177
+ }
178
+ }
179
+ ]
180
+ }
181
+ ]
182
+ },
183
+ "product_removed": {
184
+ "enrichments": [
185
+ {
186
+ "staticString": "RemoveFromCart",
187
+ "outputKey": "event_type"
188
+ }
189
+ ],
190
+ "mappings": [
191
+ {
192
+ "inputKey": "properties.currency",
193
+ "outputKey": "currency"
194
+ },
195
+ {
196
+ "inputKey": "input",
197
+ "outputKey": "contents",
198
+ "transforms": [
199
+ {
200
+ "expression": {
201
+ "lang": "lua",
202
+ "body": "local p = input.properties\nreturn {\n{\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n}\n}"
203
+ }
204
+ }
205
+ ]
206
+ }
207
+ ]
208
+ },
209
+ "cart_viewed": {
210
+ "enrichments": [
211
+ {
212
+ "staticString": "ViewCart",
213
+ "outputKey": "event_type"
214
+ }
215
+ ],
216
+ "mappings": [
217
+ {
218
+ "inputKey": "input",
219
+ "outputKey": "value",
220
+ "transforms": [
221
+ {
222
+ "expression": {
223
+ "lang": "lua",
224
+ "body": "return TOTAL_VALUE(input.properties.products)"
225
+ }
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "inputKey": "properties.currency",
231
+ "outputKey": "currency"
232
+ },
233
+ {
234
+ "inputKey": "input",
235
+ "outputKey": "contents",
236
+ "transforms": [
237
+ {
238
+ "expression": {
239
+ "lang": "lua",
240
+ "body": "return MAP(input.properties.products, function(p)\n return {\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n }\nend)"
241
+ }
242
+ }
243
+ ]
244
+ }
245
+ ]
246
+ },
247
+ "checkout_started": {
248
+ "enrichments": [
249
+ {
250
+ "staticString": "StartOrder",
251
+ "outputKey": "event_type"
252
+ }
253
+ ],
254
+ "mappings": [
255
+ {
256
+ "inputKey": "input",
257
+ "outputKey": "value",
258
+ "transforms": [
259
+ {
260
+ "expression": {
261
+ "lang": "lua",
262
+ "body": "return input.properties.revenue or TOTAL_VALUE(input.properties.products)"
263
+ }
264
+ }
265
+ ]
266
+ },
267
+ {
268
+ "inputKey": "properties.value",
269
+ "outputKey": "value_gross"
270
+ },
271
+ {
272
+ "inputKey": "properties.shipping",
273
+ "outputKey": "shipping_cost"
274
+ },
275
+ {
276
+ "inputKey": "properties.discount",
277
+ "outputKey": "discount_value"
278
+ },
279
+ {
280
+ "inputKey": "properties.currency",
281
+ "outputKey": "currency"
282
+ },
283
+ {
284
+ "inputKey": "properties.order_id",
285
+ "outputKey": "transaction_id"
286
+ },
287
+ {
288
+ "inputKey": "input",
289
+ "outputKey": "contents",
290
+ "transforms": [
291
+ {
292
+ "expression": {
293
+ "lang": "lua",
294
+ "body": "return MAP(input.properties.products, function(p)\n return {\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n }\nend)"
295
+ }
296
+ }
297
+ ]
298
+ }
299
+ ]
300
+ },
301
+ "order_completed": {
302
+ "enrichments": [
303
+ {
304
+ "staticString": "Purchase",
305
+ "outputKey": "event_type"
306
+ }
307
+ ],
308
+ "mappings": [
309
+ {
310
+ "inputKey": "input",
311
+ "outputKey": "value",
312
+ "transforms": [
313
+ {
314
+ "expression": {
315
+ "lang": "lua",
316
+ "body": "return input.properties.revenue or TOTAL_VALUE(input.properties.products)"
317
+ }
318
+ }
319
+ ]
320
+ },
321
+ {
322
+ "inputKey": "properties.total",
323
+ "outputKey": "value_gross"
324
+ },
325
+ {
326
+ "inputKey": "properties.shipping",
327
+ "outputKey": "shipping_cost"
328
+ },
329
+ {
330
+ "inputKey": "properties.discount",
331
+ "outputKey": "discount_value"
332
+ },
333
+ {
334
+ "inputKey": "properties.currency",
335
+ "outputKey": "currency"
336
+ },
337
+ {
338
+ "inputKey": "properties.order_id",
339
+ "outputKey": "transaction_id"
340
+ },
341
+ {
342
+ "inputKey": "properties.coupon",
343
+ "outputKey": "discount_code"
344
+ },
345
+ {
346
+ "inputKey": "input",
347
+ "outputKey": "contents",
348
+ "transforms": [
349
+ {
350
+ "expression": {
351
+ "lang": "lua",
352
+ "body": "return MAP(input.properties.products, function(p)\n return {\n id = p.product_id or p.sku,\n name = p.name,\n quantity = p.quantity or 1,\n price = p.price,\n category = p.category,\n brand = p.brand\n }\nend)"
353
+ }
354
+ }
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ }
360
+ }
package/README.md CHANGED
@@ -3,7 +3,14 @@
3
3
  ### 2026-03
4
4
  - Adjust
5
5
  - Attentive
6
+ - Axon
6
7
  - Eulerian
8
+ - Google Cloud Storage
9
+ - Hightouch
10
+ - Kargo
11
+ - Stdout (New)
12
+ - Wirtualna Polska (New)
13
+ - adMarketplace
7
14
 
8
15
  | Kit Name | Initial Release Date | Stable Release Date | Latest Release Date | Current Version | Latest Note |
9
16
  |----------|----------------------|---------------------|---------------------|-----------------|-------------|
@@ -26,7 +33,7 @@
26
33
  | AppsFlyer Android | 2021-06-24 | 2023-12-13 | 2024-10-23 | Version: 1.2.0 | Added header `Accept-Encoding: application/json` |
27
34
  | AppsFlyer iOS | 2021-06-24 | 2023-12-13 | 2024-10-23 | Version: 1.2.0 | Added header `Accept-Encoding: application/json` |
28
35
  | Attentive | 2025-12-17 | 2026-03-04 | 2026-03-04 | Version: 1.0.0 | Stable Release |
29
- | Axon | 2026-02-04 | N/A | 2026-02-04 | Version: 0.1.0 | Beta Version Axon initial release |
36
+ | Axon | 2026-02-04 | 2026-03-18 | 2026-03-18 | Version: 1.0.0 | Stable Release |
30
37
  | Azure Blob | 2021-08-03 | 2023-12-13 | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
31
38
  | Bloomreach CDP | 2022-10-06 | N/A | 2023-12-13 | N/A | Marked as stable version: 1.0.0 |
32
39
  | Blueshift | 2021-06-24 | 2025-01-22 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
@@ -47,17 +54,17 @@
47
54
  | Google Analytics 4 | 2022-08-11 | N/A | 2025-12-17 | Version: 1.3.0 | Added consent, device and user_agent mappings Removed gclid and dclid fields Added additional standard events and updated endpoint to a parameter |
48
55
  | Google Analytics 4 (Collect) | 2024-04-24 | 2025-08-20 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
49
56
  | Google BigQuery | 2021-06-24 | 2023-12-13 | 2025-01-16 | Version: 1.1.0 | Adding support for table overrides |
50
- | Google Cloud Storage | 2021-06-24 | N/A | 2025-10-15 | Version: 0.2.1 | Added friendly names to expressions |
57
+ | Google Cloud Storage | 2021-06-24 | 2026-03-18 | 2026-03-18 | Version: 1.0.0 | Stable Release |
51
58
  | Google Pub/Sub | 2021-06-24 | 2023-12-13 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
52
59
  | Heap | 2024-03-26 | N/A | 2024-10-23 | Version: 0.2.0 | Updated header `Accept-Encoding: application/json` |
53
- | Hightouch | 2026-01-14 | N/A | 2026-01-14 | Version: 0.1.0 | Beta Version Hightouch initial release |
60
+ | Hightouch | 2026-01-14 | N/A | 2026-03-18 | Version: 0.1.1 | Map full traits object to traits field of identify |
54
61
  | HubSpot | 2023-02-20 | N/A | 2025-07-30 | Version: 0.4.0 | Replaced context.traits with traits. |
55
62
  | Impact Radius | 2021-06-24 | N/A | 2025-10-15 | Version: 1.2.1 | Added friendly names to expressions |
56
63
  | InMarket | 2021-07-21 | N/A | 2024-10-23 | Version: 0.2.0 | Added header `Accept-Encoding: application/json` |
57
64
  | Innervate | 2021-06-24 | 2024-11-14 | 2024-11-14 | Version: 1.0.0 | Updated friendly name Stable release |
58
65
  | Iterable | 2024-09-25 | 2025-09-10 | 2025-09-10 | Version: 1.0.0 | Stable Release |
59
66
  | Kafka | 2021-06-24 | 2023-12-13 | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
60
- | Kargo | 2026-02-25 | N/A | 2026-02-25 | Version: 0.1.0 | Beta Version Kargo Event API initial release |
67
+ | Kargo | 2026-02-25 | 2026-03-11 | 2026-03-11 | Version: 1.0.0 | Stable Release |
61
68
  | Kochava | 2025-06-25 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
62
69
  | Kochava IdentityLink | 2025-06-25 | N/A | 2025-06-25 | Version: 0.1.0 | Beta Version Kochava IdentityLink initial release |
63
70
  | Linkedin Ads - Conversions | 2025-07-16 | 2025-09-03 | 2025-09-03 | Version: 1.0.0 | Stable Release |
@@ -93,6 +100,7 @@
93
100
  | Snapchat - CAPI | 2024-06-05 | 2024-07-17 | 2026-01-14 | Version: 1.5.0 | Added add_data parameters. |
94
101
  | Snapchat Ads | 2021-06-24 | N/A | 2025-10-15 | Version: 1.1.1 | Added friendly names to expressions |
95
102
  | Snowflake | 2021-06-24 | N/A | 2025-10-15 | Version: 0.1.2 | Added friendly names to expressions |
103
+ | Stdout (New) | 2026-03-18 | N/A | 2026-03-18 | Version: 0.1.0 | Beta Version Stdout initial release |
96
104
  | Teads | 2025-11-12 | 2026-01-07 | 2026-01-07 | Version: 1.0.0 | Stable Release |
97
105
  | The Trade Desk - Conversions | 2025-06-04 | 2025-07-30 | 2025-12-10 | Version: 1.2.0 | Updating identifier mappings |
98
106
  | The Trade Desk - Offline Conversions | 2026-02-25 | N/A | 2026-02-25 | Version: 0.1.1 | ImpressionId field update |
@@ -103,9 +111,10 @@
103
111
  | VideoAmp | 2022-11-17 | N/A | 2024-10-23 | Version: 0.3.0 | Added header `Accept-Encoding: application/json` |
104
112
  | Wallaroo | 2025-12-03 | N/A | 2025-12-10 | Version: 0.1.1 | Added expression name |
105
113
  | Webhooks | 2024-05-29 | 2024-08-07 | 2025-10-15 | Version: 1.0.1 | Added friendly names to expressions |
114
+ | Wirtualna Polska (New) | 2026-03-11 | N/A | 2026-03-11 | Version: 0.1.0 | Beta Version Wirtualna Polska initial release |
106
115
  | X Ads - Web Conversions | 2024-09-04 | 2024-09-25 | 2025-07-30 | Version: 1.1.0 | Replaced context.traits with traits. |
107
116
  | Xandr | 2021-07-13 | N/A | 2024-10-23 | Version: 1.1.0 | Added header `Accept-Encoding: application/json` |
108
117
  | Yahoo Enhanced Attribution | 2023-03-07 | N/A | 2025-04-09 | Version: 0.4.0 | Deprecated |
109
118
  | Yahoo Pixel API | 2023-03-07 | 2023-12-13 | 2025-04-09 | Version: 1.3.0 | Friendly name updated |
110
119
  | Zeotap | 2024-02-21 | 2025-08-20 | 2025-08-20 | Version: 1.0.0 | Stable Release |
111
- | adMarketplace | 2026-01-21 | N/A | 2026-02-25 | Version: 0.2.0 | Made endpoint a parameter. |
120
+ | adMarketplace | 2026-01-21 | 2026-03-18 | 2026-03-18 | Version: 1.0.0 | Stable Release |
package/index.js CHANGED
@@ -86,6 +86,12 @@ exports.snowflake = {
86
86
  metadata: require('./.dist/snowflake/metadata.json')
87
87
  }
88
88
 
89
+ exports.stdout = {
90
+ connectionTemplate: connectionSchemas.properties.stdout,
91
+ playbook: require('./.dist/stdout/playbook.json'),
92
+ metadata: require('./.dist/stdout/metadata.json')
93
+ }
94
+
89
95
  exports.iterable = {
90
96
  connectionTemplate: connectionSchemas.properties.iterable,
91
97
  playbook: require('./.dist/iterable/playbook.json'),
@@ -603,6 +609,12 @@ exports.wallaroo = {
603
609
  metadata: require('./.dist/wallaroo/metadata.json')
604
610
  }
605
611
 
612
+ exports['wirtualna-polska'] = {
613
+ endpointSchema: require('./.dist/wirtualna-polska/connection.json'),
614
+ playbook: require('./.dist/wirtualna-polska/playbook.json'),
615
+ metadata: require('./.dist/wirtualna-polska/metadata.json')
616
+ }
617
+
606
618
  exports['x-ads'] = {
607
619
  endpointSchema: require('./.dist/x-ads/connection.json'),
608
620
  playbook: require('./.dist/x-ads/playbook.json'),
@@ -692,6 +704,10 @@ exports.etags = {
692
704
  playbook: require('./.dist/snowflake/playbook.etag.json'),
693
705
  kit: require('./.dist/snowflake/kit.etag.json')
694
706
  },
707
+ stdout: {
708
+ playbook: require('./.dist/stdout/playbook.etag.json'),
709
+ kit: require('./.dist/stdout/kit.etag.json')
710
+ },
695
711
  iterable: {
696
712
  playbook: require('./.dist/iterable/playbook.etag.json'),
697
713
  kit: require('./.dist/iterable/kit.etag.json')
@@ -1122,6 +1138,11 @@ exports.etags = {
1122
1138
  playbook: require('./.dist/wallaroo/playbook.etag.json'),
1123
1139
  kit: require('./.dist/wallaroo/kit.etag.json')
1124
1140
  },
1141
+ 'wirtualna-polska': {
1142
+ endpointSchema: require('./.dist/wirtualna-polska/connection.etag.json'),
1143
+ playbook: require('./.dist/wirtualna-polska/playbook.etag.json'),
1144
+ kit: require('./.dist/wirtualna-polska/kit.etag.json')
1145
+ },
1125
1146
  'x-ads': {
1126
1147
  endpointSchema: require('./.dist/x-ads/connection.etag.json'),
1127
1148
  playbook: require('./.dist/x-ads/playbook.etag.json'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metarouter/ajs-starter-kit",
3
- "version": "1.0.161",
3
+ "version": "1.0.163",
4
4
  "description": "MetaRouter analytics.js starter kit",
5
5
  "main": "index.js",
6
6
  "scripts": {