@walkeros/web-destination-piwikpro 3.3.0 → 3.4.0-next-1776749829492

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dev.d.mts CHANGED
@@ -57,7 +57,7 @@ interface Env extends DestinationWeb.Env {
57
57
  * These environments provide standardized mock structures for testing
58
58
  * and development without requiring external dependencies.
59
59
  */
60
- declare const init: Env | undefined;
60
+ declare const init$1: Env | undefined;
61
61
  declare const push: Env;
62
62
  /**
63
63
  * Simulation tracking paths
@@ -65,13 +65,19 @@ declare const push: Env;
65
65
  */
66
66
  declare const simulation: string[];
67
67
 
68
- declare const env_init: typeof init;
69
68
  declare const env_push: typeof push;
70
69
  declare const env_simulation: typeof simulation;
71
70
  declare namespace env {
72
- export { env_init as init, env_push as push, env_simulation as simulation };
71
+ export { init$1 as init, env_push as push, env_simulation as simulation };
73
72
  }
74
73
 
74
+ /**
75
+ * Destination bootstrap.
76
+ * Given the canonical settings, init loads the PiwikPro script and configures
77
+ * the tracker URL, app id, and link tracking. Reproduce by passing the same
78
+ * settings to `startFlow` as the destination config.
79
+ */
80
+ declare const init: Flow.StepExample;
75
81
  declare const ecommerceOrder: Flow.StepExample;
76
82
  declare const ecommerceAddToCart: Flow.StepExample;
77
83
  declare const productDetailView: Flow.StepExample;
@@ -83,10 +89,11 @@ declare const step_cartUpdate: typeof cartUpdate;
83
89
  declare const step_customEvent: typeof customEvent;
84
90
  declare const step_ecommerceAddToCart: typeof ecommerceAddToCart;
85
91
  declare const step_ecommerceOrder: typeof ecommerceOrder;
92
+ declare const step_init: typeof init;
86
93
  declare const step_pageViewWithTitle: typeof pageViewWithTitle;
87
94
  declare const step_productDetailView: typeof productDetailView;
88
95
  declare namespace step {
89
- export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
96
+ export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_init as init, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
90
97
  }
91
98
 
92
99
  declare const index_env: typeof env;
package/dist/dev.d.ts CHANGED
@@ -57,7 +57,7 @@ interface Env extends DestinationWeb.Env {
57
57
  * These environments provide standardized mock structures for testing
58
58
  * and development without requiring external dependencies.
59
59
  */
60
- declare const init: Env | undefined;
60
+ declare const init$1: Env | undefined;
61
61
  declare const push: Env;
62
62
  /**
63
63
  * Simulation tracking paths
@@ -65,13 +65,19 @@ declare const push: Env;
65
65
  */
66
66
  declare const simulation: string[];
67
67
 
68
- declare const env_init: typeof init;
69
68
  declare const env_push: typeof push;
70
69
  declare const env_simulation: typeof simulation;
71
70
  declare namespace env {
72
- export { env_init as init, env_push as push, env_simulation as simulation };
71
+ export { init$1 as init, env_push as push, env_simulation as simulation };
73
72
  }
74
73
 
74
+ /**
75
+ * Destination bootstrap.
76
+ * Given the canonical settings, init loads the PiwikPro script and configures
77
+ * the tracker URL, app id, and link tracking. Reproduce by passing the same
78
+ * settings to `startFlow` as the destination config.
79
+ */
80
+ declare const init: Flow.StepExample;
75
81
  declare const ecommerceOrder: Flow.StepExample;
76
82
  declare const ecommerceAddToCart: Flow.StepExample;
77
83
  declare const productDetailView: Flow.StepExample;
@@ -83,10 +89,11 @@ declare const step_cartUpdate: typeof cartUpdate;
83
89
  declare const step_customEvent: typeof customEvent;
84
90
  declare const step_ecommerceAddToCart: typeof ecommerceAddToCart;
85
91
  declare const step_ecommerceOrder: typeof ecommerceOrder;
92
+ declare const step_init: typeof init;
86
93
  declare const step_pageViewWithTitle: typeof pageViewWithTitle;
87
94
  declare const step_productDetailView: typeof productDetailView;
88
95
  declare namespace step {
89
- export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
96
+ export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_init as init, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
90
97
  }
91
98
 
92
99
  declare const index_env: typeof env;
package/dist/dev.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,a=Object.defineProperty,t=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,n=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},o={};n(o,{examples:()=>k,schemas:()=>c}),module.exports=(e=o,((e,n,o,c)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let d of i(n))r.call(e,d)||d===o||a(e,d,{get:()=>n[d],enumerable:!(c=t(n,d))||c.enumerable});return e})(a({},"__esModule",{value:!0}),e));var c={};n(c,{MappingSchema:()=>u,SettingsSchema:()=>m,mapping:()=>v,settings:()=>l});var d=require("@walkeros/core/dev"),s=require("@walkeros/core/dev"),m=s.z.object({appId:s.z.string().min(1).describe("ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)"),url:s.z.string().url().describe("URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)"),linkTracking:s.z.boolean().default(!1).describe("Enables/Disables download and outlink tracking")}),p=require("@walkeros/core/dev"),u=p.z.object({goalId:p.z.string().describe("ID to count the event as a goal (like 1)"),goalValue:p.z.string().describe("Property to be used as the goal value (like data.value)").optional()}),l=(0,d.zodToSchema)(m),v=(0,d.zodToSchema)(u),k={};n(k,{env:()=>y,step:()=>E});var y={};n(y,{init:()=>g,push:()=>b,simulation:()=>w});var g={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},b={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},w=["call:window._paq.push"],E={};n(E,{cartUpdate:()=>O,customEvent:()=>R,ecommerceAddToCart:()=>q,ecommerceOrder:()=>C,pageViewWithTitle:()=>X,productDetailView:()=>D});var h=require("@walkeros/core"),C={in:(0,h.getEvent)("order complete",{timestamp:1700000300}),mapping:{name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceOrder",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}},{sku:"cc",name:"Cool Cap",price:42,quantity:1,variant:void 0,customDimensions:{1:"one size"}}],{orderId:"0rd3r1d",grandTotal:555,tax:73.76,shipping:5.22},{currencyCode:"EUR"}]]},q={in:(0,h.getEvent)("product add",{timestamp:1700000301}),mapping:{name:"ecommerceAddToCart",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceAddToCart",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},D={in:(0,h.getEvent)("product view",{timestamp:1700000302}),mapping:{name:"ecommerceProductDetailView",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceProductDetailView",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},O={in:(0,h.getEvent)("cart view",{timestamp:1700000303}),mapping:{name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceCartUpdate",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],840,{currencyCode:"EUR"}]]},R={in:(0,h.getEvent)("promotion visible",{timestamp:1700000304}),mapping:{name:"trackEvent",settings:{goalId:"goal_1"},data:{set:["data.name","data.position"]}},out:[["trackEvent","Setting up tracking easily","hero"],["trackGoal","goal_1",void 0]]},X={in:(0,h.getEvent)("page view",{timestamp:1700000305}),mapping:{data:"data.title"},out:[["trackPageView","walkerOS documentation"]]};//# sourceMappingURL=dev.js.map
1
+ "use strict";var e,a=Object.defineProperty,t=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,n=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},o={};n(o,{examples:()=>k,schemas:()=>c}),module.exports=(e=o,((e,n,o,c)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let d of i(n))r.call(e,d)||d===o||a(e,d,{get:()=>n[d],enumerable:!(c=t(n,d))||c.enumerable});return e})(a({},"__esModule",{value:!0}),e));var c={};n(c,{MappingSchema:()=>u,SettingsSchema:()=>p,mapping:()=>v,settings:()=>l});var d=require("@walkeros/core/dev"),s=require("@walkeros/core/dev"),p=s.z.object({appId:s.z.string().min(1).describe("ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)"),url:s.z.string().url().describe("URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)"),linkTracking:s.z.boolean().default(!1).describe("Enables/Disables download and outlink tracking")}),m=require("@walkeros/core/dev"),u=m.z.object({goalId:m.z.string().describe("ID to count the event as a goal (like 1)"),goalValue:m.z.string().describe("Property to be used as the goal value (like data.value)").optional()}),l=(0,d.zodToSchema)(p),v=(0,d.zodToSchema)(u),k={};n(k,{env:()=>y,step:()=>b});var y={};n(y,{init:()=>g,push:()=>X,simulation:()=>w});var g={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},X={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},w=["call:window._paq.push"],b={};n(b,{cartUpdate:()=>_,customEvent:()=>O,ecommerceAddToCart:()=>C,ecommerceOrder:()=>q,init:()=>E,pageViewWithTitle:()=>R,productDetailView:()=>D});var h=require("@walkeros/core"),E={in:{loadScript:!0,settings:{appId:"XXX-XXX-XXX-XXX-XXX",url:"https://your_account_name.piwik.pro/"}},out:[["_paq.push",["setTrackerUrl","https://your_account_name.piwik.pro/ppms.php"]],["_paq.push",["setSiteId","XXX-XXX-XXX-XXX-XXX"]],["_paq.push",["enableLinkTracking"]]]},q={in:(0,h.getEvent)("order complete",{timestamp:1700000300}),mapping:{name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceOrder",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}},{sku:"cc",name:"Cool Cap",price:42,quantity:1,variant:void 0,customDimensions:{1:"one size"}}],{orderId:"0rd3r1d",grandTotal:555,tax:73.76,shipping:5.22},{currencyCode:"EUR"}]]},C={in:(0,h.getEvent)("product add",{timestamp:1700000301}),mapping:{name:"ecommerceAddToCart",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceAddToCart",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},D={in:(0,h.getEvent)("product view",{timestamp:1700000302}),mapping:{name:"ecommerceProductDetailView",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceProductDetailView",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},_={in:(0,h.getEvent)("cart view",{timestamp:1700000303}),mapping:{name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceCartUpdate",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],840,{currencyCode:"EUR"}]]},O={in:(0,h.getEvent)("promotion visible",{timestamp:1700000304}),mapping:{name:"trackEvent",settings:{goalId:"goal_1"},data:{set:["data.name","data.position"]}},out:[["trackEvent","Setting up tracking easily","hero"],["trackGoal","goal_1",void 0]]},R={in:(0,h.getEvent)("page view",{timestamp:1700000305}),mapping:{data:"data.title"},out:[["trackPageView","walkerOS documentation"]]};//# sourceMappingURL=dev.js.map
package/dist/dev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n appId: z\n .string()\n .min(1)\n .describe('ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)'),\n url: z\n .string()\n .url()\n .describe(\n 'URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)',\n ),\n linkTracking: z\n .boolean()\n .default(false)\n .describe('Enables/Disables download and outlink tracking'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\nexport const MappingSchema = z.object({\n goalId: z.string().describe('ID to count the event as a goal (like 1)'),\n goalValue: z\n .string()\n .describe('Property to be used as the goal value (like data.value)')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { Env } from '../types';\n\n/**\n * Example environment configurations for PiwikPro destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring external dependencies.\n */\n\nexport const init: Env | undefined = {\n window: {\n _paq: undefined as unknown as Env['window']['_paq'],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\nexport const push: Env = {\n window: {\n _paq: [] as unknown[],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\n/**\n * Simulation tracking paths\n * Specifies which function calls to track during simulation\n */\nexport const simulation = [\n 'call:window._paq.push', // Track _paq.push calls\n];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent, isObject } from '@walkeros/core';\n\nexport const ecommerceOrder: Flow.StepExample = {\n in: getEvent('order complete', { timestamp: 1700000300 }),\n mapping: {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n orderId: 'data.id',\n grandTotal: 'data.total',\n tax: 'data.taxes',\n shipping: 'data.shipping',\n },\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceOrder',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n {\n sku: 'cc',\n name: 'Cool Cap',\n price: 42,\n quantity: 1,\n variant: undefined,\n customDimensions: { 1: 'one size' },\n },\n ],\n {\n orderId: '0rd3r1d',\n grandTotal: 555,\n tax: 73.76,\n shipping: 5.22,\n },\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const ecommerceAddToCart: Flow.StepExample = {\n in: getEvent('product add', { timestamp: 1700000301 }),\n mapping: {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceAddToCart',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const productDetailView: Flow.StepExample = {\n in: getEvent('product view', { timestamp: 1700000302 }),\n mapping: {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceProductDetailView',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const cartUpdate: Flow.StepExample = {\n in: getEvent('cart view', { timestamp: 1700000303 }),\n mapping: {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceCartUpdate',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n 840,\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const customEvent: Flow.StepExample = {\n in: getEvent('promotion visible', { timestamp: 1700000304 }),\n mapping: {\n name: 'trackEvent',\n settings: {\n goalId: 'goal_1',\n },\n data: {\n set: ['data.name', 'data.position'],\n },\n },\n out: [\n ['trackEvent', 'Setting up tracking easily', 'hero'],\n ['trackGoal', 'goal_1', undefined],\n ],\n};\n\nexport const pageViewWithTitle: Flow.StepExample = {\n in: getEvent('page view', { timestamp: 1700000305 }),\n mapping: {\n data: 'data.title',\n },\n out: [['trackPageView', 'walkerOS documentation']],\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,cAA4B;;;ACA5B,iBAAkB;AAEX,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACrC,OAAO,aACJ,OAAO,EACP,IAAI,CAAC,EACL,SAAS,qDAAqD;AAAA,EACjE,KAAK,aACF,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,cAAc,aACX,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,gDAAgD;AAC9D,CAAC;;;ACjBD,IAAAC,cAAkB;AAEX,IAAM,gBAAgB,cAAE,OAAO;AAAA,EACpC,QAAQ,cAAE,OAAO,EAAE,SAAS,0CAA0C;AAAA,EACtE,WAAW,cACR,OAAO,EACP,SAAS,yDAAyD,EAClE,SAAS;AACd,CAAC;;;AFAM,IAAM,eAAW,yBAAY,cAAc;AAC3C,IAAM,cAAU,yBAAY,aAAa;;;AGThD;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAM,OAAwB;AAAA,EACnC,QAAQ;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACR,eAAe,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,MAAM,EAAE,aAAa,MAAM;AAAA,IAAC,EAAE;AAAA,EAChC;AACF;AAEO,IAAM,OAAY;AAAA,EACvB,QAAQ;AAAA,IACN,MAAM,CAAC;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACR,eAAe,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,MAAM,EAAE,aAAa,MAAM;AAAA,IAAC,EAAE;AAAA,EAChC;AACF;AAMO,IAAM,aAAa;AAAA,EACxB;AAAA;AACF;;;AC7CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAmC;AAE5B,IAAM,iBAAmC;AAAA,EAC9C,QAAI,sBAAS,kBAAkB,EAAE,WAAW,WAAW,CAAC;AAAA,EACxD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,eACV,sBAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,KAAK;AAAA,YACL,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,WAAW;AAAA,QACpC;AAAA,MACF;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,qBAAuC;AAAA,EAClD,QAAI,sBAAS,eAAe,EAAE,WAAW,WAAW,CAAC;AAAA,EACrD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,KAAK;AAAA,YACH;AAAA,cACE,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,oBAAsC;AAAA,EACjD,QAAI,sBAAS,gBAAgB,EAAE,WAAW,WAAW,CAAC;AAAA,EACtD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,KAAK;AAAA,YACH;AAAA,cACE,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,aAA+B;AAAA,EAC1C,QAAI,sBAAS,aAAa,EAAE,WAAW,WAAW,CAAC;AAAA,EACnD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,eACV,sBAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,cAAgC;AAAA,EAC3C,QAAI,sBAAS,qBAAqB,EAAE,WAAW,WAAW,CAAC;AAAA,EAC3D,SAAS;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,IACA,MAAM;AAAA,MACJ,KAAK,CAAC,aAAa,eAAe;AAAA,IACpC;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,CAAC,cAAc,8BAA8B,MAAM;AAAA,IACnD,CAAC,aAAa,UAAU,MAAS;AAAA,EACnC;AACF;AAEO,IAAM,oBAAsC;AAAA,EACjD,QAAI,sBAAS,aAAa,EAAE,WAAW,WAAW,CAAC;AAAA,EACnD,SAAS;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK,CAAC,CAAC,iBAAiB,wBAAwB,CAAC;AACnD;","names":["import_dev","import_dev"]}
1
+ {"version":3,"sources":["../src/dev.ts","../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["export * as schemas from './schemas';\nexport * as examples from './examples';\n","import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n appId: z\n .string()\n .min(1)\n .describe('ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)'),\n url: z\n .string()\n .url()\n .describe(\n 'URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)',\n ),\n linkTracking: z\n .boolean()\n .default(false)\n .describe('Enables/Disables download and outlink tracking'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\nexport const MappingSchema = z.object({\n goalId: z.string().describe('ID to count the event as a goal (like 1)'),\n goalValue: z\n .string()\n .describe('Property to be used as the goal value (like data.value)')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { Env } from '../types';\n\n/**\n * Example environment configurations for PiwikPro destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring external dependencies.\n */\n\nexport const init: Env | undefined = {\n window: {\n _paq: undefined as unknown as Env['window']['_paq'],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\nexport const push: Env = {\n window: {\n _paq: [] as unknown[],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\n/**\n * Simulation tracking paths\n * Specifies which function calls to track during simulation\n */\nexport const simulation = [\n 'call:window._paq.push', // Track _paq.push calls\n];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent, isObject } from '@walkeros/core';\n\n/**\n * Destination bootstrap.\n * Given the canonical settings, init loads the PiwikPro script and configures\n * the tracker URL, app id, and link tracking. Reproduce by passing the same\n * settings to `startFlow` as the destination config.\n */\nexport const init: Flow.StepExample = {\n in: {\n loadScript: true,\n settings: {\n appId: 'XXX-XXX-XXX-XXX-XXX',\n url: 'https://your_account_name.piwik.pro/',\n },\n },\n out: [\n [\n '_paq.push',\n ['setTrackerUrl', 'https://your_account_name.piwik.pro/ppms.php'],\n ],\n ['_paq.push', ['setSiteId', 'XXX-XXX-XXX-XXX-XXX']],\n ['_paq.push', ['enableLinkTracking']],\n ],\n};\n\nexport const ecommerceOrder: Flow.StepExample = {\n in: getEvent('order complete', { timestamp: 1700000300 }),\n mapping: {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n orderId: 'data.id',\n grandTotal: 'data.total',\n tax: 'data.taxes',\n shipping: 'data.shipping',\n },\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceOrder',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n {\n sku: 'cc',\n name: 'Cool Cap',\n price: 42,\n quantity: 1,\n variant: undefined,\n customDimensions: { 1: 'one size' },\n },\n ],\n {\n orderId: '0rd3r1d',\n grandTotal: 555,\n tax: 73.76,\n shipping: 5.22,\n },\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const ecommerceAddToCart: Flow.StepExample = {\n in: getEvent('product add', { timestamp: 1700000301 }),\n mapping: {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceAddToCart',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const productDetailView: Flow.StepExample = {\n in: getEvent('product view', { timestamp: 1700000302 }),\n mapping: {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceProductDetailView',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const cartUpdate: Flow.StepExample = {\n in: getEvent('cart view', { timestamp: 1700000303 }),\n mapping: {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceCartUpdate',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n 840,\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const customEvent: Flow.StepExample = {\n in: getEvent('promotion visible', { timestamp: 1700000304 }),\n mapping: {\n name: 'trackEvent',\n settings: {\n goalId: 'goal_1',\n },\n data: {\n set: ['data.name', 'data.position'],\n },\n },\n out: [\n ['trackEvent', 'Setting up tracking easily', 'hero'],\n ['trackGoal', 'goal_1', undefined],\n ],\n};\n\nexport const pageViewWithTitle: Flow.StepExample = {\n in: getEvent('page view', { timestamp: 1700000305 }),\n mapping: {\n data: 'data.title',\n },\n out: [['trackPageView', 'walkerOS documentation']],\n};\n"],"mappings":"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","names":["import_dev","import_dev","init"]}
package/dist/dev.mjs CHANGED
@@ -1 +1 @@
1
- var a=Object.defineProperty,e=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},t={};e(t,{MappingSchema:()=>c,SettingsSchema:()=>n,mapping:()=>m,settings:()=>d});import{zodToSchema as i}from"@walkeros/core/dev";import{z as r}from"@walkeros/core/dev";var n=r.object({appId:r.string().min(1).describe("ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)"),url:r.string().url().describe("URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)"),linkTracking:r.boolean().default(!1).describe("Enables/Disables download and outlink tracking")});import{z as o}from"@walkeros/core/dev";var c=o.object({goalId:o.string().describe("ID to count the event as a goal (like 1)"),goalValue:o.string().describe("Property to be used as the goal value (like data.value)").optional()}),d=i(n),m=i(c),s={};e(s,{env:()=>p,step:()=>v});var p={};e(p,{init:()=>u,push:()=>l,simulation:()=>k});var u={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},l={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},k=["call:window._paq.push"],v={};e(v,{cartUpdate:()=>E,customEvent:()=>C,ecommerceAddToCart:()=>b,ecommerceOrder:()=>w,pageViewWithTitle:()=>D,productDetailView:()=>h});import{getEvent as y,isObject as g}from"@walkeros/core";var w={in:y("order complete",{timestamp:1700000300}),mapping:{name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:a=>g(a)&&"product"===a.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceOrder",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}},{sku:"cc",name:"Cool Cap",price:42,quantity:1,variant:void 0,customDimensions:{1:"one size"}}],{orderId:"0rd3r1d",grandTotal:555,tax:73.76,shipping:5.22},{currencyCode:"EUR"}]]},b={in:y("product add",{timestamp:1700000301}),mapping:{name:"ecommerceAddToCart",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceAddToCart",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},h={in:y("product view",{timestamp:1700000302}),mapping:{name:"ecommerceProductDetailView",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceProductDetailView",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},E={in:y("cart view",{timestamp:1700000303}),mapping:{name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:a=>g(a)&&"product"===a.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceCartUpdate",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],840,{currencyCode:"EUR"}]]},C={in:y("promotion visible",{timestamp:1700000304}),mapping:{name:"trackEvent",settings:{goalId:"goal_1"},data:{set:["data.name","data.position"]}},out:[["trackEvent","Setting up tracking easily","hero"],["trackGoal","goal_1",void 0]]},D={in:y("page view",{timestamp:1700000305}),mapping:{data:"data.title"},out:[["trackPageView","walkerOS documentation"]]};export{s as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
1
+ var a=Object.defineProperty,e=(e,t)=>{for(var i in t)a(e,i,{get:t[i],enumerable:!0})},t={};e(t,{MappingSchema:()=>c,SettingsSchema:()=>n,mapping:()=>s,settings:()=>d});import{zodToSchema as i}from"@walkeros/core/dev";import{z as r}from"@walkeros/core/dev";var n=r.object({appId:r.string().min(1).describe("ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)"),url:r.string().url().describe("URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)"),linkTracking:r.boolean().default(!1).describe("Enables/Disables download and outlink tracking")});import{z as o}from"@walkeros/core/dev";var c=o.object({goalId:o.string().describe("ID to count the event as a goal (like 1)"),goalValue:o.string().describe("Property to be used as the goal value (like data.value)").optional()}),d=i(n),s=i(c),m={};e(m,{env:()=>p,step:()=>v});var p={};e(p,{init:()=>u,push:()=>l,simulation:()=>k});var u={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},l={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},k=["call:window._paq.push"],v={};e(v,{cartUpdate:()=>E,customEvent:()=>C,ecommerceAddToCart:()=>h,ecommerceOrder:()=>w,init:()=>g,pageViewWithTitle:()=>q,productDetailView:()=>b});import{getEvent as X,isObject as y}from"@walkeros/core";var g={in:{loadScript:!0,settings:{appId:"XXX-XXX-XXX-XXX-XXX",url:"https://your_account_name.piwik.pro/"}},out:[["_paq.push",["setTrackerUrl","https://your_account_name.piwik.pro/ppms.php"]],["_paq.push",["setSiteId","XXX-XXX-XXX-XXX-XXX"]],["_paq.push",["enableLinkTracking"]]]},w={in:X("order complete",{timestamp:1700000300}),mapping:{name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:a=>y(a)&&"product"===a.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceOrder",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}},{sku:"cc",name:"Cool Cap",price:42,quantity:1,variant:void 0,customDimensions:{1:"one size"}}],{orderId:"0rd3r1d",grandTotal:555,tax:73.76,shipping:5.22},{currencyCode:"EUR"}]]},h={in:X("product add",{timestamp:1700000301}),mapping:{name:"ecommerceAddToCart",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceAddToCart",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},b={in:X("product view",{timestamp:1700000302}),mapping:{name:"ecommerceProductDetailView",data:{set:[{set:[{map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceProductDetailView",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],{currencyCode:"EUR"}]]},E={in:X("cart view",{timestamp:1700000303}),mapping:{name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:a=>y(a)&&"product"===a.entity,map:{sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}}}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},out:[["ecommerceCartUpdate",[{sku:"ers",name:"Everyday Ruck Snack",price:420,quantity:1,variant:"black",customDimensions:{1:"l"}}],840,{currencyCode:"EUR"}]]},C={in:X("promotion visible",{timestamp:1700000304}),mapping:{name:"trackEvent",settings:{goalId:"goal_1"},data:{set:["data.name","data.position"]}},out:[["trackEvent","Setting up tracking easily","hero"],["trackGoal","goal_1",void 0]]},q={in:X("page view",{timestamp:1700000305}),mapping:{data:"data.title"},out:[["trackPageView","walkerOS documentation"]]};export{m as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
package/dist/dev.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n appId: z\n .string()\n .min(1)\n .describe('ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)'),\n url: z\n .string()\n .url()\n .describe(\n 'URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)',\n ),\n linkTracking: z\n .boolean()\n .default(false)\n .describe('Enables/Disables download and outlink tracking'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\nexport const MappingSchema = z.object({\n goalId: z.string().describe('ID to count the event as a goal (like 1)'),\n goalValue: z\n .string()\n .describe('Property to be used as the goal value (like data.value)')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { Env } from '../types';\n\n/**\n * Example environment configurations for PiwikPro destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring external dependencies.\n */\n\nexport const init: Env | undefined = {\n window: {\n _paq: undefined as unknown as Env['window']['_paq'],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\nexport const push: Env = {\n window: {\n _paq: [] as unknown[],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\n/**\n * Simulation tracking paths\n * Specifies which function calls to track during simulation\n */\nexport const simulation = [\n 'call:window._paq.push', // Track _paq.push calls\n];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent, isObject } from '@walkeros/core';\n\nexport const ecommerceOrder: Flow.StepExample = {\n in: getEvent('order complete', { timestamp: 1700000300 }),\n mapping: {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n orderId: 'data.id',\n grandTotal: 'data.total',\n tax: 'data.taxes',\n shipping: 'data.shipping',\n },\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceOrder',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n {\n sku: 'cc',\n name: 'Cool Cap',\n price: 42,\n quantity: 1,\n variant: undefined,\n customDimensions: { 1: 'one size' },\n },\n ],\n {\n orderId: '0rd3r1d',\n grandTotal: 555,\n tax: 73.76,\n shipping: 5.22,\n },\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const ecommerceAddToCart: Flow.StepExample = {\n in: getEvent('product add', { timestamp: 1700000301 }),\n mapping: {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceAddToCart',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const productDetailView: Flow.StepExample = {\n in: getEvent('product view', { timestamp: 1700000302 }),\n mapping: {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceProductDetailView',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const cartUpdate: Flow.StepExample = {\n in: getEvent('cart view', { timestamp: 1700000303 }),\n mapping: {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceCartUpdate',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n 840,\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const customEvent: Flow.StepExample = {\n in: getEvent('promotion visible', { timestamp: 1700000304 }),\n mapping: {\n name: 'trackEvent',\n settings: {\n goalId: 'goal_1',\n },\n data: {\n set: ['data.name', 'data.position'],\n },\n },\n out: [\n ['trackEvent', 'Setting up tracking easily', 'hero'],\n ['trackGoal', 'goal_1', undefined],\n ],\n};\n\nexport const pageViewWithTitle: Flow.StepExample = {\n in: getEvent('page view', { timestamp: 1700000305 }),\n mapping: {\n data: 'data.title',\n },\n out: [['trackPageView', 'walkerOS documentation']],\n};\n"],"mappings":"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","names":["z"]}
1
+ {"version":3,"sources":["../src/schemas/index.ts","../src/schemas/settings.ts","../src/schemas/mapping.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/step.ts"],"sourcesContent":["import { zodToSchema } from '@walkeros/core/dev';\nimport { SettingsSchema } from './settings';\nimport { MappingSchema } from './mapping';\n\nexport { SettingsSchema, type Settings } from './settings';\nexport { MappingSchema, type Mapping } from './mapping';\n\n// JSON Schema\nexport const settings = zodToSchema(SettingsSchema);\nexport const mapping = zodToSchema(MappingSchema);\n","import { z } from '@walkeros/core/dev';\n\nexport const SettingsSchema = z.object({\n appId: z\n .string()\n .min(1)\n .describe('ID of the Piwik PRO site (like XXX-XXX-XXX-XXX-XXX)'),\n url: z\n .string()\n .url()\n .describe(\n 'URL of your Piwik PRO account (like https://your_account_name.piwik.pro/)',\n ),\n linkTracking: z\n .boolean()\n .default(false)\n .describe('Enables/Disables download and outlink tracking'),\n});\n\nexport type Settings = z.infer<typeof SettingsSchema>;\n","import { z } from '@walkeros/core/dev';\n\nexport const MappingSchema = z.object({\n goalId: z.string().describe('ID to count the event as a goal (like 1)'),\n goalValue: z\n .string()\n .describe('Property to be used as the goal value (like data.value)')\n .optional(),\n});\n\nexport type Mapping = z.infer<typeof MappingSchema>;\n","export * as env from './env';\nexport * as step from './step';\n","import type { Env } from '../types';\n\n/**\n * Example environment configurations for PiwikPro destination\n *\n * These environments provide standardized mock structures for testing\n * and development without requiring external dependencies.\n */\n\nexport const init: Env | undefined = {\n window: {\n _paq: undefined as unknown as Env['window']['_paq'],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\nexport const push: Env = {\n window: {\n _paq: [] as unknown[],\n },\n document: {\n createElement: () => ({\n type: '',\n src: '',\n async: false,\n defer: false,\n }),\n head: { appendChild: () => {} },\n },\n};\n\n/**\n * Simulation tracking paths\n * Specifies which function calls to track during simulation\n */\nexport const simulation = [\n 'call:window._paq.push', // Track _paq.push calls\n];\n","import type { Flow } from '@walkeros/core';\nimport { getEvent, isObject } from '@walkeros/core';\n\n/**\n * Destination bootstrap.\n * Given the canonical settings, init loads the PiwikPro script and configures\n * the tracker URL, app id, and link tracking. Reproduce by passing the same\n * settings to `startFlow` as the destination config.\n */\nexport const init: Flow.StepExample = {\n in: {\n loadScript: true,\n settings: {\n appId: 'XXX-XXX-XXX-XXX-XXX',\n url: 'https://your_account_name.piwik.pro/',\n },\n },\n out: [\n [\n '_paq.push',\n ['setTrackerUrl', 'https://your_account_name.piwik.pro/ppms.php'],\n ],\n ['_paq.push', ['setSiteId', 'XXX-XXX-XXX-XXX-XXX']],\n ['_paq.push', ['enableLinkTracking']],\n ],\n};\n\nexport const ecommerceOrder: Flow.StepExample = {\n in: getEvent('order complete', { timestamp: 1700000300 }),\n mapping: {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n orderId: 'data.id',\n grandTotal: 'data.total',\n tax: 'data.taxes',\n shipping: 'data.shipping',\n },\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceOrder',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n {\n sku: 'cc',\n name: 'Cool Cap',\n price: 42,\n quantity: 1,\n variant: undefined,\n customDimensions: { 1: 'one size' },\n },\n ],\n {\n orderId: '0rd3r1d',\n grandTotal: 555,\n tax: 73.76,\n shipping: 5.22,\n },\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const ecommerceAddToCart: Flow.StepExample = {\n in: getEvent('product add', { timestamp: 1700000301 }),\n mapping: {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceAddToCart',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const productDetailView: Flow.StepExample = {\n in: getEvent('product view', { timestamp: 1700000302 }),\n mapping: {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceProductDetailView',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const cartUpdate: Flow.StepExample = {\n in: getEvent('cart view', { timestamp: 1700000303 }),\n mapping: {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity: unknown) =>\n isObject(entity) && entity.entity === 'product',\n map: {\n sku: 'data.id',\n name: 'data.name',\n price: 'data.price',\n quantity: { value: 1 },\n variant: { key: 'data.color' },\n customDimensions: {\n map: {\n 1: 'data.size',\n },\n },\n },\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n },\n out: [\n [\n 'ecommerceCartUpdate',\n [\n {\n sku: 'ers',\n name: 'Everyday Ruck Snack',\n price: 420,\n quantity: 1,\n variant: 'black',\n customDimensions: { 1: 'l' },\n },\n ],\n 840,\n { currencyCode: 'EUR' },\n ],\n ],\n};\n\nexport const customEvent: Flow.StepExample = {\n in: getEvent('promotion visible', { timestamp: 1700000304 }),\n mapping: {\n name: 'trackEvent',\n settings: {\n goalId: 'goal_1',\n },\n data: {\n set: ['data.name', 'data.position'],\n },\n },\n out: [\n ['trackEvent', 'Setting up tracking easily', 'hero'],\n ['trackGoal', 'goal_1', undefined],\n ],\n};\n\nexport const pageViewWithTitle: Flow.StepExample = {\n in: getEvent('page view', { timestamp: 1700000305 }),\n mapping: {\n data: 'data.title',\n },\n out: [['trackPageView', 'walkerOS documentation']],\n};\n"],"mappings":";;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,mBAAmB;;;ACA5B,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,OAAO,EACJ,OAAO,EACP,IAAI,CAAC,EACL,SAAS,qDAAqD;AAAA,EACjE,KAAK,EACF,OAAO,EACP,IAAI,EACJ;AAAA,IACC;AAAA,EACF;AAAA,EACF,cAAc,EACX,QAAQ,EACR,QAAQ,KAAK,EACb,SAAS,gDAAgD;AAC9D,CAAC;;;ACjBD,SAAS,KAAAA,UAAS;AAEX,IAAM,gBAAgBA,GAAE,OAAO;AAAA,EACpC,QAAQA,GAAE,OAAO,EAAE,SAAS,0CAA0C;AAAA,EACtE,WAAWA,GACR,OAAO,EACP,SAAS,yDAAyD,EAClE,SAAS;AACd,CAAC;;;AFAM,IAAM,WAAW,YAAY,cAAc;AAC3C,IAAM,UAAU,YAAY,aAAa;;;AGThD;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAM,OAAwB;AAAA,EACnC,QAAQ;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACR,eAAe,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,MAAM,EAAE,aAAa,MAAM;AAAA,IAAC,EAAE;AAAA,EAChC;AACF;AAEO,IAAM,OAAY;AAAA,EACvB,QAAQ;AAAA,IACN,MAAM,CAAC;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACR,eAAe,OAAO;AAAA,MACpB,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,MAAM,EAAE,aAAa,MAAM;AAAA,IAAC,EAAE;AAAA,EAChC;AACF;AAMO,IAAM,aAAa;AAAA,EACxB;AAAA;AACF;;;AC7CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAAC;AAAA,EAAA;AAAA;AAAA;AACA,SAAS,UAAU,gBAAgB;AAQ5B,IAAMA,QAAyB;AAAA,EACpC,IAAI;AAAA,IACF,YAAY;AAAA,IACZ,UAAU;AAAA,MACR,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA,CAAC,iBAAiB,8CAA8C;AAAA,IAClE;AAAA,IACA,CAAC,aAAa,CAAC,aAAa,qBAAqB,CAAC;AAAA,IAClD,CAAC,aAAa,CAAC,oBAAoB,CAAC;AAAA,EACtC;AACF;AAEO,IAAM,iBAAmC;AAAA,EAC9C,IAAI,SAAS,kBAAkB,EAAE,WAAW,WAAW,CAAC;AAAA,EACxD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,WACV,SAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,SAAS;AAAA,YACT,YAAY;AAAA,YACZ,KAAK;AAAA,YACL,UAAU;AAAA,UACZ;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,WAAW;AAAA,QACpC;AAAA,MACF;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,qBAAuC;AAAA,EAClD,IAAI,SAAS,eAAe,EAAE,WAAW,WAAW,CAAC;AAAA,EACrD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,KAAK;AAAA,YACH;AAAA,cACE,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,oBAAsC;AAAA,EACjD,IAAI,SAAS,gBAAgB,EAAE,WAAW,WAAW,CAAC;AAAA,EACtD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,KAAK;AAAA,YACH;AAAA,cACE,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,aAA+B;AAAA,EAC1C,IAAI,SAAS,aAAa,EAAE,WAAW,WAAW,CAAC;AAAA,EACnD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,KAAK;AAAA,QACH;AAAA,UACE,MAAM;AAAA,YACJ;AAAA,YACA;AAAA,cACE,WAAW,CAAC,WACV,SAAS,MAAM,KAAK,OAAO,WAAW;AAAA,cACxC,KAAK;AAAA,gBACH,KAAK;AAAA,gBACL,MAAM;AAAA,gBACN,OAAO;AAAA,gBACP,UAAU,EAAE,OAAO,EAAE;AAAA,gBACrB,SAAS,EAAE,KAAK,aAAa;AAAA,gBAC7B,kBAAkB;AAAA,kBAChB,KAAK;AAAA,oBACH,GAAG;AAAA,kBACL;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,UACE,KAAK;AAAA,YACH,cAAc,EAAE,OAAO,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH;AAAA,MACE;AAAA,MACA;AAAA,QACE;AAAA,UACE,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,UAAU;AAAA,UACV,SAAS;AAAA,UACT,kBAAkB,EAAE,GAAG,IAAI;AAAA,QAC7B;AAAA,MACF;AAAA,MACA;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AAAA,EACF;AACF;AAEO,IAAM,cAAgC;AAAA,EAC3C,IAAI,SAAS,qBAAqB,EAAE,WAAW,WAAW,CAAC;AAAA,EAC3D,SAAS;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,IACA,MAAM;AAAA,MACJ,KAAK,CAAC,aAAa,eAAe;AAAA,IACpC;AAAA,EACF;AAAA,EACA,KAAK;AAAA,IACH,CAAC,cAAc,8BAA8B,MAAM;AAAA,IACnD,CAAC,aAAa,UAAU,MAAS;AAAA,EACnC;AACF;AAEO,IAAM,oBAAsC;AAAA,EACjD,IAAI,SAAS,aAAa,EAAE,WAAW,WAAW,CAAC;AAAA,EACnD,SAAS;AAAA,IACP,MAAM;AAAA,EACR;AAAA,EACA,KAAK,CAAC,CAAC,iBAAiB,wBAAwB,CAAC;AACnD;","names":["z","init"]}
@@ -29,7 +29,7 @@ interface Env extends DestinationWeb.Env {
29
29
  * These environments provide standardized mock structures for testing
30
30
  * and development without requiring external dependencies.
31
31
  */
32
- declare const init: Env | undefined;
32
+ declare const init$1: Env | undefined;
33
33
  declare const push: Env;
34
34
  /**
35
35
  * Simulation tracking paths
@@ -37,13 +37,19 @@ declare const push: Env;
37
37
  */
38
38
  declare const simulation: string[];
39
39
 
40
- declare const env_init: typeof init;
41
40
  declare const env_push: typeof push;
42
41
  declare const env_simulation: typeof simulation;
43
42
  declare namespace env {
44
- export { env_init as init, env_push as push, env_simulation as simulation };
43
+ export { init$1 as init, env_push as push, env_simulation as simulation };
45
44
  }
46
45
 
46
+ /**
47
+ * Destination bootstrap.
48
+ * Given the canonical settings, init loads the PiwikPro script and configures
49
+ * the tracker URL, app id, and link tracking. Reproduce by passing the same
50
+ * settings to `startFlow` as the destination config.
51
+ */
52
+ declare const init: Flow.StepExample;
47
53
  declare const ecommerceOrder: Flow.StepExample;
48
54
  declare const ecommerceAddToCart: Flow.StepExample;
49
55
  declare const productDetailView: Flow.StepExample;
@@ -55,10 +61,11 @@ declare const step_cartUpdate: typeof cartUpdate;
55
61
  declare const step_customEvent: typeof customEvent;
56
62
  declare const step_ecommerceAddToCart: typeof ecommerceAddToCart;
57
63
  declare const step_ecommerceOrder: typeof ecommerceOrder;
64
+ declare const step_init: typeof init;
58
65
  declare const step_pageViewWithTitle: typeof pageViewWithTitle;
59
66
  declare const step_productDetailView: typeof productDetailView;
60
67
  declare namespace step {
61
- export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
68
+ export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_init as init, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
62
69
  }
63
70
 
64
71
  export { env, step };
@@ -29,7 +29,7 @@ interface Env extends DestinationWeb.Env {
29
29
  * These environments provide standardized mock structures for testing
30
30
  * and development without requiring external dependencies.
31
31
  */
32
- declare const init: Env | undefined;
32
+ declare const init$1: Env | undefined;
33
33
  declare const push: Env;
34
34
  /**
35
35
  * Simulation tracking paths
@@ -37,13 +37,19 @@ declare const push: Env;
37
37
  */
38
38
  declare const simulation: string[];
39
39
 
40
- declare const env_init: typeof init;
41
40
  declare const env_push: typeof push;
42
41
  declare const env_simulation: typeof simulation;
43
42
  declare namespace env {
44
- export { env_init as init, env_push as push, env_simulation as simulation };
43
+ export { init$1 as init, env_push as push, env_simulation as simulation };
45
44
  }
46
45
 
46
+ /**
47
+ * Destination bootstrap.
48
+ * Given the canonical settings, init loads the PiwikPro script and configures
49
+ * the tracker URL, app id, and link tracking. Reproduce by passing the same
50
+ * settings to `startFlow` as the destination config.
51
+ */
52
+ declare const init: Flow.StepExample;
47
53
  declare const ecommerceOrder: Flow.StepExample;
48
54
  declare const ecommerceAddToCart: Flow.StepExample;
49
55
  declare const productDetailView: Flow.StepExample;
@@ -55,10 +61,11 @@ declare const step_cartUpdate: typeof cartUpdate;
55
61
  declare const step_customEvent: typeof customEvent;
56
62
  declare const step_ecommerceAddToCart: typeof ecommerceAddToCart;
57
63
  declare const step_ecommerceOrder: typeof ecommerceOrder;
64
+ declare const step_init: typeof init;
58
65
  declare const step_pageViewWithTitle: typeof pageViewWithTitle;
59
66
  declare const step_productDetailView: typeof productDetailView;
60
67
  declare namespace step {
61
- export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
68
+ export { step_cartUpdate as cartUpdate, step_customEvent as customEvent, step_ecommerceAddToCart as ecommerceAddToCart, step_ecommerceOrder as ecommerceOrder, step_init as init, step_pageViewWithTitle as pageViewWithTitle, step_productDetailView as productDetailView };
62
69
  }
63
70
 
64
71
  export { env, step };
@@ -74,10 +74,28 @@ __export(step_exports, {
74
74
  customEvent: () => customEvent,
75
75
  ecommerceAddToCart: () => ecommerceAddToCart,
76
76
  ecommerceOrder: () => ecommerceOrder,
77
+ init: () => init2,
77
78
  pageViewWithTitle: () => pageViewWithTitle,
78
79
  productDetailView: () => productDetailView
79
80
  });
80
81
  var import_core = require("@walkeros/core");
82
+ var init2 = {
83
+ in: {
84
+ loadScript: true,
85
+ settings: {
86
+ appId: "XXX-XXX-XXX-XXX-XXX",
87
+ url: "https://your_account_name.piwik.pro/"
88
+ }
89
+ },
90
+ out: [
91
+ [
92
+ "_paq.push",
93
+ ["setTrackerUrl", "https://your_account_name.piwik.pro/ppms.php"]
94
+ ],
95
+ ["_paq.push", ["setSiteId", "XXX-XXX-XXX-XXX-XXX"]],
96
+ ["_paq.push", ["enableLinkTracking"]]
97
+ ]
98
+ };
81
99
  var ecommerceOrder = {
82
100
  in: (0, import_core.getEvent)("order complete", { timestamp: 1700000300 }),
83
101
  mapping: {
@@ -53,10 +53,28 @@ __export(step_exports, {
53
53
  customEvent: () => customEvent,
54
54
  ecommerceAddToCart: () => ecommerceAddToCart,
55
55
  ecommerceOrder: () => ecommerceOrder,
56
+ init: () => init2,
56
57
  pageViewWithTitle: () => pageViewWithTitle,
57
58
  productDetailView: () => productDetailView
58
59
  });
59
60
  import { getEvent, isObject } from "@walkeros/core";
61
+ var init2 = {
62
+ in: {
63
+ loadScript: true,
64
+ settings: {
65
+ appId: "XXX-XXX-XXX-XXX-XXX",
66
+ url: "https://your_account_name.piwik.pro/"
67
+ }
68
+ },
69
+ out: [
70
+ [
71
+ "_paq.push",
72
+ ["setTrackerUrl", "https://your_account_name.piwik.pro/ppms.php"]
73
+ ],
74
+ ["_paq.push", ["setSiteId", "XXX-XXX-XXX-XXX-XXX"]],
75
+ ["_paq.push", ["enableLinkTracking"]]
76
+ ]
77
+ };
60
78
  var ecommerceOrder = {
61
79
  in: getEvent("order complete", { timestamp: 1700000300 }),
62
80
  mapping: {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "package": "@walkeros/web-destination-piwikpro",
4
- "version": "3.2.0",
4
+ "version": "3.4.0-next-1776749829492",
5
5
  "type": "destination",
6
6
  "platform": [
7
7
  "web"
@@ -147,7 +147,7 @@
147
147
  "group": "gr0up",
148
148
  "count": 1,
149
149
  "version": {
150
- "source": "3.2.0",
150
+ "source": "3.4.0-next-1776749829492",
151
151
  "tagging": 1
152
152
  },
153
153
  "source": {
@@ -165,7 +165,7 @@
165
165
  "nested",
166
166
  {
167
167
  "condition": {
168
- "$code": "a=>g(a)&&\"product\"===a.entity"
168
+ "$code": "a=>y(a)&&\"product\"===a.entity"
169
169
  },
170
170
  "map": {
171
171
  "sku": "data.id",
@@ -270,7 +270,7 @@
270
270
  "group": "gr0up",
271
271
  "count": 1,
272
272
  "version": {
273
- "source": "3.2.0",
273
+ "source": "3.4.0-next-1776749829492",
274
274
  "tagging": 1
275
275
  },
276
276
  "source": {
@@ -344,7 +344,7 @@
344
344
  "group": "gr0up",
345
345
  "count": 1,
346
346
  "version": {
347
- "source": "3.2.0",
347
+ "source": "3.4.0-next-1776749829492",
348
348
  "tagging": 1
349
349
  },
350
350
  "source": {
@@ -497,7 +497,7 @@
497
497
  "group": "gr0up",
498
498
  "count": 1,
499
499
  "version": {
500
- "source": "3.2.0",
500
+ "source": "3.4.0-next-1776749829492",
501
501
  "tagging": 1
502
502
  },
503
503
  "source": {
@@ -515,7 +515,7 @@
515
515
  "nested",
516
516
  {
517
517
  "condition": {
518
- "$code": "a=>g(a)&&\"product\"===a.entity"
518
+ "$code": "a=>y(a)&&\"product\"===a.entity"
519
519
  },
520
520
  "map": {
521
521
  "sku": "data.id",
@@ -590,6 +590,37 @@
590
590
  ]
591
591
  ]
592
592
  },
593
+ "init": {
594
+ "in": {
595
+ "loadScript": true,
596
+ "settings": {
597
+ "appId": "XXX-XXX-XXX-XXX-XXX",
598
+ "url": "https://your_account_name.piwik.pro/"
599
+ }
600
+ },
601
+ "out": [
602
+ [
603
+ "_paq.push",
604
+ [
605
+ "setTrackerUrl",
606
+ "https://your_account_name.piwik.pro/ppms.php"
607
+ ]
608
+ ],
609
+ [
610
+ "_paq.push",
611
+ [
612
+ "setSiteId",
613
+ "XXX-XXX-XXX-XXX-XXX"
614
+ ]
615
+ ],
616
+ [
617
+ "_paq.push",
618
+ [
619
+ "enableLinkTracking"
620
+ ]
621
+ ]
622
+ ]
623
+ },
593
624
  "pageViewWithTitle": {
594
625
  "in": {
595
626
  "name": "page view",
@@ -645,7 +676,7 @@
645
676
  "group": "gr0up",
646
677
  "count": 1,
647
678
  "version": {
648
- "source": "3.2.0",
679
+ "source": "3.4.0-next-1776749829492",
649
680
  "tagging": 1
650
681
  },
651
682
  "source": {
@@ -704,7 +735,7 @@
704
735
  "group": "gr0up",
705
736
  "count": 1,
706
737
  "version": {
707
- "source": "3.2.0",
738
+ "source": "3.4.0-next-1776749829492",
708
739
  "tagging": 1
709
740
  },
710
741
  "source": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/web-destination-piwikpro",
3
3
  "description": "Piwik PRO destination for walkerOS",
4
- "version": "3.3.0",
4
+ "version": "3.4.0-next-1776749829492",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
@@ -37,11 +37,11 @@
37
37
  "update": "npx npm-check-updates -u && npm update"
38
38
  },
39
39
  "dependencies": {
40
- "@walkeros/core": "3.3.0",
41
- "@walkeros/web-core": "3.3.0"
40
+ "@walkeros/core": "3.4.0-next-1776749829492",
41
+ "@walkeros/web-core": "3.4.0-next-1776749829492"
42
42
  },
43
43
  "devDependencies": {
44
- "@walkeros/collector": "3.3.0"
44
+ "@walkeros/collector": "3.4.0-next-1776749829492"
45
45
  },
46
46
  "repository": {
47
47
  "url": "git+https://github.com/elbwalker/walkerOS.git",