@walkeros/cli 4.7.2-next-1791147139360 → 4.7.2

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.
@@ -241,25 +241,25 @@
241
241
  "bundle": {
242
242
  "packages": {
243
243
  "@walkeros/collector": {
244
- "version": "4.7.2-next-1791147139360"
244
+ "version": "4.7.2"
245
245
  },
246
246
  "@walkeros/web-source-cmp-usercentrics": {
247
- "version": "4.7.2-next-1791147139360"
247
+ "version": "4.7.2"
248
248
  },
249
249
  "@walkeros/web-source-session": {
250
- "version": "4.7.2-next-1791147139360"
250
+ "version": "4.7.2"
251
251
  },
252
252
  "@walkeros/web-source-datalayer": {
253
- "version": "4.7.2-next-1791147139360"
253
+ "version": "4.7.2"
254
254
  },
255
255
  "@walkeros/web-source-browser": {
256
- "version": "4.7.2-next-1791147139360"
256
+ "version": "4.7.2"
257
257
  },
258
258
  "@walkeros/web-destination-gtag": {
259
- "version": "4.7.2-next-1791147139360"
259
+ "version": "4.7.2"
260
260
  },
261
261
  "@walkeros/web-destination-api": {
262
- "version": "4.7.2-next-1791147139360"
262
+ "version": "4.7.2"
263
263
  }
264
264
  },
265
265
  "env": {
@@ -277,7 +277,17 @@
277
277
  "custom": {
278
278
  "environment": "$env.ENVIRONMENT"
279
279
  },
280
- "next": "pageGroup"
280
+ "next": [
281
+ {
282
+ "match": {
283
+ "key": "event.user.optout",
284
+ "operator": "eq",
285
+ "value": "true"
286
+ },
287
+ "stop": true
288
+ },
289
+ "pageGroup"
290
+ ]
281
291
  },
282
292
  "sources": {
283
293
  "usercentrics": {
@@ -991,9 +1001,6 @@
991
1001
  ]
992
1002
  }
993
1003
  }
994
- },
995
- "consent": {
996
- "functional": true
997
1004
  }
998
1005
  }
999
1006
  }
@@ -1041,9 +1048,6 @@
1041
1048
  ]
1042
1049
  }
1043
1050
  }
1044
- },
1045
- "consent": {
1046
- "functional": true
1047
1051
  }
1048
1052
  },
1049
1053
  "in": {
@@ -1181,9 +1185,6 @@
1181
1185
  ]
1182
1186
  }
1183
1187
  }
1184
- },
1185
- "consent": {
1186
- "functional": true
1187
1188
  }
1188
1189
  },
1189
1190
  "in": {
@@ -1764,40 +1765,40 @@
1764
1765
  "bundle": {
1765
1766
  "packages": {
1766
1767
  "@walkeros/collector": {
1767
- "version": "4.7.2-next-1791147139360"
1768
+ "version": "4.7.2"
1768
1769
  },
1769
1770
  "@walkeros/server-source-express": {
1770
- "version": "4.7.2-next-1791147139360"
1771
+ "version": "4.7.2"
1771
1772
  },
1772
1773
  "@walkeros/transformer-ga4": {
1773
- "version": "4.7.2-next-1791147139360"
1774
+ "version": "4.7.2"
1774
1775
  },
1775
1776
  "@walkeros/transformer-validate": {
1776
- "version": "4.7.2-next-1791147139360"
1777
+ "version": "4.7.2"
1777
1778
  },
1778
1779
  "@walkeros/server-transformer-bot": {
1779
- "version": "4.7.2-next-1791147139360"
1780
+ "version": "4.7.2"
1780
1781
  },
1781
1782
  "@walkeros/server-transformer-fingerprint": {
1782
- "version": "4.7.2-next-1791147139360"
1783
+ "version": "4.7.2"
1783
1784
  },
1784
1785
  "@walkeros/server-transformer-file": {
1785
- "version": "4.7.2-next-1791147139360"
1786
+ "version": "4.7.2"
1786
1787
  },
1787
1788
  "@walkeros/server-store-fs": {
1788
- "version": "4.7.2-next-1791147139360"
1789
+ "version": "4.7.2"
1789
1790
  },
1790
1791
  "@walkeros/server-destination-gcp": {
1791
- "version": "4.7.2-next-1791147139360"
1792
+ "version": "4.7.2"
1792
1793
  },
1793
1794
  "@walkeros/server-destination-meta": {
1794
- "version": "4.7.2-next-1791147139360"
1795
+ "version": "4.7.2"
1795
1796
  },
1796
1797
  "@walkeros/server-destination-piwikpro": {
1797
- "version": "4.7.2-next-1791147139360"
1798
+ "version": "4.7.2"
1798
1799
  },
1799
1800
  "@walkeros/server-destination-datamanager": {
1800
- "version": "4.7.2-next-1791147139360"
1801
+ "version": "4.7.2"
1801
1802
  }
1802
1803
  }
1803
1804
  }
@@ -1932,7 +1933,17 @@
1932
1933
  }
1933
1934
  ]
1934
1935
  },
1935
- "next": "dedup",
1936
+ "next": [
1937
+ {
1938
+ "match": {
1939
+ "key": "event.user.optout",
1940
+ "operator": "eq",
1941
+ "value": "true"
1942
+ },
1943
+ "stop": true
1944
+ },
1945
+ "dedup"
1946
+ ],
1936
1947
  "examples": {
1937
1948
  "postCollect": {
1938
1949
  "title": "Event from the web flow",
@@ -4499,7 +4510,10 @@
4499
4510
  "event.user.device",
4500
4511
  "event.user.session",
4501
4512
  "event.user.hash"
4502
- ]
4513
+ ],
4514
+ "customDimensions": {
4515
+ "1": "user.segment"
4516
+ }
4503
4517
  },
4504
4518
  "mapping": {
4505
4519
  "page": {
@@ -4594,7 +4608,7 @@
4594
4608
  "examples": {
4595
4609
  "orderWithGoal": {
4596
4610
  "title": "Order with goal",
4597
- "description": "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash.",
4611
+ "description": "order complete becomes an ecommerce order plus a goal hit with the order value; the visitor id falls back to the cookieless hash, and both hits carry the customer segment as custom dimension 1.",
4598
4612
  "public": true,
4599
4613
  "mapping": {
4600
4614
  "name": "ecommerceOrder",
@@ -4658,7 +4672,8 @@
4658
4672
  "hash": "5f1c0a9e7d3b2c41",
4659
4673
  "botScore": 0,
4660
4674
  "botCategory": "human",
4661
- "ltv": 420
4675
+ "ltv": 420,
4676
+ "segment": "loyal"
4662
4677
  },
4663
4678
  "source": {
4664
4679
  "type": "express",
@@ -4691,7 +4706,7 @@
4691
4706
  [
4692
4707
  "sendServer",
4693
4708
  "https://example.piwik.pro/ppms.php",
4694
- "{\"requests\":[\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\",\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\"]}",
4709
+ "{\"requests\":[\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&e_t=order&ec_id=ORD-100&revenue=149.8&ec_products=%5B%5B%22SKU-1%22%2C%22Trail+Runner%22%2Cnull%2C129.9%2C1%2Cnull%2Cnull%2Cnull%5D%2C%5B%22SKU-2%22%2C%22Running+Socks%22%2Cnull%2C9.95%2C2%2Cnull%2Cnull%2Cnull%5D%5D&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\",\"?idsite=e8f3a1c2-0b4d-4e5f-9a6b-7c8d9e0f1a2b&rec=1&send_image=0&ts_n=walkerOS&ts_v=4.6.1&idgoal=6a0f4c1e-3b2d-4e8f-a7c9-1d2e3f4a5b6c&revenue=149.8&dimension1=loyal&url=https%3A%2F%2Fwww.example.com%2Fcheckout%2Fthanks&cip=203.0.113.42&ua=Mozilla%2F5.0+%28Macintosh%3B+Intel+Mac+OS+X+10_15_7%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Chrome%2F128.0.0.0+Safari%2F537.36&_id=174c88fbd5a4b357&uid=cust-42&cdt=1700000000\"]}",
4695
4710
  {
4696
4711
  "timeout": 5000
4697
4712
  }
@@ -4858,13 +4873,13 @@
4858
4873
  "bundle": {
4859
4874
  "packages": {
4860
4875
  "@walkeros/collector": {
4861
- "version": "4.7.2-next-1791147139360"
4876
+ "version": "4.7.2"
4862
4877
  },
4863
4878
  "@walkeros/server-source-gcp": {
4864
- "version": "4.7.2-next-1791147139360"
4879
+ "version": "4.7.2"
4865
4880
  },
4866
4881
  "@walkeros/server-destination-gcp": {
4867
- "version": "4.7.2-next-1791147139360"
4882
+ "version": "4.7.2"
4868
4883
  }
4869
4884
  }
4870
4885
  }
@@ -36,12 +36,12 @@ export GCP_SA="$(node -e "const { generateKeyPairSync } = require('crypto'); con
36
36
 
37
37
  ```text
38
38
  web usercentrics, session, dataLayer, browser
39
- -> collector.next: pageGroup
39
+ -> collector.next: opt-out stop, pageGroup
40
40
  -> ga4 (to Google, main property) gtm (dataLayer) collect (to server)
41
41
 
42
42
  server express /collect /g/collect /walker.js
43
43
  before: one [ G-SUBSITE hit -> ga4Decode -> ga4Consent | *.js -> file (stop) | other /g/collect (stop) ]
44
- next: dedup
44
+ next: opt-out stop, dedup
45
45
  -> collector.next: fingerprint, bot, not impression -> enrich [ loadUser, sessionSave, sessionLoad, validate ]
46
46
  -> pubsub (every event, email pseudonymized)
47
47
  -> meta, piwikpro, datamanager (each behind eventFilter)
@@ -365,10 +365,10 @@ walkeros push packages/cli/examples/flow-complete.json -f web -e '{"name":"order
365
365
  refused pings stay functional false and fail the contract.
366
366
  - `destination-consent` at `/flows/server/destinations/meta/config/consent`:
367
367
  Destination consent: Meta only gets events with marketing consent.
368
- - `rule-consent` at
369
- `/flows/web/destinations/ga4/config/mapping/order/complete/consent`: Rule
370
- consent on purchases: not enforced yet; the destination's functional consent
371
- gates them. Marketing consent belongs to Meta and Data Manager.
368
+ - `user-optout` at `/flows/server/sources/express/next/0`: An opted-out user
369
+ (user.optout true) is stopped first: on the server before dedup, so no dedup
370
+ entry, hash or delivery; on the web first in collector.next, so the browser
371
+ sends nothing.
372
372
  - `value-consent` at
373
373
  `/flows/web/destinations/collect/config/policy/user.email/consent`: Field
374
374
  consent: the email is only kept with marketing consent.
@@ -397,6 +397,12 @@ walkeros push packages/cli/examples/flow-complete.json -f web -e '{"name":"order
397
397
  - **Consent keys:** there are no collector consent defaults, only granted keys
398
398
  travel. `consent.functional` is set only by Usercentrics with `explicitOnly`,
399
399
  so its presence means the user decided.
400
+ - **Opt-out beats consent:** the site sets the flag before the first event. With
401
+ `elbLayer.push(['walker user', { optout: true }])` before walker.js loads, the
402
+ browser sends nothing. `data-elbuser="optout:true"` holds back the page view
403
+ and every later event, but events queued in `elbLayer` before walker.js loads
404
+ are still sent. An opted-out event that reaches the server from another client
405
+ stops before dedup.
400
406
  - **Meta hashes `user_data` itself:** `em` is the raw email; the Meta package
401
407
  normalizes and hashes it before sending, the flow never builds a hash for
402
408
  Meta.
@@ -514,7 +520,8 @@ runneros start dist/server.mjs -p 8080 --env-file .env
514
520
  per destination (London prompt 3).
515
521
  - **Features:**
516
522
  - `web-collector-next` at `/flows/web/collector/next`: On the web
517
- collector.next runs the inline pageGroup step once per event.
523
+ collector.next stops an opted-out user first, then runs the inline pageGroup
524
+ step once per event.
518
525
  - `ga4-other-dropped` at `/flows/server/sources/express/before/one/2`: GA4
519
526
  hits for any other property stop at the route instead of reaching the
520
527
  collector undecoded.
@@ -533,7 +540,7 @@ runneros start dist/server.mjs -p 8080 --env-file .env
533
540
  - `op-suffix` at `/flows/server/sources/express/before/one/1/match/operator`:
534
541
  suffix matches the end of a value: script requests end in .js.
535
542
  - `source-next` at `/flows/server/sources/express/next`: source.next names the
536
- hop after the source, here dedup.
543
+ hops after the source: the opt-out stop, then dedup.
537
544
  - `collector-next` at `/flows/server/collector/next`: collector.next runs once
538
545
  per event before the fan-out: fingerprint and bot for all, enrich for all
539
546
  but impressions.
@@ -713,6 +720,10 @@ walkeros push packages/cli/examples/flow-complete.json -f server -e '{"name":"pa
713
720
  mapping picks fields from the stored row and merges them into the target.
714
721
  - `load-user` at `/flows/server/transformers/loadUser`: loadUser puts the
715
722
  customer lifetime value and segment on logged-in events.
723
+ - `piwik-segment` at
724
+ `/flows/server/destinations/piwikpro/config/settings/customDimensions`:
725
+ Piwik PRO gets the loaded segment as custom dimension 1; the path is
726
+ relative to the event, so user.segment.
716
727
  - `store-fs` at `/flows/server/stores/assets`: An fs store serves files from a
717
728
  folder.
718
729
  - `store-file` at `/flows/server/stores/assets/config/file`: file: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/cli",
3
- "version": "4.7.2-next-1791147139360",
3
+ "version": "4.7.2",
4
4
  "description": "walkerOS CLI - Bundle and deploy walkerOS components",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "dependencies": {
57
57
  "@vercel/nft": "^1.10.2",
58
- "@walkeros/collector": "4.7.2-next-1791147139360",
59
- "@walkeros/core": "4.7.2-next-1791147139360",
60
- "@walkeros/server-core": "4.7.2-next-1791147139360",
61
- "@walkeros/server-destination-api": "4.7.2-next-1791147139360",
62
- "@walkeros/transformer-validate": "4.7.2-next-1791147139360",
58
+ "@walkeros/collector": "4.7.2",
59
+ "@walkeros/core": "4.7.2",
60
+ "@walkeros/server-core": "4.7.2",
61
+ "@walkeros/server-destination-api": "4.7.2",
62
+ "@walkeros/transformer-validate": "4.7.2",
63
63
  "ajv": "^8.17.1",
64
64
  "chalk": "^5.6.2",
65
65
  "ci-info": "^4.4.0",
@@ -83,29 +83,29 @@
83
83
  "@types/pacote": "^11.1.8",
84
84
  "@types/picomatch": "4.0.3",
85
85
  "@types/semver": "^7.7.1",
86
- "@walkeros/config": "4.7.2-next-1791147139360",
87
- "@walkeros/core": "4.7.2-next-1791147139360",
88
- "@walkeros/destination-demo": "4.7.2-next-1791147139360",
89
- "@walkeros/server-destination-aws": "4.7.2-next-1791147139360",
90
- "@walkeros/server-destination-datamanager": "4.7.2-next-1791147139360",
91
- "@walkeros/server-destination-gcp": "4.7.2-next-1791147139360",
92
- "@walkeros/server-destination-meta": "4.7.2-next-1791147139360",
93
- "@walkeros/server-destination-piwikpro": "4.7.2-next-1791147139360",
94
- "@walkeros/server-source-aws": "4.7.2-next-1791147139360",
95
- "@walkeros/server-source-express": "4.7.2-next-1791147139360",
96
- "@walkeros/server-source-gcp": "4.7.2-next-1791147139360",
97
- "@walkeros/server-store-fs": "4.7.2-next-1791147139360",
98
- "@walkeros/server-transformer-bot": "4.7.2-next-1791147139360",
99
- "@walkeros/server-transformer-file": "4.7.2-next-1791147139360",
100
- "@walkeros/server-transformer-fingerprint": "4.7.2-next-1791147139360",
101
- "@walkeros/transformer-ga4": "4.7.2-next-1791147139360",
102
- "@walkeros/web-destination-api": "4.7.2-next-1791147139360",
103
- "@walkeros/web-destination-gtag": "4.7.2-next-1791147139360",
104
- "@walkeros/web-source-browser": "4.7.2-next-1791147139360",
105
- "@walkeros/web-source-cmp-cookiefirst": "4.7.2-next-1791147139360",
106
- "@walkeros/web-source-cmp-usercentrics": "4.7.2-next-1791147139360",
107
- "@walkeros/web-source-datalayer": "4.7.2-next-1791147139360",
108
- "@walkeros/web-source-session": "4.7.2-next-1791147139360",
86
+ "@walkeros/config": "4.7.2",
87
+ "@walkeros/core": "4.7.2",
88
+ "@walkeros/destination-demo": "4.7.2",
89
+ "@walkeros/server-destination-aws": "4.7.2",
90
+ "@walkeros/server-destination-datamanager": "4.7.2",
91
+ "@walkeros/server-destination-gcp": "4.7.2",
92
+ "@walkeros/server-destination-meta": "4.7.2",
93
+ "@walkeros/server-destination-piwikpro": "4.7.2",
94
+ "@walkeros/server-source-aws": "4.7.2",
95
+ "@walkeros/server-source-express": "4.7.2",
96
+ "@walkeros/server-source-gcp": "4.7.2",
97
+ "@walkeros/server-store-fs": "4.7.2",
98
+ "@walkeros/server-transformer-bot": "4.7.2",
99
+ "@walkeros/server-transformer-file": "4.7.2",
100
+ "@walkeros/server-transformer-fingerprint": "4.7.2",
101
+ "@walkeros/transformer-ga4": "4.7.2",
102
+ "@walkeros/web-destination-api": "4.7.2",
103
+ "@walkeros/web-destination-gtag": "4.7.2",
104
+ "@walkeros/web-source-browser": "4.7.2",
105
+ "@walkeros/web-source-cmp-cookiefirst": "4.7.2",
106
+ "@walkeros/web-source-cmp-usercentrics": "4.7.2",
107
+ "@walkeros/web-source-datalayer": "4.7.2",
108
+ "@walkeros/web-source-session": "4.7.2",
109
109
  "msw": "^2.12.10",
110
110
  "openapi-typescript": "^7.13.0",
111
111
  "tsx": "^4.21.0"