@walkeros/web-destination-piwikpro 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,10 +30,10 @@ npm install @walkeros/web-destination-piwikpro
30
30
  Here's a basic example of how to use the Piwik PRO destination:
31
31
 
32
32
  ```typescript
33
- import { createCollector } from '@walkeros/collector';
33
+ import { startFlow } from '@walkeros/collector';
34
34
  import { destinationPiwikPro } from '@walkeros/web-destination-piwikpro';
35
35
 
36
- const { elb } = await createCollector();
36
+ const { elb } = await startFlow();
37
37
 
38
38
  elb('walker destination', destinationPiwikPro, {
39
39
  settings: {
@@ -1,13 +1,5 @@
1
1
  import { Mapping as Mapping$1 } from '@walkeros/core';
2
-
3
- declare function ecommerceOrder$1(): unknown[];
4
- declare function ecommerceAddToCart$1(): unknown[];
5
- declare function ecommerceProductDetailView$1(): unknown[];
6
- declare function ecommerceCartUpdate$1(): unknown[];
7
-
8
- declare namespace events {
9
- export { ecommerceAddToCart$1 as ecommerceAddToCart, ecommerceCartUpdate$1 as ecommerceCartUpdate, ecommerceOrder$1 as ecommerceOrder, ecommerceProductDetailView$1 as ecommerceProductDetailView };
10
- }
2
+ import { DestinationWeb } from '@walkeros/web-core';
11
3
 
12
4
  declare global {
13
5
  interface Window {
@@ -18,8 +10,48 @@ interface Mapping {
18
10
  goalId?: string;
19
11
  goalValue?: string;
20
12
  }
13
+ interface Env extends DestinationWeb.Env {
14
+ window: {
15
+ _paq: Array<unknown>;
16
+ };
17
+ document: {
18
+ createElement: (tagName: string) => {
19
+ type: string;
20
+ src: string;
21
+ async?: boolean;
22
+ defer?: boolean;
23
+ };
24
+ head: {
25
+ appendChild: (node: unknown) => void;
26
+ };
27
+ };
28
+ }
21
29
  type Rule = Mapping$1.Rule<Mapping>;
22
30
 
31
+ /**
32
+ * Example environment configurations for PiwikPro destination
33
+ *
34
+ * These environments provide standardized mock structures for testing
35
+ * and development without requiring external dependencies.
36
+ */
37
+ declare const init: Env | undefined;
38
+ declare const push: Env;
39
+
40
+ declare const env_init: typeof init;
41
+ declare const env_push: typeof push;
42
+ declare namespace env {
43
+ export { env_init as init, env_push as push };
44
+ }
45
+
46
+ declare function ecommerceOrder$1(): unknown[];
47
+ declare function ecommerceAddToCart$1(): unknown[];
48
+ declare function ecommerceProductDetailView$1(): unknown[];
49
+ declare function ecommerceCartUpdate$1(): unknown[];
50
+
51
+ declare namespace events {
52
+ export { ecommerceAddToCart$1 as ecommerceAddToCart, ecommerceCartUpdate$1 as ecommerceCartUpdate, ecommerceOrder$1 as ecommerceOrder, ecommerceProductDetailView$1 as ecommerceProductDetailView };
53
+ }
54
+
23
55
  declare const ecommerceOrder: Rule;
24
56
  declare const ecommerceAddToCart: Rule;
25
57
  declare const ecommerceProductDetailView: Rule;
@@ -46,4 +78,4 @@ declare namespace mapping {
46
78
  export { mapping_config as config, mapping_ecommerceAddToCart as ecommerceAddToCart, mapping_ecommerceCartUpdate as ecommerceCartUpdate, mapping_ecommerceOrder as ecommerceOrder, mapping_ecommerceProductDetailView as ecommerceProductDetailView };
47
79
  }
48
80
 
49
- export { events, mapping };
81
+ export { env, events, mapping };
@@ -1,13 +1,5 @@
1
1
  import { Mapping as Mapping$1 } from '@walkeros/core';
2
-
3
- declare function ecommerceOrder$1(): unknown[];
4
- declare function ecommerceAddToCart$1(): unknown[];
5
- declare function ecommerceProductDetailView$1(): unknown[];
6
- declare function ecommerceCartUpdate$1(): unknown[];
7
-
8
- declare namespace events {
9
- export { ecommerceAddToCart$1 as ecommerceAddToCart, ecommerceCartUpdate$1 as ecommerceCartUpdate, ecommerceOrder$1 as ecommerceOrder, ecommerceProductDetailView$1 as ecommerceProductDetailView };
10
- }
2
+ import { DestinationWeb } from '@walkeros/web-core';
11
3
 
12
4
  declare global {
13
5
  interface Window {
@@ -18,8 +10,48 @@ interface Mapping {
18
10
  goalId?: string;
19
11
  goalValue?: string;
20
12
  }
13
+ interface Env extends DestinationWeb.Env {
14
+ window: {
15
+ _paq: Array<unknown>;
16
+ };
17
+ document: {
18
+ createElement: (tagName: string) => {
19
+ type: string;
20
+ src: string;
21
+ async?: boolean;
22
+ defer?: boolean;
23
+ };
24
+ head: {
25
+ appendChild: (node: unknown) => void;
26
+ };
27
+ };
28
+ }
21
29
  type Rule = Mapping$1.Rule<Mapping>;
22
30
 
31
+ /**
32
+ * Example environment configurations for PiwikPro destination
33
+ *
34
+ * These environments provide standardized mock structures for testing
35
+ * and development without requiring external dependencies.
36
+ */
37
+ declare const init: Env | undefined;
38
+ declare const push: Env;
39
+
40
+ declare const env_init: typeof init;
41
+ declare const env_push: typeof push;
42
+ declare namespace env {
43
+ export { env_init as init, env_push as push };
44
+ }
45
+
46
+ declare function ecommerceOrder$1(): unknown[];
47
+ declare function ecommerceAddToCart$1(): unknown[];
48
+ declare function ecommerceProductDetailView$1(): unknown[];
49
+ declare function ecommerceCartUpdate$1(): unknown[];
50
+
51
+ declare namespace events {
52
+ export { ecommerceAddToCart$1 as ecommerceAddToCart, ecommerceCartUpdate$1 as ecommerceCartUpdate, ecommerceOrder$1 as ecommerceOrder, ecommerceProductDetailView$1 as ecommerceProductDetailView };
53
+ }
54
+
23
55
  declare const ecommerceOrder: Rule;
24
56
  declare const ecommerceAddToCart: Rule;
25
57
  declare const ecommerceProductDetailView: Rule;
@@ -46,4 +78,4 @@ declare namespace mapping {
46
78
  export { mapping_config as config, mapping_ecommerceAddToCart as ecommerceAddToCart, mapping_ecommerceCartUpdate as ecommerceCartUpdate, mapping_ecommerceOrder as ecommerceOrder, mapping_ecommerceProductDetailView as ecommerceProductDetailView };
47
79
  }
48
80
 
49
- export { events, mapping };
81
+ export { env, events, mapping };
@@ -20,11 +20,49 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/examples/index.ts
21
21
  var examples_exports = {};
22
22
  __export(examples_exports, {
23
+ env: () => env_exports,
23
24
  events: () => events_exports,
24
25
  mapping: () => mapping_exports
25
26
  });
26
27
  module.exports = __toCommonJS(examples_exports);
27
28
 
29
+ // src/examples/env.ts
30
+ var env_exports = {};
31
+ __export(env_exports, {
32
+ init: () => init,
33
+ push: () => push
34
+ });
35
+ var init = {
36
+ window: {
37
+ _paq: void 0
38
+ },
39
+ document: {
40
+ createElement: () => ({
41
+ type: "",
42
+ src: "",
43
+ async: false,
44
+ defer: false
45
+ }),
46
+ head: { appendChild: () => {
47
+ } }
48
+ }
49
+ };
50
+ var push = {
51
+ window: {
52
+ _paq: []
53
+ },
54
+ document: {
55
+ createElement: () => ({
56
+ type: "",
57
+ src: "",
58
+ async: false,
59
+ defer: false
60
+ }),
61
+ head: { appendChild: () => {
62
+ } }
63
+ }
64
+ };
65
+
28
66
  // src/examples/events.ts
29
67
  var events_exports = {};
30
68
  __export(events_exports, {
@@ -208,6 +246,7 @@ var config = {
208
246
  };
209
247
  // Annotate the CommonJS export names for ESM import in node:
210
248
  0 && (module.exports = {
249
+ env,
211
250
  events,
212
251
  mapping
213
252
  });
@@ -4,6 +4,43 @@ var __export = (target, all) => {
4
4
  __defProp(target, name, { get: all[name], enumerable: true });
5
5
  };
6
6
 
7
+ // src/examples/env.ts
8
+ var env_exports = {};
9
+ __export(env_exports, {
10
+ init: () => init,
11
+ push: () => push
12
+ });
13
+ var init = {
14
+ window: {
15
+ _paq: void 0
16
+ },
17
+ document: {
18
+ createElement: () => ({
19
+ type: "",
20
+ src: "",
21
+ async: false,
22
+ defer: false
23
+ }),
24
+ head: { appendChild: () => {
25
+ } }
26
+ }
27
+ };
28
+ var push = {
29
+ window: {
30
+ _paq: []
31
+ },
32
+ document: {
33
+ createElement: () => ({
34
+ type: "",
35
+ src: "",
36
+ async: false,
37
+ defer: false
38
+ }),
39
+ head: { appendChild: () => {
40
+ } }
41
+ }
42
+ };
43
+
7
44
  // src/examples/events.ts
8
45
  var events_exports = {};
9
46
  __export(events_exports, {
@@ -186,6 +223,7 @@ var config = {
186
223
  cart: { view: ecommerceCartUpdate2 }
187
224
  };
188
225
  export {
226
+ env_exports as env,
189
227
  events_exports as events,
190
228
  mapping_exports as mapping
191
229
  };
@@ -1 +1 @@
1
- "use strict";var Destination=(()=>{var e,t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},c={};i(c,{DestinationPiwikPro:()=>C,default:()=>$,destinationPiwikPro:()=>N,examples:()=>P});var s=Object.getOwnPropertyNames,d=(e={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.2",main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",license:"MIT",files:["dist/**"],scripts:{build:"tsup --silent",clean:"rm -rf .turbo && rm -rf node_modules && rm -rf dist",dev:"jest --watchAll --colors",lint:'tsc && eslint "**/*.ts*"',test:"jest",update:"npx npm-check-updates -u && npm update"},dependencies:{},devDependencies:{},repository:{url:"git+https://github.com/elbwalker/walkerOS.git",directory:"packages/core"},author:"elbwalker <hello@elbwalker.com>",homepage:"https://github.com/elbwalker/walkerOS#readme",bugs:{url:"https://github.com/elbwalker/walkerOS/issues"},keywords:["walker","walkerOS","analytics","tracking","data collection","measurement","data privacy","privacy friendly","web analytics","product analytics","core","types","utils"],funding:[{type:"GitHub Sponsors",url:"https://github.com/sponsors/elbwalker"}]}}},function(){return t||(0,e[s(e)[0]])((t={exports:{}}).exports,t),t.exports}),p={merge:!0,shallow:!0,extend:!0};function u(e){return Array.isArray(e)}function l(e){return void 0!==e}function m(e){return"object"==typeof e&&null!==e&&!u(e)&&"[object Object]"===Object.prototype.toString.call(e)}function g(e){return"string"==typeof e}function y(e,t="",r){const n=t.split(".");let a=e;for(let e=0;e<n.length;e++){const t=n[e];if("*"===t&&u(a)){const t=n.slice(e+1).join("."),o=[];for(const e of a){const n=y(e,t,r);o.push(n)}return o}if(a=a instanceof Object?a[t]:void 0,!a)break}return l(a)?a:r}var{version:f}=d();function h(e={}){var t;const r=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",a=e.count||1,o=function(e,t={},r={}){r={...p,...r};const n=Object.entries(t).reduce((t,[n,a])=>{const o=e[n];return r.merge&&Array.isArray(o)&&Array.isArray(a)?t[n]=a.reduce((e,t)=>e.includes(t)?e:[...e,t],[...o]):(r.extend||n in e)&&(t[n]=a),t},{});return r.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${r}-${n}-${a}`,trigger:"test",entity:"entity",action:"action",timestamp:r,timing:3.14,group:n,count:a,version:{source:f,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[r,n]=null!=(t=e.name.split(" "))?t:[];r&&n&&(o.entity=r,o.action=n)}return o}function w(e="entity action",t={}){const r=t.timestamp||(new Date).setHours(0,13,37,0),n={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},a={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return h({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+a.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...a,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,context:{shopping:["complete",0]},nested:[]},{entity:"product",...a,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:r,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function v(e){return function(e){return"boolean"==typeof e}(e)||g(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!l(e)||u(e)&&e.every(v)||m(e)&&Object.values(e).every(v)}function b(e){return v(e)?e:void 0}function k(e,t,r){return async function(...n){try{return await e(...n)}catch(e){if(!t)return;return await t(e)}finally{await(null==r?void 0:r())}}}async function x(e,t={},r={}){var n;if(!l(e))return;const a=m(e)&&e.consent||r.consent||(null==(n=r.collector)?void 0:n.consent),o=u(t)?t:[t];for(const t of o){const n=await k(O)(e,t,{...r,consent:a});if(l(n))return n}}async function O(e,t,r={}){const{collector:n,consent:a}=r;return(u(t)?t:[t]).reduce(async(t,o)=>{const i=await t;if(i)return i;const c=g(o)?{key:o}:o;if(!Object.keys(c).length)return;const{condition:s,consent:d,fn:p,key:m,loop:f,map:h,set:w,validate:v,value:j}=c;if(s&&!await k(s)(e,o,n))return;if(d&&!function(e,t={},r={}){const n={...t,...r},a={};let o=void 0===e;return Object.keys(n).forEach(t=>{n[t]&&(a[t]=!0,e&&e[t]&&(o=!0))}),!!o&&a}(d,a))return j;let C=l(j)?j:e;if(p&&(C=await k(p)(e,o,r)),m&&(C=y(e,m,j)),f){const[t,n]=f,a="this"===t?[e]:await x(e,t,r);u(a)&&(C=(await Promise.all(a.map(e=>x(e,n,r)))).filter(l))}else h?C=await Object.entries(h).reduce(async(t,[n,a])=>{const o=await t,i=await x(e,a,r);return l(i)&&(o[n]=i),o},Promise.resolve({})):w&&(C=await Promise.all(w.map(t=>O(e,t,r))));v&&!await k(v)(C)&&(C=void 0);const P=b(C);return l(P)?P:b(j)},Promise.resolve(void 0))}function j(e){const t={window:globalThis.window,document:globalThis.document};return e?{...t,...e}:t}var C={},P={};i(P,{events:()=>E,mapping:()=>R});var E={};function S(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function U(){const e=w("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(S),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function D(){return[["ecommerceAddToCart",[S(w("product add")),,],{currencyCode:"EUR"}]]}function T(){return[["ecommerceProductDetailView",[S(w("product view")),,],{currencyCode:"EUR"}]]}function A(){const e=w("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(S),e.data.value,{currencyCode:"EUR"}]]}i(E,{ecommerceAddToCart:()=>D,ecommerceCartUpdate:()=>A,ecommerceOrder:()=>U,ecommerceProductDetailView:()=>T});var R={};i(R,{config:()=>H,ecommerceAddToCart:()=>_,ecommerceCartUpdate:()=>I,ecommerceOrder:()=>V,ecommerceProductDetailView:()=>q});var z={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},V={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:z}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},_={name:"ecommerceAddToCart",data:{set:[{set:[{map:z}]},{map:{currencyCode:{value:"EUR"}}}]}},q={name:"ecommerceProductDetailView",data:{set:[{set:[{map:z}]},{map:{currencyCode:{value:"EUR"}}}]}},I={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:z}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},H={order:{complete:V},product:{add:_,view:q},cart:{view:I}},N={type:"piwikpro",config:{},init({config:e,env:t}){const{window:r}=j(t),n=r,{settings:a={},loadScript:o}=e,{appId:i,url:c}=a;if(!i||!c)return!1;n._paq=n._paq||[];const s=n._paq.push;return o&&(!function(e,t){const{document:r}=j(t),n=r,a=n.createElement("script");a.type="text/javascript",a.src=e+"ppms.js",a.async=!0,a.defer=!0,n.head.appendChild(a)}(c,t),s(["setTrackerUrl",c+"ppms.php"]),s(["setSiteId",i])),!1!==a.linkTracking&&s(["enableLinkTracking"]),e},async push(e,{config:t,mapping:r={},data:n,env:a}){const{window:o}=j(a),i=o._paq.push;if("page view"===e.name&&!r.settings)return void i(["trackPageView",await x(e,"data.title")]);const c=r.settings||{},s=u(n)?n:[n];if(i([e.name,...s]),c.goalId){const t=c.goalValue?x(e,c.goalValue):void 0;i(["trackGoal",c.goalId,t])}}};var M,$=N;return M=c,((e,t,i,c)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of a(t))o.call(e,s)||s===i||r(e,s,{get:()=>t[s],enumerable:!(c=n(t,s))||c.enumerable});return e})(r({},"__esModule",{value:!0}),M)})();
1
+ "use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(t,n)=>{for(var a in n)e(t,a,{get:n[a],enumerable:!0})},r={};o(r,{DestinationPiwikPro:()=>b,default:()=>N,destinationPiwikPro:()=>I,examples:()=>k});var i={merge:!0,shallow:!0,extend:!0};function c(e){return Array.isArray(e)}function s(e){return void 0!==e}function d(e){return"object"==typeof e&&null!==e&&!c(e)&&"[object Object]"===Object.prototype.toString.call(e)}function p(e){return"string"==typeof e}function u(e,t="",n){const a=t.split(".");let o=e;for(let e=0;e<a.length;e++){const t=a[e];if("*"===t&&c(o)){const t=a.slice(e+1).join("."),r=[];for(const e of o){const a=u(e,t,n);r.push(a)}return r}if(o=o instanceof Object?o[t]:void 0,!o)break}return s(o)?o:n}function l(e={}){var t;const n=e.timestamp||(new Date).setHours(0,13,37,0),a=e.group||"gr0up",o=e.count||1,r=function(e,t={},n={}){n={...i,...n};const a=Object.entries(t).reduce((t,[a,o])=>{const r=e[a];return n.merge&&Array.isArray(r)&&Array.isArray(o)?t[a]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...r]):(n.extend||a in e)&&(t[a]=o),t},{});return n.shallow?{...e,...a}:(Object.assign(e,a),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${n}-${a}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:n,timing:3.14,group:a,count:o,version:{source:"0.2.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[n,a]=null!=(t=e.name.split(" "))?t:[];n&&a&&(r.entity=n,r.action=a)}return r}function m(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),a={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return l({...{"cart view":{data:{currency:"EUR",value:2*a.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...a.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:a.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...a,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...a,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...a,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...a,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...a.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function g(e){return function(e){return"boolean"==typeof e}(e)||p(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!s(e)||c(e)&&e.every(g)||d(e)&&Object.values(e).every(g)}function y(e){return g(e)?e:void 0}function f(e,t,n){return async function(...a){try{return await e(...a)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}async function v(e,t={},n={}){var a;if(!s(e))return;const o=d(e)&&e.consent||n.consent||(null==(a=n.collector)?void 0:a.consent),r=c(t)?t:[t];for(const t of r){const a=await f(h)(e,t,{...n,consent:o});if(s(a))return a}}async function h(e,t,n={}){const{collector:a,consent:o}=n;return(c(t)?t:[t]).reduce(async(t,r)=>{const i=await t;if(i)return i;const d=p(r)?{key:r}:r;if(!Object.keys(d).length)return;const{condition:l,consent:m,fn:g,key:w,loop:b,map:k,set:x,validate:C,value:O}=d;if(l&&!await f(l)(e,r,a))return;if(m&&!function(e,t={},n={}){const a={...t,...n},o={};let r=void 0===e;return Object.keys(a).forEach(t=>{a[t]&&(o[t]=!0,e&&e[t]&&(r=!0))}),!!r&&o}(m,o))return O;let j=s(O)?O:e;if(g&&(j=await f(g)(e,r,n)),w&&(j=u(e,w,O)),b){const[t,a]=b,o="this"===t?[e]:await v(e,t,n);c(o)&&(j=(await Promise.all(o.map(e=>v(e,a,n)))).filter(s))}else k?j=await Object.entries(k).reduce(async(t,[a,o])=>{const r=await t,i=await v(e,o,n);return s(i)&&(r[a]=i),r},Promise.resolve({})):x&&(j=await Promise.all(x.map(t=>h(e,t,n))));C&&!await f(C)(j)&&(j=void 0);const E=y(j);return s(E)?E:y(O)},Promise.resolve(void 0))}function w(e){return{window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...e}}var b={},k={};o(k,{env:()=>x,events:()=>j,mapping:()=>T});var x={};o(x,{init:()=>C,push:()=>O});var C={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},O={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},j={};function E(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function P(){const e=m("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(E),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function U(){return[["ecommerceAddToCart",[E(m("product add")),,],{currencyCode:"EUR"}]]}function D(){return[["ecommerceProductDetailView",[E(m("product view")),,],{currencyCode:"EUR"}]]}function R(){const e=m("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(E),e.data.value,{currencyCode:"EUR"}]]}o(j,{ecommerceAddToCart:()=>U,ecommerceCartUpdate:()=>R,ecommerceOrder:()=>P,ecommerceProductDetailView:()=>D});var T={};o(T,{config:()=>V,ecommerceAddToCart:()=>_,ecommerceCartUpdate:()=>z,ecommerceOrder:()=>S,ecommerceProductDetailView:()=>q});var A={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},S={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>d(e)&&"product"===e.entity,map:A}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},_={name:"ecommerceAddToCart",data:{set:[{set:[{map:A}]},{map:{currencyCode:{value:"EUR"}}}]}},q={name:"ecommerceProductDetailView",data:{set:[{set:[{map:A}]},{map:{currencyCode:{value:"EUR"}}}]}},z={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>d(e)&&"product"===e.entity,map:A}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},V={order:{complete:S},product:{add:_,view:q},cart:{view:z}},I={type:"piwikpro",config:{},init({config:e,env:t}){const{window:n}=w(t),a=n,{settings:o={},loadScript:r}=e,{appId:i,url:c}=o;if(!i||!c)return!1;a._paq=a._paq||[];const s=a._paq.push;return r&&(!function(e,t){const{document:n}=w(t),a=n,o=a.createElement("script");o.type="text/javascript",o.src=e+"ppms.js",o.async=!0,o.defer=!0,a.head.appendChild(o)}(c,t),s(["setTrackerUrl",c+"ppms.php"]),s(["setSiteId",i])),!1!==o.linkTracking&&s(["enableLinkTracking"]),e},async push(e,{config:t,mapping:n={},data:a,env:o}){const{window:r}=w(o),i=r._paq.push;if("page view"===e.name&&!n.settings)return void i(["trackPageView",await v(e,"data.title")]);const s=n.settings||{},d=c(a)?a:[a];if(i([e.name,...d]),s.goalId){const t=s.goalValue?v(e,s.goalValue):void 0;i(["trackGoal",s.goalId,t])}}};var H,N=I;return H=r,((o,r,i,c)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let s of n(r))a.call(o,s)||s===i||e(o,s,{get:()=>r[s],enumerable:!(c=t(r,s))||c.enumerable});return o})(e({},"__esModule",{value:!0}),H)})();
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Mapping as Mapping$1 } from '@walkeros/core';
1
+ import { Destination as Destination$1, Mapping as Mapping$1 } from '@walkeros/core';
2
2
  import { DestinationWeb } from '@walkeros/web-core';
3
3
 
4
4
  declare global {
@@ -6,8 +6,6 @@ declare global {
6
6
  _paq?: Array<unknown>;
7
7
  }
8
8
  }
9
- type Destination = DestinationWeb.Destination<Settings, Mapping>;
10
- type Config = DestinationWeb.Config<Settings, Mapping>;
11
9
  interface Settings {
12
10
  appId: string;
13
11
  linkTracking?: boolean;
@@ -17,6 +15,25 @@ interface Mapping {
17
15
  goalId?: string;
18
16
  goalValue?: string;
19
17
  }
18
+ interface Env extends DestinationWeb.Env {
19
+ window: {
20
+ _paq: Array<unknown>;
21
+ };
22
+ document: {
23
+ createElement: (tagName: string) => {
24
+ type: string;
25
+ src: string;
26
+ async?: boolean;
27
+ defer?: boolean;
28
+ };
29
+ head: {
30
+ appendChild: (node: unknown) => void;
31
+ };
32
+ };
33
+ }
34
+ type Types = Destination$1.Types<Settings, Mapping, Env>;
35
+ type Destination = DestinationWeb.Destination<Types>;
36
+ type Config = DestinationWeb.Config<Types>;
20
37
  type Rule = Mapping$1.Rule<Mapping>;
21
38
  type Rules = Mapping$1.Rules<Rule>;
22
39
  interface Dimensions {
@@ -26,12 +43,29 @@ interface Dimensions {
26
43
  type index$1_Config = Config;
27
44
  type index$1_Destination = Destination;
28
45
  type index$1_Dimensions = Dimensions;
46
+ type index$1_Env = Env;
29
47
  type index$1_Mapping = Mapping;
30
48
  type index$1_Rule = Rule;
31
49
  type index$1_Rules = Rules;
32
50
  type index$1_Settings = Settings;
51
+ type index$1_Types = Types;
33
52
  declare namespace index$1 {
34
- export type { index$1_Config as Config, index$1_Destination as Destination, index$1_Dimensions as Dimensions, index$1_Mapping as Mapping, index$1_Rule as Rule, index$1_Rules as Rules, index$1_Settings as Settings };
53
+ export type { index$1_Config as Config, index$1_Destination as Destination, index$1_Dimensions as Dimensions, index$1_Env as Env, index$1_Mapping as Mapping, index$1_Rule as Rule, index$1_Rules as Rules, index$1_Settings as Settings, index$1_Types as Types };
54
+ }
55
+
56
+ /**
57
+ * Example environment configurations for PiwikPro destination
58
+ *
59
+ * These environments provide standardized mock structures for testing
60
+ * and development without requiring external dependencies.
61
+ */
62
+ declare const init: Env | undefined;
63
+ declare const push: Env;
64
+
65
+ declare const env_init: typeof init;
66
+ declare const env_push: typeof push;
67
+ declare namespace env {
68
+ export { env_init as init, env_push as push };
35
69
  }
36
70
 
37
71
  declare function ecommerceOrder$1(): unknown[];
@@ -69,10 +103,11 @@ declare namespace mapping {
69
103
  export { mapping_config as config, mapping_ecommerceAddToCart as ecommerceAddToCart, mapping_ecommerceCartUpdate as ecommerceCartUpdate, mapping_ecommerceOrder as ecommerceOrder, mapping_ecommerceProductDetailView as ecommerceProductDetailView };
70
104
  }
71
105
 
106
+ declare const index_env: typeof env;
72
107
  declare const index_events: typeof events;
73
108
  declare const index_mapping: typeof mapping;
74
109
  declare namespace index {
75
- export { index_events as events, index_mapping as mapping };
110
+ export { index_env as env, index_events as events, index_mapping as mapping };
76
111
  }
77
112
 
78
113
  declare const destinationPiwikPro: Destination;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Mapping as Mapping$1 } from '@walkeros/core';
1
+ import { Destination as Destination$1, Mapping as Mapping$1 } from '@walkeros/core';
2
2
  import { DestinationWeb } from '@walkeros/web-core';
3
3
 
4
4
  declare global {
@@ -6,8 +6,6 @@ declare global {
6
6
  _paq?: Array<unknown>;
7
7
  }
8
8
  }
9
- type Destination = DestinationWeb.Destination<Settings, Mapping>;
10
- type Config = DestinationWeb.Config<Settings, Mapping>;
11
9
  interface Settings {
12
10
  appId: string;
13
11
  linkTracking?: boolean;
@@ -17,6 +15,25 @@ interface Mapping {
17
15
  goalId?: string;
18
16
  goalValue?: string;
19
17
  }
18
+ interface Env extends DestinationWeb.Env {
19
+ window: {
20
+ _paq: Array<unknown>;
21
+ };
22
+ document: {
23
+ createElement: (tagName: string) => {
24
+ type: string;
25
+ src: string;
26
+ async?: boolean;
27
+ defer?: boolean;
28
+ };
29
+ head: {
30
+ appendChild: (node: unknown) => void;
31
+ };
32
+ };
33
+ }
34
+ type Types = Destination$1.Types<Settings, Mapping, Env>;
35
+ type Destination = DestinationWeb.Destination<Types>;
36
+ type Config = DestinationWeb.Config<Types>;
20
37
  type Rule = Mapping$1.Rule<Mapping>;
21
38
  type Rules = Mapping$1.Rules<Rule>;
22
39
  interface Dimensions {
@@ -26,12 +43,29 @@ interface Dimensions {
26
43
  type index$1_Config = Config;
27
44
  type index$1_Destination = Destination;
28
45
  type index$1_Dimensions = Dimensions;
46
+ type index$1_Env = Env;
29
47
  type index$1_Mapping = Mapping;
30
48
  type index$1_Rule = Rule;
31
49
  type index$1_Rules = Rules;
32
50
  type index$1_Settings = Settings;
51
+ type index$1_Types = Types;
33
52
  declare namespace index$1 {
34
- export type { index$1_Config as Config, index$1_Destination as Destination, index$1_Dimensions as Dimensions, index$1_Mapping as Mapping, index$1_Rule as Rule, index$1_Rules as Rules, index$1_Settings as Settings };
53
+ export type { index$1_Config as Config, index$1_Destination as Destination, index$1_Dimensions as Dimensions, index$1_Env as Env, index$1_Mapping as Mapping, index$1_Rule as Rule, index$1_Rules as Rules, index$1_Settings as Settings, index$1_Types as Types };
54
+ }
55
+
56
+ /**
57
+ * Example environment configurations for PiwikPro destination
58
+ *
59
+ * These environments provide standardized mock structures for testing
60
+ * and development without requiring external dependencies.
61
+ */
62
+ declare const init: Env | undefined;
63
+ declare const push: Env;
64
+
65
+ declare const env_init: typeof init;
66
+ declare const env_push: typeof push;
67
+ declare namespace env {
68
+ export { env_init as init, env_push as push };
35
69
  }
36
70
 
37
71
  declare function ecommerceOrder$1(): unknown[];
@@ -69,10 +103,11 @@ declare namespace mapping {
69
103
  export { mapping_config as config, mapping_ecommerceAddToCart as ecommerceAddToCart, mapping_ecommerceCartUpdate as ecommerceCartUpdate, mapping_ecommerceOrder as ecommerceOrder, mapping_ecommerceProductDetailView as ecommerceProductDetailView };
70
104
  }
71
105
 
106
+ declare const index_env: typeof env;
72
107
  declare const index_events: typeof events;
73
108
  declare const index_mapping: typeof mapping;
74
109
  declare namespace index {
75
- export { index_events as events, index_mapping as mapping };
110
+ export { index_env as env, index_events as events, index_mapping as mapping };
76
111
  }
77
112
 
78
113
  declare const destinationPiwikPro: Destination;
package/dist/index.es5.js CHANGED
@@ -1 +1 @@
1
- "use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function asyncGeneratorStep(e,t,r,n,o,a,i){try{var c=e[a](i),s=c.value}catch(e){return void r(e)}c.done?t(s):Promise.resolve(s).then(n,o)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){asyncGeneratorStep(a,n,o,i,c,"next",e)}function c(e){asyncGeneratorStep(a,n,o,i,c,"throw",e)}i(void 0)})}}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _ts_generator(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(s){return function(c){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,s])}}}var Destination=function(){var e,t,r=function(e){return Array.isArray(e)},n=function(e){return void 0!==e},o=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!r(e)&&"[object Object]"===Object.prototype.toString.call(e)},a=function(e){return"string"==typeof e},i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.timestamp||(new Date).setHours(0,13,37,0),r=e.group||"gr0up",n=e.count||1,o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r=_object_spread({},x,r);var n=Object.entries(t).reduce(function(t,n){var o=_sliced_to_array(n,2),a=o[0],i=o[1],c=e[a];return r.merge&&Array.isArray(c)&&Array.isArray(i)?t[a]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(r.extend||a in e)&&(t[a]=i),t},{});return r.shallow?_object_spread({},e,n):(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:"".concat(t,"-").concat(r,"-").concat(n),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:r,count:n,version:{source:P,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){var a,i=_sliced_to_array(null!==(a=e.name.split(" "))&&void 0!==a?a:[],2),c=i[0],s=i[1];c&&s&&(o.entity=c,o.action=s)}return o},c=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"entity action",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.timestamp||(new Date).setHours(0,13,37,0),n={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return i(_object_spread_props(_object_spread({},{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:_object_spread_props(_object_spread({},n.data),{quantity:2}),context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},n),{context:{shopping:["checkout",0]},nested:[]}),_object_spread_props(_object_spread({entity:"product"},o),{context:{shopping:["checkout",0]},nested:[]})],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},n),{context:{shopping:["complete",0]},nested:[]}),_object_spread_props(_object_spread({entity:"product"},o),{context:{shopping:["complete",0]},nested:[]}),{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":_object_spread_props(_object_spread({},n),{context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"}),"product view":_object_spread_props(_object_spread({},n),{context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"}),"product visible":{data:_object_spread_props(_object_spread({},n.data),{position:3,promo:!0}),context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:r,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],t),{name:e}))},s=function(e){return A(e)?e:void 0},u=function(e,t,r){return function(){for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return _async_to_generator(function(){var n;return _ts_generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,a.sent()];case 2:return n=a.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return a.sent(),[7];case 6:return[2]}})})()}},l=function(e){return _async_to_generator(function(e){var t,a,i,c,s,l,p,d,y,_,f,m,b,g=arguments;return _ts_generator(this,function(v){switch(v.label){case 0:if(t=g.length>1&&void 0!==g[1]?g[1]:{},a=g.length>2&&void 0!==g[2]?g[2]:{},!n(e))return[2];c=o(e)&&e.consent||a.consent||(null===(i=a.collector)||void 0===i?void 0:i.consent),s=r(t)?t:[t],l=!0,p=!1,d=void 0,v.label=1;case 1:v.trys.push([1,6,7,8]),y=s[Symbol.iterator](),v.label=2;case 2:return(l=(_=y.next()).done)?[3,5]:(f=_.value,[4,u(C)(e,f,_object_spread_props(_object_spread({},a),{consent:c}))]);case 3:if(m=v.sent(),n(m))return[2,m];v.label=4;case 4:return l=!0,[3,2];case 5:return[3,8];case 6:return b=v.sent(),p=!0,d=b,[3,8];case 7:try{l||null==y.return||y.return()}finally{if(p)throw d}return[7];case 8:return[2]}})}).apply(this,arguments)},p=function(e){var t={window:globalThis.window,document:globalThis.document};return e?_object_spread({},t,e):t},d=function(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}},y=function(){var e=c("order complete");return[["ecommerceOrder",e.nested.filter(function(e){return"product"===e.entity}).map(d),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]},_=function(){var e=c("product add");return[["ecommerceAddToCart",[d(e),,],{currencyCode:"EUR"}]]},f=function(){var e=c("product view");return[["ecommerceProductDetailView",[d(e),,],{currencyCode:"EUR"}]]},m=function(){var e=c("cart view");return[["ecommerceCartUpdate",e.nested.filter(function(e){return"product"===e.entity}).map(d),e.data.value,{currencyCode:"EUR"}]]},b=Object.defineProperty,g=Object.getOwnPropertyDescriptor,v=Object.getOwnPropertyNames,h=Object.prototype.hasOwnProperty,w=function(e,t){for(var r in t)b(e,r,{get:t[r],enumerable:!0})},j={};w(j,{DestinationPiwikPro:function(){return E},default:function(){return M},destinationPiwikPro:function(){return N},examples:function(){return D}});var k=Object.getOwnPropertyNames,O=(e={"package.json":function(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.2",main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",license:"MIT",files:["dist/**"],scripts:{build:"tsup --silent",clean:"rm -rf .turbo && rm -rf node_modules && rm -rf dist",dev:"jest --watchAll --colors",lint:'tsc && eslint "**/*.ts*"',test:"jest",update:"npx npm-check-updates -u && npm update"},dependencies:{},devDependencies:{},repository:{url:"git+https://github.com/elbwalker/walkerOS.git",directory:"packages/core"},author:"elbwalker <hello@elbwalker.com>",homepage:"https://github.com/elbwalker/walkerOS#readme",bugs:{url:"https://github.com/elbwalker/walkerOS/issues"},keywords:["walker","walkerOS","analytics","tracking","data collection","measurement","data privacy","privacy friendly","web analytics","product analytics","core","types","utils"],funding:[{type:"GitHub Sponsors",url:"https://github.com/sponsors/elbwalker"}]}}},function(){return t||(0,e[k(e)[0]])((t={exports:{}}).exports,t),t.exports}),x={merge:!0,shallow:!0,extend:!0};function S(e){for(var t=arguments.length>2?arguments[2]:void 0,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),a=e,i=0;i<o.length;i++){var c=o[i];if("*"===c&&r(a)){var s=o.slice(i+1).join("."),u=[],l=!0,p=!1,d=void 0;try{for(var y,_=a[Symbol.iterator]();!(l=(y=_.next()).done);l=!0){var f=S(y.value,s,t);u.push(f)}}catch(e){p=!0,d=e}finally{try{l||null==_.return||_.return()}finally{if(p)throw d}}return u}if(!(a=_instanceof(a,Object)?a[c]:void 0))break}return n(a)?a:t}var P=O().version;function A(e){return function(e){return"boolean"==typeof e}(e)||a(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!n(e)||r(e)&&e.every(A)||o(e)&&Object.values(e).every(A)}function C(e,t){return _async_to_generator(function(e,t){var o,i,c,p=arguments;return _ts_generator(this,function(d){return i=(o=p.length>2&&void 0!==p[2]?p[2]:{}).collector,c=o.consent,[2,(r(t)?t:[t]).reduce(function(t,p){return _async_to_generator(function(){var d,y,_,f,m,b,g,v,h,w,j,k,O,x,P,A,E,D,U,I,T;return _ts_generator(this,function(R){switch(R.label){case 0:return[4,t];case 1:return(d=R.sent())?[2,d]:(y=a(p)?{key:p}:p,Object.keys(y).length?(_=y.condition,f=y.consent,m=y.fn,b=y.key,g=y.loop,v=y.map,h=y.set,w=y.validate,j=y.value,(k=_)?[4,u(_)(e,p,i)]:[3,3]):[2]);case 2:k=!R.sent(),R.label=3;case 3:return k?[2]:f&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=void 0===e;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(f,c)?[2,j]:(O=n(j)?j:e,m?[4,u(m)(e,p,o)]:[3,5]);case 4:O=R.sent(),R.label=5;case 5:return b&&(O=S(e,b,j)),g?(x=_sliced_to_array(g,2),P=x[0],A=x[1],"this"!==P?[3,6]:(D=[e],[3,8])):[3,11];case 6:return[4,l(e,P,o)];case 7:D=R.sent(),R.label=8;case 8:return r(E=D)?[4,Promise.all(E.map(function(e){return l(e,A,o)}))]:[3,10];case 9:O=R.sent().filter(n),R.label=10;case 10:return[3,17];case 11:return v?[4,Object.entries(v).reduce(function(t,r){var a=_sliced_to_array(r,2),i=a[0],c=a[1];return _async_to_generator(function(){var r,a;return _ts_generator(this,function(s){switch(s.label){case 0:return[4,t];case 1:return r=s.sent(),[4,l(e,c,o)];case 2:return a=s.sent(),[2,(n(a)&&(r[i]=a),r)]}})})()},Promise.resolve({}))]:[3,13];case 12:return O=R.sent(),[3,16];case 13:return(U=h)?[4,Promise.all(h.map(function(t){return C(e,t,o)}))]:[3,15];case 14:U=O=R.sent(),R.label=15;case 15:R.label=16;case 16:R.label=17;case 17:return(I=w)?[4,u(w)(O)]:[3,19];case 18:I=!R.sent(),R.label=19;case 19:return I&&(O=void 0),T=s(O),[2,n(T)?T:s(j)]}})})()},Promise.resolve(void 0))]})}).apply(this,arguments)}var E={},D={};w(D,{events:function(){return U},mapping:function(){return I}});var U={};w(U,{ecommerceAddToCart:function(){return _},ecommerceCartUpdate:function(){return m},ecommerceOrder:function(){return y},ecommerceProductDetailView:function(){return f}});var I={};w(I,{config:function(){return H},ecommerceAddToCart:function(){return V},ecommerceCartUpdate:function(){return G},ecommerceOrder:function(){return z},ecommerceProductDetailView:function(){return q}});var T,R={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},z={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:function(e){return o(e)&&"product"===e.entity},map:R}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},V={name:"ecommerceAddToCart",data:{set:[{set:[{map:R}]},{map:{currencyCode:{value:"EUR"}}}]}},q={name:"ecommerceProductDetailView",data:{set:[{set:[{map:R}]},{map:{currencyCode:{value:"EUR"}}}]}},G={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:function(e){return o(e)&&"product"===e.entity},map:R}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},H={order:{complete:z},product:{add:V,view:q},cart:{view:G}},N={type:"piwikpro",config:{},init:function(e){var t=e.config,r=e.env,n=p(r).window,o=t.settings,a=void 0===o?{}:o,i=t.loadScript,c=a.appId,s=a.url;if(!c||!s)return!1;n._paq=n._paq||[];var u=n._paq.push;return i&&(!function(e,t){var r=p(t).document,n=r.createElement("script");n.type="text/javascript",n.src=e+"ppms.js",n.async=!0,n.defer=!0,r.head.appendChild(n)}(s,r),u(["setTrackerUrl",s+"ppms.php"]),u(["setSiteId",c])),!1!==a.linkTracking&&u(["enableLinkTracking"]),t},push:function(e,t){return _async_to_generator(function(e,t){var n,o,a,i,c,s,u,d,y,_,f;return _ts_generator(this,function(m){switch(m.label){case 0:return t.config,n=t.mapping,o=void 0===n?{}:n,a=t.data,i=t.env,c=p(i),s=c.window,u=s._paq.push,"page view"!==e.name||o.settings?[3,2]:(d=["trackPageView"],[4,l(e,"data.title")]);case 1:return u.apply(void 0,[d.concat([m.sent()])]),[2];case 2:return y=o.settings||{},_=r(a)?a:[a],u([e.name].concat(_to_consumable_array(_))),y.goalId&&(f=y.goalValue?l(e,y.goalValue):void 0,u(["trackGoal",y.goalId,f])),[2]}})}).apply(this,arguments)}},M=N;return T=j,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,a=!1,i=void 0;try{for(var c,s=function(){var o=c.value;h.call(e,o)||o===r||b(e,o,{get:function(){return t[o]},enumerable:!(n=g(t,o))||n.enumerable})},u=v(t)[Symbol.iterator]();!(o=(c=u.next()).done);o=!0)s()}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}}return e}(b({},"__esModule",{value:!0}),T)}();
1
+ "use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function asyncGeneratorStep(e,t,r,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function _async_to_generator(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){asyncGeneratorStep(a,n,o,i,c,"next",e)}function c(e){asyncGeneratorStep(a,n,o,i,c,"throw",e)}i(void 0)})}}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}function _ts_generator(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=c(0),i.throw=c(1),i.return=c(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(u){return function(c){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,u])}}}var Destination=function(){var e=function(e){return Array.isArray(e)},t=function(e){return void 0!==e},r=function(t){return"object"==(void 0===t?"undefined":_type_of(t))&&null!==t&&!e(t)&&"[object Object]"===Object.prototype.toString.call(t)},n=function(e){return"string"==typeof e},o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.timestamp||(new Date).setHours(0,13,37,0),r=e.group||"gr0up",n=e.count||1,o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r=_object_spread({},w,r);var n=Object.entries(t).reduce(function(t,n){var o=_sliced_to_array(n,2),a=o[0],i=o[1],c=e[a];return r.merge&&Array.isArray(c)&&Array.isArray(i)?t[a]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(r.extend||a in e)&&(t[a]=i),t},{});return r.shallow?_object_spread({},e,n):(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:"".concat(t,"-").concat(r,"-").concat(n),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:r,count:n,version:{source:"0.2.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){var a,i=_sliced_to_array(null!==(a=e.name.split(" "))&&void 0!==a?a:[],2),c=i[0],u=i[1];c&&u&&(o.entity=c,o.action=u)}return o},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"entity action",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.timestamp||(new Date).setHours(0,13,37,0),n={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},a={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return o(_object_spread_props(_object_spread({},{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:_object_spread_props(_object_spread({},n.data),{quantity:2}),context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+a.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},n),{context:{shopping:["checkout",0]},nested:[]}),_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["checkout",0]},nested:[]})],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},n),{context:{shopping:["complete",0]},nested:[]}),_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["complete",0]},nested:[]}),{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":_object_spread_props(_object_spread({},n),{context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"}),"product view":_object_spread_props(_object_spread({},n),{context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"}),"product visible":{data:_object_spread_props(_object_spread({},n.data),{position:3,promo:!0}),context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:r,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],t),{name:e}))},i=function(e){return O(e)?e:void 0},c=function(e,t,r){return function(){for(var n=arguments.length,o=new Array(n),a=0;a<n;a++)o[a]=arguments[a];return _async_to_generator(function(){var n;return _ts_generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,4,6]),[4,e.apply(void 0,_to_consumable_array(o))];case 1:case 3:return[2,a.sent()];case 2:return n=a.sent(),t?[4,t(n)]:[2];case 4:return[4,null==r?void 0:r()];case 5:return a.sent(),[7];case 6:return[2]}})})()}},u=function(n){return _async_to_generator(function(n){var o,a,i,u,s,l,p,d,f,_,y,m,b,g=arguments;return _ts_generator(this,function(v){switch(v.label){case 0:if(o=g.length>1&&void 0!==g[1]?g[1]:{},a=g.length>2&&void 0!==g[2]?g[2]:{},!t(n))return[2];u=r(n)&&n.consent||a.consent||(null===(i=a.collector)||void 0===i?void 0:i.consent),s=e(o)?o:[o],l=!0,p=!1,d=void 0,v.label=1;case 1:v.trys.push([1,6,7,8]),f=s[Symbol.iterator](),v.label=2;case 2:return(l=(_=f.next()).done)?[3,5]:(y=_.value,[4,c(k)(n,y,_object_spread_props(_object_spread({},a),{consent:u}))]);case 3:if(m=v.sent(),t(m))return[2,m];v.label=4;case 4:return l=!0,[3,2];case 5:return[3,8];case 6:return b=v.sent(),p=!0,d=b,[3,8];case 7:try{l||null==f.return||f.return()}finally{if(p)throw d}return[7];case 8:return[2]}})}).apply(this,arguments)},s=function(e){return _object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e)},l=function(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}},p=function(){var e=a("order complete");return[["ecommerceOrder",e.nested.filter(function(e){return"product"===e.entity}).map(l),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]},d=function(){var e=a("product add");return[["ecommerceAddToCart",[l(e),,],{currencyCode:"EUR"}]]},f=function(){var e=a("product view");return[["ecommerceProductDetailView",[l(e),,],{currencyCode:"EUR"}]]},_=function(){var e=a("cart view");return[["ecommerceCartUpdate",e.nested.filter(function(e){return"product"===e.entity}).map(l),e.data.value,{currencyCode:"EUR"}]]},y=Object.defineProperty,m=Object.getOwnPropertyDescriptor,b=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,v=function(e,t){for(var r in t)y(e,r,{get:t[r],enumerable:!0})},h={};v(h,{DestinationPiwikPro:function(){return x},default:function(){return H},destinationPiwikPro:function(){return G},examples:function(){return S}});var w={merge:!0,shallow:!0,extend:!0};function j(r){for(var n=arguments.length>2?arguments[2]:void 0,o=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),a=r,i=0;i<o.length;i++){var c=o[i];if("*"===c&&e(a)){var u=o.slice(i+1).join("."),s=[],l=!0,p=!1,d=void 0;try{for(var f,_=a[Symbol.iterator]();!(l=(f=_.next()).done);l=!0){var y=j(f.value,u,n);s.push(y)}}catch(e){p=!0,d=e}finally{try{l||null==_.return||_.return()}finally{if(p)throw d}}return s}if(!(a=_instanceof(a,Object)?a[c]:void 0))break}return t(a)?a:n}function O(o){return function(e){return"boolean"==typeof e}(o)||n(o)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(o)||!t(o)||e(o)&&o.every(O)||r(o)&&Object.values(o).every(O)}function k(r,o){return _async_to_generator(function(r,o){var a,s,l,p=arguments;return _ts_generator(this,function(d){return s=(a=p.length>2&&void 0!==p[2]?p[2]:{}).collector,l=a.consent,[2,(e(o)?o:[o]).reduce(function(o,p){return _async_to_generator(function(){var d,f,_,y,m,b,g,v,h,w,O,x,S,P,C,E,A,D,U,I,T;return _ts_generator(this,function(R){switch(R.label){case 0:return[4,o];case 1:return(d=R.sent())?[2,d]:(f=n(p)?{key:p}:p,Object.keys(f).length?(_=f.condition,y=f.consent,m=f.fn,b=f.key,g=f.loop,v=f.map,h=f.set,w=f.validate,O=f.value,(x=_)?[4,c(_)(r,p,s)]:[3,3]):[2]);case 2:x=!R.sent(),R.label=3;case 3:return x?[2]:y&&!function(e){var t=_object_spread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}),r={},n=void 0===e;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(y,l)?[2,O]:(S=t(O)?O:r,m?[4,c(m)(r,p,a)]:[3,5]);case 4:S=R.sent(),R.label=5;case 5:return b&&(S=j(r,b,O)),g?(P=_sliced_to_array(g,2),C=P[0],E=P[1],"this"!==C?[3,6]:(D=[r],[3,8])):[3,11];case 6:return[4,u(r,C,a)];case 7:D=R.sent(),R.label=8;case 8:return e(A=D)?[4,Promise.all(A.map(function(e){return u(e,E,a)}))]:[3,10];case 9:S=R.sent().filter(t),R.label=10;case 10:return[3,17];case 11:return v?[4,Object.entries(v).reduce(function(e,n){var o=_sliced_to_array(n,2),i=o[0],c=o[1];return _async_to_generator(function(){var n,o;return _ts_generator(this,function(s){switch(s.label){case 0:return[4,e];case 1:return n=s.sent(),[4,u(r,c,a)];case 2:return o=s.sent(),[2,(t(o)&&(n[i]=o),n)]}})})()},Promise.resolve({}))]:[3,13];case 12:return S=R.sent(),[3,16];case 13:return(U=h)?[4,Promise.all(h.map(function(e){return k(r,e,a)}))]:[3,15];case 14:U=S=R.sent(),R.label=15;case 15:R.label=16;case 16:R.label=17;case 17:return(I=w)?[4,c(w)(S)]:[3,19];case 18:I=!R.sent(),R.label=19;case 19:return I&&(S=void 0),T=i(S),[2,t(T)?T:i(O)]}})})()},Promise.resolve(void 0))]})}).apply(this,arguments)}var x={},S={};v(S,{env:function(){return P},events:function(){return A},mapping:function(){return D}});var P={};v(P,{init:function(){return C},push:function(){return E}});var C={window:{_paq:void 0},document:{createElement:function(){return{type:"",src:"",async:!1,defer:!1}},head:{appendChild:function(){}}}},E={window:{_paq:[]},document:{createElement:function(){return{type:"",src:"",async:!1,defer:!1}},head:{appendChild:function(){}}}},A={};v(A,{ecommerceAddToCart:function(){return d},ecommerceCartUpdate:function(){return _},ecommerceOrder:function(){return p},ecommerceProductDetailView:function(){return f}});var D={};v(D,{config:function(){return V},ecommerceAddToCart:function(){return R},ecommerceCartUpdate:function(){return z},ecommerceOrder:function(){return T},ecommerceProductDetailView:function(){return q}});var U,I={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},T={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:I}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},R={name:"ecommerceAddToCart",data:{set:[{set:[{map:I}]},{map:{currencyCode:{value:"EUR"}}}]}},q={name:"ecommerceProductDetailView",data:{set:[{set:[{map:I}]},{map:{currencyCode:{value:"EUR"}}}]}},z={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:I}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},V={order:{complete:T},product:{add:R,view:q},cart:{view:z}},G={type:"piwikpro",config:{},init:function(e){var t=e.config,r=e.env,n=s(r).window,o=t.settings,a=void 0===o?{}:o,i=t.loadScript,c=a.appId,u=a.url;if(!c||!u)return!1;n._paq=n._paq||[];var l=n._paq.push;return i&&(!function(e,t){var r=s(t).document,n=r.createElement("script");n.type="text/javascript",n.src=e+"ppms.js",n.async=!0,n.defer=!0,r.head.appendChild(n)}(u,r),l(["setTrackerUrl",u+"ppms.php"]),l(["setSiteId",c])),!1!==a.linkTracking&&l(["enableLinkTracking"]),t},push:function(t,r){return _async_to_generator(function(t,r){var n,o,a,i,c,l,p,d,f,_,y;return _ts_generator(this,function(m){switch(m.label){case 0:return r.config,n=r.mapping,o=void 0===n?{}:n,a=r.data,i=r.env,c=s(i),l=c.window,p=l._paq.push,"page view"!==t.name||o.settings?[3,2]:(d=["trackPageView"],[4,u(t,"data.title")]);case 1:return p.apply(void 0,[d.concat([m.sent()])]),[2];case 2:return f=o.settings||{},_=e(a)?a:[a],p([t.name].concat(_to_consumable_array(_))),f.goalId&&(y=f.goalValue?u(t,f.goalValue):void 0,p(["trackGoal",f.goalId,y])),[2]}})}).apply(this,arguments)}},H=G;return U=h,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var o=!0,a=!1,i=void 0;try{for(var c,u=function(){var o=c.value;g.call(e,o)||o===r||y(e,o,{get:function(){return t[o]},enumerable:!(n=m(t,o))||n.enumerable})},s=b(t)[Symbol.iterator]();!(o=(c=s.next()).done);o=!0)u()}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}}return e}(y({},"__esModule",{value:!0}),U)}();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var r in a)t(e,r,{get:a[r],enumerable:!0})},c={};o(c,{DestinationPiwikPro:()=>p,default:()=>q,destinationPiwikPro:()=>h,examples:()=>m}),module.exports=(e=c,((e,o,c,i)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let d of r(o))n.call(e,d)||d===c||t(e,d,{get:()=>o[d],enumerable:!(i=a(o,d))||i.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=require("@walkeros/core"),d=require("@walkeros/web-core"),p={},m={};o(m,{events:()=>s,mapping:()=>f});var s={};o(s,{ecommerceAddToCart:()=>v,ecommerceCartUpdate:()=>w,ecommerceOrder:()=>g,ecommerceProductDetailView:()=>y});var u=require("@walkeros/core");function l(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function g(){const e=(0,u.getEvent)("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(l),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function v(){return[["ecommerceAddToCart",[l((0,u.getEvent)("product add")),,],{currencyCode:"EUR"}]]}function y(){return[["ecommerceProductDetailView",[l((0,u.getEvent)("product view")),,],{currencyCode:"EUR"}]]}function w(){const e=(0,u.getEvent)("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(l),e.data.value,{currencyCode:"EUR"}]]}var f={};o(f,{config:()=>b,ecommerceAddToCart:()=>O,ecommerceCartUpdate:()=>U,ecommerceOrder:()=>E,ecommerceProductDetailView:()=>P});var k=require("@walkeros/core"),C={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},E={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>(0,k.isObject)(e)&&"product"===e.entity,map:C}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},O={name:"ecommerceAddToCart",data:{set:[{set:[{map:C}]},{map:{currencyCode:{value:"EUR"}}}]}},P={name:"ecommerceProductDetailView",data:{set:[{set:[{map:C}]},{map:{currencyCode:{value:"EUR"}}}]}},U={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>(0,k.isObject)(e)&&"product"===e.entity,map:C}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},b={order:{complete:E},product:{add:O,view:P},cart:{view:U}},h={type:"piwikpro",config:{},init({config:e,env:t}){const{window:a}=(0,d.getEnvironment)(t),r=a,{settings:n={},loadScript:o}=e,{appId:c,url:i}=n;if(!c||!i)return!1;r._paq=r._paq||[];const p=r._paq.push;return o&&(!function(e,t){const{document:a}=(0,d.getEnvironment)(t),r=a,n=r.createElement("script");n.type="text/javascript",n.src=e+"ppms.js",n.async=!0,n.defer=!0,r.head.appendChild(n)}(i,t),p(["setTrackerUrl",i+"ppms.php"]),p(["setSiteId",c])),!1!==n.linkTracking&&p(["enableLinkTracking"]),e},async push(e,{config:t,mapping:a={},data:r,env:n}){const{window:o}=(0,d.getEnvironment)(n),c=o._paq.push;if("page view"===e.name&&!a.settings)return void c(["trackPageView",await(0,i.getMappingValue)(e,"data.title")]);const p=a.settings||{},m=(0,i.isArray)(r)?r:[r];if(c([e.name,...m]),p.goalId){const t=p.goalValue?(0,i.getMappingValue)(e,p.goalValue):void 0;c(["trackGoal",p.goalId,t])}}};var q=h;//# sourceMappingURL=index.js.map
1
+ "use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var r in a)t(e,r,{get:a[r],enumerable:!0})},c={};o(c,{DestinationPiwikPro:()=>p,default:()=>V,destinationPiwikPro:()=>T,examples:()=>m}),module.exports=(e=c,((e,o,c,i)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let d of r(o))n.call(e,d)||d===c||t(e,d,{get:()=>o[d],enumerable:!(i=a(o,d))||i.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i=require("@walkeros/core"),d=require("@walkeros/web-core"),p={},m={};o(m,{env:()=>s,events:()=>v,mapping:()=>k});var s={};o(s,{init:()=>u,push:()=>l});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:()=>{}}}},v={};o(v,{ecommerceAddToCart:()=>f,ecommerceCartUpdate:()=>E,ecommerceOrder:()=>w,ecommerceProductDetailView:()=>C});var g=require("@walkeros/core");function y(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function w(){const e=(0,g.getEvent)("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(y),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function f(){return[["ecommerceAddToCart",[y((0,g.getEvent)("product add")),,],{currencyCode:"EUR"}]]}function C(){return[["ecommerceProductDetailView",[y((0,g.getEvent)("product view")),,],{currencyCode:"EUR"}]]}function E(){const e=(0,g.getEvent)("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(y),e.data.value,{currencyCode:"EUR"}]]}var k={};o(k,{config:()=>j,ecommerceAddToCart:()=>U,ecommerceCartUpdate:()=>q,ecommerceOrder:()=>P,ecommerceProductDetailView:()=>b});var h=require("@walkeros/core"),O={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},P={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:O}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},U={name:"ecommerceAddToCart",data:{set:[{set:[{map:O}]},{map:{currencyCode:{value:"EUR"}}}]}},b={name:"ecommerceProductDetailView",data:{set:[{set:[{map:O}]},{map:{currencyCode:{value:"EUR"}}}]}},q={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>(0,h.isObject)(e)&&"product"===e.entity,map:O}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},j={order:{complete:P},product:{add:U,view:b},cart:{view:q}},T={type:"piwikpro",config:{},init({config:e,env:t}){const{window:a}=(0,d.getEnv)(t),r=a,{settings:n={},loadScript:o}=e,{appId:c,url:i}=n;if(!c||!i)return!1;r._paq=r._paq||[];const p=r._paq.push;return o&&(!function(e,t){const{document:a}=(0,d.getEnv)(t),r=a,n=r.createElement("script");n.type="text/javascript",n.src=e+"ppms.js",n.async=!0,n.defer=!0,r.head.appendChild(n)}(i,t),p(["setTrackerUrl",i+"ppms.php"]),p(["setSiteId",c])),!1!==n.linkTracking&&p(["enableLinkTracking"]),e},async push(e,{config:t,mapping:a={},data:r,env:n}){const{window:o}=(0,d.getEnv)(n),c=o._paq.push;if("page view"===e.name&&!a.settings)return void c(["trackPageView",await(0,i.getMappingValue)(e,"data.title")]);const p=a.settings||{},m=(0,i.isArray)(r)?r:[r];if(c([e.name,...m]),p.goalId){const t=p.goalValue?(0,i.getMappingValue)(e,p.goalValue):void 0;c(["trackGoal",p.goalId,t])}}};var V=T;//# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/types/index.ts","../src/examples/index.ts","../src/examples/events.ts","../src/examples/mapping.ts"],"sourcesContent":["import type { Settings, Mapping, Destination } from './types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getMappingValue, isArray } from '@walkeros/core';\nimport { getEnvironment } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationPiwikPro from './types';\n\n// Examples\nexport * as examples from './examples';\n\nexport const destinationPiwikPro: Destination = {\n type: 'piwikpro',\n\n config: {},\n\n init({ config, env }) {\n const { window } = getEnvironment(env);\n const w = window as Window;\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { appId, url } = settings;\n\n // Required parameters\n if (!appId || !url) return false;\n\n // Set up the Piwik Pro interface _paq\n w._paq = w._paq || [];\n\n const paq = w._paq.push;\n if (loadScript) {\n // Load the JavaScript Tracking Client\n addScript(url, env);\n\n // Register the tracker url only with script loading\n paq(['setTrackerUrl', url + 'ppms.php']);\n\n // Register app id\n paq(['setSiteId', appId]);\n }\n\n // Enable download and outlink tracking if not disabled\n if (settings.linkTracking !== false) paq(['enableLinkTracking']);\n\n return config;\n },\n\n async push(event, { config, mapping = {}, data, env }) {\n const { window } = getEnvironment(env);\n const paq = (window as Window)._paq!.push;\n\n // Send pageviews if not disabled\n if (event.name === 'page view' && !mapping.settings) {\n paq(['trackPageView', await getMappingValue(event, 'data.title')]);\n return;\n }\n\n const eventMapping: Mapping = mapping.settings || {};\n\n const parameters = isArray(data) ? data : [data];\n\n paq([event.name, ...parameters]);\n\n if (eventMapping.goalId) {\n const goalValue = eventMapping.goalValue\n ? getMappingValue(event, eventMapping.goalValue)\n : undefined;\n\n paq([\n 'trackGoal',\n eventMapping.goalId,\n goalValue,\n // @TODO dimensions\n ]);\n }\n },\n};\n\nfunction addScript(url: string, env?: DestinationWeb.Environment) {\n const { document } = getEnvironment(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.type = 'text/javascript';\n script.src = url + 'ppms.js';\n script.async = true;\n script.defer = true;\n doc.head.appendChild(script);\n}\n\nexport default destinationPiwikPro;\n","import type { Mapping as WalkerOSMapping } from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\ndeclare global {\n interface Window {\n _paq?: Array<unknown>;\n }\n}\n\nexport type Destination = DestinationWeb.Destination<Settings, Mapping>;\nexport type Config = DestinationWeb.Config<Settings, Mapping>;\n\n// Destination-specific settings (internal usage)\nexport interface Settings {\n appId: string;\n // dimensions?: Dimensions;\n linkTracking?: boolean;\n url: string;\n}\n\n// Single event transformation rule\nexport interface Mapping {\n // dimensions?: Dimensions;\n goalId?: string;\n goalValue?: string;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n\nexport interface Dimensions {\n [i: number]: string;\n}\n","export * as events from './events';\nexport * as mapping from './mapping';\n","import type { WalkerOS } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nfunction getProduct(entity: WalkerOS.Entity | WalkerOS.Event) {\n return {\n sku: entity.data.id,\n name: entity.data.name,\n price: entity.data.price,\n quantity: 1,\n variant: entity.data.color,\n customDimensions: {\n 1: entity.data.size,\n },\n };\n}\n\nexport function ecommerceOrder(): unknown[] {\n const event = getEvent('order complete');\n\n return [\n [\n 'ecommerceOrder',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n {\n orderId: event.data.id,\n grandTotal: event.data.total,\n tax: event.data.taxes,\n shipping: event.data.shipping,\n },\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceAddToCart(): unknown[] {\n const event = getEvent('product add');\n\n return [\n ['ecommerceAddToCart', [getProduct(event), ,], { currencyCode: 'EUR' }],\n ];\n}\n\nexport function ecommerceProductDetailView(): unknown[] {\n const event = getEvent('product view');\n\n return [\n [\n 'ecommerceProductDetailView',\n [getProduct(event), ,],\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceCartUpdate(): unknown[] {\n const event = getEvent('cart view');\n\n return [\n [\n 'ecommerceCartUpdate',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n event.data.value,\n { currencyCode: 'EUR' },\n ],\n ];\n}\n","import type { DestinationPiwikPro } from '..';\nimport { isObject } from '@walkeros/core';\n\nconst productMap = {\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\nexport const ecommerceOrder: DestinationPiwikPro.Rule = {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\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\nexport const ecommerceAddToCart: DestinationPiwikPro.Rule = {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceProductDetailView: DestinationPiwikPro.Rule = {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceCartUpdate: DestinationPiwikPro.Rule = {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const config = {\n order: { complete: ecommerceOrder },\n product: { add: ecommerceAddToCart, view: ecommerceProductDetailView },\n cart: { view: ecommerceCartUpdate },\n} satisfies DestinationPiwikPro.Rules;\n"],"mappings":"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","names":["import_core","ecommerceAddToCart","ecommerceCartUpdate","ecommerceOrder","ecommerceProductDetailView","import_core","config"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/types/index.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/events.ts","../src/examples/mapping.ts"],"sourcesContent":["import type { Settings, Mapping, Destination } from './types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getMappingValue, isArray } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationPiwikPro from './types';\n\n// Examples\nexport * as examples from './examples';\n\nexport const destinationPiwikPro: Destination = {\n type: 'piwikpro',\n\n config: {},\n\n init({ config, env }) {\n const { window } = getEnv(env);\n const w = window as Window;\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { appId, url } = settings;\n\n // Required parameters\n if (!appId || !url) return false;\n\n // Set up the Piwik Pro interface _paq\n w._paq = w._paq || [];\n\n const paq = w._paq.push;\n if (loadScript) {\n // Load the JavaScript Tracking Client\n addScript(url, env);\n\n // Register the tracker url only with script loading\n paq(['setTrackerUrl', url + 'ppms.php']);\n\n // Register app id\n paq(['setSiteId', appId]);\n }\n\n // Enable download and outlink tracking if not disabled\n if (settings.linkTracking !== false) paq(['enableLinkTracking']);\n\n return config;\n },\n\n async push(event, { config, mapping = {}, data, env }) {\n const { window } = getEnv(env);\n const paq = (window as Window)._paq!.push;\n\n // Send pageviews if not disabled\n if (event.name === 'page view' && !mapping.settings) {\n paq(['trackPageView', await getMappingValue(event, 'data.title')]);\n return;\n }\n\n const eventMapping: Mapping = mapping.settings || {};\n\n const parameters = isArray(data) ? data : [data];\n\n paq([event.name, ...parameters]);\n\n if (eventMapping.goalId) {\n const goalValue = eventMapping.goalValue\n ? getMappingValue(event, eventMapping.goalValue)\n : undefined;\n\n paq([\n 'trackGoal',\n eventMapping.goalId,\n goalValue,\n // @TODO dimensions\n ]);\n }\n },\n};\n\nfunction addScript(url: string, env?: DestinationWeb.Env) {\n const { document } = getEnv(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.type = 'text/javascript';\n script.src = url + 'ppms.js';\n script.async = true;\n script.defer = true;\n doc.head.appendChild(script);\n}\n\nexport default destinationPiwikPro;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\ndeclare global {\n interface Window {\n _paq?: Array<unknown>;\n }\n}\n\nexport interface Settings {\n appId: string;\n linkTracking?: boolean;\n url: string;\n}\n\nexport interface Mapping {\n goalId?: string;\n goalValue?: string;\n}\n\nexport interface Env extends DestinationWeb.Env {\n window: {\n _paq: Array<unknown>;\n };\n document: {\n createElement: (tagName: string) => {\n type: string;\n src: string;\n async?: boolean;\n defer?: boolean;\n };\n head: {\n appendChild: (node: unknown) => void;\n };\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n\nexport interface Dimensions {\n [i: number]: string;\n}\n","export * as env from './env';\nexport * as events from './events';\nexport * as mapping from './mapping';\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","import type { WalkerOS } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nfunction getProduct(entity: WalkerOS.Entity | WalkerOS.Event) {\n return {\n sku: entity.data.id,\n name: entity.data.name,\n price: entity.data.price,\n quantity: 1,\n variant: entity.data.color,\n customDimensions: {\n 1: entity.data.size,\n },\n };\n}\n\nexport function ecommerceOrder(): unknown[] {\n const event = getEvent('order complete');\n\n return [\n [\n 'ecommerceOrder',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n {\n orderId: event.data.id,\n grandTotal: event.data.total,\n tax: event.data.taxes,\n shipping: event.data.shipping,\n },\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceAddToCart(): unknown[] {\n const event = getEvent('product add');\n\n return [\n ['ecommerceAddToCart', [getProduct(event), ,], { currencyCode: 'EUR' }],\n ];\n}\n\nexport function ecommerceProductDetailView(): unknown[] {\n const event = getEvent('product view');\n\n return [\n [\n 'ecommerceProductDetailView',\n [getProduct(event), ,],\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceCartUpdate(): unknown[] {\n const event = getEvent('cart view');\n\n return [\n [\n 'ecommerceCartUpdate',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n event.data.value,\n { currencyCode: 'EUR' },\n ],\n ];\n}\n","import type { DestinationPiwikPro } from '..';\nimport { isObject } from '@walkeros/core';\n\nconst productMap = {\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\nexport const ecommerceOrder: DestinationPiwikPro.Rule = {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\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\nexport const ecommerceAddToCart: DestinationPiwikPro.Rule = {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceProductDetailView: DestinationPiwikPro.Rule = {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceCartUpdate: DestinationPiwikPro.Rule = {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const config = {\n order: { complete: ecommerceOrder },\n product: { add: ecommerceAddToCart, view: ecommerceProductDetailView },\n cart: { view: ecommerceCartUpdate },\n} satisfies DestinationPiwikPro.Rules;\n"],"mappings":"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","names":["import_core","ecommerceAddToCart","ecommerceCartUpdate","ecommerceOrder","ecommerceProductDetailView","import_core","config"]}
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,a=(a,t)=>{for(var r in t)e(a,r,{get:t[r],enumerable:!0})};import{getMappingValue as t,isArray as r}from"@walkeros/core";import{getEnvironment as o}from"@walkeros/web-core";var c={},n={};a(n,{events:()=>d,mapping:()=>v});var d={};a(d,{ecommerceAddToCart:()=>s,ecommerceCartUpdate:()=>l,ecommerceOrder:()=>p,ecommerceProductDetailView:()=>u});import{getEvent as i}from"@walkeros/core";function m(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function p(){const e=i("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(m),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function s(){return[["ecommerceAddToCart",[m(i("product add")),,],{currencyCode:"EUR"}]]}function u(){return[["ecommerceProductDetailView",[m(i("product view")),,],{currencyCode:"EUR"}]]}function l(){const e=i("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(m),e.data.value,{currencyCode:"EUR"}]]}var v={};a(v,{config:()=>U,ecommerceAddToCart:()=>y,ecommerceCartUpdate:()=>k,ecommerceOrder:()=>w,ecommerceProductDetailView:()=>C});import{isObject as g}from"@walkeros/core";var f={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},w={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>g(e)&&"product"===e.entity,map:f}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},y={name:"ecommerceAddToCart",data:{set:[{set:[{map:f}]},{map:{currencyCode:{value:"EUR"}}}]}},C={name:"ecommerceProductDetailView",data:{set:[{set:[{map:f}]},{map:{currencyCode:{value:"EUR"}}}]}},k={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>g(e)&&"product"===e.entity,map:f}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},U={order:{complete:w},product:{add:y,view:C},cart:{view:k}},h={type:"piwikpro",config:{},init({config:e,env:a}){const{window:t}=o(a),r=t,{settings:c={},loadScript:n}=e,{appId:d,url:i}=c;if(!d||!i)return!1;r._paq=r._paq||[];const m=r._paq.push;return n&&(!function(e,a){const{document:t}=o(a),r=t,c=r.createElement("script");c.type="text/javascript",c.src=e+"ppms.js",c.async=!0,c.defer=!0,r.head.appendChild(c)}(i,a),m(["setTrackerUrl",i+"ppms.php"]),m(["setSiteId",d])),!1!==c.linkTracking&&m(["enableLinkTracking"]),e},async push(e,{config:a,mapping:c={},data:n,env:d}){const{window:i}=o(d),m=i._paq.push;if("page view"===e.name&&!c.settings)return void m(["trackPageView",await t(e,"data.title")]);const p=c.settings||{},s=r(n)?n:[n];if(m([e.name,...s]),p.goalId){const a=p.goalValue?t(e,p.goalValue):void 0;m(["trackGoal",p.goalId,a])}}};var E=h;export{c as DestinationPiwikPro,E as default,h as destinationPiwikPro,n as examples};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,a=(a,t)=>{for(var r in t)e(a,r,{get:t[r],enumerable:!0})};import{getMappingValue as t,isArray as r}from"@walkeros/core";import{getEnv as o}from"@walkeros/web-core";var c={},n={};a(n,{env:()=>d,events:()=>m,mapping:()=>g});var d={};a(d,{init:()=>i,push:()=>p});var i={window:{_paq:void 0},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},p={window:{_paq:[]},document:{createElement:()=>({type:"",src:"",async:!1,defer:!1}),head:{appendChild:()=>{}}}},m={};a(m,{ecommerceAddToCart:()=>v,ecommerceCartUpdate:()=>f,ecommerceOrder:()=>l,ecommerceProductDetailView:()=>w});import{getEvent as s}from"@walkeros/core";function u(e){return{sku:e.data.id,name:e.data.name,price:e.data.price,quantity:1,variant:e.data.color,customDimensions:{1:e.data.size}}}function l(){const e=s("order complete");return[["ecommerceOrder",e.nested.filter(e=>"product"===e.entity).map(u),{orderId:e.data.id,grandTotal:e.data.total,tax:e.data.taxes,shipping:e.data.shipping},{currencyCode:"EUR"}]]}function v(){return[["ecommerceAddToCart",[u(s("product add")),,],{currencyCode:"EUR"}]]}function w(){return[["ecommerceProductDetailView",[u(s("product view")),,],{currencyCode:"EUR"}]]}function f(){const e=s("cart view");return[["ecommerceCartUpdate",e.nested.filter(e=>"product"===e.entity).map(u),e.data.value,{currencyCode:"EUR"}]]}var g={};a(g,{config:()=>T,ecommerceAddToCart:()=>h,ecommerceCartUpdate:()=>E,ecommerceOrder:()=>k,ecommerceProductDetailView:()=>U});import{isObject as y}from"@walkeros/core";var C={sku:"data.id",name:"data.name",price:"data.price",quantity:{value:1},variant:{key:"data.color"},customDimensions:{map:{1:"data.size"}}},k={name:"ecommerceOrder",data:{set:[{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:C}]},{map:{orderId:"data.id",grandTotal:"data.total",tax:"data.taxes",shipping:"data.shipping"}},{map:{currencyCode:{value:"EUR"}}}]}},h={name:"ecommerceAddToCart",data:{set:[{set:[{map:C}]},{map:{currencyCode:{value:"EUR"}}}]}},U={name:"ecommerceProductDetailView",data:{set:[{set:[{map:C}]},{map:{currencyCode:{value:"EUR"}}}]}},E={name:"ecommerceCartUpdate",data:{set:[{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:C}]},"data.value",{map:{currencyCode:{value:"EUR"}}}]}},T={order:{complete:k},product:{add:h,view:U},cart:{view:E}},q={type:"piwikpro",config:{},init({config:e,env:a}){const{window:t}=o(a),r=t,{settings:c={},loadScript:n}=e,{appId:d,url:i}=c;if(!d||!i)return!1;r._paq=r._paq||[];const p=r._paq.push;return n&&(!function(e,a){const{document:t}=o(a),r=t,c=r.createElement("script");c.type="text/javascript",c.src=e+"ppms.js",c.async=!0,c.defer=!0,r.head.appendChild(c)}(i,a),p(["setTrackerUrl",i+"ppms.php"]),p(["setSiteId",d])),!1!==c.linkTracking&&p(["enableLinkTracking"]),e},async push(e,{config:a,mapping:c={},data:n,env:d}){const{window:i}=o(d),p=i._paq.push;if("page view"===e.name&&!c.settings)return void p(["trackPageView",await t(e,"data.title")]);const m=c.settings||{},s=r(n)?n:[n];if(p([e.name,...s]),m.goalId){const a=m.goalValue?t(e,m.goalValue):void 0;p(["trackGoal",m.goalId,a])}}};var P=q;export{c as DestinationPiwikPro,P as default,q as destinationPiwikPro,n as examples};//# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/types/index.ts","../src/examples/index.ts","../src/examples/events.ts","../src/examples/mapping.ts"],"sourcesContent":["import type { Settings, Mapping, Destination } from './types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getMappingValue, isArray } from '@walkeros/core';\nimport { getEnvironment } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationPiwikPro from './types';\n\n// Examples\nexport * as examples from './examples';\n\nexport const destinationPiwikPro: Destination = {\n type: 'piwikpro',\n\n config: {},\n\n init({ config, env }) {\n const { window } = getEnvironment(env);\n const w = window as Window;\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { appId, url } = settings;\n\n // Required parameters\n if (!appId || !url) return false;\n\n // Set up the Piwik Pro interface _paq\n w._paq = w._paq || [];\n\n const paq = w._paq.push;\n if (loadScript) {\n // Load the JavaScript Tracking Client\n addScript(url, env);\n\n // Register the tracker url only with script loading\n paq(['setTrackerUrl', url + 'ppms.php']);\n\n // Register app id\n paq(['setSiteId', appId]);\n }\n\n // Enable download and outlink tracking if not disabled\n if (settings.linkTracking !== false) paq(['enableLinkTracking']);\n\n return config;\n },\n\n async push(event, { config, mapping = {}, data, env }) {\n const { window } = getEnvironment(env);\n const paq = (window as Window)._paq!.push;\n\n // Send pageviews if not disabled\n if (event.name === 'page view' && !mapping.settings) {\n paq(['trackPageView', await getMappingValue(event, 'data.title')]);\n return;\n }\n\n const eventMapping: Mapping = mapping.settings || {};\n\n const parameters = isArray(data) ? data : [data];\n\n paq([event.name, ...parameters]);\n\n if (eventMapping.goalId) {\n const goalValue = eventMapping.goalValue\n ? getMappingValue(event, eventMapping.goalValue)\n : undefined;\n\n paq([\n 'trackGoal',\n eventMapping.goalId,\n goalValue,\n // @TODO dimensions\n ]);\n }\n },\n};\n\nfunction addScript(url: string, env?: DestinationWeb.Environment) {\n const { document } = getEnvironment(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.type = 'text/javascript';\n script.src = url + 'ppms.js';\n script.async = true;\n script.defer = true;\n doc.head.appendChild(script);\n}\n\nexport default destinationPiwikPro;\n","import type { Mapping as WalkerOSMapping } from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\ndeclare global {\n interface Window {\n _paq?: Array<unknown>;\n }\n}\n\nexport type Destination = DestinationWeb.Destination<Settings, Mapping>;\nexport type Config = DestinationWeb.Config<Settings, Mapping>;\n\n// Destination-specific settings (internal usage)\nexport interface Settings {\n appId: string;\n // dimensions?: Dimensions;\n linkTracking?: boolean;\n url: string;\n}\n\n// Single event transformation rule\nexport interface Mapping {\n // dimensions?: Dimensions;\n goalId?: string;\n goalValue?: string;\n}\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n\nexport interface Dimensions {\n [i: number]: string;\n}\n","export * as events from './events';\nexport * as mapping from './mapping';\n","import type { WalkerOS } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nfunction getProduct(entity: WalkerOS.Entity | WalkerOS.Event) {\n return {\n sku: entity.data.id,\n name: entity.data.name,\n price: entity.data.price,\n quantity: 1,\n variant: entity.data.color,\n customDimensions: {\n 1: entity.data.size,\n },\n };\n}\n\nexport function ecommerceOrder(): unknown[] {\n const event = getEvent('order complete');\n\n return [\n [\n 'ecommerceOrder',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n {\n orderId: event.data.id,\n grandTotal: event.data.total,\n tax: event.data.taxes,\n shipping: event.data.shipping,\n },\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceAddToCart(): unknown[] {\n const event = getEvent('product add');\n\n return [\n ['ecommerceAddToCart', [getProduct(event), ,], { currencyCode: 'EUR' }],\n ];\n}\n\nexport function ecommerceProductDetailView(): unknown[] {\n const event = getEvent('product view');\n\n return [\n [\n 'ecommerceProductDetailView',\n [getProduct(event), ,],\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceCartUpdate(): unknown[] {\n const event = getEvent('cart view');\n\n return [\n [\n 'ecommerceCartUpdate',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n event.data.value,\n { currencyCode: 'EUR' },\n ],\n ];\n}\n","import type { DestinationPiwikPro } from '..';\nimport { isObject } from '@walkeros/core';\n\nconst productMap = {\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\nexport const ecommerceOrder: DestinationPiwikPro.Rule = {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\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\nexport const ecommerceAddToCart: DestinationPiwikPro.Rule = {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceProductDetailView: DestinationPiwikPro.Rule = {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceCartUpdate: DestinationPiwikPro.Rule = {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const config = {\n order: { complete: ecommerceOrder },\n product: { add: ecommerceAddToCart, view: ecommerceProductDetailView },\n cart: { view: ecommerceCartUpdate },\n} satisfies DestinationPiwikPro.Rules;\n"],"mappings":"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","names":["ecommerceAddToCart","ecommerceCartUpdate","ecommerceOrder","ecommerceProductDetailView","config"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/types/index.ts","../src/examples/index.ts","../src/examples/env.ts","../src/examples/events.ts","../src/examples/mapping.ts"],"sourcesContent":["import type { Settings, Mapping, Destination } from './types';\nimport type { DestinationWeb } from '@walkeros/web-core';\nimport { getMappingValue, isArray } from '@walkeros/core';\nimport { getEnv } from '@walkeros/web-core';\n\n// Types\nexport * as DestinationPiwikPro from './types';\n\n// Examples\nexport * as examples from './examples';\n\nexport const destinationPiwikPro: Destination = {\n type: 'piwikpro',\n\n config: {},\n\n init({ config, env }) {\n const { window } = getEnv(env);\n const w = window as Window;\n const { settings = {} as Partial<Settings>, loadScript } = config;\n const { appId, url } = settings;\n\n // Required parameters\n if (!appId || !url) return false;\n\n // Set up the Piwik Pro interface _paq\n w._paq = w._paq || [];\n\n const paq = w._paq.push;\n if (loadScript) {\n // Load the JavaScript Tracking Client\n addScript(url, env);\n\n // Register the tracker url only with script loading\n paq(['setTrackerUrl', url + 'ppms.php']);\n\n // Register app id\n paq(['setSiteId', appId]);\n }\n\n // Enable download and outlink tracking if not disabled\n if (settings.linkTracking !== false) paq(['enableLinkTracking']);\n\n return config;\n },\n\n async push(event, { config, mapping = {}, data, env }) {\n const { window } = getEnv(env);\n const paq = (window as Window)._paq!.push;\n\n // Send pageviews if not disabled\n if (event.name === 'page view' && !mapping.settings) {\n paq(['trackPageView', await getMappingValue(event, 'data.title')]);\n return;\n }\n\n const eventMapping: Mapping = mapping.settings || {};\n\n const parameters = isArray(data) ? data : [data];\n\n paq([event.name, ...parameters]);\n\n if (eventMapping.goalId) {\n const goalValue = eventMapping.goalValue\n ? getMappingValue(event, eventMapping.goalValue)\n : undefined;\n\n paq([\n 'trackGoal',\n eventMapping.goalId,\n goalValue,\n // @TODO dimensions\n ]);\n }\n },\n};\n\nfunction addScript(url: string, env?: DestinationWeb.Env) {\n const { document } = getEnv(env);\n const doc = document as Document;\n const script = doc.createElement('script');\n script.type = 'text/javascript';\n script.src = url + 'ppms.js';\n script.async = true;\n script.defer = true;\n doc.head.appendChild(script);\n}\n\nexport default destinationPiwikPro;\n","import type {\n Mapping as WalkerOSMapping,\n Destination as CoreDestination,\n} from '@walkeros/core';\nimport type { DestinationWeb } from '@walkeros/web-core';\n\ndeclare global {\n interface Window {\n _paq?: Array<unknown>;\n }\n}\n\nexport interface Settings {\n appId: string;\n linkTracking?: boolean;\n url: string;\n}\n\nexport interface Mapping {\n goalId?: string;\n goalValue?: string;\n}\n\nexport interface Env extends DestinationWeb.Env {\n window: {\n _paq: Array<unknown>;\n };\n document: {\n createElement: (tagName: string) => {\n type: string;\n src: string;\n async?: boolean;\n defer?: boolean;\n };\n head: {\n appendChild: (node: unknown) => void;\n };\n };\n}\n\nexport type Types = CoreDestination.Types<Settings, Mapping, Env>;\n\nexport type Destination = DestinationWeb.Destination<Types>;\nexport type Config = DestinationWeb.Config<Types>;\n\nexport type Rule = WalkerOSMapping.Rule<Mapping>;\nexport type Rules = WalkerOSMapping.Rules<Rule>;\n\nexport interface Dimensions {\n [i: number]: string;\n}\n","export * as env from './env';\nexport * as events from './events';\nexport * as mapping from './mapping';\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","import type { WalkerOS } from '@walkeros/core';\nimport { getEvent } from '@walkeros/core';\n\nfunction getProduct(entity: WalkerOS.Entity | WalkerOS.Event) {\n return {\n sku: entity.data.id,\n name: entity.data.name,\n price: entity.data.price,\n quantity: 1,\n variant: entity.data.color,\n customDimensions: {\n 1: entity.data.size,\n },\n };\n}\n\nexport function ecommerceOrder(): unknown[] {\n const event = getEvent('order complete');\n\n return [\n [\n 'ecommerceOrder',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n {\n orderId: event.data.id,\n grandTotal: event.data.total,\n tax: event.data.taxes,\n shipping: event.data.shipping,\n },\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceAddToCart(): unknown[] {\n const event = getEvent('product add');\n\n return [\n ['ecommerceAddToCart', [getProduct(event), ,], { currencyCode: 'EUR' }],\n ];\n}\n\nexport function ecommerceProductDetailView(): unknown[] {\n const event = getEvent('product view');\n\n return [\n [\n 'ecommerceProductDetailView',\n [getProduct(event), ,],\n { currencyCode: 'EUR' },\n ],\n ];\n}\n\nexport function ecommerceCartUpdate(): unknown[] {\n const event = getEvent('cart view');\n\n return [\n [\n 'ecommerceCartUpdate',\n event.nested.filter((item) => item.entity === 'product').map(getProduct),\n event.data.value,\n { currencyCode: 'EUR' },\n ],\n ];\n}\n","import type { DestinationPiwikPro } from '..';\nimport { isObject } from '@walkeros/core';\n\nconst productMap = {\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\nexport const ecommerceOrder: DestinationPiwikPro.Rule = {\n name: 'ecommerceOrder',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\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\nexport const ecommerceAddToCart: DestinationPiwikPro.Rule = {\n name: 'ecommerceAddToCart',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceProductDetailView: DestinationPiwikPro.Rule = {\n name: 'ecommerceProductDetailView',\n data: {\n set: [\n {\n set: [\n {\n map: productMap,\n },\n ],\n },\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const ecommerceCartUpdate: DestinationPiwikPro.Rule = {\n name: 'ecommerceCartUpdate',\n data: {\n set: [\n {\n loop: [\n 'nested',\n {\n condition: (entity) =>\n isObject(entity) && entity.entity === 'product',\n map: productMap,\n },\n ],\n },\n 'data.value',\n {\n map: {\n currencyCode: { value: 'EUR' },\n },\n },\n ],\n },\n};\n\nexport const config = {\n order: { complete: ecommerceOrder },\n product: { add: ecommerceAddToCart, view: ecommerceProductDetailView },\n cart: { view: ecommerceCartUpdate },\n} satisfies DestinationPiwikPro.Rules;\n"],"mappings":"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","names":["ecommerceAddToCart","ecommerceCartUpdate","ecommerceOrder","ecommerceProductDetailView","config"]}
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": "0.1.2",
4
+ "version": "0.2.0",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
@@ -30,8 +30,8 @@
30
30
  "update": "npx npm-check-updates -u && npm update"
31
31
  },
32
32
  "dependencies": {
33
- "@walkeros/core": "0.1.2",
34
- "@walkeros/web-core": "0.1.2"
33
+ "@walkeros/core": "0.2.0",
34
+ "@walkeros/web-core": "0.2.0"
35
35
  },
36
36
  "devDependencies": {},
37
37
  "repository": {