@walkeros/cli 4.8.1 → 4.8.3-next-1793115089237

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 (51) hide show
  1. package/CHANGELOG.md +115 -3
  2. package/README.md +2 -2
  3. package/dist/cli.js +4149 -4149
  4. package/dist/dev.d.ts +51 -3
  5. package/dist/dev.js +186 -0
  6. package/dist/dev.js.map +1 -1
  7. package/dist/examples/README.md +12 -1
  8. package/dist/examples/contracts/app.json +261 -0
  9. package/dist/examples/contracts/base.json +708 -0
  10. package/dist/examples/contracts/ecommerce.json +963 -0
  11. package/dist/examples/contracts/leadgen.json +240 -0
  12. package/dist/examples/contracts/publisher.json +372 -0
  13. package/dist/examples/contracts/saas.json +229 -0
  14. package/dist/examples/contracts/travel.json +234 -0
  15. package/dist/examples/customers/README.md +4 -1
  16. package/dist/examples/event.json +1 -1
  17. package/dist/examples/flow-complete.json +107 -130
  18. package/dist/examples/flow-complete.md +12 -10
  19. package/dist/examples/flow-order-complete.json +1 -1
  20. package/dist/examples/flow.json +1 -1
  21. package/dist/examples/index.d.ts +34 -4
  22. package/dist/examples/index.js +128 -139
  23. package/dist/examples/index.js.map +1 -1
  24. package/dist/examples/shared/README.md +4 -0
  25. package/dist/index.d.ts +63 -223
  26. package/dist/index.js +572 -992
  27. package/dist/index.js.map +1 -1
  28. package/dist/validate.d.ts +1 -1
  29. package/dist/validate.js +337 -204
  30. package/dist/validate.js.map +1 -1
  31. package/examples/README.md +12 -1
  32. package/examples/contracts/app.json +261 -0
  33. package/examples/contracts/base.json +708 -0
  34. package/examples/contracts/ecommerce.json +963 -0
  35. package/examples/contracts/leadgen.json +240 -0
  36. package/examples/contracts/publisher.json +372 -0
  37. package/examples/contracts/saas.json +229 -0
  38. package/examples/contracts/travel.json +234 -0
  39. package/examples/customers/README.md +4 -1
  40. package/examples/event.json +1 -1
  41. package/examples/flow-complete.json +107 -130
  42. package/examples/flow-complete.md +12 -10
  43. package/examples/flow-order-complete.json +1 -1
  44. package/examples/flow.json +1 -1
  45. package/examples/shared/README.md +4 -0
  46. package/package.json +30 -30
  47. package/src/telemetry/flow.json +42 -34
  48. package/dist/examples/test.html +0 -43
  49. package/dist/examples/web-serve.js +0 -25503
  50. package/examples/test.html +0 -43
  51. package/examples/web-serve.js +0 -25503
@@ -49,12 +49,23 @@ npx --package=@walkeros/runner runneros start dist/server/flow.mjs
49
49
  # Web flow: build walker.js, then serve dist/web/ with any static server
50
50
  walkeros bundle examples/flow-complete.json --flow web -o dist/web/
51
51
 
52
- # Test either flow offline, destinations mocked
52
+ # Test the web flow without sending anything, destinations mocked
53
+ walkeros push examples/flow-complete.json --flow web \
54
+ --event '{"name":"page view","data":{"title":"Home"}}' \
55
+ --consent '{"functional":true}' --simulate destination.ga4
56
+
57
+ # The server flow needs GCP_SA, FINGERPRINT_SALT and EMAIL_SALT set (see the
58
+ # setup in flow-complete.md) and a request context for its fingerprint step
53
59
  walkeros push examples/flow-complete.json --flow server \
54
60
  --event '{"name":"page view","data":{"title":"Home"}}' \
61
+ --ingest '{"ip":"203.0.113.7","userAgent":"Mozilla/5.0"}' \
55
62
  --simulate destination.pubsub
56
63
  ```
57
64
 
65
+ Without `GCP_SA` a server simulation stops with
66
+ `required secret "GCP_SA" is not set`; without `--ingest` the fingerprint step
67
+ drops the event and Pub/Sub records `no calls`.
68
+
58
69
  ---
59
70
 
60
71
  ## Web Examples
@@ -0,0 +1,261 @@
1
+ {
2
+ "app": {
3
+ "description": "Events of a mobile app: its screens, its life from install to update, push messages and deep links.",
4
+ "extend": "default",
5
+ "schema": {
6
+ "description": "What every app event adds.",
7
+ "type": "object",
8
+ "properties": {
9
+ "globals": {
10
+ "type": "object",
11
+ "properties": {
12
+ "appVersion": {
13
+ "type": ["string", "number"],
14
+ "description": "The version of the app.",
15
+ "examples": ["2.4.0"]
16
+ },
17
+ "appBuild": {
18
+ "type": ["string", "number"],
19
+ "description": "The build number of the app.",
20
+ "examples": ["240"]
21
+ }
22
+ }
23
+ }
24
+ }
25
+ },
26
+ "events": {
27
+ "screen": {
28
+ "view": {
29
+ "title": "Screen view",
30
+ "description": "A screen of the app was shown. Every app needs it.",
31
+ "examples": [
32
+ {
33
+ "name": "screen view",
34
+ "data": {
35
+ "name": "home"
36
+ },
37
+ "globals": {
38
+ "appVersion": "2.4.0",
39
+ "appBuild": "240"
40
+ },
41
+ "trigger": "load"
42
+ }
43
+ ],
44
+ "required": ["data"],
45
+ "properties": {
46
+ "data": {
47
+ "type": "object",
48
+ "description": "The screen.",
49
+ "required": ["name"],
50
+ "properties": {
51
+ "name": {
52
+ "type": "string",
53
+ "description": "The name of the screen.",
54
+ "examples": ["home"]
55
+ },
56
+ "id": {
57
+ "type": ["string", "number"],
58
+ "description": "The id of the screen."
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ },
65
+ "app": {
66
+ "install": {
67
+ "title": "App install",
68
+ "description": "The app opened for the first time after it was installed. Every app needs it.",
69
+ "examples": [
70
+ {
71
+ "name": "app install",
72
+ "globals": {
73
+ "appVersion": "2.4.0",
74
+ "appBuild": "240"
75
+ }
76
+ }
77
+ ],
78
+ "required": ["globals"],
79
+ "properties": {
80
+ "globals": {
81
+ "type": "object",
82
+ "description": "The installed app.",
83
+ "required": ["appVersion", "appBuild"],
84
+ "properties": {}
85
+ }
86
+ }
87
+ },
88
+ "open": {
89
+ "title": "App open",
90
+ "description": "The app came to the foreground, started fresh or from the background. Every app needs it.",
91
+ "examples": [
92
+ {
93
+ "name": "app open",
94
+ "data": {
95
+ "fromBackground": false
96
+ },
97
+ "globals": {
98
+ "appVersion": "2.4.0",
99
+ "appBuild": "240"
100
+ }
101
+ }
102
+ ],
103
+ "properties": {
104
+ "data": {
105
+ "type": "object",
106
+ "description": "The app opening.",
107
+ "properties": {
108
+ "fromBackground": {
109
+ "type": "boolean",
110
+ "description": "True when the app came back from the background.",
111
+ "examples": [false]
112
+ }
113
+ }
114
+ }
115
+ }
116
+ },
117
+ "background": {
118
+ "title": "App background",
119
+ "description": "The app went to the background. Recommended for most apps.",
120
+ "examples": [
121
+ {
122
+ "name": "app background",
123
+ "globals": {
124
+ "appVersion": "2.4.0",
125
+ "appBuild": "240"
126
+ }
127
+ }
128
+ ]
129
+ },
130
+ "update": {
131
+ "title": "App update",
132
+ "description": "The app started for the first time after an update. Recommended for most apps.",
133
+ "examples": [
134
+ {
135
+ "name": "app update",
136
+ "data": {
137
+ "previousVersion": "2.3.1",
138
+ "previousBuild": "231"
139
+ },
140
+ "globals": {
141
+ "appVersion": "2.4.0",
142
+ "appBuild": "240"
143
+ }
144
+ }
145
+ ],
146
+ "required": ["data", "globals"],
147
+ "properties": {
148
+ "data": {
149
+ "type": "object",
150
+ "description": "The update.",
151
+ "required": ["previousVersion"],
152
+ "properties": {
153
+ "previousVersion": {
154
+ "type": ["string", "number"],
155
+ "description": "The version before the update.",
156
+ "examples": ["2.3.1"]
157
+ },
158
+ "previousBuild": {
159
+ "type": ["string", "number"],
160
+ "description": "The build before the update.",
161
+ "examples": ["231"]
162
+ }
163
+ }
164
+ },
165
+ "globals": {
166
+ "type": "object",
167
+ "description": "The updated app.",
168
+ "required": ["appVersion"],
169
+ "properties": {}
170
+ }
171
+ }
172
+ }
173
+ },
174
+ "notification": {
175
+ "open": {
176
+ "title": "Notification open",
177
+ "description": "The user tapped a push message. Recommended for apps that send push messages. The event names the message by its campaign and holds neither its title nor its text.",
178
+ "examples": [
179
+ {
180
+ "name": "notification open",
181
+ "data": {
182
+ "campaign": "autumn_sale_2026",
183
+ "medium": "push",
184
+ "content": "logolink",
185
+ "action": "Open"
186
+ },
187
+ "globals": {
188
+ "appVersion": "2.4.0",
189
+ "appBuild": "240"
190
+ }
191
+ }
192
+ ],
193
+ "required": ["data"],
194
+ "properties": {
195
+ "data": {
196
+ "type": "object",
197
+ "description": "The push message.",
198
+ "required": ["campaign"],
199
+ "properties": {
200
+ "campaign": {
201
+ "type": "string",
202
+ "description": "The name of the campaign the message belongs to.",
203
+ "examples": ["autumn_sale_2026"]
204
+ },
205
+ "medium": {
206
+ "type": "string",
207
+ "description": "The kind of message, such as push.",
208
+ "examples": ["push"]
209
+ },
210
+ "content": {
211
+ "type": "string",
212
+ "description": "Which version of the message it was.",
213
+ "examples": ["logolink"]
214
+ },
215
+ "action": {
216
+ "type": "string",
217
+ "description": "The button of the message the user tapped.",
218
+ "examples": ["Open"]
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ },
225
+ "deeplink": {
226
+ "open": {
227
+ "title": "Deeplink open",
228
+ "description": "A link opened the app. Recommended for apps with links.",
229
+ "examples": [
230
+ {
231
+ "name": "deeplink open",
232
+ "data": {
233
+ "url": "https://www.example.com/docs/"
234
+ },
235
+ "globals": {
236
+ "appVersion": "2.4.0",
237
+ "appBuild": "240"
238
+ }
239
+ }
240
+ ],
241
+ "required": ["data"],
242
+ "properties": {
243
+ "data": {
244
+ "type": "object",
245
+ "description": "The link.",
246
+ "required": ["url"],
247
+ "properties": {
248
+ "url": {
249
+ "type": "string",
250
+ "format": "url",
251
+ "description": "The link that opened the app.",
252
+ "examples": ["https://www.example.com/docs/"]
253
+ }
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+ }
261
+ }