@walkeros/cli 4.0.0 → 4.1.0-next-1778155282668
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 +103 -0
- package/README.md +119 -36
- package/dist/cli.js +1777 -1287
- package/dist/examples/README.md +3 -3
- package/dist/examples/flow-complete.json +4 -6
- package/dist/examples/flow-complete.md +8 -10
- package/dist/examples/index.js +4 -6
- package/dist/examples/index.js.map +1 -1
- package/dist/index.d.ts +14 -23
- package/dist/index.js +599 -262
- package/dist/index.js.map +1 -1
- package/examples/README.md +3 -3
- package/examples/flow-complete.json +4 -6
- package/examples/flow-complete.md +8 -10
- package/package.json +11 -7
package/dist/examples/README.md
CHANGED
|
@@ -46,9 +46,9 @@ devcontainer.
|
|
|
46
46
|
**Purpose**: Complete reference demonstrating ALL JSON-compatible walkerOS
|
|
47
47
|
features
|
|
48
48
|
|
|
49
|
-
**Features**: 51 features including variables,
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
**Features**: 51 features including variables, mapping (key, map, loop, set),
|
|
50
|
+
transformers (validator, fingerprint), consent gating, wildcards, ingest
|
|
51
|
+
metadata, and more.
|
|
52
52
|
|
|
53
53
|
**Architecture**: Two named flows (`web` and `server`) showing full event
|
|
54
54
|
pipeline from browser to server-side forwarding.
|
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
"currency": "EUR",
|
|
6
6
|
"flowVersion": "1.0.0",
|
|
7
7
|
"ga4MeasurementId": "$env.GA4_MEASUREMENT_ID:G-DEMO123456",
|
|
8
|
-
"apiUrl": "$env.API_URL:http://localhost:8080/collect"
|
|
9
|
-
},
|
|
10
|
-
"definitions": {
|
|
8
|
+
"apiUrl": "$env.API_URL:http://localhost:8080/collect",
|
|
11
9
|
"ga4ItemsLoop": {
|
|
12
10
|
"loop": [
|
|
13
11
|
"nested",
|
|
@@ -394,7 +392,7 @@
|
|
|
394
392
|
},
|
|
395
393
|
"tax": "data.tax",
|
|
396
394
|
"shipping": "data.shipping",
|
|
397
|
-
"items": "$
|
|
395
|
+
"items": "$var.ga4ItemsLoop"
|
|
398
396
|
}
|
|
399
397
|
}
|
|
400
398
|
}
|
|
@@ -534,7 +532,7 @@
|
|
|
534
532
|
"marketing": true
|
|
535
533
|
}
|
|
536
534
|
},
|
|
537
|
-
"items": "$
|
|
535
|
+
"items": "$var.ga4ItemsLoop"
|
|
538
536
|
}
|
|
539
537
|
}
|
|
540
538
|
}
|
|
@@ -849,7 +847,7 @@
|
|
|
849
847
|
"value": "$var.currency"
|
|
850
848
|
},
|
|
851
849
|
"order_id": "data.id",
|
|
852
|
-
"contents": "$
|
|
850
|
+
"contents": "$var.metaContentsLoop"
|
|
853
851
|
}
|
|
854
852
|
}
|
|
855
853
|
}
|
|
@@ -109,7 +109,7 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
|
|
|
109
109
|
| Wildcard action (\*) | GA4 test, Meta | `"test": { "*": { "ignore": true } }` |
|
|
110
110
|
| Wildcard entity (\*) | Meta click handler | `"*": { "click": { "name": "CustomEvent" } }` |
|
|
111
111
|
|
|
112
|
-
####
|
|
112
|
+
#### Variables
|
|
113
113
|
|
|
114
114
|
| Feature | Location | Example |
|
|
115
115
|
| -------------------- | ------------------ | ---------------------------------------------- |
|
|
@@ -118,8 +118,6 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
|
|
|
118
118
|
| Environment variable | Variables | `"$env.GA4_MEASUREMENT_ID:G-DEMO123456"` |
|
|
119
119
|
| Env with default | Variables | `"$env.API_URL:http://localhost:8080/collect"` |
|
|
120
120
|
| $var reference | GA4 settings | `"$var.ga4MeasurementId"` |
|
|
121
|
-
| Definition (complex) | Root definitions | `"ga4ItemsLoop": { "loop": [...] }` |
|
|
122
|
-
| $def reference | GA4 purchase items | `"$def.ga4ItemsLoop"` |
|
|
123
121
|
| $contract reference | serverValidator | `"$contract.default.events"` |
|
|
124
122
|
| $store reference | filter transformer | `"env": { "store": "$store.cache" }` |
|
|
125
123
|
|
|
@@ -205,13 +203,13 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
|
|
|
205
203
|
These features are now fully supported in JSON via `$code:` prefix (and ARE used
|
|
206
204
|
in this example):
|
|
207
205
|
|
|
208
|
-
| Feature | Status
|
|
209
|
-
| --------------------------- |
|
|
210
|
-
| `fn:` function | ✅ Used via `$code:` in GA4 value
|
|
211
|
-
| `condition:` | ✅ Used via `$code:` in
|
|
212
|
-
| Conditional mapping (array) | ✅ Used in serverValidator
|
|
213
|
-
| Custom transformer code | ✅ Used in enricher, filter
|
|
214
|
-
| Custom destination code | ✅ Used in debug logger
|
|
206
|
+
| Feature | Status |
|
|
207
|
+
| --------------------------- | --------------------------------- |
|
|
208
|
+
| `fn:` function | ✅ Used via `$code:` in GA4 value |
|
|
209
|
+
| `condition:` | ✅ Used via `$code:` in variables |
|
|
210
|
+
| Conditional mapping (array) | ✅ Used in serverValidator |
|
|
211
|
+
| Custom transformer code | ✅ Used in enricher, filter |
|
|
212
|
+
| Custom destination code | ✅ Used in debug logger |
|
|
215
213
|
|
|
216
214
|
#### Omitted for Clarity (6)
|
|
217
215
|
|
package/dist/examples/index.js
CHANGED
|
@@ -28,9 +28,7 @@ var flow_complete_default = {
|
|
|
28
28
|
currency: "EUR",
|
|
29
29
|
flowVersion: "1.0.0",
|
|
30
30
|
ga4MeasurementId: "$env.GA4_MEASUREMENT_ID:G-DEMO123456",
|
|
31
|
-
apiUrl: "$env.API_URL:http://localhost:8080/collect"
|
|
32
|
-
},
|
|
33
|
-
definitions: {
|
|
31
|
+
apiUrl: "$env.API_URL:http://localhost:8080/collect",
|
|
34
32
|
ga4ItemsLoop: {
|
|
35
33
|
loop: [
|
|
36
34
|
"nested",
|
|
@@ -417,7 +415,7 @@ var flow_complete_default = {
|
|
|
417
415
|
},
|
|
418
416
|
tax: "data.tax",
|
|
419
417
|
shipping: "data.shipping",
|
|
420
|
-
items: "$
|
|
418
|
+
items: "$var.ga4ItemsLoop"
|
|
421
419
|
}
|
|
422
420
|
}
|
|
423
421
|
}
|
|
@@ -557,7 +555,7 @@ var flow_complete_default = {
|
|
|
557
555
|
marketing: true
|
|
558
556
|
}
|
|
559
557
|
},
|
|
560
|
-
items: "$
|
|
558
|
+
items: "$var.ga4ItemsLoop"
|
|
561
559
|
}
|
|
562
560
|
}
|
|
563
561
|
}
|
|
@@ -872,7 +870,7 @@ var flow_complete_default = {
|
|
|
872
870
|
value: "$var.currency"
|
|
873
871
|
},
|
|
874
872
|
order_id: "data.id",
|
|
875
|
-
contents: "$
|
|
873
|
+
contents: "$var.metaContentsLoop"
|
|
876
874
|
}
|
|
877
875
|
}
|
|
878
876
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/validators.ts","../../examples/flow-complete.json","../../examples/flow-simple.json","../../src/examples/index.ts"],"sourcesContent":["/**\n * Configuration Type Guards and Validators\n *\n * Type checking utilities for configuration validation.\n * Uses Zod schemas from @walkeros/core for Flow.Json validation.\n */\n\nimport type { Flow } from '@walkeros/core';\nimport { isObject } from '@walkeros/core';\nimport { schemas } from '@walkeros/core/dev';\n\nconst { safeParseConfig } = schemas;\n\n/**\n * Detect platform from a single flow.\n *\n * Platform is determined by `flow.config.platform`.\n */\nexport function detectPlatform(\n flow: Record<string, unknown>,\n): 'web' | 'server' | undefined {\n const config = flow.config;\n if (!isObject(config)) return undefined;\n const platform = config.platform;\n if (platform === 'web' || platform === 'server') return platform;\n return undefined;\n}\n\n/**\n * Type guard: Check if config is a valid Flow.Json structure.\n *\n * @remarks\n * Uses Zod validation from @walkeros/core.\n * Returns false instead of throwing on invalid input.\n *\n * @example\n * ```typescript\n * if (isFlowConfig(config)) {\n * const flowSettings = getFlowSettings(config, 'production');\n * }\n * ```\n */\nexport function isFlowConfig(data: unknown): data is Flow.Json {\n const result = safeParseConfig(data);\n return result.success;\n}\n\n/**\n * Validate Flow.Json and throw descriptive error if invalid.\n *\n * @remarks\n * Uses Zod validation from @walkeros/core.\n * Provides detailed error messages from Zod.\n *\n * @param data - Raw configuration data\n * @returns Validated Flow.Json\n * @throws Error with descriptive message if validation fails\n */\nexport function validateFlowConfig(data: unknown): Flow.Json {\n // After successful Zod parse, the data conforms structurally to Flow.Json.\n // The existing `isFlowConfig` guard re-narrows `unknown` to `Flow.Json` via\n // the same schema — TS can't see through `safeParseConfig` because it\n // returns a Zod-inferred type that differs nominally (not structurally)\n // from the Flow.Json interface.\n if (isFlowConfig(data)) return data;\n\n // Not parseable — format Zod errors for CLI display.\n const result = safeParseConfig(data);\n if (result.success) {\n // Defensive: isFlowConfig and safeParseConfig disagreed (cannot happen).\n throw new Error('Invalid configuration: failed Flow.Json type guard.');\n }\n const errors = result.error.issues\n .map((issue) => {\n const path =\n issue.path.length > 0 ? issue.path.map(String).join('.') : 'root';\n return ` - ${path}: ${issue.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid configuration:\\n${errors}`);\n}\n\n/**\n * Get available flow names from a Flow.Json.\n *\n * @param config - Flow.Json configuration\n * @returns Array of flow names\n */\nexport function getAvailableFlows(config: Flow.Json): string[] {\n return Object.keys(config.flows);\n}\n","{\n \"$schema\": \"https://walkeros.io/schema/flow/v4.json\",\n \"version\": 4,\n \"variables\": {\n \"currency\": \"EUR\",\n \"flowVersion\": \"1.0.0\",\n \"ga4MeasurementId\": \"$env.GA4_MEASUREMENT_ID:G-DEMO123456\",\n \"apiUrl\": \"$env.API_URL:http://localhost:8080/collect\"\n },\n \"definitions\": {\n \"ga4ItemsLoop\": {\n \"loop\": [\n \"nested\",\n {\n \"condition\": \"$code:(value, context) => value.entity === 'product'\",\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"price\": \"data.price\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n },\n \"metaContentsLoop\": {\n \"loop\": [\n \"nested\",\n {\n \"map\": {\n \"id\": \"data.id\",\n \"item_price\": \"data.price\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n },\n \"contract\": {\n \"default\": {\n \"description\": \"Web shop tracking contract\",\n \"globals\": {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"consent\": {\n \"type\": \"object\",\n \"required\": [\"functional\"],\n \"properties\": {\n \"functional\": {\n \"type\": \"boolean\",\n \"const\": true\n }\n }\n },\n \"events\": {\n \"product\": {\n \"*\": {\n \"description\": \"A product in the catalog\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"id\", \"name\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Product SKU\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display name\"\n }\n }\n }\n }\n },\n \"add\": {\n \"description\": \"Product added to cart\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"quantity\"],\n \"properties\": {\n \"quantity\": {\n \"type\": \"integer\",\n \"minimum\": 1\n }\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"description\": \"Purchase completed\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"id\", \"total\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"total\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"flows\": {\n \"web\": {\n \"sources\": {\n \"browser\": {\n \"package\": \"@walkeros/web-source-browser\",\n \"primary\": true,\n \"config\": {\n \"settings\": {\n \"prefix\": \"data-elb\",\n \"pageview\": true,\n \"session\": {\n \"consent\": {\n \"marketing\": true\n }\n },\n \"elb\": \"elb\",\n \"elbLayer\": true\n }\n }\n },\n \"dataLayer\": {\n \"package\": \"@walkeros/web-source-datalayer\",\n \"next\": \"enricher\",\n \"config\": {\n \"require\": [\"session\"],\n \"settings\": {\n \"name\": \"dataLayer\",\n \"prefix\": \"gtag\"\n },\n \"mapping\": {\n \"add_to_cart\": {\n \"*\": {\n \"name\": \"product add\",\n \"data\": {\n \"map\": {\n \"id\": \"items.0.item_id\",\n \"name\": \"items.0.item_name\",\n \"price\": \"items.0.price\",\n \"currency\": \"currency\",\n \"quantity\": {\n \"key\": \"items.0.quantity\",\n \"value\": 1\n }\n }\n }\n }\n },\n \"purchase\": {\n \"*\": {\n \"name\": \"order complete\",\n \"data\": {\n \"map\": {\n \"id\": \"transaction_id\",\n \"total\": \"value\",\n \"currency\": \"currency\",\n \"tax\": \"tax\",\n \"shipping\": \"shipping\"\n }\n }\n }\n }\n }\n }\n },\n \"demo\": {\n \"package\": \"@walkeros/source-demo\",\n \"config\": {\n \"settings\": {\n \"events\": [\n {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"path\": \"/\"\n },\n \"delay\": 0\n },\n {\n \"name\": \"product view\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"category\": \"Clothing\"\n },\n \"delay\": 300\n },\n {\n \"name\": \"product add\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"quantity\": 2\n },\n \"delay\": 600\n },\n {\n \"name\": \"test debug\",\n \"data\": {\n \"message\": \"This should be ignored\"\n },\n \"delay\": 800\n },\n {\n \"name\": \"order complete\",\n \"data\": {\n \"id\": \"ORD-123\",\n \"total\": 149.97,\n \"currency\": \"EUR\",\n \"tax\": 12.5,\n \"shipping\": 5.99\n },\n \"user\": {\n \"email\": \"customer@example.com\",\n \"id\": \"U-456\",\n \"device\": \"d3v1c3\",\n \"session\": \"s3ss10n\"\n },\n \"nested\": [\n {\n \"entity\": \"product\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"quantity\": 2\n }\n },\n {\n \"entity\": \"product\",\n \"data\": {\n \"id\": \"SKU-002\",\n \"name\": \"Red Cap\",\n \"price\": 24.99,\n \"quantity\": 1\n }\n }\n ],\n \"delay\": 1000\n }\n ]\n }\n }\n }\n },\n \"transformers\": {\n \"enricher\": {\n \"code\": {\n \"type\": \"enricher\",\n \"push\": \"$code:(event) => ({ ...event, context: { ...event.context, enrichedAt: Date.now() } })\"\n },\n \"next\": \"dataLayerValidator\",\n \"config\": {}\n },\n \"dataLayerValidator\": {\n \"package\": \"@walkeros/transformer-validator\",\n \"config\": {\n \"settings\": {\n \"events\": \"$contract.default.events\",\n \"globals\": \"$contract.default.globals\"\n }\n }\n }\n },\n \"destinations\": {\n \"ga4\": {\n \"package\": \"@walkeros/web-destination-gtag\",\n \"config\": {\n \"require\": [\"consent\", \"user\"],\n \"consent\": {\n \"marketing\": true\n },\n \"settings\": {\n \"ga4\": {\n \"measurementId\": \"$var.ga4MeasurementId\"\n }\n },\n \"mapping\": {\n \"page\": {\n \"view\": {\n \"name\": \"page_view\",\n \"data\": {\n \"map\": {\n \"page_title\": \"data.title\",\n \"page_location\": \"data.path\"\n }\n }\n }\n },\n \"product\": {\n \"view\": {\n \"name\": \"view_item\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": [\n {\n \"key\": \"data.sku\"\n },\n {\n \"key\": \"data.id\"\n }\n ],\n \"item_name\": \"data.name\",\n \"item_category\": \"data.category\",\n \"price\": \"data.price\"\n }\n }\n ]\n }\n }\n }\n },\n \"add\": {\n \"name\": \"add_to_cart\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"name\": \"purchase\",\n \"data\": {\n \"map\": {\n \"transaction_id\": \"data.id\",\n \"value\": {\n \"key\": \"data.total\",\n \"fn\": \"$code:(v) => Math.round(v * 100)\"\n },\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"tax\": \"data.tax\",\n \"shipping\": \"data.shipping\",\n \"items\": \"$def.ga4ItemsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n }\n }\n },\n \"examples\": {\n \"page-view\": {\n \"in\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"path\": \"/\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n },\n \"mapping\": {\n \"name\": \"page_view\",\n \"data\": {\n \"map\": {\n \"page_title\": \"data.title\",\n \"page_location\": \"data.path\"\n }\n }\n },\n \"out\": [\n \"event\",\n \"page_view\",\n {\n \"page_title\": \"Home\",\n \"page_location\": \"/\"\n }\n ]\n },\n \"product-add\": {\n \"in\": {\n \"name\": \"product add\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"quantity\": 2\n },\n \"entity\": \"product\",\n \"action\": \"add\"\n },\n \"mapping\": {\n \"name\": \"add_to_cart\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"EUR\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n },\n \"out\": [\n \"event\",\n \"add_to_cart\",\n {\n \"currency\": \"EUR\",\n \"value\": 49.99,\n \"items\": [\n {\n \"item_id\": \"SKU-001\",\n \"item_name\": \"Blue Shirt\",\n \"quantity\": 2\n }\n ]\n }\n ]\n },\n \"test-ignored\": {\n \"in\": {\n \"name\": \"test debug\",\n \"data\": {\n \"message\": \"This should be ignored\"\n },\n \"entity\": \"test\",\n \"action\": \"debug\"\n },\n \"out\": false\n }\n }\n },\n \"api\": {\n \"package\": \"@walkeros/web-destination-api\",\n \"config\": {\n \"settings\": {\n \"url\": \"$var.apiUrl\",\n \"batch\": 5,\n \"transform\": \"$code:(data) => JSON.stringify(data)\"\n },\n \"data\": {\n \"map\": {\n \"sent_at\": {\n \"fn\": \"$code:() => Date.now()\"\n },\n \"flow_version\": \"$var.flowVersion\"\n }\n },\n \"mapping\": {\n \"order\": {\n \"complete\": {\n \"data\": {\n \"map\": {\n \"transaction_id\": \"data.id\",\n \"value\": \"data.total\",\n \"currency\": \"data.currency\",\n \"user_email\": {\n \"key\": \"user.email\",\n \"consent\": {\n \"marketing\": true\n }\n },\n \"items\": \"$def.ga4ItemsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n }\n }\n }\n },\n \"debug\": {\n \"code\": {\n \"type\": \"debug-logger\",\n \"push\": \"$code:(event, ctx) => { ctx.logger.info('[DEBUG]', event.name, event.data); }\"\n },\n \"config\": {\n \"consent\": {}\n }\n }\n },\n \"collector\": {\n \"consent\": {\n \"functional\": true,\n \"marketing\": false\n },\n \"user\": {\n \"id\": \"anonymous\"\n },\n \"globals\": {\n \"environment\": \"demo\",\n \"version\": \"$var.flowVersion\"\n },\n \"custom\": {\n \"campaign\": \"flow-demo\"\n }\n },\n \"config\": {\n \"platform\": \"web\",\n \"settings\": {\n \"windowCollector\": \"collector\",\n \"windowElb\": \"elb\"\n },\n \"bundle\": {\n \"packages\": {\n \"@walkeros/collector\": {},\n \"@walkeros/web-source-browser\": {},\n \"@walkeros/web-source-datalayer\": {},\n \"@walkeros/source-demo\": {},\n \"@walkeros/web-destination-gtag\": {},\n \"@walkeros/web-destination-api\": {},\n \"@walkeros/transformer-validator\": {}\n }\n }\n }\n },\n \"server\": {\n \"variables\": {\n \"metaPixelId\": \"$env.META_PIXEL_ID:123456789012345\",\n \"metaAccessToken\": \"$env.META_ACCESS_TOKEN:demo_token\"\n },\n \"stores\": {\n \"cache\": {\n \"package\": \"@walkeros/store-memory\",\n \"config\": {\n \"settings\": {\n \"maxSize\": 10485760,\n \"maxEntries\": 1000\n }\n }\n }\n },\n \"sources\": {\n \"http\": {\n \"package\": \"@walkeros/server-source-express\",\n \"primary\": true,\n \"next\": [\"filter\"],\n \"cache\": {\n \"store\": \"cache\",\n \"rules\": [\n {\n \"match\": {\n \"key\": \"ingest.method\",\n \"operator\": \"eq\",\n \"value\": \"GET\"\n },\n \"key\": [\"ingest.method\", \"ingest.path\"],\n \"ttl\": 300,\n \"update\": {\n \"headers.X-Cache\": {\n \"key\": \"cache.status\"\n }\n }\n }\n ]\n },\n \"config\": {\n \"settings\": {\n \"path\": \"/collect\",\n \"port\": 8080,\n \"cors\": true,\n \"healthCheck\": true\n },\n \"ingest\": {\n \"context.ip\": \"ip\",\n \"context.userAgent\": \"headers.user-agent\",\n \"context.language\": \"headers.accept-language\",\n \"context.referer\": \"headers.referer\",\n \"context.anonymizedIp\": {\n \"key\": \"ip\",\n \"fn\": \"$code:(ip) => ip ? ip.replace(/\\\\.\\\\d+$/, '.0') : ''\"\n }\n }\n },\n \"examples\": {\n \"post-event\": {\n \"in\": {\n \"method\": \"POST\",\n \"path\": \"/collect\",\n \"headers\": {\n \"content-type\": \"application/json\"\n },\n \"body\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"url\": \"https://example.com\"\n }\n }\n },\n \"out\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"url\": \"https://example.com\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n }\n }\n }\n }\n },\n \"transformers\": {\n \"filter\": {\n \"code\": {\n \"type\": \"filter\",\n \"push\": \"$code:(event) => event.name.startsWith('internal_') || event.name.startsWith('debug_') ? false : event\"\n },\n \"next\": \"fingerprint\",\n \"env\": {\n \"store\": \"$store.cache\"\n },\n \"config\": {},\n \"examples\": {\n \"passes-normal\": {\n \"in\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n },\n \"out\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n }\n },\n \"filters-internal\": {\n \"in\": {\n \"name\": \"internal_heartbeat\",\n \"data\": {},\n \"entity\": \"internal\",\n \"action\": \"heartbeat\"\n },\n \"out\": false\n }\n }\n },\n \"fingerprint\": {\n \"package\": \"@walkeros/server-transformer-fingerprint\",\n \"next\": \"serverValidator\",\n \"config\": {\n \"settings\": {\n \"fields\": [\n \"context.ip\",\n \"context.userAgent\",\n \"context.language\",\n {\n \"fn\": \"$code:() => new Date().toISOString().slice(0, 10)\"\n }\n ],\n \"output\": \"user.hash\",\n \"length\": 16\n }\n }\n },\n \"serverValidator\": {\n \"package\": \"@walkeros/transformer-validator\",\n \"config\": {\n \"settings\": {\n \"format\": true,\n \"events\": \"$contract.default.events\",\n \"globals\": \"$contract.default.globals\",\n \"consent\": \"$contract.default.consent\"\n }\n }\n }\n },\n \"destinations\": {\n \"meta\": {\n \"package\": \"@walkeros/server-destination-meta\",\n \"before\": [\"fingerprint\", \"serverValidator\"],\n \"config\": {\n \"settings\": {\n \"pixelId\": \"$var.metaPixelId\",\n \"accessToken\": \"$var.metaAccessToken\",\n \"user_data\": {\n \"external_id\": {\n \"set\": [\"user.device\", \"user.session\"]\n }\n }\n },\n \"policy\": {\n \"user_data.em\": {\n \"key\": \"user.email\",\n \"consent\": {\n \"marketing\": true\n }\n },\n \"user_data.external_id\": \"user.id\",\n \"custom_data.server_processed\": {\n \"value\": true\n },\n \"custom_data.request_meta\": {\n \"map\": {\n \"ip\": \"context.ip\",\n \"ua\": \"context.userAgent\"\n }\n }\n },\n \"mapping\": {\n \"page\": {\n \"view\": {\n \"name\": \"PageView\",\n \"data\": \"data\"\n }\n },\n \"product\": {\n \"view\": {\n \"name\": \"ViewContent\",\n \"data\": {\n \"map\": {\n \"value\": \"data.price\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"content_type\": {\n \"value\": \"product\"\n },\n \"content_ids\": {\n \"set\": [\"data.id\"]\n }\n }\n }\n },\n \"add\": {\n \"name\": \"AddToCart\",\n \"data\": {\n \"map\": {\n \"value\": \"data.price\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"content_type\": {\n \"value\": \"product\"\n },\n \"contents\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"id\": \"data.id\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"name\": \"Purchase\",\n \"data\": {\n \"map\": {\n \"value\": \"data.total\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"order_id\": \"data.id\",\n \"contents\": \"$def.metaContentsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n },\n \"*\": {\n \"click\": {\n \"name\": \"CustomEvent\",\n \"data\": \"data\"\n }\n }\n }\n },\n \"examples\": {\n \"purchase\": {\n \"in\": {\n \"name\": \"order complete\",\n \"data\": {\n \"id\": \"ORD-123\",\n \"total\": 149.97,\n \"currency\": \"EUR\"\n },\n \"entity\": \"order\",\n \"action\": \"complete\"\n },\n \"mapping\": {\n \"name\": \"Purchase\",\n \"data\": {\n \"map\": {\n \"value\": \"data.total\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"EUR\"\n },\n \"order_id\": \"data.id\"\n }\n }\n },\n \"out\": {\n \"data\": [\n {\n \"event_name\": \"Purchase\",\n \"custom_data\": {\n \"value\": 149.97,\n \"currency\": \"EUR\",\n \"order_id\": \"ORD-123\"\n }\n }\n ]\n }\n }\n }\n },\n \"demo\": {\n \"package\": \"@walkeros/destination-demo\",\n \"config\": {\n \"settings\": {\n \"name\": \"Server Events\",\n \"values\": [\"name\", \"data\", \"nested\", \"user\", \"consent\", \"context\"]\n }\n }\n }\n },\n \"collector\": {\n \"consent\": {\n \"functional\": true\n },\n \"globals\": {\n \"environment\": \"demo\",\n \"version\": \"$var.flowVersion\",\n \"platform\": \"server\",\n \"startedAt\": \"$code:Date.now()\"\n }\n },\n \"config\": {\n \"platform\": \"server\",\n \"bundle\": {\n \"packages\": {\n \"@walkeros/core\": {\n \"path\": \"../../core\"\n },\n \"@walkeros/collector\": {\n \"path\": \"../../collector\"\n },\n \"@walkeros/server-source-express\": {},\n \"@walkeros/server-destination-meta\": {},\n \"@walkeros/destination-demo\": {},\n \"@walkeros/transformer-validator\": {},\n \"@walkeros/server-transformer-fingerprint\": {},\n \"@walkeros/store-memory\": {\n \"path\": \"../../stores/memory\"\n }\n }\n }\n }\n }\n }\n}\n","{\n \"version\": 4,\n \"flows\": {\n \"default\": {\n \"destinations\": {\n \"demo\": {\n \"package\": \"@walkeros/destination-demo\",\n \"config\": {\n \"settings\": {\n \"name\": \"Simple Demo\",\n \"values\": [\"name\", \"data\", \"user\", \"consent\"]\n }\n }\n }\n },\n \"config\": {\n \"platform\": \"web\",\n \"bundle\": {\n \"packages\": {\n \"@walkeros/collector\": {\n \"version\": \"latest\",\n \"imports\": [\"startFlow\"]\n },\n \"@walkeros/destination-demo\": {\n \"version\": \"latest\"\n }\n }\n }\n }\n }\n }\n}\n","/**\n * Typed re-exports of bundled example flow configurations.\n *\n * Importing JSON files via `resolveJsonModule` produces a deeply structural\n * type whose literals are widened (`version: number` instead of `4`,\n * `platform: string` instead of `'web' | 'server'`). That widened shape is\n * not assignable to `Flow.Json` and forces every consumer to cast away to\n * `Record<string, unknown>`, losing all type information about the example.\n *\n * Routing the imports through `validateFlowConfig` (a real type guard backed\n * by the canonical Zod schema in `@walkeros/core`) launders the JSON into a\n * proper `Flow.Json` value with no `as` cast at any call site:\n *\n * - The Zod parser checks the structure at module load time. If an example\n * drifts away from the schema, the package fails to load loudly instead\n * of producing a silently broken value.\n * - The return type is `Flow.Json` (the canonical interface), not the Zod\n * inferred shape, because `validateFlowConfig` uses `isFlowConfig` as a\n * `data is Flow.Json` type predicate.\n *\n * Pattern choice (`: Flow.Json` annotation via runtime validator) was picked\n * over `satisfies Flow.Json` and `as const satisfies Flow.Json` because:\n *\n * - `: Flow.Json` annotation alone fails: the JSON's widened literals do\n * not satisfy the literal constraints (`version: 4`, platform unions).\n * - `satisfies Flow.Json` fails for the same reason.\n * - `as const satisfies Flow.Json` cannot be applied to a JSON import\n * (TypeScript does not support `as const` on imported values).\n * - A wrapper-function or runtime-validator approach is the only pattern\n * that produces a `Flow.Json`-typed value without an `as` cast anywhere\n * in the chain. It also gives consumers a load-time correctness check\n * for free.\n *\n * Cost: one Zod parse per example at module init. Examples are loaded by\n * tests, MCP servers, and dev seed scripts. None are perf-critical.\n */\n\nimport { validateFlowConfig } from '../config/validators.js';\n\nimport flowCompleteImport from '../../examples/flow-complete.json';\nimport flowSimpleImport from '../../examples/flow-simple.json';\n\nexport const flowComplete = validateFlowConfig(flowCompleteImport);\nexport const flowSimple = validateFlowConfig(flowSimpleImport);\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/config/validators.ts","../../examples/flow-complete.json","../../examples/flow-simple.json","../../src/examples/index.ts"],"sourcesContent":["/**\n * Configuration Type Guards and Validators\n *\n * Type checking utilities for configuration validation.\n * Uses Zod schemas from @walkeros/core for Flow.Json validation.\n */\n\nimport type { Flow } from '@walkeros/core';\nimport { isObject } from '@walkeros/core';\nimport { schemas } from '@walkeros/core/dev';\n\nconst { safeParseConfig } = schemas;\n\n/**\n * Detect platform from a single flow.\n *\n * Platform is determined by `flow.config.platform`.\n */\nexport function detectPlatform(\n flow: Record<string, unknown>,\n): 'web' | 'server' | undefined {\n const config = flow.config;\n if (!isObject(config)) return undefined;\n const platform = config.platform;\n if (platform === 'web' || platform === 'server') return platform;\n return undefined;\n}\n\n/**\n * Type guard: Check if config is a valid Flow.Json structure.\n *\n * @remarks\n * Uses Zod validation from @walkeros/core.\n * Returns false instead of throwing on invalid input.\n *\n * @example\n * ```typescript\n * if (isFlowConfig(config)) {\n * const flowSettings = getFlowSettings(config, 'production');\n * }\n * ```\n */\nexport function isFlowConfig(data: unknown): data is Flow.Json {\n const result = safeParseConfig(data);\n return result.success;\n}\n\n/**\n * Validate Flow.Json and throw descriptive error if invalid.\n *\n * @remarks\n * Uses Zod validation from @walkeros/core.\n * Provides detailed error messages from Zod.\n *\n * @param data - Raw configuration data\n * @returns Validated Flow.Json\n * @throws Error with descriptive message if validation fails\n */\nexport function validateFlowConfig(data: unknown): Flow.Json {\n // After successful Zod parse, the data conforms structurally to Flow.Json.\n // The existing `isFlowConfig` guard re-narrows `unknown` to `Flow.Json` via\n // the same schema — TS can't see through `safeParseConfig` because it\n // returns a Zod-inferred type that differs nominally (not structurally)\n // from the Flow.Json interface.\n if (isFlowConfig(data)) return data;\n\n // Not parseable — format Zod errors for CLI display.\n const result = safeParseConfig(data);\n if (result.success) {\n // Defensive: isFlowConfig and safeParseConfig disagreed (cannot happen).\n throw new Error('Invalid configuration: failed Flow.Json type guard.');\n }\n const errors = result.error.issues\n .map((issue) => {\n const path =\n issue.path.length > 0 ? issue.path.map(String).join('.') : 'root';\n return ` - ${path}: ${issue.message}`;\n })\n .join('\\n');\n throw new Error(`Invalid configuration:\\n${errors}`);\n}\n\n/**\n * Get available flow names from a Flow.Json.\n *\n * @param config - Flow.Json configuration\n * @returns Array of flow names\n */\nexport function getAvailableFlows(config: Flow.Json): string[] {\n return Object.keys(config.flows);\n}\n","{\n \"$schema\": \"https://walkeros.io/schema/flow/v4.json\",\n \"version\": 4,\n \"variables\": {\n \"currency\": \"EUR\",\n \"flowVersion\": \"1.0.0\",\n \"ga4MeasurementId\": \"$env.GA4_MEASUREMENT_ID:G-DEMO123456\",\n \"apiUrl\": \"$env.API_URL:http://localhost:8080/collect\",\n \"ga4ItemsLoop\": {\n \"loop\": [\n \"nested\",\n {\n \"condition\": \"$code:(value, context) => value.entity === 'product'\",\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"price\": \"data.price\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n },\n \"metaContentsLoop\": {\n \"loop\": [\n \"nested\",\n {\n \"map\": {\n \"id\": \"data.id\",\n \"item_price\": \"data.price\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n },\n \"contract\": {\n \"default\": {\n \"description\": \"Web shop tracking contract\",\n \"globals\": {\n \"type\": \"object\",\n \"properties\": {\n \"environment\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"consent\": {\n \"type\": \"object\",\n \"required\": [\"functional\"],\n \"properties\": {\n \"functional\": {\n \"type\": \"boolean\",\n \"const\": true\n }\n }\n },\n \"events\": {\n \"product\": {\n \"*\": {\n \"description\": \"A product in the catalog\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"id\", \"name\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Product SKU\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Display name\"\n }\n }\n }\n }\n },\n \"add\": {\n \"description\": \"Product added to cart\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"quantity\"],\n \"properties\": {\n \"quantity\": {\n \"type\": \"integer\",\n \"minimum\": 1\n }\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"description\": \"Purchase completed\",\n \"properties\": {\n \"data\": {\n \"type\": \"object\",\n \"required\": [\"id\", \"total\"],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"total\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"flows\": {\n \"web\": {\n \"sources\": {\n \"browser\": {\n \"package\": \"@walkeros/web-source-browser\",\n \"primary\": true,\n \"config\": {\n \"settings\": {\n \"prefix\": \"data-elb\",\n \"pageview\": true,\n \"session\": {\n \"consent\": {\n \"marketing\": true\n }\n },\n \"elb\": \"elb\",\n \"elbLayer\": true\n }\n }\n },\n \"dataLayer\": {\n \"package\": \"@walkeros/web-source-datalayer\",\n \"next\": \"enricher\",\n \"config\": {\n \"require\": [\"session\"],\n \"settings\": {\n \"name\": \"dataLayer\",\n \"prefix\": \"gtag\"\n },\n \"mapping\": {\n \"add_to_cart\": {\n \"*\": {\n \"name\": \"product add\",\n \"data\": {\n \"map\": {\n \"id\": \"items.0.item_id\",\n \"name\": \"items.0.item_name\",\n \"price\": \"items.0.price\",\n \"currency\": \"currency\",\n \"quantity\": {\n \"key\": \"items.0.quantity\",\n \"value\": 1\n }\n }\n }\n }\n },\n \"purchase\": {\n \"*\": {\n \"name\": \"order complete\",\n \"data\": {\n \"map\": {\n \"id\": \"transaction_id\",\n \"total\": \"value\",\n \"currency\": \"currency\",\n \"tax\": \"tax\",\n \"shipping\": \"shipping\"\n }\n }\n }\n }\n }\n }\n },\n \"demo\": {\n \"package\": \"@walkeros/source-demo\",\n \"config\": {\n \"settings\": {\n \"events\": [\n {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"path\": \"/\"\n },\n \"delay\": 0\n },\n {\n \"name\": \"product view\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"category\": \"Clothing\"\n },\n \"delay\": 300\n },\n {\n \"name\": \"product add\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"quantity\": 2\n },\n \"delay\": 600\n },\n {\n \"name\": \"test debug\",\n \"data\": {\n \"message\": \"This should be ignored\"\n },\n \"delay\": 800\n },\n {\n \"name\": \"order complete\",\n \"data\": {\n \"id\": \"ORD-123\",\n \"total\": 149.97,\n \"currency\": \"EUR\",\n \"tax\": 12.5,\n \"shipping\": 5.99\n },\n \"user\": {\n \"email\": \"customer@example.com\",\n \"id\": \"U-456\",\n \"device\": \"d3v1c3\",\n \"session\": \"s3ss10n\"\n },\n \"nested\": [\n {\n \"entity\": \"product\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"quantity\": 2\n }\n },\n {\n \"entity\": \"product\",\n \"data\": {\n \"id\": \"SKU-002\",\n \"name\": \"Red Cap\",\n \"price\": 24.99,\n \"quantity\": 1\n }\n }\n ],\n \"delay\": 1000\n }\n ]\n }\n }\n }\n },\n \"transformers\": {\n \"enricher\": {\n \"code\": {\n \"type\": \"enricher\",\n \"push\": \"$code:(event) => ({ ...event, context: { ...event.context, enrichedAt: Date.now() } })\"\n },\n \"next\": \"dataLayerValidator\",\n \"config\": {}\n },\n \"dataLayerValidator\": {\n \"package\": \"@walkeros/transformer-validator\",\n \"config\": {\n \"settings\": {\n \"events\": \"$contract.default.events\",\n \"globals\": \"$contract.default.globals\"\n }\n }\n }\n },\n \"destinations\": {\n \"ga4\": {\n \"package\": \"@walkeros/web-destination-gtag\",\n \"config\": {\n \"require\": [\"consent\", \"user\"],\n \"consent\": {\n \"marketing\": true\n },\n \"settings\": {\n \"ga4\": {\n \"measurementId\": \"$var.ga4MeasurementId\"\n }\n },\n \"mapping\": {\n \"page\": {\n \"view\": {\n \"name\": \"page_view\",\n \"data\": {\n \"map\": {\n \"page_title\": \"data.title\",\n \"page_location\": \"data.path\"\n }\n }\n }\n },\n \"product\": {\n \"view\": {\n \"name\": \"view_item\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": [\n {\n \"key\": \"data.sku\"\n },\n {\n \"key\": \"data.id\"\n }\n ],\n \"item_name\": \"data.name\",\n \"item_category\": \"data.category\",\n \"price\": \"data.price\"\n }\n }\n ]\n }\n }\n }\n },\n \"add\": {\n \"name\": \"add_to_cart\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"name\": \"purchase\",\n \"data\": {\n \"map\": {\n \"transaction_id\": \"data.id\",\n \"value\": {\n \"key\": \"data.total\",\n \"fn\": \"$code:(v) => Math.round(v * 100)\"\n },\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"tax\": \"data.tax\",\n \"shipping\": \"data.shipping\",\n \"items\": \"$var.ga4ItemsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n }\n }\n },\n \"examples\": {\n \"page-view\": {\n \"in\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"path\": \"/\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n },\n \"mapping\": {\n \"name\": \"page_view\",\n \"data\": {\n \"map\": {\n \"page_title\": \"data.title\",\n \"page_location\": \"data.path\"\n }\n }\n },\n \"out\": [\n \"event\",\n \"page_view\",\n {\n \"page_title\": \"Home\",\n \"page_location\": \"/\"\n }\n ]\n },\n \"product-add\": {\n \"in\": {\n \"name\": \"product add\",\n \"data\": {\n \"id\": \"SKU-001\",\n \"name\": \"Blue Shirt\",\n \"price\": 49.99,\n \"currency\": \"EUR\",\n \"quantity\": 2\n },\n \"entity\": \"product\",\n \"action\": \"add\"\n },\n \"mapping\": {\n \"name\": \"add_to_cart\",\n \"data\": {\n \"map\": {\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"EUR\"\n },\n \"value\": \"data.price\",\n \"items\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"item_id\": \"data.id\",\n \"item_name\": \"data.name\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n },\n \"out\": [\n \"event\",\n \"add_to_cart\",\n {\n \"currency\": \"EUR\",\n \"value\": 49.99,\n \"items\": [\n {\n \"item_id\": \"SKU-001\",\n \"item_name\": \"Blue Shirt\",\n \"quantity\": 2\n }\n ]\n }\n ]\n },\n \"test-ignored\": {\n \"in\": {\n \"name\": \"test debug\",\n \"data\": {\n \"message\": \"This should be ignored\"\n },\n \"entity\": \"test\",\n \"action\": \"debug\"\n },\n \"out\": false\n }\n }\n },\n \"api\": {\n \"package\": \"@walkeros/web-destination-api\",\n \"config\": {\n \"settings\": {\n \"url\": \"$var.apiUrl\",\n \"batch\": 5,\n \"transform\": \"$code:(data) => JSON.stringify(data)\"\n },\n \"data\": {\n \"map\": {\n \"sent_at\": {\n \"fn\": \"$code:() => Date.now()\"\n },\n \"flow_version\": \"$var.flowVersion\"\n }\n },\n \"mapping\": {\n \"order\": {\n \"complete\": {\n \"data\": {\n \"map\": {\n \"transaction_id\": \"data.id\",\n \"value\": \"data.total\",\n \"currency\": \"data.currency\",\n \"user_email\": {\n \"key\": \"user.email\",\n \"consent\": {\n \"marketing\": true\n }\n },\n \"items\": \"$var.ga4ItemsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n }\n }\n }\n },\n \"debug\": {\n \"code\": {\n \"type\": \"debug-logger\",\n \"push\": \"$code:(event, ctx) => { ctx.logger.info('[DEBUG]', event.name, event.data); }\"\n },\n \"config\": {\n \"consent\": {}\n }\n }\n },\n \"collector\": {\n \"consent\": {\n \"functional\": true,\n \"marketing\": false\n },\n \"user\": {\n \"id\": \"anonymous\"\n },\n \"globals\": {\n \"environment\": \"demo\",\n \"version\": \"$var.flowVersion\"\n },\n \"custom\": {\n \"campaign\": \"flow-demo\"\n }\n },\n \"config\": {\n \"platform\": \"web\",\n \"settings\": {\n \"windowCollector\": \"collector\",\n \"windowElb\": \"elb\"\n },\n \"bundle\": {\n \"packages\": {\n \"@walkeros/collector\": {},\n \"@walkeros/web-source-browser\": {},\n \"@walkeros/web-source-datalayer\": {},\n \"@walkeros/source-demo\": {},\n \"@walkeros/web-destination-gtag\": {},\n \"@walkeros/web-destination-api\": {},\n \"@walkeros/transformer-validator\": {}\n }\n }\n }\n },\n \"server\": {\n \"variables\": {\n \"metaPixelId\": \"$env.META_PIXEL_ID:123456789012345\",\n \"metaAccessToken\": \"$env.META_ACCESS_TOKEN:demo_token\"\n },\n \"stores\": {\n \"cache\": {\n \"package\": \"@walkeros/store-memory\",\n \"config\": {\n \"settings\": {\n \"maxSize\": 10485760,\n \"maxEntries\": 1000\n }\n }\n }\n },\n \"sources\": {\n \"http\": {\n \"package\": \"@walkeros/server-source-express\",\n \"primary\": true,\n \"next\": [\"filter\"],\n \"cache\": {\n \"store\": \"cache\",\n \"rules\": [\n {\n \"match\": {\n \"key\": \"ingest.method\",\n \"operator\": \"eq\",\n \"value\": \"GET\"\n },\n \"key\": [\"ingest.method\", \"ingest.path\"],\n \"ttl\": 300,\n \"update\": {\n \"headers.X-Cache\": {\n \"key\": \"cache.status\"\n }\n }\n }\n ]\n },\n \"config\": {\n \"settings\": {\n \"path\": \"/collect\",\n \"port\": 8080,\n \"cors\": true,\n \"healthCheck\": true\n },\n \"ingest\": {\n \"context.ip\": \"ip\",\n \"context.userAgent\": \"headers.user-agent\",\n \"context.language\": \"headers.accept-language\",\n \"context.referer\": \"headers.referer\",\n \"context.anonymizedIp\": {\n \"key\": \"ip\",\n \"fn\": \"$code:(ip) => ip ? ip.replace(/\\\\.\\\\d+$/, '.0') : ''\"\n }\n }\n },\n \"examples\": {\n \"post-event\": {\n \"in\": {\n \"method\": \"POST\",\n \"path\": \"/collect\",\n \"headers\": {\n \"content-type\": \"application/json\"\n },\n \"body\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"url\": \"https://example.com\"\n }\n }\n },\n \"out\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\",\n \"url\": \"https://example.com\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n }\n }\n }\n }\n },\n \"transformers\": {\n \"filter\": {\n \"code\": {\n \"type\": \"filter\",\n \"push\": \"$code:(event) => event.name.startsWith('internal_') || event.name.startsWith('debug_') ? false : event\"\n },\n \"next\": \"fingerprint\",\n \"env\": {\n \"store\": \"$store.cache\"\n },\n \"config\": {},\n \"examples\": {\n \"passes-normal\": {\n \"in\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n },\n \"out\": {\n \"name\": \"page view\",\n \"data\": {\n \"title\": \"Home\"\n },\n \"entity\": \"page\",\n \"action\": \"view\"\n }\n },\n \"filters-internal\": {\n \"in\": {\n \"name\": \"internal_heartbeat\",\n \"data\": {},\n \"entity\": \"internal\",\n \"action\": \"heartbeat\"\n },\n \"out\": false\n }\n }\n },\n \"fingerprint\": {\n \"package\": \"@walkeros/server-transformer-fingerprint\",\n \"next\": \"serverValidator\",\n \"config\": {\n \"settings\": {\n \"fields\": [\n \"context.ip\",\n \"context.userAgent\",\n \"context.language\",\n {\n \"fn\": \"$code:() => new Date().toISOString().slice(0, 10)\"\n }\n ],\n \"output\": \"user.hash\",\n \"length\": 16\n }\n }\n },\n \"serverValidator\": {\n \"package\": \"@walkeros/transformer-validator\",\n \"config\": {\n \"settings\": {\n \"format\": true,\n \"events\": \"$contract.default.events\",\n \"globals\": \"$contract.default.globals\",\n \"consent\": \"$contract.default.consent\"\n }\n }\n }\n },\n \"destinations\": {\n \"meta\": {\n \"package\": \"@walkeros/server-destination-meta\",\n \"before\": [\"fingerprint\", \"serverValidator\"],\n \"config\": {\n \"settings\": {\n \"pixelId\": \"$var.metaPixelId\",\n \"accessToken\": \"$var.metaAccessToken\",\n \"user_data\": {\n \"external_id\": {\n \"set\": [\"user.device\", \"user.session\"]\n }\n }\n },\n \"policy\": {\n \"user_data.em\": {\n \"key\": \"user.email\",\n \"consent\": {\n \"marketing\": true\n }\n },\n \"user_data.external_id\": \"user.id\",\n \"custom_data.server_processed\": {\n \"value\": true\n },\n \"custom_data.request_meta\": {\n \"map\": {\n \"ip\": \"context.ip\",\n \"ua\": \"context.userAgent\"\n }\n }\n },\n \"mapping\": {\n \"page\": {\n \"view\": {\n \"name\": \"PageView\",\n \"data\": \"data\"\n }\n },\n \"product\": {\n \"view\": {\n \"name\": \"ViewContent\",\n \"data\": {\n \"map\": {\n \"value\": \"data.price\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"content_type\": {\n \"value\": \"product\"\n },\n \"content_ids\": {\n \"set\": [\"data.id\"]\n }\n }\n }\n },\n \"add\": {\n \"name\": \"AddToCart\",\n \"data\": {\n \"map\": {\n \"value\": \"data.price\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"content_type\": {\n \"value\": \"product\"\n },\n \"contents\": {\n \"loop\": [\n \"this\",\n {\n \"map\": {\n \"id\": \"data.id\",\n \"quantity\": {\n \"key\": \"data.quantity\",\n \"value\": 1\n }\n }\n }\n ]\n }\n }\n }\n }\n },\n \"order\": {\n \"complete\": {\n \"name\": \"Purchase\",\n \"data\": {\n \"map\": {\n \"value\": \"data.total\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"$var.currency\"\n },\n \"order_id\": \"data.id\",\n \"contents\": \"$var.metaContentsLoop\"\n }\n }\n }\n },\n \"test\": {\n \"*\": {\n \"ignore\": true\n }\n },\n \"*\": {\n \"click\": {\n \"name\": \"CustomEvent\",\n \"data\": \"data\"\n }\n }\n }\n },\n \"examples\": {\n \"purchase\": {\n \"in\": {\n \"name\": \"order complete\",\n \"data\": {\n \"id\": \"ORD-123\",\n \"total\": 149.97,\n \"currency\": \"EUR\"\n },\n \"entity\": \"order\",\n \"action\": \"complete\"\n },\n \"mapping\": {\n \"name\": \"Purchase\",\n \"data\": {\n \"map\": {\n \"value\": \"data.total\",\n \"currency\": {\n \"key\": \"data.currency\",\n \"value\": \"EUR\"\n },\n \"order_id\": \"data.id\"\n }\n }\n },\n \"out\": {\n \"data\": [\n {\n \"event_name\": \"Purchase\",\n \"custom_data\": {\n \"value\": 149.97,\n \"currency\": \"EUR\",\n \"order_id\": \"ORD-123\"\n }\n }\n ]\n }\n }\n }\n },\n \"demo\": {\n \"package\": \"@walkeros/destination-demo\",\n \"config\": {\n \"settings\": {\n \"name\": \"Server Events\",\n \"values\": [\"name\", \"data\", \"nested\", \"user\", \"consent\", \"context\"]\n }\n }\n }\n },\n \"collector\": {\n \"consent\": {\n \"functional\": true\n },\n \"globals\": {\n \"environment\": \"demo\",\n \"version\": \"$var.flowVersion\",\n \"platform\": \"server\",\n \"startedAt\": \"$code:Date.now()\"\n }\n },\n \"config\": {\n \"platform\": \"server\",\n \"bundle\": {\n \"packages\": {\n \"@walkeros/core\": {\n \"path\": \"../../core\"\n },\n \"@walkeros/collector\": {\n \"path\": \"../../collector\"\n },\n \"@walkeros/server-source-express\": {},\n \"@walkeros/server-destination-meta\": {},\n \"@walkeros/destination-demo\": {},\n \"@walkeros/transformer-validator\": {},\n \"@walkeros/server-transformer-fingerprint\": {},\n \"@walkeros/store-memory\": {\n \"path\": \"../../stores/memory\"\n }\n }\n }\n }\n }\n }\n}\n","{\n \"version\": 4,\n \"flows\": {\n \"default\": {\n \"destinations\": {\n \"demo\": {\n \"package\": \"@walkeros/destination-demo\",\n \"config\": {\n \"settings\": {\n \"name\": \"Simple Demo\",\n \"values\": [\"name\", \"data\", \"user\", \"consent\"]\n }\n }\n }\n },\n \"config\": {\n \"platform\": \"web\",\n \"bundle\": {\n \"packages\": {\n \"@walkeros/collector\": {\n \"version\": \"latest\",\n \"imports\": [\"startFlow\"]\n },\n \"@walkeros/destination-demo\": {\n \"version\": \"latest\"\n }\n }\n }\n }\n }\n }\n}\n","/**\n * Typed re-exports of bundled example flow configurations.\n *\n * Importing JSON files via `resolveJsonModule` produces a deeply structural\n * type whose literals are widened (`version: number` instead of `4`,\n * `platform: string` instead of `'web' | 'server'`). That widened shape is\n * not assignable to `Flow.Json` and forces every consumer to cast away to\n * `Record<string, unknown>`, losing all type information about the example.\n *\n * Routing the imports through `validateFlowConfig` (a real type guard backed\n * by the canonical Zod schema in `@walkeros/core`) launders the JSON into a\n * proper `Flow.Json` value with no `as` cast at any call site:\n *\n * - The Zod parser checks the structure at module load time. If an example\n * drifts away from the schema, the package fails to load loudly instead\n * of producing a silently broken value.\n * - The return type is `Flow.Json` (the canonical interface), not the Zod\n * inferred shape, because `validateFlowConfig` uses `isFlowConfig` as a\n * `data is Flow.Json` type predicate.\n *\n * Pattern choice (`: Flow.Json` annotation via runtime validator) was picked\n * over `satisfies Flow.Json` and `as const satisfies Flow.Json` because:\n *\n * - `: Flow.Json` annotation alone fails: the JSON's widened literals do\n * not satisfy the literal constraints (`version: 4`, platform unions).\n * - `satisfies Flow.Json` fails for the same reason.\n * - `as const satisfies Flow.Json` cannot be applied to a JSON import\n * (TypeScript does not support `as const` on imported values).\n * - A wrapper-function or runtime-validator approach is the only pattern\n * that produces a `Flow.Json`-typed value without an `as` cast anywhere\n * in the chain. It also gives consumers a load-time correctness check\n * for free.\n *\n * Cost: one Zod parse per example at module init. Examples are loaded by\n * tests, MCP servers, and dev seed scripts. None are perf-critical.\n */\n\nimport { validateFlowConfig } from '../config/validators.js';\n\nimport flowCompleteImport from '../../examples/flow-complete.json';\nimport flowSimpleImport from '../../examples/flow-simple.json';\n\nexport const flowComplete = validateFlowConfig(flowCompleteImport);\nexport const flowSimple = validateFlowConfig(flowSimpleImport);\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ import * as openapi_fetch from 'openapi-fetch';
|
|
|
27
27
|
interface CLIBuildOptions extends Pick<BuildOptions$1, 'external'> {
|
|
28
28
|
/**
|
|
29
29
|
* Output file path (CLI argument, not in config).
|
|
30
|
-
* @default "./dist/walker.js" (web) or "./dist/
|
|
30
|
+
* @default "./dist/walker.js" (web) or "./dist/flow.mjs" (server)
|
|
31
31
|
*/
|
|
32
32
|
output?: string;
|
|
33
33
|
/**
|
|
@@ -67,6 +67,13 @@ interface BuildOptions extends CLIBuildOptions {
|
|
|
67
67
|
* Only substitutes transitive specs; direct package specs always win.
|
|
68
68
|
*/
|
|
69
69
|
overrides?: Record<string, string>;
|
|
70
|
+
/**
|
|
71
|
+
* Extra paths or globs the bundler must include in the trace output.
|
|
72
|
+
* Sourced from `flow.<name>.config.bundle.traceInclude`. Resolved against
|
|
73
|
+
* the bundler install root before being passed to the file tracer. Globs
|
|
74
|
+
* (entries containing `*`, `?`, `[`, or `{`) are expanded via picomatch.
|
|
75
|
+
*/
|
|
76
|
+
traceInclude?: string[];
|
|
70
77
|
/**
|
|
71
78
|
* Output format.
|
|
72
79
|
*/
|
|
@@ -199,7 +206,6 @@ interface BundleCommandOptions {
|
|
|
199
206
|
cache?: boolean;
|
|
200
207
|
verbose?: boolean;
|
|
201
208
|
silent?: boolean;
|
|
202
|
-
dockerfile?: boolean | string;
|
|
203
209
|
}
|
|
204
210
|
declare function bundleCommand(options: BundleCommandOptions): Promise<void>;
|
|
205
211
|
/**
|
|
@@ -2598,7 +2604,7 @@ interface paths {
|
|
|
2598
2604
|
};
|
|
2599
2605
|
/**
|
|
2600
2606
|
* Download settings JSON
|
|
2601
|
-
* @description Download the named flow settings as a self-contained Config JSON file. Includes parent variables
|
|
2607
|
+
* @description Download the named flow settings as a self-contained Config JSON file. Includes parent variables.
|
|
2602
2608
|
*/
|
|
2603
2609
|
get: {
|
|
2604
2610
|
parameters: {
|
|
@@ -4015,13 +4021,10 @@ interface components {
|
|
|
4015
4021
|
};
|
|
4016
4022
|
FlowConfig: {
|
|
4017
4023
|
/** @enum {number} */
|
|
4018
|
-
version:
|
|
4024
|
+
version: 4;
|
|
4019
4025
|
$schema?: string;
|
|
4020
4026
|
include?: string[];
|
|
4021
4027
|
variables?: {
|
|
4022
|
-
[key: string]: string | number | boolean;
|
|
4023
|
-
};
|
|
4024
|
-
definitions?: {
|
|
4025
4028
|
[key: string]: unknown;
|
|
4026
4029
|
};
|
|
4027
4030
|
flows?: {
|
|
@@ -4850,13 +4853,10 @@ declare function getFlow(options: {
|
|
|
4850
4853
|
name: string;
|
|
4851
4854
|
config: {
|
|
4852
4855
|
[x: string]: unknown;
|
|
4853
|
-
version:
|
|
4856
|
+
version: 4;
|
|
4854
4857
|
$schema?: string | undefined;
|
|
4855
4858
|
include?: string[] | undefined;
|
|
4856
4859
|
variables?: {
|
|
4857
|
-
[x: string]: string | number | boolean;
|
|
4858
|
-
} | undefined;
|
|
4859
|
-
definitions?: {
|
|
4860
4860
|
[x: string]: unknown;
|
|
4861
4861
|
} | undefined;
|
|
4862
4862
|
flows?: {
|
|
@@ -4896,13 +4896,10 @@ declare function createFlow(options: {
|
|
|
4896
4896
|
name: string;
|
|
4897
4897
|
config: {
|
|
4898
4898
|
[x: string]: unknown;
|
|
4899
|
-
version:
|
|
4899
|
+
version: 4;
|
|
4900
4900
|
$schema?: string | undefined;
|
|
4901
4901
|
include?: string[] | undefined;
|
|
4902
4902
|
variables?: {
|
|
4903
|
-
[x: string]: string | number | boolean;
|
|
4904
|
-
} | undefined;
|
|
4905
|
-
definitions?: {
|
|
4906
4903
|
[x: string]: unknown;
|
|
4907
4904
|
} | undefined;
|
|
4908
4905
|
flows?: {
|
|
@@ -4934,13 +4931,10 @@ declare function updateFlow(options: {
|
|
|
4934
4931
|
name: string;
|
|
4935
4932
|
config: {
|
|
4936
4933
|
[x: string]: unknown;
|
|
4937
|
-
version:
|
|
4934
|
+
version: 4;
|
|
4938
4935
|
$schema?: string | undefined;
|
|
4939
4936
|
include?: string[] | undefined;
|
|
4940
4937
|
variables?: {
|
|
4941
|
-
[x: string]: string | number | boolean;
|
|
4942
|
-
} | undefined;
|
|
4943
|
-
definitions?: {
|
|
4944
4938
|
[x: string]: unknown;
|
|
4945
4939
|
} | undefined;
|
|
4946
4940
|
flows?: {
|
|
@@ -4968,13 +4962,10 @@ declare function duplicateFlow(options: {
|
|
|
4968
4962
|
name: string;
|
|
4969
4963
|
config: {
|
|
4970
4964
|
[x: string]: unknown;
|
|
4971
|
-
version:
|
|
4965
|
+
version: 4;
|
|
4972
4966
|
$schema?: string | undefined;
|
|
4973
4967
|
include?: string[] | undefined;
|
|
4974
4968
|
variables?: {
|
|
4975
|
-
[x: string]: string | number | boolean;
|
|
4976
|
-
} | undefined;
|
|
4977
|
-
definitions?: {
|
|
4978
4969
|
[x: string]: unknown;
|
|
4979
4970
|
} | undefined;
|
|
4980
4971
|
flows?: {
|