@walkeros/core 2.1.0 → 2.1.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 +17 -19
- package/dist/index.d.ts +17 -19
- 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 +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var t=Object.defineProperty,e={},n={},o={},r={},i={},s={},c={},a={};((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(a,{Level:()=>u});var u=(t=>(t[t.ERROR=0]="ERROR",t[t.WARN=1]="WARN",t[t.INFO=2]="INFO",t[t.DEBUG=3]="DEBUG",t))(u||{}),f={},l={},p={},d={},g={},m={},y={},b={},h={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function v(t,e){return{__branch:!0,event:t,next:e}}function w(t){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(t)?t.replace(/\.\d+$/,".0"):""}function j(t,e){const n={...t};for(const o of Object.keys(e)){const r=t[o],i=e[o];"required"===o&&Array.isArray(r)&&Array.isArray(i)?n[o]=[...new Set([...r,...i])]:$(r)&&$(i)?n[o]=j(r,i):n[o]=i}return n}function k(t,e,n,o){let r={};for(const i of[t,o]){if(!i)continue;const t=[O(i,"*","*"),O(i,"*",n),O(i,e,"*"),O(i,e,n)];for(const e of t)e&&(r=j(r,e))}return r}function O(t,e,n){const o=t[e];if(!o||"object"!=typeof o)return;const r=o[n];return r&&"object"==typeof r?r:void 0}function $(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function x(t){throw new Error(String(t))}function S(...t){const e={};for(const n of t)n&&Object.assign(e,n);return e}function E(...t){const e={};for(const n of t)n&&Object.assign(e,n);return e}var A="__WALKEROS_ENV:";function N(t,e,n,o){if("string"==typeof t){const r=t.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)$/);if(r){const t=r[1];return void 0===n[t]&&x(`Definition "${t}" not found`),N(n[t],e,n,o)}let i=t.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(t,n)=>{if(void 0!==e[n])return String(e[n]);x(`Variable "${n}" not found`)});return i=i.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(t,e,n)=>o?.deferred?void 0!==n?`${A}${e}:${n}`:`${A}${e}`:"undefined"!=typeof process&&void 0!==process.env?.[e]?process.env[e]:void 0!==n?n:void x(`Environment variable "${e}" not found and no default provided`)),i}if(Array.isArray(t))return t.map(t=>N(t,e,n,o));if(null!==t&&"object"==typeof t){const r={};for(const[i,s]of Object.entries(t))r[i]=N(s,e,n,o);return r}return t}function T(t){const e=t.startsWith("@"),n=t.replace("@","").replace(/[/-]/g,"_").split("_").filter(t=>t.length>0).map((t,e)=>0===e?t:t.charAt(0).toUpperCase()+t.slice(1)).join("");return e?"_"+n:n}function P(t,e,n){if(e)return e;if(!t||!n)return;return n[t]?T(t):void 0}function _(t,e,n){const o=Object.keys(t.flows);e||(1===o.length?e=o[0]:x(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=t.flows[e];r||x(`Flow "${e}" not found. Available: ${o.join(", ")}`);const i=JSON.parse(JSON.stringify(r));if(i.sources)for(const[e,o]of Object.entries(i.sources)){const s=S(t.variables,r.variables,o.variables),c=E(t.definitions,r.definitions,o.definitions),a=N(o.config,s,c,n),u=P(o.package,o.code,i.packages),f="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,l=u||f;i.sources[e]={package:o.package,config:a,env:o.env,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:l}}if(i.destinations)for(const[e,o]of Object.entries(i.destinations)){const s=S(t.variables,r.variables,o.variables),c=E(t.definitions,r.definitions,o.definitions),a=N(o.config,s,c,n),u=P(o.package,o.code,i.packages),f="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,l=u||f;i.destinations[e]={package:o.package,config:a,env:o.env,variables:o.variables,definitions:o.definitions,before:o.before,code:l}}if(i.collector){const e=S(t.variables,r.variables),o=E(t.definitions,r.definitions),s=N(i.collector,e,o,n);i.collector=s}const s=t.contract,c=r.contract;if(s||c){const t=function(...t){const e=new Set;for(const n of t)if(n)for(const t of Object.keys(n)){if(t.startsWith("$"))continue;const o=n[t];if(o&&"object"==typeof o)for(const n of Object.keys(o))"*"!==n&&e.add(`${t}\0${n}`)}const n=new Set,o=new Set;for(const e of t)if(e)for(const t of Object.keys(e)){if(t.startsWith("$")||"*"===t)continue;n.add(t);const r=e[t];if(r&&"object"==typeof r)for(const t of Object.keys(r))"*"!==t&&o.add(t)}for(const t of n)for(const n of o)e.add(`${t}\0${n}`);return[...e].map(t=>t.split("\0"))}(s,c),e={};for(const[n,o]of t){const t=k(s||{},n,o,c);Object.keys(t).length>0&&(e[n]||(e[n]={}),e[n][o]={schema:C(t)})}if(i.transformers)for(const[,t]of Object.entries(i.transformers))M(t.config,e);const n=s?.$tagging??c?.$tagging;if("number"==typeof n){const t=i.collector||{};void 0===t.tagging&&(t.tagging=n),i.collector=t}}return i}var R=new Set(["description","examples","title","$comment"]);function C(t){const e={};for(const[n,o]of Object.entries(t))R.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?e[n]=o:e[n]=C(o));return e}function M(t,e){if(!t||"object"!=typeof t)return;const n=t;for(const t of Object.keys(n))"$contract"===n[t]?n[t]=e:"object"==typeof n[t]&&null!==n[t]&&M(n[t],e)}function z(t){return void 0!==t.web?"web":void 0!==t.server?"server":void x("Config must have web or server key")}var D={merge:!0,shallow:!0,extend:!0};function H(t,e={},n={}){n={...D,...n};const o=Object.entries(e).reduce((e,[o,r])=>{const i=t[o];return n.merge&&Array.isArray(i)&&Array.isArray(r)?e[o]=r.reduce((t,e)=>t.includes(e)?t:[...t,e],[...i]):(n.extend||o in t)&&(e[o]=r),e},{});return n.shallow?{...t,...o}:(Object.assign(t,o),t)}function I(t){return"[object Arguments]"===Object.prototype.toString.call(t)}function W(t){return Array.isArray(t)}function F(t){return"boolean"==typeof t}function U(t){return"walker"===t}function L(t){return void 0!==t}function V(t){return t===document||t instanceof Element}function B(t){return"function"==typeof t}function J(t){return"number"==typeof t&&!Number.isNaN(t)}function Z(t){return"object"==typeof t&&null!==t&&!W(t)&&"[object Object]"===Object.prototype.toString.call(t)}function K(t,e){return typeof t==typeof e}function q(t){return"string"==typeof t}function G(t,e=new WeakMap){if("object"!=typeof t||null===t)return t;if(e.has(t))return e.get(t);const n=Object.prototype.toString.call(t);if("[object Object]"===n){const n={};e.set(t,n);for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=G(t[o],e));return n}if("[object Array]"===n){const n=[];return e.set(t,n),t.forEach(t=>{n.push(G(t,e))}),n}if("[object Date]"===n)return new Date(t.getTime());if("[object RegExp]"===n){const e=t;return new RegExp(e.source,e.flags)}return t}function X(t,e="",n){const o=e.split(".");let r=t;for(let t=0;t<o.length;t++){const e=o[t];if("*"===e&&W(r)){const e=o.slice(t+1).join("."),i=[];for(const t of r){const o=X(t,e,n);i.push(o)}return i}if(r=r instanceof Object?r[e]:void 0,!r)break}return L(r)?r:n}function Q(t,e,n){if(!Z(t))return t;const o=G(t),r=e.split(".");let i=o;for(let t=0;t<r.length;t++){const e=r[t];t===r.length-1?i[e]=n:(e in i&&"object"==typeof i[e]&&null!==i[e]||(i[e]={}),i=i[e])}return o}function Y(t){if("true"===t)return!0;if("false"===t)return!1;const e=Number(t);return t==e&&""!==t?e:String(t)}function tt(t,e={},n={}){const o={...e,...n},r={};let i=void 0===t;return Object.keys(o).forEach(e=>{o[e]&&(r[e]=!0,t&&t[e]&&(i=!0))}),!!i&&r}function et(t,e){const n={...t};return n.config=H(t.config,e,{shallow:!0,merge:!0,extend:!0}),t.config.settings&&e.settings&&(n.config.settings=H(t.config.settings,e.settings,{shallow:!0,merge:!0,extend:!0})),t.config.mapping&&e.mapping&&(n.config.mapping=H(t.config.mapping,e.mapping,{shallow:!0,merge:!0,extend:!0})),n}function nt(t={}){const e=t.timestamp||(new Date).setHours(0,13,37,0),n=t.group||"gr0up",o=t.count||1,r=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:`${e}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:e,timing:3.14,group:n,count:o,version:{source:"2.0.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},t,{merge:!1});if(t.name){const[e,n]=t.name.split(" ")??[];e&&n&&(r.entity=e,r.action=n)}return r}function ot(t="entity action",e={}){const n=e.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return nt({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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"}}}[t],...e,name:t})}function rt(t=6){let e="";for(let n=36;e.length<t;)e+=(Math.random()*n|0).toString(n);return e}function it(t,e={}){const n="clickId",o={},r={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(r,e)).forEach(([e,r])=>{const i=t.searchParams.get(e);i&&(r===n&&(r=e,o[n]=e),o[r]=i)}),o}function st(t,e=1e3,n=!1){let o,r=null,i=!1;return(...s)=>new Promise(c=>{const a=n&&!i;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!i||(o=t(...s),c(o))},e),a&&(i=!0,o=t(...s),c(o))})}function ct(t,e=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},e),t(...o)}}function at(t){return{message:t.message,name:t.name,stack:t.stack,cause:t.cause}}function ut(t,e){let n,o={};return t instanceof Error?(n=t.message,o.error=at(t)):n=t,void 0!==e&&(e instanceof Error?o.error=at(e):"object"==typeof e&&null!==e?(o={...o,...e},"error"in o&&o.error instanceof Error&&(o.error=at(o.error))):o.value=e),{message:n,context:o}}var ft=(t,e,n,o)=>{const r=`${u[t]}${o.length>0?` [${o.join(":")}]`:""}`,i=Object.keys(n).length>0,s=0===t?console.error:1===t?console.warn:console.log;i?s(r,e,n):s(r,e)};function lt(t={}){return pt({level:void 0!==t.level?function(t){return"string"==typeof t?u[t]:t}(t.level):0,handler:t.handler,jsonHandler:t.jsonHandler,scope:[]})}function pt(t){const{level:e,handler:n,jsonHandler:o,scope:r}=t,i=(t,o,i)=>{if(t<=e){const e=ut(o,i);n?n(t,e.message,e.context,r,ft):ft(t,e.message,e.context,r)}};return{error:(t,e)=>i(0,t,e),warn:(t,e)=>i(1,t,e),info:(t,e)=>i(2,t,e),debug:(t,e)=>i(3,t,e),throw:(t,e)=>{const o=ut(t,e);throw n?n(0,o.message,o.context,r,ft):ft(0,o.message,o.context,r),new Error(o.message)},json:t=>{o?o(t):console.log(JSON.stringify(t,null,2))},scope:t=>pt({level:e,handler:n,jsonHandler:o,scope:[...r,t]})}}function dt(t){return F(t)||q(t)||J(t)||!L(t)||W(t)&&t.every(dt)||Z(t)&&Object.values(t).every(dt)}function gt(t){return F(t)||q(t)||J(t)?t:I(t)?gt(Array.from(t)):W(t)?t.map(t=>gt(t)).filter(t=>void 0!==t):Z(t)?Object.entries(t).reduce((t,[e,n])=>{const o=gt(n);return void 0!==o&&(t[e]=o),t},{}):void 0}function mt(t){return dt(t)?t:void 0}function yt(t,e,n){return function(...o){try{return t(...o)}catch(t){if(!e)return;return e(t)}finally{n?.()}}}function bt(t,e,n){return async function(...o){try{return await t(...o)}catch(t){if(!e)return;return await e(t)}finally{await(n?.())}}}async function ht(t,e){const[n,o]=(t.name||"").split(" ");if(!e||!n||!o)return{};let r,i="",s=n,c=o;const a=e=>{if(e)return(e=W(e)?e:[e]).find(e=>!e.condition||e.condition(t))};e[s]||(s="*");const u=e[s];return u&&(u[c]||(c="*"),r=a(u[c])),r||(s="*",c="*",r=a(e[s]?.[c])),r&&(i=`${s} ${c}`),{eventMapping:r,mappingKey:i}}async function vt(t,e={},n={}){if(!L(t))return;const o=Z(t)&&t.consent||n.consent||n.collector?.consent,r=W(e)?e:[e];for(const e of r){const r=await bt(wt)(t,e,{...n,consent:o});if(L(r))return r}}async function wt(t,e,n={}){const{collector:o,consent:r}=n;return(W(e)?e:[e]).reduce(async(e,i)=>{const s=await e;if(s)return s;const c=q(i)?{key:i}:i;if(!Object.keys(c).length)return;const{condition:a,consent:u,fn:f,key:l,loop:p,map:d,set:g,validate:m,value:y}=c;if(a&&!await bt(a)(t,i,o))return;if(u&&!tt(u,r))return y;let b=L(y)?y:t;if(f&&(b=await bt(f)(t,i,n)),l&&(b=X(t,l,y)),p){const[e,o]=p,r="this"===e?[t]:await vt(t,e,n);W(r)&&(b=(await Promise.all(r.map(t=>vt(t,o,n)))).filter(L))}else d?b=await Object.entries(d).reduce(async(e,[o,r])=>{const i=await e,s=await vt(t,r,n);return L(s)&&(i[o]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(e=>wt(t,e,n))));m&&!await bt(m)(b)&&(b=void 0);const h=mt(b);return L(h)?h:mt(y)},Promise.resolve(void 0))}async function jt(t,e,n){e.policy&&await Promise.all(Object.entries(e.policy).map(async([e,o])=>{const r=await vt(t,o,{collector:n});t=Q(t,e,r)}));const{eventMapping:o,mappingKey:r}=await ht(t,e.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([e,o])=>{const r=await vt(t,o,{collector:n});t=Q(t,e,r)}));let i=e.data&&await vt(t,e.data,{collector:n});if(o){if(o.ignore)return{event:t,data:i,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(t.name=o.name),o.data){const e=o.data&&await vt(t,o.data,{collector:n});i=Z(i)&&Z(e)?H(i,e):e}}return{event:t,data:i,mapping:o,mappingKey:r,ignore:!1}}function kt(t,e){const n=(t,o=[])=>new Proxy(t,{get(t,r){const i=t[r],s=[...o,r];return"function"==typeof i?(...t)=>e(s,t,i):i&&"object"==typeof i?n(i,s):i}});return n(t)}function Ot(t,e){const n=(t,o=[])=>{if(!t||"object"!=typeof t)return t;const r=Array.isArray(t)?[]:{};for(const[i,s]of Object.entries(t)){const t=[...o,i];Array.isArray(r)?r[Number(i)]=e(s,t):r[i]=e(s,t),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(r)?r[Number(i)]=n(s,t):r[i]=n(s,t))}return r};return n(t)}function $t(){const t=[],e=jest.fn(t=>{const e=t instanceof Error?t.message:t;throw new Error(e)}),n=jest.fn(e=>{const n=$t();return t.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:e,json:jest.fn(),scope:n,scopedLoggers:t}}function xt(t){const e=String(t),n=e.split("?")[1]||e;return yt(()=>{const t=new URLSearchParams(n),e={};return t.forEach((t,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=e;o.forEach((e,n)=>{const i=n===o.length-1;if(W(r)){const s=parseInt(e,10);i?r[s]=Y(t):(r[s]=r[s]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[s])}else Z(r)&&(i?r[e]=Y(t):(r[e]=r[e]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[e]))})}),e})()}function St(t){if(!t)return"";const e=[],n=encodeURIComponent;function o(t,r){null!=r&&(W(r)?r.forEach((e,n)=>o(`${t}[${n}]`,e)):Z(r)?Object.entries(r).forEach(([e,n])=>o(`${t}[${e}]`,n)):e.push(`${n(t)}=${n(String(r))}`))}return"object"!=typeof t?n(t):(Object.entries(t).forEach(([t,e])=>o(t,e)),e.join("&"))}function Et(t){return void 0===t||K(t,"")?t:JSON.stringify(t)}function At(t={}){return H({"Content-Type":"application/json; charset=utf-8"},t)}function Nt(t){return t?t.trim().replace(/^'|'$/g,"").trim():""}function Tt(t,e,n){return function(...o){let r;const i="post"+e,s=n["pre"+e],c=n[i];return r=s?s({fn:t},...o):t(...o),c&&(r=c({fn:t,result:r},...o)),r}}function Pt(t){return t?{userAgent:t,browser:_t(t),browserVersion:Rt(t),os:Ct(t),osVersion:Mt(t),deviceType:zt(t)}:{}}function _t(t){const e=[{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 e)if(t.includes(n.substr)&&(!n.exclude||!t.includes(n.exclude)))return n.name}function Rt(t){const e=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of e){const e=t.match(n);if(e)return e[1]}}function Ct(t){const e=[{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 e)if(t.includes(n.substr))return n.name}function Mt(t){const e=t.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return e?e[1].replace(/_/g,"."):void 0}function zt(t){let e="Desktop";return/Tablet|iPad/i.test(t)?e="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(t)&&(e="Mobile"),e}function Dt(t){return function(t){return/\breturn\b/.test(t)}(t)?t:`return ${t}`}function Ht(t){const e=Dt(t);return new Function("value","mapping","collector",e)}function It(t){const e=Dt(t);return new Function("value","mapping","options",e)}function Wt(t){const e=Dt(t);return new Function("value",e)}var Ft="https://cdn.jsdelivr.net/npm",Ut="dist/walkerOS.json";async function Lt(t,e){const n=e?.version||"latest",o=`${Ft}/${t}@${n}`,r=new AbortController,i=setTimeout(()=>r.abort(),e?.timeout||1e4);try{const e=await fetch(`${o}/package.json`,{signal:r.signal});if(!e.ok)throw new Error(`Package "${t}" not found on npm (HTTP ${e.status})`);const i=await e.json(),s=await fetch(`${o}/${Ut}`,{signal:r.signal});if(!s.ok)throw new Error(`walkerOS.json not found at ${Ut} (HTTP ${s.status}). This package may not support the walkerOS.json convention yet.`);const c=await s.json(),a=c.$meta||{};return{packageName:t,version:i.version||n,type:a.type,platform:a.platform,schemas:c.schemas||{},examples:c.examples||{}}}finally{clearTimeout(i)}}async function Vt(t,e){const n=e?.version||"latest",o=`${Ft}/${t}@${n}`,r=new AbortController,i=setTimeout(()=>r.abort(),e?.timeout||1e4);try{const e=await fetch(`${o}/package.json`,{signal:r.signal});if(!e.ok)throw new Error(`Package "${t}" not found on npm (HTTP ${e.status})`);const i=await e.json();let s,c;try{const t=await fetch(`${o}/${Ut}`,{signal:r.signal});if(t.ok){const e=(await t.json()).$meta||{};s=e.type,c=e.platform}}catch{}return{packageName:t,version:i.version||n,description:i.description,type:s,platform:c}}finally{clearTimeout(i)}}function Bt(t){return{content:[{type:"text",text:JSON.stringify(t,null,2)}],structuredContent:t}}function Jt(t){return{content:[{type:"text",text:JSON.stringify({error:t instanceof Error?t.message:"Unknown error"})}],isError:!0}}function Zt(t){let e=!1;return(n={})=>{e||(e=!0,t(n))}}export{e as Collector,h as Const,n as Context,o as Data,r as Destination,A as ENV_MARKER_PREFIX,i as Elb,s as Flow,c as Hooks,u as Level,m as Lifecycle,a as Logger,f as Mapping,l as On,d as Request,b as Simulation,g as Source,p as Transformer,y as WalkerOS,w as anonymizeIP,H as assign,v as branch,mt as castToProperty,Y as castValue,G as clone,et as createDestination,nt as createEvent,lt as createLogger,$t as createMockLogger,Zt as createRespond,st as debounce,Vt as fetchPackageMeta,Lt as fetchPackageSchema,gt as filterValues,_t as getBrowser,Rt as getBrowserVersion,X as getByPath,zt as getDeviceType,ot as getEvent,_ as getFlowConfig,tt as getGrantedConsent,At as getHeaders,rt as getId,ht as getMappingEvent,vt as getMappingValue,it as getMarketingParameters,Ct as getOS,Mt as getOSVersion,z as getPlatform,I as isArguments,W as isArray,F as isBoolean,U as isCommand,L as isDefined,V as isElementOrDocument,B as isFunction,J as isNumber,Z as isObject,dt as isPropertyType,K as isSameType,q as isString,Jt as mcpError,Bt as mcpResult,j as mergeContractSchemas,kt as mockEnv,T as packageNameToVariable,Pt as parseUserAgent,jt as processEventMapping,xt as requestToData,St as requestToParameter,k as resolveContract,Q as setByPath,ct as throttle,x as throwError,Et as transformData,Ot as traverseEnv,Nt as trim,yt as tryCatch,bt as tryCatchAsync,Tt as useHooks,Ht as wrapCondition,It as wrapFn,Wt as wrapValidate};//# sourceMappingURL=index.mjs.map
|
|
1
|
+
var t=Object.defineProperty,e={},n={},o={},r={},i={},s={},c={},a={};((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(a,{Level:()=>u});var u=(t=>(t[t.ERROR=0]="ERROR",t[t.WARN=1]="WARN",t[t.INFO=2]="INFO",t[t.DEBUG=3]="DEBUG",t))(u||{}),f={},l={},p={},d={},g={},m={},y={},b={},h={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function v(t,e){return{event:t,next:e}}function w(t){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(t)?t.replace(/\.\d+$/,".0"):""}function j(t,e){const n={...t};for(const o of Object.keys(e)){const r=t[o],i=e[o];"required"===o&&Array.isArray(r)&&Array.isArray(i)?n[o]=[...new Set([...r,...i])]:$(r)&&$(i)?n[o]=j(r,i):n[o]=i}return n}function k(t,e,n,o){let r={};for(const i of[t,o]){if(!i)continue;const t=[O(i,"*","*"),O(i,"*",n),O(i,e,"*"),O(i,e,n)];for(const e of t)e&&(r=j(r,e))}return r}function O(t,e,n){const o=t[e];if(!o||"object"!=typeof o)return;const r=o[n];return r&&"object"==typeof r?r:void 0}function $(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function x(t){throw new Error(String(t))}function S(...t){const e={};for(const n of t)n&&Object.assign(e,n);return e}function E(...t){const e={};for(const n of t)n&&Object.assign(e,n);return e}var A="__WALKEROS_ENV:";function N(t,e,n,o){if("string"==typeof t){const r=t.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)$/);if(r){const t=r[1];return void 0===n[t]&&x(`Definition "${t}" not found`),N(n[t],e,n,o)}let i=t.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(t,n)=>{if(void 0!==e[n])return String(e[n]);x(`Variable "${n}" not found`)});return i=i.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(t,e,n)=>o?.deferred?void 0!==n?`${A}${e}:${n}`:`${A}${e}`:"undefined"!=typeof process&&void 0!==process.env?.[e]?process.env[e]:void 0!==n?n:void x(`Environment variable "${e}" not found and no default provided`)),i}if(Array.isArray(t))return t.map(t=>N(t,e,n,o));if(null!==t&&"object"==typeof t){const r={};for(const[i,s]of Object.entries(t))r[i]=N(s,e,n,o);return r}return t}function T(t){const e=t.startsWith("@"),n=t.replace("@","").replace(/[/-]/g,"_").split("_").filter(t=>t.length>0).map((t,e)=>0===e?t:t.charAt(0).toUpperCase()+t.slice(1)).join("");return e?"_"+n:n}function P(t,e,n){if(e)return e;if(!t||!n)return;return n[t]?T(t):void 0}function _(t,e,n){const o=Object.keys(t.flows);e||(1===o.length?e=o[0]:x(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=t.flows[e];r||x(`Flow "${e}" not found. Available: ${o.join(", ")}`);const i=JSON.parse(JSON.stringify(r));if(i.sources)for(const[e,o]of Object.entries(i.sources)){const s=S(t.variables,r.variables,o.variables),c=E(t.definitions,r.definitions,o.definitions),a=N(o.config,s,c,n),u=P(o.package,o.code,i.packages),f="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,l=u||f;i.sources[e]={package:o.package,config:a,env:o.env,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:l}}if(i.destinations)for(const[e,o]of Object.entries(i.destinations)){const s=S(t.variables,r.variables,o.variables),c=E(t.definitions,r.definitions,o.definitions),a=N(o.config,s,c,n),u=P(o.package,o.code,i.packages),f="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,l=u||f;i.destinations[e]={package:o.package,config:a,env:o.env,variables:o.variables,definitions:o.definitions,before:o.before,code:l}}if(i.collector){const e=S(t.variables,r.variables),o=E(t.definitions,r.definitions),s=N(i.collector,e,o,n);i.collector=s}const s=t.contract,c=r.contract;if(s||c){const t=function(...t){const e=new Set;for(const n of t)if(n)for(const t of Object.keys(n)){if(t.startsWith("$"))continue;const o=n[t];if(o&&"object"==typeof o)for(const n of Object.keys(o))"*"!==n&&e.add(`${t}\0${n}`)}const n=new Set,o=new Set;for(const e of t)if(e)for(const t of Object.keys(e)){if(t.startsWith("$")||"*"===t)continue;n.add(t);const r=e[t];if(r&&"object"==typeof r)for(const t of Object.keys(r))"*"!==t&&o.add(t)}for(const t of n)for(const n of o)e.add(`${t}\0${n}`);return[...e].map(t=>t.split("\0"))}(s,c),e={};for(const[n,o]of t){const t=k(s||{},n,o,c);Object.keys(t).length>0&&(e[n]||(e[n]={}),e[n][o]={schema:C(t)})}if(i.transformers)for(const[,t]of Object.entries(i.transformers))M(t.config,e);const n=s?.$tagging??c?.$tagging;if("number"==typeof n){const t=i.collector||{};void 0===t.tagging&&(t.tagging=n),i.collector=t}}return i}var R=new Set(["description","examples","title","$comment"]);function C(t){const e={};for(const[n,o]of Object.entries(t))R.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?e[n]=o:e[n]=C(o));return e}function M(t,e){if(!t||"object"!=typeof t)return;const n=t;for(const t of Object.keys(n))"$contract"===n[t]?n[t]=e:"object"==typeof n[t]&&null!==n[t]&&M(n[t],e)}function z(t){return void 0!==t.web?"web":void 0!==t.server?"server":void x("Config must have web or server key")}var D={merge:!0,shallow:!0,extend:!0};function H(t,e={},n={}){n={...D,...n};const o=Object.entries(e).reduce((e,[o,r])=>{const i=t[o];return n.merge&&Array.isArray(i)&&Array.isArray(r)?e[o]=r.reduce((t,e)=>t.includes(e)?t:[...t,e],[...i]):(n.extend||o in t)&&(e[o]=r),e},{});return n.shallow?{...t,...o}:(Object.assign(t,o),t)}function I(t){return"[object Arguments]"===Object.prototype.toString.call(t)}function W(t){return Array.isArray(t)}function F(t){return"boolean"==typeof t}function U(t){return"walker"===t}function L(t){return void 0!==t}function V(t){return t===document||t instanceof Element}function B(t){return"function"==typeof t}function J(t){return"number"==typeof t&&!Number.isNaN(t)}function Z(t){return"object"==typeof t&&null!==t&&!W(t)&&"[object Object]"===Object.prototype.toString.call(t)}function K(t,e){return typeof t==typeof e}function q(t){return"string"==typeof t}function G(t,e=new WeakMap){if("object"!=typeof t||null===t)return t;if(e.has(t))return e.get(t);const n=Object.prototype.toString.call(t);if("[object Object]"===n){const n={};e.set(t,n);for(const o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[o]=G(t[o],e));return n}if("[object Array]"===n){const n=[];return e.set(t,n),t.forEach(t=>{n.push(G(t,e))}),n}if("[object Date]"===n)return new Date(t.getTime());if("[object RegExp]"===n){const e=t;return new RegExp(e.source,e.flags)}return t}function X(t,e="",n){const o=e.split(".");let r=t;for(let t=0;t<o.length;t++){const e=o[t];if("*"===e&&W(r)){const e=o.slice(t+1).join("."),i=[];for(const t of r){const o=X(t,e,n);i.push(o)}return i}if(r=r instanceof Object?r[e]:void 0,!r)break}return L(r)?r:n}function Q(t,e,n){if(!Z(t))return t;const o=G(t),r=e.split(".");let i=o;for(let t=0;t<r.length;t++){const e=r[t];t===r.length-1?i[e]=n:(e in i&&"object"==typeof i[e]&&null!==i[e]||(i[e]={}),i=i[e])}return o}function Y(t){if("true"===t)return!0;if("false"===t)return!1;const e=Number(t);return t==e&&""!==t?e:String(t)}function tt(t,e={},n={}){const o={...e,...n},r={};let i=void 0===t;return Object.keys(o).forEach(e=>{o[e]&&(r[e]=!0,t&&t[e]&&(i=!0))}),!!i&&r}function et(t,e){const n={...t};return n.config=H(t.config,e,{shallow:!0,merge:!0,extend:!0}),t.config.settings&&e.settings&&(n.config.settings=H(t.config.settings,e.settings,{shallow:!0,merge:!0,extend:!0})),t.config.mapping&&e.mapping&&(n.config.mapping=H(t.config.mapping,e.mapping,{shallow:!0,merge:!0,extend:!0})),n}function nt(t={}){const e=t.timestamp||(new Date).setHours(0,13,37,0),n=t.group||"gr0up",o=t.count||1,r=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:`${e}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:e,timing:3.14,group:n,count:o,version:{source:"2.1.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},t,{merge:!1});if(t.name){const[e,n]=t.name.split(" ")??[];e&&n&&(r.entity=e,r.action=n)}return r}function ot(t="entity action",e={}){const n=e.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return nt({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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"}}}[t],...e,name:t})}function rt(t=6){let e="";for(let n=36;e.length<t;)e+=(Math.random()*n|0).toString(n);return e}function it(t,e={}){const n="clickId",o={},r={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(r,e)).forEach(([e,r])=>{const i=t.searchParams.get(e);i&&(r===n&&(r=e,o[n]=e),o[r]=i)}),o}function st(t,e=1e3,n=!1){let o,r=null,i=!1;return(...s)=>new Promise(c=>{const a=n&&!i;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!i||(o=t(...s),c(o))},e),a&&(i=!0,o=t(...s),c(o))})}function ct(t,e=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},e),t(...o)}}function at(t){return{message:t.message,name:t.name,stack:t.stack,cause:t.cause}}function ut(t,e){let n,o={};return t instanceof Error?(n=t.message,o.error=at(t)):n=t,void 0!==e&&(e instanceof Error?o.error=at(e):"object"==typeof e&&null!==e?(o={...o,...e},"error"in o&&o.error instanceof Error&&(o.error=at(o.error))):o.value=e),{message:n,context:o}}var ft=(t,e,n,o)=>{const r=`${u[t]}${o.length>0?` [${o.join(":")}]`:""}`,i=Object.keys(n).length>0,s=0===t?console.error:1===t?console.warn:console.log;i?s(r,e,n):s(r,e)};function lt(t={}){return pt({level:void 0!==t.level?function(t){return"string"==typeof t?u[t]:t}(t.level):0,handler:t.handler,jsonHandler:t.jsonHandler,scope:[]})}function pt(t){const{level:e,handler:n,jsonHandler:o,scope:r}=t,i=(t,o,i)=>{if(t<=e){const e=ut(o,i);n?n(t,e.message,e.context,r,ft):ft(t,e.message,e.context,r)}};return{error:(t,e)=>i(0,t,e),warn:(t,e)=>i(1,t,e),info:(t,e)=>i(2,t,e),debug:(t,e)=>i(3,t,e),throw:(t,e)=>{const o=ut(t,e);throw n?n(0,o.message,o.context,r,ft):ft(0,o.message,o.context,r),new Error(o.message)},json:t=>{o?o(t):console.log(JSON.stringify(t,null,2))},scope:t=>pt({level:e,handler:n,jsonHandler:o,scope:[...r,t]})}}function dt(t){return F(t)||q(t)||J(t)||!L(t)||W(t)&&t.every(dt)||Z(t)&&Object.values(t).every(dt)}function gt(t){return F(t)||q(t)||J(t)?t:I(t)?gt(Array.from(t)):W(t)?t.map(t=>gt(t)).filter(t=>void 0!==t):Z(t)?Object.entries(t).reduce((t,[e,n])=>{const o=gt(n);return void 0!==o&&(t[e]=o),t},{}):void 0}function mt(t){return dt(t)?t:void 0}function yt(t,e,n){return function(...o){try{return t(...o)}catch(t){if(!e)return;return e(t)}finally{n?.()}}}function bt(t,e,n){return async function(...o){try{return await t(...o)}catch(t){if(!e)return;return await e(t)}finally{await(n?.())}}}async function ht(t,e){const[n,o]=(t.name||"").split(" ");if(!e||!n||!o)return{};let r,i="",s=n,c=o;const a=e=>{if(e)return(e=W(e)?e:[e]).find(e=>!e.condition||e.condition(t))};e[s]||(s="*");const u=e[s];return u&&(u[c]||(c="*"),r=a(u[c])),r||(s="*",c="*",r=a(e[s]?.[c])),r&&(i=`${s} ${c}`),{eventMapping:r,mappingKey:i}}async function vt(t,e={},n={}){if(!L(t))return;const o=Z(t)&&t.consent||n.consent||n.collector?.consent,r=W(e)?e:[e];for(const e of r){const r=await bt(wt)(t,e,{...n,consent:o});if(L(r))return r}}async function wt(t,e,n={}){const{collector:o,consent:r}=n;return(W(e)?e:[e]).reduce(async(e,i)=>{const s=await e;if(s)return s;const c=q(i)?{key:i}:i;if(!Object.keys(c).length)return;const{condition:a,consent:u,fn:f,key:l,loop:p,map:d,set:g,validate:m,value:y}=c;if(a&&!await bt(a)(t,i,o))return;if(u&&!tt(u,r))return y;let b=L(y)?y:t;if(f&&(b=await bt(f)(t,i,n)),l&&(b=X(t,l,y)),p){const[e,o]=p,r="this"===e?[t]:await vt(t,e,n);W(r)&&(b=(await Promise.all(r.map(t=>vt(t,o,n)))).filter(L))}else d?b=await Object.entries(d).reduce(async(e,[o,r])=>{const i=await e,s=await vt(t,r,n);return L(s)&&(i[o]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(e=>wt(t,e,n))));m&&!await bt(m)(b)&&(b=void 0);const h=mt(b);return L(h)?h:mt(y)},Promise.resolve(void 0))}async function jt(t,e,n){e.policy&&await Promise.all(Object.entries(e.policy).map(async([e,o])=>{const r=await vt(t,o,{collector:n});t=Q(t,e,r)}));const{eventMapping:o,mappingKey:r}=await ht(t,e.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([e,o])=>{const r=await vt(t,o,{collector:n});t=Q(t,e,r)}));let i=e.data&&await vt(t,e.data,{collector:n});if(o){if(o.ignore)return{event:t,data:i,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(t.name=o.name),o.data){const e=o.data&&await vt(t,o.data,{collector:n});i=Z(i)&&Z(e)?H(i,e):e}}return{event:t,data:i,mapping:o,mappingKey:r,ignore:!1}}function kt(t,e){const n=(t,o=[])=>new Proxy(t,{get(t,r){const i=t[r],s=[...o,r];return"function"==typeof i?(...t)=>e(s,t,i):i&&"object"==typeof i?n(i,s):i}});return n(t)}function Ot(t,e){const n=(t,o=[])=>{if(!t||"object"!=typeof t)return t;const r=Array.isArray(t)?[]:{};for(const[i,s]of Object.entries(t)){const t=[...o,i];Array.isArray(r)?r[Number(i)]=e(s,t):r[i]=e(s,t),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(r)?r[Number(i)]=n(s,t):r[i]=n(s,t))}return r};return n(t)}function $t(){const t=[],e=jest.fn(t=>{const e=t instanceof Error?t.message:t;throw new Error(e)}),n=jest.fn(e=>{const n=$t();return t.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:e,json:jest.fn(),scope:n,scopedLoggers:t}}function xt(t){const e=String(t),n=e.split("?")[1]||e;return yt(()=>{const t=new URLSearchParams(n),e={};return t.forEach((t,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=e;o.forEach((e,n)=>{const i=n===o.length-1;if(W(r)){const s=parseInt(e,10);i?r[s]=Y(t):(r[s]=r[s]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[s])}else Z(r)&&(i?r[e]=Y(t):(r[e]=r[e]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[e]))})}),e})()}function St(t){if(!t)return"";const e=[],n=encodeURIComponent;function o(t,r){null!=r&&(W(r)?r.forEach((e,n)=>o(`${t}[${n}]`,e)):Z(r)?Object.entries(r).forEach(([e,n])=>o(`${t}[${e}]`,n)):e.push(`${n(t)}=${n(String(r))}`))}return"object"!=typeof t?n(t):(Object.entries(t).forEach(([t,e])=>o(t,e)),e.join("&"))}function Et(t){return void 0===t||K(t,"")?t:JSON.stringify(t)}function At(t={}){return H({"Content-Type":"application/json; charset=utf-8"},t)}function Nt(t){return t?t.trim().replace(/^'|'$/g,"").trim():""}function Tt(t,e,n){return function(...o){let r;const i="post"+e,s=n["pre"+e],c=n[i];return r=s?s({fn:t},...o):t(...o),c&&(r=c({fn:t,result:r},...o)),r}}function Pt(t){return t?{userAgent:t,browser:_t(t),browserVersion:Rt(t),os:Ct(t),osVersion:Mt(t),deviceType:zt(t)}:{}}function _t(t){const e=[{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 e)if(t.includes(n.substr)&&(!n.exclude||!t.includes(n.exclude)))return n.name}function Rt(t){const e=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of e){const e=t.match(n);if(e)return e[1]}}function Ct(t){const e=[{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 e)if(t.includes(n.substr))return n.name}function Mt(t){const e=t.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return e?e[1].replace(/_/g,"."):void 0}function zt(t){let e="Desktop";return/Tablet|iPad/i.test(t)?e="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(t)&&(e="Mobile"),e}function Dt(t){return function(t){return/\breturn\b/.test(t)}(t)?t:`return ${t}`}function Ht(t){const e=Dt(t);return new Function("value","mapping","collector",e)}function It(t){const e=Dt(t);return new Function("value","mapping","options",e)}function Wt(t){const e=Dt(t);return new Function("value",e)}var Ft="https://cdn.jsdelivr.net/npm",Ut="dist/walkerOS.json";async function Lt(t,e){const n=e?.version||"latest",o=`${Ft}/${t}@${n}`,r=new AbortController,i=setTimeout(()=>r.abort(),e?.timeout||1e4);try{const e=await fetch(`${o}/package.json`,{signal:r.signal});if(!e.ok)throw new Error(`Package "${t}" not found on npm (HTTP ${e.status})`);const i=await e.json(),s=await fetch(`${o}/${Ut}`,{signal:r.signal});if(!s.ok)throw new Error(`walkerOS.json not found at ${Ut} (HTTP ${s.status}). This package may not support the walkerOS.json convention yet.`);const c=await s.json(),a=c.$meta||{};return{packageName:t,version:i.version||n,type:a.type,platform:a.platform,schemas:c.schemas||{},examples:c.examples||{}}}finally{clearTimeout(i)}}async function Vt(t,e){const n=e?.version||"latest",o=`${Ft}/${t}@${n}`,r=new AbortController,i=setTimeout(()=>r.abort(),e?.timeout||1e4);try{const e=await fetch(`${o}/package.json`,{signal:r.signal});if(!e.ok)throw new Error(`Package "${t}" not found on npm (HTTP ${e.status})`);const i=await e.json();let s,c;try{const t=await fetch(`${o}/${Ut}`,{signal:r.signal});if(t.ok){const e=(await t.json()).$meta||{};s=e.type,c=e.platform}}catch{}return{packageName:t,version:i.version||n,description:i.description,type:s,platform:c}}finally{clearTimeout(i)}}function Bt(t){return{content:[{type:"text",text:JSON.stringify(t,null,2)}],structuredContent:t}}function Jt(t){return{content:[{type:"text",text:JSON.stringify({error:t instanceof Error?t.message:"Unknown error"})}],isError:!0}}function Zt(t){let e=!1;return(n={})=>{e||(e=!0,t(n))}}export{e as Collector,h as Const,n as Context,o as Data,r as Destination,A as ENV_MARKER_PREFIX,i as Elb,s as Flow,c as Hooks,u as Level,m as Lifecycle,a as Logger,f as Mapping,l as On,d as Request,b as Simulation,g as Source,p as Transformer,y as WalkerOS,w as anonymizeIP,H as assign,v as branch,mt as castToProperty,Y as castValue,G as clone,et as createDestination,nt as createEvent,lt as createLogger,$t as createMockLogger,Zt as createRespond,st as debounce,Vt as fetchPackageMeta,Lt as fetchPackageSchema,gt as filterValues,_t as getBrowser,Rt as getBrowserVersion,X as getByPath,zt as getDeviceType,ot as getEvent,_ as getFlowConfig,tt as getGrantedConsent,At as getHeaders,rt as getId,ht as getMappingEvent,vt as getMappingValue,it as getMarketingParameters,Ct as getOS,Mt as getOSVersion,z as getPlatform,I as isArguments,W as isArray,F as isBoolean,U as isCommand,L as isDefined,V as isElementOrDocument,B as isFunction,J as isNumber,Z as isObject,dt as isPropertyType,K as isSameType,q as isString,Jt as mcpError,Bt as mcpResult,j as mergeContractSchemas,kt as mockEnv,T as packageNameToVariable,Pt as parseUserAgent,jt as processEventMapping,xt as requestToData,St as requestToParameter,k as resolveContract,Q as setByPath,ct as throttle,x as throwError,Et as transformData,Ot as traverseEnv,Nt as trim,yt as tryCatch,bt as tryCatchAsync,Tt as useHooks,Ht as wrapCondition,It as wrapFn,Wt as wrapValidate};//# sourceMappingURL=index.mjs.map
|