@walkeros/cli 4.1.2 → 4.1.3-next-1780071196115

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.
@@ -158,8 +158,8 @@
158
158
  "prefix": "gtag"
159
159
  },
160
160
  "mapping": {
161
- "add_to_cart": {
162
- "*": {
161
+ "gtag": {
162
+ "add_to_cart": {
163
163
  "name": "product add",
164
164
  "data": {
165
165
  "map": {
@@ -173,10 +173,8 @@
173
173
  }
174
174
  }
175
175
  }
176
- }
177
- },
178
- "purchase": {
179
- "*": {
176
+ },
177
+ "purchase": {
180
178
  "name": "order complete",
181
179
  "data": {
182
180
  "map": {
@@ -120,15 +120,15 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
120
120
 
121
121
  #### Sources
122
122
 
123
- | Feature | Location | Example |
124
- | ----------------------- | ------------- | ------------------------------------- |
125
- | Primary source | browser | `"primary": true` |
126
- | Multiple sources | web flow | browser + dataLayer + demo |
127
- | Source-level mapping | dataLayer | `"mapping": { "add_to_cart": {...} }` |
128
- | Pre-collector chain | dataLayer | `"next": "enricher"` |
129
- | Pre-collector array | http (server) | `"next": ["filter"]` (array form) |
130
- | Require (deferred init) | dataLayer | `"require": ["session"]` |
131
- | Demo source events | demo | Pre-configured test events |
123
+ | Feature | Location | Example |
124
+ | ----------------------- | ------------- | ------------------------------------------------- |
125
+ | Primary source | browser | `"primary": true` |
126
+ | Multiple sources | web flow | browser + dataLayer + demo |
127
+ | Source-level mapping | dataLayer | `"mapping": { "gtag": { "add_to_cart": {...} } }` |
128
+ | Pre-collector chain | dataLayer | `"next": "enricher"` |
129
+ | Pre-collector array | http (server) | `"next": ["filter"]` (array form) |
130
+ | Require (deferred init) | dataLayer | `"require": ["session"]` |
131
+ | Demo source events | demo | Pre-configured test events |
132
132
 
133
133
  #### Transformers
134
134
 
@@ -181,8 +181,8 @@ var flow_complete_default = {
181
181
  prefix: "gtag"
182
182
  },
183
183
  mapping: {
184
- add_to_cart: {
185
- "*": {
184
+ gtag: {
185
+ add_to_cart: {
186
186
  name: "product add",
187
187
  data: {
188
188
  map: {
@@ -196,10 +196,8 @@ var flow_complete_default = {
196
196
  }
197
197
  }
198
198
  }
199
- }
200
- },
201
- purchase: {
202
- "*": {
199
+ },
200
+ purchase: {
203
201
  name: "order complete",
204
202
  data: {
205
203
  map: {
@@ -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 \"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":[]}
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 \"gtag\": {\n \"add_to_cart\": {\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 \"purchase\": {\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":[]}
package/dist/index.js CHANGED
@@ -6674,7 +6674,7 @@ function validateMapping(input) {
6674
6674
  // src/commands/validate/validators/entry.ts
6675
6675
  import Ajv from "ajv";
6676
6676
  import { fetchPackageSchema } from "@walkeros/core";
6677
- var CLIENT_HEADER = "walkeros-cli/4.1.2";
6677
+ var CLIENT_HEADER = "walkeros-cli/4.1.3-next-1780071196115";
6678
6678
  var SECTIONS = ["destinations", "sources", "transformers"];
6679
6679
  function resolveEntry(path20, flowConfig) {
6680
6680
  const flows = flowConfig.flows;
@@ -158,8 +158,8 @@
158
158
  "prefix": "gtag"
159
159
  },
160
160
  "mapping": {
161
- "add_to_cart": {
162
- "*": {
161
+ "gtag": {
162
+ "add_to_cart": {
163
163
  "name": "product add",
164
164
  "data": {
165
165
  "map": {
@@ -173,10 +173,8 @@
173
173
  }
174
174
  }
175
175
  }
176
- }
177
- },
178
- "purchase": {
179
- "*": {
176
+ },
177
+ "purchase": {
180
178
  "name": "order complete",
181
179
  "data": {
182
180
  "map": {
@@ -120,15 +120,15 @@ npx walkeros run packages/cli/examples/flow-complete.json --flow web
120
120
 
121
121
  #### Sources
122
122
 
123
- | Feature | Location | Example |
124
- | ----------------------- | ------------- | ------------------------------------- |
125
- | Primary source | browser | `"primary": true` |
126
- | Multiple sources | web flow | browser + dataLayer + demo |
127
- | Source-level mapping | dataLayer | `"mapping": { "add_to_cart": {...} }` |
128
- | Pre-collector chain | dataLayer | `"next": "enricher"` |
129
- | Pre-collector array | http (server) | `"next": ["filter"]` (array form) |
130
- | Require (deferred init) | dataLayer | `"require": ["session"]` |
131
- | Demo source events | demo | Pre-configured test events |
123
+ | Feature | Location | Example |
124
+ | ----------------------- | ------------- | ------------------------------------------------- |
125
+ | Primary source | browser | `"primary": true` |
126
+ | Multiple sources | web flow | browser + dataLayer + demo |
127
+ | Source-level mapping | dataLayer | `"mapping": { "gtag": { "add_to_cart": {...} } }` |
128
+ | Pre-collector chain | dataLayer | `"next": "enricher"` |
129
+ | Pre-collector array | http (server) | `"next": ["filter"]` (array form) |
130
+ | Require (deferred init) | dataLayer | `"require": ["session"]` |
131
+ | Demo source events | demo | Pre-configured test events |
132
132
 
133
133
  #### Transformers
134
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/cli",
3
- "version": "4.1.2",
3
+ "version": "4.1.3-next-1780071196115",
4
4
  "description": "walkerOS CLI - Bundle and deploy walkerOS components",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -50,10 +50,10 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@vercel/nft": "1.5.0",
53
- "@walkeros/collector": "4.1.2",
54
- "@walkeros/core": "4.1.2",
55
- "@walkeros/server-core": "4.1.2",
56
- "@walkeros/server-destination-api": "4.1.2",
53
+ "@walkeros/collector": "4.1.3-next-1780071196115",
54
+ "@walkeros/core": "4.1.3-next-1780071196115",
55
+ "@walkeros/server-core": "4.1.3-next-1780071196115",
56
+ "@walkeros/server-destination-api": "4.1.3-next-1780071196115",
57
57
  "ajv": "^8.17.1",
58
58
  "chalk": "^5.6.2",
59
59
  "ci-info": "^4.4.0",
@@ -79,8 +79,8 @@
79
79
  "@types/pacote": "^11.1.8",
80
80
  "@types/picomatch": "4.0.3",
81
81
  "@types/semver": "^7.7.1",
82
- "@walkeros/config": "4.1.2",
83
- "@walkeros/core": "4.1.2",
82
+ "@walkeros/config": "4.1.3-next-1780071196115",
83
+ "@walkeros/core": "4.1.3-next-1780071196115",
84
84
  "msw": "^2.12.10",
85
85
  "openapi-typescript": "^7.13.0",
86
86
  "tsx": "^4.21.0"