@walkeros/cli 4.1.0-next-1778668930820 → 4.1.0

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.
@@ -279,16 +279,13 @@ Flow configs use the `Flow.Config` format:
279
279
 
280
280
  ```json
281
281
  {
282
- "version": 3,
282
+ "version": 4,
283
283
  "flows": {
284
284
  "default": {
285
- "web": {},
286
- "packages": {
287
- "<package_name>": { "imports": ["<function_name>"] }
288
- },
285
+ "config": { "platform": "web" },
289
286
  "sources": {
290
287
  "<source_name>": {
291
- "code": "<imported_function_name>",
288
+ "package": "@walkeros/<package-name>",
292
289
  "config": {
293
290
  "settings": {
294
291
  /* source config */
@@ -298,7 +295,7 @@ Flow configs use the `Flow.Config` format:
298
295
  },
299
296
  "destinations": {
300
297
  "<destination_name>": {
301
- "code": "<imported_function_name>",
298
+ "package": "@walkeros/<package-name>",
302
299
  "config": {
303
300
  "settings": {
304
301
  /* destination config */
@@ -322,7 +319,8 @@ Flow configs use the `Flow.Config` format:
322
319
 
323
320
  **Key points:**
324
321
 
325
- - Platform via `web: {}` or `server: {}` key (not `platform: "web"`)
322
+ - Platform is set via `config: { "platform": "web" }` (or `"server"`)
323
+ - Each step references its npm package directly via `package`
326
324
  - Output path is convention-based: `./dist/walker.js` (web) or
327
325
  `./dist/bundle.mjs` (server)
328
326
 
@@ -600,24 +600,12 @@
600
600
  "metaPixelId": "$env.META_PIXEL_ID:123456789012345",
601
601
  "metaAccessToken": "$env.META_ACCESS_TOKEN:demo_token"
602
602
  },
603
- "stores": {
604
- "cache": {
605
- "package": "@walkeros/store-memory",
606
- "config": {
607
- "settings": {
608
- "maxSize": 10485760,
609
- "maxEntries": 1000
610
- }
611
- }
612
- }
613
- },
614
603
  "sources": {
615
604
  "http": {
616
605
  "package": "@walkeros/server-source-express",
617
606
  "primary": true,
618
607
  "next": ["filter"],
619
608
  "cache": {
620
- "store": "cache",
621
609
  "rules": [
622
610
  {
623
611
  "match": {
@@ -689,9 +677,6 @@
689
677
  "push": "$code:(event) => event.name.startsWith('internal_') || event.name.startsWith('debug_') ? false : event"
690
678
  },
691
679
  "next": "fingerprint",
692
- "env": {
693
- "store": "$store.cache"
694
- },
695
680
  "config": {},
696
681
  "examples": {
697
682
  "passes-normal": {
@@ -932,10 +917,7 @@
932
917
  "@walkeros/server-source-express": {},
933
918
  "@walkeros/server-destination-meta": {},
934
919
  "@walkeros/destination-demo": {},
935
- "@walkeros/server-transformer-fingerprint": {},
936
- "@walkeros/store-memory": {
937
- "path": "../../stores/memory"
938
- }
920
+ "@walkeros/server-transformer-fingerprint": {}
939
921
  }
940
922
  }
941
923
  }
@@ -22,12 +22,12 @@ complete event tracking architecture.
22
22
  │ HTTP Source ──▶ [Filter] ──▶ [Fingerprint] ──▶ Collector │
23
23
  │ │ │ │ │
24
24
  │ │ ingest: │ env: ▼ │
25
- │ │ IP, UA, │ $store.cache Meta Destination │
25
+ │ │ IP, UA, │ filter rules Meta Destination │
26
26
  │ │ lang, ref, │ Demo Destination │
27
27
  │ │ anon-IP(fn) │ │
28
28
  │ └──────────────┘ │
29
29
  │ │
30
- Store: cache (memory, 10MB, 1000 entries)
30
+ Source cache: built-in tier (ttl 300s, on GET ingest.method+path)
31
31
  └─────────────────────────────────────────────────────────────────────────────┘
32
32
  ```
33
33
 
@@ -110,14 +110,13 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
110
110
 
111
111
  #### Variables
112
112
 
113
- | Feature | Location | Example |
114
- | -------------------- | ------------------ | ---------------------------------------------- |
115
- | Root-level variables | Root | `"currency": "EUR"` |
116
- | Flow-level variables | server.variables | `"metaPixelId": "$env.META_PIXEL_ID:..."` |
117
- | Environment variable | Variables | `"$env.GA4_MEASUREMENT_ID:G-DEMO123456"` |
118
- | Env with default | Variables | `"$env.API_URL:http://localhost:8080/collect"` |
119
- | $var reference | GA4 settings | `"$var.ga4MeasurementId"` |
120
- | $store reference | filter transformer | `"env": { "store": "$store.cache" }` |
113
+ | Feature | Location | Example |
114
+ | -------------------- | ---------------- | ---------------------------------------------- |
115
+ | Root-level variables | Root | `"currency": "EUR"` |
116
+ | Flow-level variables | server.variables | `"metaPixelId": "$env.META_PIXEL_ID:..."` |
117
+ | Environment variable | Variables | `"$env.GA4_MEASUREMENT_ID:G-DEMO123456"` |
118
+ | Env with default | Variables | `"$env.API_URL:http://localhost:8080/collect"` |
119
+ | $var reference | GA4 settings | `"$var.ga4MeasurementId"` |
121
120
 
122
121
  #### Sources
123
122
 
@@ -174,12 +173,10 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
174
173
  | Policy consent-gated | Meta | `"user_data.em"` with consent |
175
174
  | Policy nested map | Meta | `"custom_data.request_meta": { "map": {...} }` |
176
175
  | Local package path | server packages | `"path": "../../core"` (resolve from filesystem) |
177
- | Source cache | http source | `"cache": { "store": "cache", "rules": [...] }` |
176
+ | Source cache | http source | `"cache": { "rules": [...] }` (built-in tier) |
178
177
  | Cache match rule | http source | `"match": { "key": "ingest.method", "operator": "eq", "value": "GET" }` |
179
178
  | Cache TTL | http source | `"ttl": 300` (seconds) |
180
179
  | Cache response update | http source | `"update": { "headers.X-Cache": { "key": "cache.status" } }` |
181
- | Store definition | server stores | `"cache": { "package": "@walkeros/store-memory", ... }` |
182
- | Store settings | cache store | `"maxSize": 10485760, "maxEntries": 1000` |
183
180
 
184
181
  #### Browser Source
185
182
 
@@ -623,24 +623,12 @@ var flow_complete_default = {
623
623
  metaPixelId: "$env.META_PIXEL_ID:123456789012345",
624
624
  metaAccessToken: "$env.META_ACCESS_TOKEN:demo_token"
625
625
  },
626
- stores: {
627
- cache: {
628
- package: "@walkeros/store-memory",
629
- config: {
630
- settings: {
631
- maxSize: 10485760,
632
- maxEntries: 1e3
633
- }
634
- }
635
- }
636
- },
637
626
  sources: {
638
627
  http: {
639
628
  package: "@walkeros/server-source-express",
640
629
  primary: true,
641
630
  next: ["filter"],
642
631
  cache: {
643
- store: "cache",
644
632
  rules: [
645
633
  {
646
634
  match: {
@@ -712,9 +700,6 @@ var flow_complete_default = {
712
700
  push: "$code:(event) => event.name.startsWith('internal_') || event.name.startsWith('debug_') ? false : event"
713
701
  },
714
702
  next: "fingerprint",
715
- env: {
716
- store: "$store.cache"
717
- },
718
703
  config: {},
719
704
  examples: {
720
705
  "passes-normal": {
@@ -955,10 +940,7 @@ var flow_complete_default = {
955
940
  "@walkeros/server-source-express": {},
956
941
  "@walkeros/server-destination-meta": {},
957
942
  "@walkeros/destination-demo": {},
958
- "@walkeros/server-transformer-fingerprint": {},
959
- "@walkeros/store-memory": {
960
- path: "../../stores/memory"
961
- }
943
+ "@walkeros/server-transformer-fingerprint": {}
962
944
  }
963
945
  }
964
946
  }
@@ -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 \"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 \"schema\": {\n \"type\": \"object\",\n \"properties\": {\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 }\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 \"config\": {}\n }\n },\n \"destinations\": {\n \"ga4\": {\n \"package\": \"@walkeros/web-destination-gtag\",\n \"validate\": {\n \"events\": {\n \"order\": {\n \"complete\": {\n \"properties\": {\n \"data\": { \"required\": [\"id\", \"total\"] }\n }\n }\n }\n }\n },\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 }\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 \"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 },\n \"destinations\": {\n \"meta\": {\n \"package\": \"@walkeros/server-destination-meta\",\n \"before\": \"fingerprint\",\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/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 \"schema\": {\n \"type\": \"object\",\n \"properties\": {\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 }\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 \"config\": {}\n }\n },\n \"destinations\": {\n \"ga4\": {\n \"package\": \"@walkeros/web-destination-gtag\",\n \"validate\": {\n \"events\": {\n \"order\": {\n \"complete\": {\n \"properties\": {\n \"data\": { \"required\": [\"id\", \"total\"] }\n }\n }\n }\n }\n },\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 }\n }\n }\n },\n \"server\": {\n \"variables\": {\n \"metaPixelId\": \"$env.META_PIXEL_ID:123456789012345\",\n \"metaAccessToken\": \"$env.META_ACCESS_TOKEN:demo_token\"\n },\n \"sources\": {\n \"http\": {\n \"package\": \"@walkeros/server-source-express\",\n \"primary\": true,\n \"next\": [\"filter\"],\n \"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 \"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 \"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 },\n \"destinations\": {\n \"meta\": {\n \"package\": \"@walkeros/server-destination-meta\",\n \"before\": \"fingerprint\",\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/server-transformer-fingerprint\": {}\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":[]}
@@ -5,7 +5,7 @@
5
5
  "sources": {
6
6
  "http": {
7
7
  "package": "@walkeros/server-source-express",
8
- "code": "sourceExpress",
8
+ "import": "sourceExpress",
9
9
  "config": {
10
10
  "settings": {
11
11
  "path": "/collect",
@@ -19,7 +19,7 @@
19
19
  "destinations": {
20
20
  "demo": {
21
21
  "package": "@walkeros/destination-demo",
22
- "code": "destinationDemo",
22
+ "import": "destinationDemo",
23
23
  "config": {
24
24
  "settings": {
25
25
  "name": "Server Collection Demo",