@walkeros/core 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +550 -145
- package/dist/index.d.ts +550 -145
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -3
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s=(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[o(e)[0]])((t={exports:{}}).exports,t),t.exports}),a={};((e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})})(a,{Collector:()=>c,Const:()=>k,Data:()=>u,Destination:()=>l,Elb:()=>p,Flow:()=>d,Handler:()=>g,Hooks:()=>m,Mapping:()=>f,On:()=>y,Request:()=>h,Schema:()=>b,Source:()=>w,WalkerOS:()=>v,anonymizeIP:()=>x,assign:()=>j,castToProperty:()=>Q,castValue:()=>L,clone:()=>V,createDestination:()=>R,createEvent:()=>q,debounce:()=>F,filterValues:()=>J,getBrowser:()=>de,getBrowserVersion:()=>ge,getByPath:()=>_,getDeviceType:()=>ye,getEvent:()=>K,getGrantedConsent:()=>B,getHeaders:()=>ae,getId:()=>U,getMappingEvent:()=>ee,getMappingValue:()=>te,getMarketingParameters:()=>W,getOS:()=>me,getOSVersion:()=>fe,isArguments:()=>S,isArray:()=>E,isBoolean:()=>P,isCommand:()=>T,isDefined:()=>A,isElementOrDocument:()=>M,isFunction:()=>D,isNumber:()=>C,isObject:()=>$,isPropertyType:()=>X,isSameType:()=>I,isString:()=>N,onLog:()=>re,parseUserAgent:()=>pe,requestToData:()=>oe,requestToParameter:()=>ie,setByPath:()=>H,throttle:()=>G,throwError:()=>ce,transformData:()=>se,trim:()=>ue,tryCatch:()=>Y,tryCatchAsync:()=>Z,useHooks:()=>le,validateEvent:()=>he,validateProperty:()=>be}),module.exports=(e=>((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))i.call(e,c)||c===s||n(e,c,{get:()=>t[c],enumerable:!(a=r(t,c))||a.enumerable});return e})(n({},"__esModule",{value:!0}),e))(a);var c={},u={},l={},p={},d={},g={},m={},f={},y={},h={},b={},w={},v={},k={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function x(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}var O={merge:!0,shallow:!0,extend:!0};function j(e,t={},n={}){n={...O,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function S(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function E(e){return Array.isArray(e)}function P(e){return"boolean"==typeof e}function T(e){return"walker"===e}function A(e){return void 0!==e}function M(e){return e===document||e instanceof Element}function D(e){return"function"==typeof e}function C(e){return"number"==typeof e&&!Number.isNaN(e)}function $(e){return"object"==typeof e&&null!==e&&!E(e)&&"[object Object]"===Object.prototype.toString.call(e)}function I(e,t){return typeof e==typeof t}function N(e){return"string"==typeof e}function V(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=V(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(V(e,t))}),n}if("[object Date]"===n)return new Date(e.getTime());if("[object RegExp]"===n){const t=e;return new RegExp(t.source,t.flags)}return e}function _(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&E(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=_(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return A(o)?o:n}function H(e,t,n){const r=V(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function L(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function B(e,t={},n={}){const r={...t,...n},o={};let i=void 0===e;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function R(e,t){const n={...e};return n.config=j(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=j(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=j(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}var{version:z}=s();function q(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=j({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:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:z,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function K(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={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 q({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,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",...r,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":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.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 U(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function W(e,t={}){const n="clickId",r={},o={utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term",dclid:n,fbclid:n,gclid:n,msclkid:n,ttclid:n,twclid:n,igshid:n,sclid:n};return Object.entries(j(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function F(e,t=1e3,n=!1){let r,o=null,i=!1;return(...s)=>new Promise(a=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...s),a(r))},t),c&&(i=!0,r=e(...s),a(r))})}function G(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function X(e){return P(e)||N(e)||C(e)||!A(e)||E(e)&&e.every(X)||$(e)&&Object.values(e).every(X)}function J(e){return P(e)||N(e)||C(e)?e:S(e)?J(Array.from(e)):E(e)?e.map(e=>J(e)).filter(e=>void 0!==e):$(e)?Object.entries(e).reduce((e,[t,n])=>{const r=J(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Q(e){return X(e)?e:void 0}function Y(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Z(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function ee(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",s=n,a=r;const c=t=>{if(t)return(t=E(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[s]||(s="*");const u=t[s];return u&&(u[a]||(a="*"),o=c(u[a])),o||(s="*",a="*",o=c(t[s]?.[a])),o&&(i=`${s} ${a}`),{eventMapping:o,mappingKey:i}}async function te(e,t={},n={}){if(!A(e))return;const r=$(e)&&e.consent||n.consent||n.collector?.consent,o=E(t)?t:[t];for(const t of o){const o=await Z(ne)(e,t,{...n,consent:r});if(A(o))return o}}async function ne(e,t,n={}){const{collector:r,consent:o}=n;return(E(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const a=N(i)?{key:i}:i;if(!Object.keys(a).length)return;const{condition:c,consent:u,fn:l,key:p,loop:d,map:g,set:m,validate:f,value:y}=a;if(c&&!await Z(c)(e,i,r))return;if(u&&!B(u,o))return y;let h=A(y)?y:e;if(l&&(h=await Z(l)(e,i,n)),p&&(h=_(e,p,y)),d){const[t,r]=d,o="this"===t?[e]:await te(e,t,n);E(o)&&(h=(await Promise.all(o.map(e=>te(e,r,n)))).filter(A))}else g?h=await Object.entries(g).reduce(async(t,[r,o])=>{const i=await t,s=await te(e,o,n);return A(s)&&(i[r]=s),i},Promise.resolve({})):m&&(h=await Promise.all(m.map(t=>ne(e,t,n))));f&&!await Z(f)(h)&&(h=void 0);const b=Q(h);return A(b)?b:Q(y)},Promise.resolve(void 0))}function re(e,t=!1){t&&console.dir(e,{depth:4})}function oe(e){const t=String(e),n=t.split("?")[1]||t;return Y(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(E(o)){const s=parseInt(t,10);i?o[s]=L(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else $(o)&&(i?o[t]=L(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ie(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(E(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):$(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function se(e){return void 0===e||I(e,"")?e:JSON.stringify(e)}function ae(e={}){return j({"Content-Type":"application/json; charset=utf-8"},e)}function ce(e){throw new Error(String(e))}function ue(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function le(e,t,n){return function(...r){let o;const i="post"+t,s=n["pre"+t],a=n[i];return o=s?s({fn:e},...r):e(...r),a&&(o=a({fn:e,result:o},...r)),o}}function pe(e){return e?{userAgent:e,browser:de(e),browserVersion:ge(e),os:me(e),osVersion:fe(e),deviceType:ye(e)}:{}}function de(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function ge(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function me(e){const t=[{name:"Windows",substr:"Windows NT"},{name:"macOS",substr:"Mac OS X"},{name:"Android",substr:"Android"},{name:"iOS",substr:"iPhone OS"},{name:"Linux",substr:"Linux"}];for(const n of t)if(e.includes(n.substr))return n.name}function fe(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function ye(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function he(e,t=[]){let n,r,o;I(e,{})||ce("Invalid object"),I(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||ce("Invalid event name")):I(e.entity,"")&&I(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):ce("Missing or invalid name, entity, or action");const i={name:n,data:{},context:{},custom:{},globals:{},user:{},nested:[],consent:{},id:"",trigger:"",entity:r,action:o,timestamp:0,timing:0,group:"",count:0,version:{source:"",tagging:0},source:{type:"",id:"",previous_id:""}};return[{"*":{"*":{name:{maxLength:255},user:{allowedKeys:["id","device","session"]},consent:{allowedValues:[!0,!1]},timestamp:{min:0},timing:{min:0},count:{min:0},version:{allowedKeys:["source","tagging"]},source:{allowedKeys:["type","id","previous_id"]}}}}].concat(t).reduce((e,t)=>["*",r].reduce((e,n)=>["*",o].reduce((e,r)=>{const o=t[n]?.[r];return o?e.concat([o]):e},e),e),[]).reduce((t,n)=>{const r=Object.keys(n).filter(e=>{const t=n[e];return!0===t?.required});return[...Object.keys(e),...r].reduce((t,r)=>{const o=n[r];let i=e[r];return o&&(i=Y(be,e=>{ce(String(e))})(t,r,i,o)),I(i,t[r])&&(t[r]=i),t},t)},i)}function be(e,t,n,r){if(r.validate&&(n=Y(r.validate,e=>{ce(String(e))})(n,t,e)),r.required&&void 0===n&&ce("Missing required property"),I(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&ce("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(I(n,1))I(r.min,1)&&n<r.min?(r.strict&&ce("Value below min"),n=r.min):I(r.max,1)&&n>r.max&&(r.strict&&ce("Value exceeds max"),n=r.max);else if(I(n,{})){if(r.schema){const e=r.schema;Object.keys(e).reduce((t,n)=>{const r=e[n];let o=t[n];return r&&(r.type&&typeof o!==r.type&&ce(`Type doesn't match (${n})`),o=Y(be,e=>{ce(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&ce("Key not allowed"),delete n[e])}return n}//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={};((e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})})(i,{Collector:()=>a,ConsentSchema:()=>x,Const:()=>v,Data:()=>s,Destination:()=>c,Elb:()=>u,Flow:()=>l,Handler:()=>p,Hooks:()=>m,LoopSchema:()=>A,MapSchema:()=>L,Mapping:()=>d,On:()=>g,Request:()=>f,Schema:()=>y,SetSchema:()=>T,Source:()=>h,ValueConfigSchema:()=>M,ValueSchema:()=>P,WalkerOS:()=>b,anonymizeIP:()=>R,assign:()=>H,castToProperty:()=>ye,castValue:()=>ie,clone:()=>ne,createArraySchema:()=>q,createDestination:()=>se,createEnumSchema:()=>_,createEvent:()=>ce,createObjectSchema:()=>D,createTupleSchema:()=>K,debounce:()=>me,filterValues:()=>fe,getBrowser:()=>Ie,getBrowserVersion:()=>$e,getByPath:()=>re,getDeviceType:()=>Ne,getEvent:()=>ue,getGrantedConsent:()=>ae,getHeaders:()=>Ae,getId:()=>le,getMappingEvent:()=>ve,getMappingValue:()=>we,getMarketingParameters:()=>pe,getOS:()=>Ve,getOSVersion:()=>De,isArguments:()=>J,isArray:()=>U,isBoolean:()=>F,isCommand:()=>W,isDefined:()=>X,isElementOrDocument:()=>G,isFunction:()=>Q,isNumber:()=>Y,isObject:()=>Z,isPropertyType:()=>ge,isSameType:()=>ee,isString:()=>te,loopJsonSchema:()=>I,mapJsonSchema:()=>V,mockEnv:()=>je,onLog:()=>ke,parseUserAgent:()=>Ce,processEventMapping:()=>xe,requestToData:()=>ze,requestToParameter:()=>Ee,setByPath:()=>oe,setJsonSchema:()=>$,throttle:()=>de,throwError:()=>Te,transformData:()=>Pe,traverseEnv:()=>Oe,trim:()=>Le,tryCatch:()=>he,tryCatchAsync:()=>be,useHooks:()=>Me,validateEvent:()=>qe,validateProperty:()=>_e,valueConfigJsonSchema:()=>C}),module.exports=(e=i,((e,i,a,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===a||t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var a={},s={},c={},u={},l={},p={},m={},d={},g={},f={},y={},h={},b={},v={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}},w=require("zod"),S=require("zod-to-json-schema"),x=w.z.record(w.z.string(),w.z.boolean()).describe("Consent requirement mapping"),j=w.z.lazy(()=>w.z.union([w.z.string(),w.z.number(),w.z.boolean(),E,w.z.array(j)])),O=w.z.tuple([j,j]).describe("Loop: [source, transform] tuple for array transformations"),k=w.z.array(j).describe("Set: Array of values"),z=w.z.record(w.z.string(),j).describe("Map: Object mapping keys to values"),E=w.z.object({key:w.z.string().optional().describe('Property path (e.g., "data.id")'),value:w.z.union([w.z.string(),w.z.number(),w.z.boolean()]).optional().describe("Static primitive value"),fn:w.z.string().optional().describe("Function string for custom transformation"),map:z.optional().describe("Object with key-value mappings"),loop:O.optional().describe("Tuple [source, transform]"),set:k.optional().describe("Array of values"),consent:x.optional().describe("Required consent states"),condition:w.z.string().optional().describe("Condition function string"),validate:w.z.string().optional().describe("Validation function string")}).refine(e=>Object.keys(e).length>0,{message:"ValueConfig must have at least one property"}).describe("Value configuration for transformations"),P=j,A=O,T=k,L=z,M=E,C=(0,S.zodToJsonSchema)(M,{target:"jsonSchema7",$refStrategy:"relative",name:"ValueConfig"}),I=(0,S.zodToJsonSchema)(A,{target:"jsonSchema7",$refStrategy:"relative",name:"Loop"}),$=(0,S.zodToJsonSchema)(T,{target:"jsonSchema7",$refStrategy:"relative",name:"Set"}),V=(0,S.zodToJsonSchema)(L,{target:"jsonSchema7",$refStrategy:"relative",name:"Map"});function D(e,t){const n=[],r={};for(const[t,o]of Object.entries(e)){o.required&&n.push(t);const e={type:o.type};if(o.description&&(e.description=o.description),o.pattern&&(e.pattern=o.pattern),void 0!==o.minLength&&(e.minLength=o.minLength),void 0!==o.maxLength&&(e.maxLength=o.maxLength),void 0!==o.minimum&&(e.minimum=o.minimum),void 0!==o.maximum&&(e.maximum=o.maximum),o.enum&&(e.enum=[...o.enum]),void 0!==o.default&&(e.default=o.default),"object"===o.type&&o.properties){const t={};for(const[e,n]of Object.entries(o.properties))t[e]=N(n);e.properties=t}"array"===o.type&&o.items&&(e.items=N(o.items)),r[t]=e}const o={type:"object",properties:r};return t&&(o.title=t),n.length>0&&(o.required=n),o}function N(e){const t={type:e.type};if(e.description&&(t.description=e.description),e.pattern&&(t.pattern=e.pattern),void 0!==e.minLength&&(t.minLength=e.minLength),void 0!==e.maxLength&&(t.maxLength=e.maxLength),void 0!==e.minimum&&(t.minimum=e.minimum),void 0!==e.maximum&&(t.maximum=e.maximum),e.enum&&(t.enum=[...e.enum]),void 0!==e.default&&(t.default=e.default),"object"===e.type&&e.properties){const n={};for(const[t,r]of Object.entries(e.properties))n[t]=N(r);t.properties=n}return"array"===e.type&&e.items&&(t.items=N(e.items)),t}function q(e,t){const n={type:"array",items:N(e)};return void 0!==t?.minItems&&(n.minItems=t.minItems),void 0!==t?.maxItems&&(n.maxItems=t.maxItems),t?.description&&(n.description=t.description),t?.title&&(n.title=t.title),n}function _(e,t="string",n){const r={type:t,enum:[...e]};return n?.description&&(r.description=n.description),n?.title&&(r.title=n.title),r}function K(e,t,n){return q({type:"object"},{minItems:2,maxItems:2,description:n||"Tuple with exactly 2 elements [source, transform]"})}function R(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}var B={merge:!0,shallow:!0,extend:!0};function H(e,t={},n={}){n={...B,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function J(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function U(e){return Array.isArray(e)}function F(e){return"boolean"==typeof e}function W(e){return"walker"===e}function X(e){return void 0!==e}function G(e){return e===document||e instanceof Element}function Q(e){return"function"==typeof e}function Y(e){return"number"==typeof e&&!Number.isNaN(e)}function Z(e){return"object"==typeof e&&null!==e&&!U(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ee(e,t){return typeof e==typeof t}function te(e){return"string"==typeof e}function ne(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=ne(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ne(e,t))}),n}if("[object Date]"===n)return new Date(e.getTime());if("[object RegExp]"===n){const t=e;return new RegExp(t.source,t.flags)}return e}function re(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&U(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=re(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return X(o)?o:n}function oe(e,t,n){if(!Z(e))return e;const r=ne(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function ie(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ae(e,t={},n={}){const r={...t,...n},o={};let i=void 0===e;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function se(e,t){const n={...e};return n.config=H(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=H(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=H(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ce(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=H({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:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"0.2.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function ue(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={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 ce({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,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",...r,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":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.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 le(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function pe(e,t={}){const n="clickId",r={},o={utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term",dclid:n,fbclid:n,gclid:n,msclkid:n,ttclid:n,twclid:n,igshid:n,sclid:n};return Object.entries(H(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function me(e,t=1e3,n=!1){let r,o=null,i=!1;return(...a)=>new Promise(s=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...a),s(r))},t),c&&(i=!0,r=e(...a),s(r))})}function de(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function ge(e){return F(e)||te(e)||Y(e)||!X(e)||U(e)&&e.every(ge)||Z(e)&&Object.values(e).every(ge)}function fe(e){return F(e)||te(e)||Y(e)?e:J(e)?fe(Array.from(e)):U(e)?e.map(e=>fe(e)).filter(e=>void 0!==e):Z(e)?Object.entries(e).reduce((e,[t,n])=>{const r=fe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function ye(e){return ge(e)?e:void 0}function he(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function be(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function ve(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",a=n,s=r;const c=t=>{if(t)return(t=U(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const u=t[a];return u&&(u[s]||(s="*"),o=c(u[s])),o||(a="*",s="*",o=c(t[a]?.[s])),o&&(i=`${a} ${s}`),{eventMapping:o,mappingKey:i}}async function we(e,t={},n={}){if(!X(e))return;const r=Z(e)&&e.consent||n.consent||n.collector?.consent,o=U(t)?t:[t];for(const t of o){const o=await be(Se)(e,t,{...n,consent:r});if(X(o))return o}}async function Se(e,t,n={}){const{collector:r,consent:o}=n;return(U(t)?t:[t]).reduce(async(t,i)=>{const a=await t;if(a)return a;const s=te(i)?{key:i}:i;if(!Object.keys(s).length)return;const{condition:c,consent:u,fn:l,key:p,loop:m,map:d,set:g,validate:f,value:y}=s;if(c&&!await be(c)(e,i,r))return;if(u&&!ae(u,o))return y;let h=X(y)?y:e;if(l&&(h=await be(l)(e,i,n)),p&&(h=re(e,p,y)),m){const[t,r]=m,o="this"===t?[e]:await we(e,t,n);U(o)&&(h=(await Promise.all(o.map(e=>we(e,r,n)))).filter(X))}else d?h=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,a=await we(e,o,n);return X(a)&&(i[r]=a),i},Promise.resolve({})):g&&(h=await Promise.all(g.map(t=>Se(e,t,n))));f&&!await be(f)(h)&&(h=void 0);const b=ye(h);return X(b)?b:ye(y)},Promise.resolve(void 0))}async function xe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await we(e,r,{collector:n});e=oe(e,t,o)}));const{eventMapping:r,mappingKey:o}=await ve(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await we(e,r,{collector:n});e=oe(e,t,o)}));let i=t.data&&await we(e,t.data,{collector:n});if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await we(e,r.data,{collector:n});i=Z(i)&&Z(t)?H(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function je(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],a=[...r,o];return"function"==typeof i?(...e)=>t(a,e,i):i&&"object"==typeof i?n(i,a):i}});return n(e)}function Oe(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,a]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(a,e):o[i]=t(a,e),a&&"object"==typeof a&&"function"!=typeof a&&(Array.isArray(o)?o[Number(i)]=n(a,e):o[i]=n(a,e))}return o};return n(e)}function ke(e,t=!1){t&&console.dir(e,{depth:4})}function ze(e){const t=String(e),n=t.split("?")[1]||t;return he(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(U(o)){const a=parseInt(t,10);i?o[a]=ie(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else Z(o)&&(i?o[t]=ie(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Ee(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(U(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):Z(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function Pe(e){return void 0===e||ee(e,"")?e:JSON.stringify(e)}function Ae(e={}){return H({"Content-Type":"application/json; charset=utf-8"},e)}function Te(e){throw new Error(String(e))}function Le(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function Me(e,t,n){return function(...r){let o;const i="post"+t,a=n["pre"+t],s=n[i];return o=a?a({fn:e},...r):e(...r),s&&(o=s({fn:e,result:o},...r)),o}}function Ce(e){return e?{userAgent:e,browser:Ie(e),browserVersion:$e(e),os:Ve(e),osVersion:De(e),deviceType:Ne(e)}:{}}function Ie(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function $e(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function Ve(e){const t=[{name:"Windows",substr:"Windows NT"},{name:"macOS",substr:"Mac OS X"},{name:"Android",substr:"Android"},{name:"iOS",substr:"iPhone OS"},{name:"Linux",substr:"Linux"}];for(const n of t)if(e.includes(n.substr))return n.name}function De(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Ne(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function qe(e,t=[]){let n,r,o;ee(e,{})||Te("Invalid object"),ee(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||Te("Invalid event name")):ee(e.entity,"")&&ee(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):Te("Missing or invalid name, entity, or action");const i={name:n,data:{},context:{},custom:{},globals:{},user:{},nested:[],consent:{},id:"",trigger:"",entity:r,action:o,timestamp:0,timing:0,group:"",count:0,version:{source:"",tagging:0},source:{type:"",id:"",previous_id:""}};return[{"*":{"*":{name:{maxLength:255},user:{allowedKeys:["id","device","session"]},consent:{allowedValues:[!0,!1]},timestamp:{min:0},timing:{min:0},count:{min:0},version:{allowedKeys:["source","tagging"]},source:{allowedKeys:["type","id","previous_id"]}}}}].concat(t).reduce((e,t)=>["*",r].reduce((e,n)=>["*",o].reduce((e,r)=>{const o=t[n]?.[r];return o?e.concat([o]):e},e),e),[]).reduce((t,n)=>{const r=Object.keys(n).filter(e=>{const t=n[e];return!0===t?.required});return[...Object.keys(e),...r].reduce((t,r)=>{const o=n[r];let i=e[r];return o&&(i=he(_e,e=>{Te(String(e))})(t,r,i,o)),ee(i,t[r])&&(t[r]=i),t},t)},i)}function _e(e,t,n,r){if(r.validate&&(n=he(r.validate,e=>{Te(String(e))})(n,t,e)),r.required&&void 0===n&&Te("Missing required property"),ee(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&Te("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(ee(n,1))ee(r.min,1)&&n<r.min?(r.strict&&Te("Value below min"),n=r.min):ee(r.max,1)&&n>r.max&&(r.strict&&Te("Value exceeds max"),n=r.max);else if(ee(n,{})){if(r.schema){const e=r.schema;Object.keys(e).reduce((t,n)=>{const r=e[n];let o=t[n];return r&&(r.type&&typeof o!==r.type&&Te(`Type doesn't match (${n})`),o=he(_e,e=>{Te(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&Te("Key not allowed"),delete n[e])}return n}//# sourceMappingURL=index.js.map
|