@walkeros/cli 4.8.2 → 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.
- package/CHANGELOG.md +59 -3
- package/README.md +2 -2
- package/dist/cli.js +1320 -1318
- package/dist/dev.d.ts +51 -3
- package/dist/dev.js +186 -0
- package/dist/dev.js.map +1 -1
- package/dist/examples/README.md +12 -1
- package/dist/examples/contracts/app.json +261 -0
- package/dist/examples/contracts/base.json +708 -0
- package/dist/examples/contracts/ecommerce.json +963 -0
- package/dist/examples/contracts/leadgen.json +240 -0
- package/dist/examples/contracts/publisher.json +372 -0
- package/dist/examples/contracts/saas.json +229 -0
- package/dist/examples/contracts/travel.json +234 -0
- package/dist/examples/customers/README.md +4 -1
- package/dist/examples/flow-complete.json +40 -25
- package/dist/examples/flow-complete.md +5 -3
- package/dist/examples/index.js +42 -27
- package/dist/examples/index.js.map +1 -1
- package/dist/examples/shared/README.md +4 -0
- package/dist/index.d.ts +41 -41
- package/dist/index.js +161 -134
- package/dist/index.js.map +1 -1
- package/dist/validate.js +264 -132
- package/dist/validate.js.map +1 -1
- package/examples/README.md +12 -1
- package/examples/contracts/app.json +261 -0
- package/examples/contracts/base.json +708 -0
- package/examples/contracts/ecommerce.json +963 -0
- package/examples/contracts/leadgen.json +240 -0
- package/examples/contracts/publisher.json +372 -0
- package/examples/contracts/saas.json +229 -0
- package/examples/contracts/travel.json +234 -0
- package/examples/customers/README.md +4 -1
- package/examples/flow-complete.json +40 -25
- package/examples/flow-complete.md +5 -3
- package/examples/shared/README.md +4 -0
- package/package.json +30 -30
- package/dist/examples/test.html +0 -43
- package/dist/examples/web-serve.js +0 -25503
- package/examples/test.html +0 -43
- package/examples/web-serve.js +0 -25503
package/examples/README.md
CHANGED
|
@@ -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
|
|
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
|
+
}
|