@walkeros/web-destination-gtag 4.7.0-next-1790722899482 → 4.7.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/CHANGELOG.md +7 -3
- package/dist/dev.js +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/examples/index.js +1 -1
- package/dist/examples/index.mjs +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/walkerOS.json +10 -9
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @walkeros/web-destination-gtag
|
|
2
2
|
|
|
3
|
-
## 4.7.0
|
|
3
|
+
## 4.7.0
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
- Updated dependencies [74821ed]
|
|
14
14
|
- Updated dependencies [06b498a]
|
|
15
15
|
- Updated dependencies [74821ed]
|
|
16
|
+
- Updated dependencies [64b06de]
|
|
17
|
+
- Updated dependencies [4b4937f]
|
|
16
18
|
- Updated dependencies [74821ed]
|
|
17
19
|
- Updated dependencies [74821ed]
|
|
18
20
|
- Updated dependencies [74821ed]
|
|
@@ -22,10 +24,12 @@
|
|
|
22
24
|
- Updated dependencies [74821ed]
|
|
23
25
|
- Updated dependencies [74821ed]
|
|
24
26
|
- Updated dependencies [74821ed]
|
|
27
|
+
- Updated dependencies [e860006]
|
|
25
28
|
- Updated dependencies [74821ed]
|
|
26
29
|
- Updated dependencies [74821ed]
|
|
27
|
-
|
|
28
|
-
- @walkeros/
|
|
30
|
+
- Updated dependencies [4f89234]
|
|
31
|
+
- @walkeros/core@4.7.0
|
|
32
|
+
- @walkeros/web-core@4.7.0
|
|
29
33
|
|
|
30
34
|
## 4.6.1
|
|
31
35
|
|
package/dist/dev.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,a=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},r={};o(r,{examples:()=>k,schemas:()=>s}),module.exports=(e=r,((e,o,r,s)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let d of n(o))i.call(e,d)||d===r||a(e,d,{get:()=>o[d],enumerable:!(s=t(o,d))||s.enumerable});return e})(a({},"__esModule",{value:!0}),e));var s={};o(s,{AdsSettingsSchema:()=>m,ConsentModeSchema:()=>p,GA4SettingsSchema:()=>u,GTMSettingsSchema:()=>v,MappingSchema:()=>f,SettingsSchema:()=>X,UserDataMappingSchema:()=>g,ads:()=>G,ga4:()=>z,gtm:()=>E,mapping:()=>w,settings:()=>A});var d=require("@walkeros/core/dev"),c=require("@walkeros/core/dev"),l=require("@walkeros/core/dev"),p=l.z.union([l.z.boolean(),l.z.record(l.z.string(),l.z.union([l.z.string(),l.z.array(l.z.string())]))]),u=l.z.object({measurementId:l.z.string().regex(/^G-[A-Z0-9]+$/,"Must be a valid GA4 Measurement ID (G-XXXXXXXXXX)").describe("GA4 Measurement ID from Google Analytics (like G-XXXXXXXXXX)"),debug:l.z.boolean().describe("Enable debug mode for GA4 (like true)").optional(),pageview:l.z.boolean().describe("Enable automatic pageview tracking (like true)").optional(),server_container_url:l.z.string().url().describe("Server-side GTM container URL (like https://server-container.com)").optional(),snakeCase:l.z.boolean().describe("Lowercase the event name and replace its spaces with underscores (like true). Applies to the event name only, never to parameter names").optional(),transport_url:l.z.string().url().describe("Custom transport URL for GA4 (like https://analytics.example.com/mp/collect)").optional(),data:l.z.any().describe("Custom data mapping configuration").optional()}),g=l.z.object({email:l.z.any().describe("Mapping value for user email (like user.email)").optional(),phone_number:l.z.any().describe("Mapping value for user phone number (like user.phone)").optional(),address:l.z.object({first_name:l.z.any().describe("Mapping value for first name (like data.firstName)").optional(),last_name:l.z.any().describe("Mapping value for last name (like data.lastName)").optional(),street:l.z.any().describe("Mapping value for street address").optional(),city:l.z.any().describe("Mapping value for city (like user.city)").optional(),region:l.z.any().describe("Mapping value for region/state (like user.region)").optional(),postal_code:l.z.any().describe("Mapping value for postal/zip code (like user.zip)").optional(),country:l.z.any().describe("Mapping value for country (like user.country)").optional()}).describe("Address mapping for enhanced conversions").optional()}),m=l.z.object({conversionId:l.z.string().regex(/^AW-[0-9]+$/,"Must be a valid Ads Conversion ID (AW-XXXXXXXXXX)").describe("Google Ads Conversion ID (required)"),currency:l.z.string().length(3).describe("Currency code (ISO 4217, e.g., USD, EUR)").optional(),data:l.z.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional(),enhancedConversions:g.describe("Enhanced conversions: maps event fields to Google user_data for improved measurement accuracy").optional()}),v=l.z.object({containerId:l.z.string().regex(/^GTM-[A-Z0-9]+$/,"Must be a valid GTM Container ID (GTM-XXXXXXX)").describe("GTM Container ID (required)"),dataLayer:l.z.string().describe("Custom dataLayer variable name (default: dataLayer)").optional(),domain:l.z.string().describe("Custom GTM domain for script loading").optional(),data:l.z.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional()}),X=c.z.object({como:p.describe("Consent mode configuration: false (disabled), true (use defaults), or custom mapping").optional(),como_advanced:c.z.union([c.z.boolean(),c.z.number()]).describe("Advanced consent mode (non-EU): emit denied default at page load with wait_for_update (true=500ms, or a number of ms)").optional(),ga4:u.describe("GA4-specific configuration settings (like { measurementId: G-XXXXXXXXXX })").optional(),ads:m.describe("Google Ads specific configuration settings (like { conversionId: AW-XXXXXXXXX })").optional(),gtm:v.describe("Google Tag Manager specific configuration settings (like { containerId: GTM-XXXXXXX })").optional()}).refine(e=>{var a,t,n;return(null==(a=e.ga4)?void 0:a.measurementId)||(null==(t=e.ads)?void 0:t.conversionId)||(null==(n=e.gtm)?void 0:n.containerId)},{message:"At least one Google tool must be configured (ga4.measurementId, ads.conversionId, or gtm.containerId)"}),_=require("@walkeros/core/dev"),b=_.z.object({}),h=_.z.object({label:_.z.string().describe("Conversion label for this specific event").optional()}),y=_.z.object({}),f=_.z.object({ga4:b.describe("GA4-specific event mapping").optional(),ads:h.describe("Google Ads-specific event mapping").optional(),gtm:y.describe("GTM-specific event mapping").optional()}),A=(0,d.zodToSchema)(X),w=(0,d.zodToSchema)(f),z=(0,d.zodToSchema)(u),G=(0,d.zodToSchema)(m),E=(0,d.zodToSchema)(v),k={};o(k,{env:()=>C,step:()=>I});var C={};o(C,{init:()=>M,push:()=>S,simulation:()=>U});var M={window:{dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},S={window:{gtag:Object.assign(()=>{},{}),dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},U=["call:window.gtag","call:window.dataLayer.push"],I={};o(I,{addToCart:()=>P,adsEnhancedConversions:()=>D,adsInit:()=>j,consentModeV2:()=>H,ga4Init:()=>T,ga4WithIncludeAll:()=>N,googleAdsConversion:()=>W,gtmDataLayerPush:()=>V,gtmInit:()=>O,multipleToolsSimultaneous:()=>$,pageView:()=>q,purchase:()=>L});var R=require("@walkeros/core"),x=17e11,T=(new Date(x),{title:"GA4 init",description:"Configures a GA4 property via its measurementId. gtag already exists here, so no `js` is sent: that would be a second, false initialisation signal.",in:{settings:{ga4:{measurementId:"G-XXXXXXXXXX"}}},out:[["gtag","config","G-XXXXXXXXXX",{}]]}),j={title:"Google Ads init",description:"Configures a Google Ads account via its conversionId. gtag already exists here, so no `js` is sent.",in:{settings:{ads:{conversionId:"AW-123456789",currency:"EUR"}}},out:[["gtag","config","AW-123456789"]]},O={title:"GTM init",description:"With script loading enabled the destination initializes the dataLayer, pushes the gtm.js start event, and loads the GTM container.",in:{loadScript:!0,settings:{gtm:{containerId:"GTM-XXXXXXX"}}},out:[["dataLayer.push",{"gtm.start":x,event:"gtm.js"}]]},L={title:"Purchase",description:"An order complete event is mapped to the GA4 purchase event with transaction details and nested product items.",in:(0,R.getEvent)("order complete",{timestamp:1700000100}),mapping:{name:"purchase",include:["data","context"],data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>(0,R.isObject)(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},out:[["gtag","event","purchase",{transaction_id:"0rd3r1d",value:555,tax:73.76,shipping:5.22,currency:"EUR",items:[{item_id:"ers",item_name:"Everyday Ruck Snack",quantity:1},{item_id:"cc",item_name:"Cool Cap",quantity:1}],data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,context_shopping:"complete",send_to:"G-XXXXXXXXXX"}]]},P={title:"Add to cart",description:"A product add event is mapped to the GA4 add_to_cart event with item details and value.",in:(0,R.getEvent)("product add",{timestamp:1700000101}),mapping:{name:"add_to_cart",include:["data"],data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},out:[["gtag","event","add_to_cart",{currency:"EUR",value:420,items:[{item_id:"ers",item_variant:"black",quantity:1}],data_id:"ers",data_name:"Everyday Ruck Snack",data_color:"black",data_size:"l",data_price:420,send_to:"G-XXXXXXXXXX"}]]},q={title:"Page view",description:"A page view event is forwarded as a GA4 page_view event with no additional mapping.",in:(0,R.getEvent)("page view",{timestamp:1700000102}),mapping:void 0,out:[["gtag","event","page_view",{send_to:"G-XXXXXXXXXX"}]]},W={title:"Ads conversion",description:"An order complete event is sent as a Google Ads conversion with a configured label and transaction value.",in:(0,R.getEvent)("order complete",{timestamp:1700000103}),mapping:{name:"PURCHASE_CONV",settings:{ads:{label:"PURCHASE_CONV"}},data:{map:{value:"data.total"}}},out:[["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555}]]},D={title:"Enhanced conversions",description:"enhancedConversions maps event fields into a gtag set user_data call sent immediately before the conversion event.",in:(0,R.getEvent)("order complete",{timestamp:1700000109,data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555,customerEmail:"buyer@shop.com",customerPhone:"+1234567890"}}),mapping:{name:"PURCHASE_EC2",settings:{ads:{label:"PURCHASE_EC2"}},data:{map:{value:"data.total"}}},out:[["gtag","set","user_data",{email:"buyer@shop.com",phone_number:"+1234567890"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_EC2",currency:"EUR",value:555}]]},V={title:"GTM dataLayer push",description:"A page view event is pushed to window.dataLayer for GTM with the mapped event name and parameters.",in:(0,R.getEvent)("page view",{timestamp:1700000104}),mapping:{name:"page_view",settings:{gtm:{}},data:{map:{page_title:"data.title",page_location:"data.domain"}}},out:[["dataLayer.push",{event:"page_view",page_title:"walkerOS documentation",page_location:"www.example.com"}]]},H={title:"Consent Mode v2",description:"A walker consent command with marketing and functional granted updates gtag Consent Mode v2 parameters.",command:"consent",in:{marketing:!0,functional:!0},out:[["gtag","consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied"}],["gtag","consent","update",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted"}]]},N={title:"GA4 include all",description:"Include flattens every event section into prefixed GA4 params, exposing data, context, user, source, and event fields.",in:(0,R.getEvent)("page view",{id:"ev-1700000106",timestamp:1700000106,source:{type:"collector",schema:"4",count:1,trace:"1700000106abcdef1700000106abcdef"}}),mapping:{include:["data","context","globals","user","source","event"]},out:[["gtag","event","page_view",{data_domain:"www.example.com",data_title:"walkerOS documentation",data_referrer:"https://www.walkeros.io/",data_search:"?foo=bar",data_hash:"#hash",data_id:"/docs/",context_dev:"test",globals_pagegroup:"docs",user_device:"c00k13",user_session:"s3ss10n",source_type:"collector",source_schema:"4",source_count:1,source_trace:"1700000106abcdef1700000106abcdef",source_release_default:"4.7.0-next-1790722899482",event_entity:"page",event_action:"view",event_trigger:"load",event_id:"ev-1700000106",event_name:"page view",event_timestamp:1700000106,event_timing:3.14,send_to:"G-XXXXXXXXXX"}]]},$={title:"Multi-tool push",description:"A single order event fans out to GA4, Google Ads, and GTM from one mapping rule with per-tool settings.",in:(0,R.getEvent)("order complete",{timestamp:1700000107}),mapping:{name:"purchase",include:["data"],settings:{ga4:{},ads:{label:"PURCHASE_CONV"},gtm:{}},data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}},out:[["gtag","event","purchase",{value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,send_to:"G-XXXXXXXXXX"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555,data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}],["dataLayer.push",{event:"purchase",value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}]]};//# sourceMappingURL=dev.js.map
|
|
1
|
+
"use strict";var e,a=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},r={};o(r,{examples:()=>k,schemas:()=>s}),module.exports=(e=r,((e,o,r,s)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let d of n(o))i.call(e,d)||d===r||a(e,d,{get:()=>o[d],enumerable:!(s=t(o,d))||s.enumerable});return e})(a({},"__esModule",{value:!0}),e));var s={};o(s,{AdsSettingsSchema:()=>m,ConsentModeSchema:()=>p,GA4SettingsSchema:()=>u,GTMSettingsSchema:()=>v,MappingSchema:()=>f,SettingsSchema:()=>X,UserDataMappingSchema:()=>g,ads:()=>G,ga4:()=>z,gtm:()=>E,mapping:()=>w,settings:()=>A});var d=require("@walkeros/core/dev"),c=require("@walkeros/core/dev"),l=require("@walkeros/core/dev"),p=l.z.union([l.z.boolean(),l.z.record(l.z.string(),l.z.union([l.z.string(),l.z.array(l.z.string())]))]),u=l.z.object({measurementId:l.z.string().regex(/^G-[A-Z0-9]+$/,"Must be a valid GA4 Measurement ID (G-XXXXXXXXXX)").describe("GA4 Measurement ID from Google Analytics (like G-XXXXXXXXXX)"),debug:l.z.boolean().describe("Enable debug mode for GA4 (like true)").optional(),pageview:l.z.boolean().describe("Enable automatic pageview tracking (like true)").optional(),server_container_url:l.z.string().url().describe("Server-side GTM container URL (like https://server-container.com)").optional(),snakeCase:l.z.boolean().describe("Lowercase the event name and replace its spaces with underscores (like true). Applies to the event name only, never to parameter names").optional(),transport_url:l.z.string().url().describe("Custom transport URL for GA4 (like https://analytics.example.com/mp/collect)").optional(),data:l.z.any().describe("Custom data mapping configuration").optional()}),g=l.z.object({email:l.z.any().describe("Mapping value for user email (like user.email)").optional(),phone_number:l.z.any().describe("Mapping value for user phone number (like user.phone)").optional(),address:l.z.object({first_name:l.z.any().describe("Mapping value for first name (like data.firstName)").optional(),last_name:l.z.any().describe("Mapping value for last name (like data.lastName)").optional(),street:l.z.any().describe("Mapping value for street address").optional(),city:l.z.any().describe("Mapping value for city (like user.city)").optional(),region:l.z.any().describe("Mapping value for region/state (like user.region)").optional(),postal_code:l.z.any().describe("Mapping value for postal/zip code (like user.zip)").optional(),country:l.z.any().describe("Mapping value for country (like user.country)").optional()}).describe("Address mapping for enhanced conversions").optional()}),m=l.z.object({conversionId:l.z.string().regex(/^AW-[0-9]+$/,"Must be a valid Ads Conversion ID (AW-XXXXXXXXXX)").describe("Google Ads Conversion ID (required)"),currency:l.z.string().length(3).describe("Currency code (ISO 4217, e.g., USD, EUR)").optional(),data:l.z.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional(),enhancedConversions:g.describe("Enhanced conversions: maps event fields to Google user_data for improved measurement accuracy").optional()}),v=l.z.object({containerId:l.z.string().regex(/^GTM-[A-Z0-9]+$/,"Must be a valid GTM Container ID (GTM-XXXXXXX)").describe("GTM Container ID (required)"),dataLayer:l.z.string().describe("Custom dataLayer variable name (default: dataLayer)").optional(),domain:l.z.string().describe("Custom GTM domain for script loading").optional(),data:l.z.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional()}),X=c.z.object({como:p.describe("Consent mode configuration: false (disabled), true (use defaults), or custom mapping").optional(),como_advanced:c.z.union([c.z.boolean(),c.z.number()]).describe("Advanced consent mode (non-EU): emit denied default at page load with wait_for_update (true=500ms, or a number of ms)").optional(),ga4:u.describe("GA4-specific configuration settings (like { measurementId: G-XXXXXXXXXX })").optional(),ads:m.describe("Google Ads specific configuration settings (like { conversionId: AW-XXXXXXXXX })").optional(),gtm:v.describe("Google Tag Manager specific configuration settings (like { containerId: GTM-XXXXXXX })").optional()}).refine(e=>{var a,t,n;return(null==(a=e.ga4)?void 0:a.measurementId)||(null==(t=e.ads)?void 0:t.conversionId)||(null==(n=e.gtm)?void 0:n.containerId)},{message:"At least one Google tool must be configured (ga4.measurementId, ads.conversionId, or gtm.containerId)"}),_=require("@walkeros/core/dev"),b=_.z.object({}),h=_.z.object({label:_.z.string().describe("Conversion label for this specific event").optional()}),y=_.z.object({}),f=_.z.object({ga4:b.describe("GA4-specific event mapping").optional(),ads:h.describe("Google Ads-specific event mapping").optional(),gtm:y.describe("GTM-specific event mapping").optional()}),A=(0,d.zodToSchema)(X),w=(0,d.zodToSchema)(f),z=(0,d.zodToSchema)(u),G=(0,d.zodToSchema)(m),E=(0,d.zodToSchema)(v),k={};o(k,{env:()=>C,step:()=>I});var C={};o(C,{init:()=>M,push:()=>S,simulation:()=>U});var M={window:{dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},S={window:{gtag:Object.assign(()=>{},{}),dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},U=["call:window.gtag","call:window.dataLayer.push"],I={};o(I,{addToCart:()=>P,adsEnhancedConversions:()=>D,adsInit:()=>j,consentModeV2:()=>H,ga4Init:()=>T,ga4WithIncludeAll:()=>N,googleAdsConversion:()=>W,gtmDataLayerPush:()=>V,gtmInit:()=>O,multipleToolsSimultaneous:()=>$,pageView:()=>q,purchase:()=>L});var R=require("@walkeros/core"),x=17e11,T=(new Date(x),{title:"GA4 init",description:"Configures a GA4 property via its measurementId. gtag already exists here, so no `js` is sent: that would be a second, false initialisation signal.",in:{settings:{ga4:{measurementId:"G-XXXXXXXXXX"}}},out:[["gtag","config","G-XXXXXXXXXX",{}]]}),j={title:"Google Ads init",description:"Configures a Google Ads account via its conversionId. gtag already exists here, so no `js` is sent.",in:{settings:{ads:{conversionId:"AW-123456789",currency:"EUR"}}},out:[["gtag","config","AW-123456789"]]},O={title:"GTM init",description:"With script loading enabled the destination initializes the dataLayer, pushes the gtm.js start event, and loads the GTM container.",in:{loadScript:!0,settings:{gtm:{containerId:"GTM-XXXXXXX"}}},out:[["dataLayer.push",{"gtm.start":x,event:"gtm.js"}]]},L={title:"Purchase",description:"An order complete event is mapped to the GA4 purchase event with transaction details and nested product items.",in:(0,R.getEvent)("order complete",{timestamp:1700000100}),mapping:{name:"purchase",include:["data","context"],data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>(0,R.isObject)(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},out:[["gtag","event","purchase",{transaction_id:"0rd3r1d",value:555,tax:73.76,shipping:5.22,currency:"EUR",items:[{item_id:"ers",item_name:"Everyday Ruck Snack",quantity:1},{item_id:"cc",item_name:"Cool Cap",quantity:1}],data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,context_shopping:"complete",send_to:"G-XXXXXXXXXX"}]]},P={title:"Add to cart",description:"A product add event is mapped to the GA4 add_to_cart event with item details and value.",in:(0,R.getEvent)("product add",{timestamp:1700000101}),mapping:{name:"add_to_cart",include:["data"],data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},out:[["gtag","event","add_to_cart",{currency:"EUR",value:420,items:[{item_id:"ers",item_variant:"black",quantity:1}],data_id:"ers",data_name:"Everyday Ruck Snack",data_color:"black",data_size:"l",data_price:420,send_to:"G-XXXXXXXXXX"}]]},q={title:"Page view",description:"A page view event is forwarded as a GA4 page_view event with no additional mapping.",in:(0,R.getEvent)("page view",{timestamp:1700000102}),mapping:void 0,out:[["gtag","event","page_view",{send_to:"G-XXXXXXXXXX"}]]},W={title:"Ads conversion",description:"An order complete event is sent as a Google Ads conversion with a configured label and transaction value.",in:(0,R.getEvent)("order complete",{timestamp:1700000103}),mapping:{name:"PURCHASE_CONV",settings:{ads:{label:"PURCHASE_CONV"}},data:{map:{value:"data.total"}}},out:[["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555}]]},D={title:"Enhanced conversions",description:"enhancedConversions maps event fields into a gtag set user_data call sent immediately before the conversion event.",in:(0,R.getEvent)("order complete",{timestamp:1700000109,data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555,customerEmail:"buyer@shop.com",customerPhone:"+1234567890"}}),mapping:{name:"PURCHASE_EC2",settings:{ads:{label:"PURCHASE_EC2"}},data:{map:{value:"data.total"}}},out:[["gtag","set","user_data",{email:"buyer@shop.com",phone_number:"+1234567890"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_EC2",currency:"EUR",value:555}]]},V={title:"GTM dataLayer push",description:"A page view event is pushed to window.dataLayer for GTM with the mapped event name and parameters.",in:(0,R.getEvent)("page view",{timestamp:1700000104}),mapping:{name:"page_view",settings:{gtm:{}},data:{map:{page_title:"data.title",page_location:"data.domain"}}},out:[["dataLayer.push",{event:"page_view",page_title:"walkerOS documentation",page_location:"www.example.com"}]]},H={title:"Consent Mode v2",description:"A walker consent command with marketing and functional granted updates gtag Consent Mode v2 parameters.",command:"consent",in:{marketing:!0,functional:!0},out:[["gtag","consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied"}],["gtag","consent","update",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted"}]]},N={title:"GA4 include all",description:"Include flattens every event section into prefixed GA4 params, exposing data, context, user, source, and event fields.",in:(0,R.getEvent)("page view",{id:"ev-1700000106",timestamp:1700000106,source:{type:"collector",schema:"4",count:1,trace:"1700000106abcdef1700000106abcdef"}}),mapping:{include:["data","context","globals","user","source","event"]},out:[["gtag","event","page_view",{data_domain:"www.example.com",data_title:"walkerOS documentation",data_referrer:"https://www.walkeros.io/",data_search:"?foo=bar",data_hash:"#hash",data_id:"/docs/",context_dev:"test",globals_pagegroup:"docs",user_device:"c00k13",user_session:"s3ss10n",source_type:"collector",source_schema:"4",source_count:1,source_trace:"1700000106abcdef1700000106abcdef",source_release_default:"4.7.0",event_entity:"page",event_action:"view",event_trigger:"load",event_id:"ev-1700000106",event_name:"page view",event_timestamp:1700000106,event_timing:3.14,send_to:"G-XXXXXXXXXX"}]]},$={title:"Multi-tool push",description:"A single order event fans out to GA4, Google Ads, and GTM from one mapping rule with per-tool settings.",in:(0,R.getEvent)("order complete",{timestamp:1700000107}),mapping:{name:"purchase",include:["data"],settings:{ga4:{},ads:{label:"PURCHASE_CONV"},gtm:{}},data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}},out:[["gtag","event","purchase",{value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,send_to:"G-XXXXXXXXXX"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555,data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}],["dataLayer.push",{event:"purchase",value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}]]};//# sourceMappingURL=dev.js.map
|
package/dist/dev.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.defineProperty,a=(a,t)=>{for(var n in t)e(a,n,{get:t[n],enumerable:!0})},t={};a(t,{AdsSettingsSchema:()=>c,ConsentModeSchema:()=>r,GA4SettingsSchema:()=>s,GTMSettingsSchema:()=>l,MappingSchema:()=>X,SettingsSchema:()=>p,UserDataMappingSchema:()=>d,ads:()=>y,ga4:()=>h,gtm:()=>f,mapping:()=>b,settings:()=>_});import{zodToSchema as n}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";import{z as o}from"@walkeros/core/dev";var r=o.union([o.boolean(),o.record(o.string(),o.union([o.string(),o.array(o.string())]))]),s=o.object({measurementId:o.string().regex(/^G-[A-Z0-9]+$/,"Must be a valid GA4 Measurement ID (G-XXXXXXXXXX)").describe("GA4 Measurement ID from Google Analytics (like G-XXXXXXXXXX)"),debug:o.boolean().describe("Enable debug mode for GA4 (like true)").optional(),pageview:o.boolean().describe("Enable automatic pageview tracking (like true)").optional(),server_container_url:o.string().url().describe("Server-side GTM container URL (like https://server-container.com)").optional(),snakeCase:o.boolean().describe("Lowercase the event name and replace its spaces with underscores (like true). Applies to the event name only, never to parameter names").optional(),transport_url:o.string().url().describe("Custom transport URL for GA4 (like https://analytics.example.com/mp/collect)").optional(),data:o.any().describe("Custom data mapping configuration").optional()}),d=o.object({email:o.any().describe("Mapping value for user email (like user.email)").optional(),phone_number:o.any().describe("Mapping value for user phone number (like user.phone)").optional(),address:o.object({first_name:o.any().describe("Mapping value for first name (like data.firstName)").optional(),last_name:o.any().describe("Mapping value for last name (like data.lastName)").optional(),street:o.any().describe("Mapping value for street address").optional(),city:o.any().describe("Mapping value for city (like user.city)").optional(),region:o.any().describe("Mapping value for region/state (like user.region)").optional(),postal_code:o.any().describe("Mapping value for postal/zip code (like user.zip)").optional(),country:o.any().describe("Mapping value for country (like user.country)").optional()}).describe("Address mapping for enhanced conversions").optional()}),c=o.object({conversionId:o.string().regex(/^AW-[0-9]+$/,"Must be a valid Ads Conversion ID (AW-XXXXXXXXXX)").describe("Google Ads Conversion ID (required)"),currency:o.string().length(3).describe("Currency code (ISO 4217, e.g., USD, EUR)").optional(),data:o.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional(),enhancedConversions:d.describe("Enhanced conversions: maps event fields to Google user_data for improved measurement accuracy").optional()}),l=o.object({containerId:o.string().regex(/^GTM-[A-Z0-9]+$/,"Must be a valid GTM Container ID (GTM-XXXXXXX)").describe("GTM Container ID (required)"),dataLayer:o.string().describe("Custom dataLayer variable name (default: dataLayer)").optional(),domain:o.string().describe("Custom GTM domain for script loading").optional(),data:o.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional()}),p=i.object({como:r.describe("Consent mode configuration: false (disabled), true (use defaults), or custom mapping").optional(),como_advanced:i.union([i.boolean(),i.number()]).describe("Advanced consent mode (non-EU): emit denied default at page load with wait_for_update (true=500ms, or a number of ms)").optional(),ga4:s.describe("GA4-specific configuration settings (like { measurementId: G-XXXXXXXXXX })").optional(),ads:c.describe("Google Ads specific configuration settings (like { conversionId: AW-XXXXXXXXX })").optional(),gtm:l.describe("Google Tag Manager specific configuration settings (like { containerId: GTM-XXXXXXX })").optional()}).refine(e=>{var a,t,n;return(null==(a=e.ga4)?void 0:a.measurementId)||(null==(t=e.ads)?void 0:t.conversionId)||(null==(n=e.gtm)?void 0:n.containerId)},{message:"At least one Google tool must be configured (ga4.measurementId, ads.conversionId, or gtm.containerId)"});import{z as u}from"@walkeros/core/dev";var m=u.object({}),g=u.object({label:u.string().describe("Conversion label for this specific event").optional()}),v=u.object({}),X=u.object({ga4:m.describe("GA4-specific event mapping").optional(),ads:g.describe("Google Ads-specific event mapping").optional(),gtm:v.describe("GTM-specific event mapping").optional()}),_=n(p),b=n(X),h=n(s),y=n(c),f=n(l),A={};a(A,{env:()=>w,step:()=>E});var w={};a(w,{init:()=>G,push:()=>k,simulation:()=>C});var G={window:{dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},k={window:{gtag:Object.assign(()=>{},{}),dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},C=["call:window.gtag","call:window.dataLayer.push"],E={};a(E,{addToCart:()=>j,adsEnhancedConversions:()=>O,adsInit:()=>R,consentModeV2:()=>V,ga4Init:()=>I,ga4WithIncludeAll:()=>D,googleAdsConversion:()=>P,gtmDataLayerPush:()=>W,gtmInit:()=>x,multipleToolsSimultaneous:()=>q,pageView:()=>L,purchase:()=>T});import{getEvent as M,isObject as S}from"@walkeros/core";var U=17e11,I=(new Date(U),{title:"GA4 init",description:"Configures a GA4 property via its measurementId. gtag already exists here, so no `js` is sent: that would be a second, false initialisation signal.",in:{settings:{ga4:{measurementId:"G-XXXXXXXXXX"}}},out:[["gtag","config","G-XXXXXXXXXX",{}]]}),R={title:"Google Ads init",description:"Configures a Google Ads account via its conversionId. gtag already exists here, so no `js` is sent.",in:{settings:{ads:{conversionId:"AW-123456789",currency:"EUR"}}},out:[["gtag","config","AW-123456789"]]},x={title:"GTM init",description:"With script loading enabled the destination initializes the dataLayer, pushes the gtm.js start event, and loads the GTM container.",in:{loadScript:!0,settings:{gtm:{containerId:"GTM-XXXXXXX"}}},out:[["dataLayer.push",{"gtm.start":U,event:"gtm.js"}]]},T={title:"Purchase",description:"An order complete event is mapped to the GA4 purchase event with transaction details and nested product items.",in:M("order complete",{timestamp:1700000100}),mapping:{name:"purchase",include:["data","context"],data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>S(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},out:[["gtag","event","purchase",{transaction_id:"0rd3r1d",value:555,tax:73.76,shipping:5.22,currency:"EUR",items:[{item_id:"ers",item_name:"Everyday Ruck Snack",quantity:1},{item_id:"cc",item_name:"Cool Cap",quantity:1}],data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,context_shopping:"complete",send_to:"G-XXXXXXXXXX"}]]},j={title:"Add to cart",description:"A product add event is mapped to the GA4 add_to_cart event with item details and value.",in:M("product add",{timestamp:1700000101}),mapping:{name:"add_to_cart",include:["data"],data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},out:[["gtag","event","add_to_cart",{currency:"EUR",value:420,items:[{item_id:"ers",item_variant:"black",quantity:1}],data_id:"ers",data_name:"Everyday Ruck Snack",data_color:"black",data_size:"l",data_price:420,send_to:"G-XXXXXXXXXX"}]]},L={title:"Page view",description:"A page view event is forwarded as a GA4 page_view event with no additional mapping.",in:M("page view",{timestamp:1700000102}),mapping:void 0,out:[["gtag","event","page_view",{send_to:"G-XXXXXXXXXX"}]]},P={title:"Ads conversion",description:"An order complete event is sent as a Google Ads conversion with a configured label and transaction value.",in:M("order complete",{timestamp:1700000103}),mapping:{name:"PURCHASE_CONV",settings:{ads:{label:"PURCHASE_CONV"}},data:{map:{value:"data.total"}}},out:[["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555}]]},O={title:"Enhanced conversions",description:"enhancedConversions maps event fields into a gtag set user_data call sent immediately before the conversion event.",in:M("order complete",{timestamp:1700000109,data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555,customerEmail:"buyer@shop.com",customerPhone:"+1234567890"}}),mapping:{name:"PURCHASE_EC2",settings:{ads:{label:"PURCHASE_EC2"}},data:{map:{value:"data.total"}}},out:[["gtag","set","user_data",{email:"buyer@shop.com",phone_number:"+1234567890"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_EC2",currency:"EUR",value:555}]]},W={title:"GTM dataLayer push",description:"A page view event is pushed to window.dataLayer for GTM with the mapped event name and parameters.",in:M("page view",{timestamp:1700000104}),mapping:{name:"page_view",settings:{gtm:{}},data:{map:{page_title:"data.title",page_location:"data.domain"}}},out:[["dataLayer.push",{event:"page_view",page_title:"walkerOS documentation",page_location:"www.example.com"}]]},V={title:"Consent Mode v2",description:"A walker consent command with marketing and functional granted updates gtag Consent Mode v2 parameters.",command:"consent",in:{marketing:!0,functional:!0},out:[["gtag","consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied"}],["gtag","consent","update",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted"}]]},D={title:"GA4 include all",description:"Include flattens every event section into prefixed GA4 params, exposing data, context, user, source, and event fields.",in:M("page view",{id:"ev-1700000106",timestamp:1700000106,source:{type:"collector",schema:"4",count:1,trace:"1700000106abcdef1700000106abcdef"}}),mapping:{include:["data","context","globals","user","source","event"]},out:[["gtag","event","page_view",{data_domain:"www.example.com",data_title:"walkerOS documentation",data_referrer:"https://www.walkeros.io/",data_search:"?foo=bar",data_hash:"#hash",data_id:"/docs/",context_dev:"test",globals_pagegroup:"docs",user_device:"c00k13",user_session:"s3ss10n",source_type:"collector",source_schema:"4",source_count:1,source_trace:"1700000106abcdef1700000106abcdef",source_release_default:"4.7.0-next-1790722899482",event_entity:"page",event_action:"view",event_trigger:"load",event_id:"ev-1700000106",event_name:"page view",event_timestamp:1700000106,event_timing:3.14,send_to:"G-XXXXXXXXXX"}]]},q={title:"Multi-tool push",description:"A single order event fans out to GA4, Google Ads, and GTM from one mapping rule with per-tool settings.",in:M("order complete",{timestamp:1700000107}),mapping:{name:"purchase",include:["data"],settings:{ga4:{},ads:{label:"PURCHASE_CONV"},gtm:{}},data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}},out:[["gtag","event","purchase",{value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,send_to:"G-XXXXXXXXXX"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555,data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}],["dataLayer.push",{event:"purchase",value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}]]};export{A as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
|
|
1
|
+
var e=Object.defineProperty,a=(a,t)=>{for(var n in t)e(a,n,{get:t[n],enumerable:!0})},t={};a(t,{AdsSettingsSchema:()=>c,ConsentModeSchema:()=>r,GA4SettingsSchema:()=>s,GTMSettingsSchema:()=>l,MappingSchema:()=>X,SettingsSchema:()=>p,UserDataMappingSchema:()=>d,ads:()=>y,ga4:()=>h,gtm:()=>f,mapping:()=>b,settings:()=>_});import{zodToSchema as n}from"@walkeros/core/dev";import{z as i}from"@walkeros/core/dev";import{z as o}from"@walkeros/core/dev";var r=o.union([o.boolean(),o.record(o.string(),o.union([o.string(),o.array(o.string())]))]),s=o.object({measurementId:o.string().regex(/^G-[A-Z0-9]+$/,"Must be a valid GA4 Measurement ID (G-XXXXXXXXXX)").describe("GA4 Measurement ID from Google Analytics (like G-XXXXXXXXXX)"),debug:o.boolean().describe("Enable debug mode for GA4 (like true)").optional(),pageview:o.boolean().describe("Enable automatic pageview tracking (like true)").optional(),server_container_url:o.string().url().describe("Server-side GTM container URL (like https://server-container.com)").optional(),snakeCase:o.boolean().describe("Lowercase the event name and replace its spaces with underscores (like true). Applies to the event name only, never to parameter names").optional(),transport_url:o.string().url().describe("Custom transport URL for GA4 (like https://analytics.example.com/mp/collect)").optional(),data:o.any().describe("Custom data mapping configuration").optional()}),d=o.object({email:o.any().describe("Mapping value for user email (like user.email)").optional(),phone_number:o.any().describe("Mapping value for user phone number (like user.phone)").optional(),address:o.object({first_name:o.any().describe("Mapping value for first name (like data.firstName)").optional(),last_name:o.any().describe("Mapping value for last name (like data.lastName)").optional(),street:o.any().describe("Mapping value for street address").optional(),city:o.any().describe("Mapping value for city (like user.city)").optional(),region:o.any().describe("Mapping value for region/state (like user.region)").optional(),postal_code:o.any().describe("Mapping value for postal/zip code (like user.zip)").optional(),country:o.any().describe("Mapping value for country (like user.country)").optional()}).describe("Address mapping for enhanced conversions").optional()}),c=o.object({conversionId:o.string().regex(/^AW-[0-9]+$/,"Must be a valid Ads Conversion ID (AW-XXXXXXXXXX)").describe("Google Ads Conversion ID (required)"),currency:o.string().length(3).describe("Currency code (ISO 4217, e.g., USD, EUR)").optional(),data:o.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional(),enhancedConversions:d.describe("Enhanced conversions: maps event fields to Google user_data for improved measurement accuracy").optional()}),l=o.object({containerId:o.string().regex(/^GTM-[A-Z0-9]+$/,"Must be a valid GTM Container ID (GTM-XXXXXXX)").describe("GTM Container ID (required)"),dataLayer:o.string().describe("Custom dataLayer variable name (default: dataLayer)").optional(),domain:o.string().describe("Custom GTM domain for script loading").optional(),data:o.any().describe("Custom data mapping (WalkerOS.Mapping.Value | Values)").optional()}),p=i.object({como:r.describe("Consent mode configuration: false (disabled), true (use defaults), or custom mapping").optional(),como_advanced:i.union([i.boolean(),i.number()]).describe("Advanced consent mode (non-EU): emit denied default at page load with wait_for_update (true=500ms, or a number of ms)").optional(),ga4:s.describe("GA4-specific configuration settings (like { measurementId: G-XXXXXXXXXX })").optional(),ads:c.describe("Google Ads specific configuration settings (like { conversionId: AW-XXXXXXXXX })").optional(),gtm:l.describe("Google Tag Manager specific configuration settings (like { containerId: GTM-XXXXXXX })").optional()}).refine(e=>{var a,t,n;return(null==(a=e.ga4)?void 0:a.measurementId)||(null==(t=e.ads)?void 0:t.conversionId)||(null==(n=e.gtm)?void 0:n.containerId)},{message:"At least one Google tool must be configured (ga4.measurementId, ads.conversionId, or gtm.containerId)"});import{z as u}from"@walkeros/core/dev";var m=u.object({}),g=u.object({label:u.string().describe("Conversion label for this specific event").optional()}),v=u.object({}),X=u.object({ga4:m.describe("GA4-specific event mapping").optional(),ads:g.describe("Google Ads-specific event mapping").optional(),gtm:v.describe("GTM-specific event mapping").optional()}),_=n(p),b=n(X),h=n(s),y=n(c),f=n(l),A={};a(A,{env:()=>w,step:()=>E});var w={};a(w,{init:()=>G,push:()=>k,simulation:()=>C});var G={window:{dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},k={window:{gtag:Object.assign(()=>{},{}),dataLayer:[]},document:{createElement:()=>({src:"",setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},C=["call:window.gtag","call:window.dataLayer.push"],E={};a(E,{addToCart:()=>j,adsEnhancedConversions:()=>O,adsInit:()=>R,consentModeV2:()=>V,ga4Init:()=>I,ga4WithIncludeAll:()=>D,googleAdsConversion:()=>P,gtmDataLayerPush:()=>W,gtmInit:()=>x,multipleToolsSimultaneous:()=>q,pageView:()=>L,purchase:()=>T});import{getEvent as M,isObject as S}from"@walkeros/core";var U=17e11,I=(new Date(U),{title:"GA4 init",description:"Configures a GA4 property via its measurementId. gtag already exists here, so no `js` is sent: that would be a second, false initialisation signal.",in:{settings:{ga4:{measurementId:"G-XXXXXXXXXX"}}},out:[["gtag","config","G-XXXXXXXXXX",{}]]}),R={title:"Google Ads init",description:"Configures a Google Ads account via its conversionId. gtag already exists here, so no `js` is sent.",in:{settings:{ads:{conversionId:"AW-123456789",currency:"EUR"}}},out:[["gtag","config","AW-123456789"]]},x={title:"GTM init",description:"With script loading enabled the destination initializes the dataLayer, pushes the gtm.js start event, and loads the GTM container.",in:{loadScript:!0,settings:{gtm:{containerId:"GTM-XXXXXXX"}}},out:[["dataLayer.push",{"gtm.start":U,event:"gtm.js"}]]},T={title:"Purchase",description:"An order complete event is mapped to the GA4 purchase event with transaction details and nested product items.",in:M("order complete",{timestamp:1700000100}),mapping:{name:"purchase",include:["data","context"],data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>S(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},out:[["gtag","event","purchase",{transaction_id:"0rd3r1d",value:555,tax:73.76,shipping:5.22,currency:"EUR",items:[{item_id:"ers",item_name:"Everyday Ruck Snack",quantity:1},{item_id:"cc",item_name:"Cool Cap",quantity:1}],data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,context_shopping:"complete",send_to:"G-XXXXXXXXXX"}]]},j={title:"Add to cart",description:"A product add event is mapped to the GA4 add_to_cart event with item details and value.",in:M("product add",{timestamp:1700000101}),mapping:{name:"add_to_cart",include:["data"],data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},out:[["gtag","event","add_to_cart",{currency:"EUR",value:420,items:[{item_id:"ers",item_variant:"black",quantity:1}],data_id:"ers",data_name:"Everyday Ruck Snack",data_color:"black",data_size:"l",data_price:420,send_to:"G-XXXXXXXXXX"}]]},L={title:"Page view",description:"A page view event is forwarded as a GA4 page_view event with no additional mapping.",in:M("page view",{timestamp:1700000102}),mapping:void 0,out:[["gtag","event","page_view",{send_to:"G-XXXXXXXXXX"}]]},P={title:"Ads conversion",description:"An order complete event is sent as a Google Ads conversion with a configured label and transaction value.",in:M("order complete",{timestamp:1700000103}),mapping:{name:"PURCHASE_CONV",settings:{ads:{label:"PURCHASE_CONV"}},data:{map:{value:"data.total"}}},out:[["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555}]]},O={title:"Enhanced conversions",description:"enhancedConversions maps event fields into a gtag set user_data call sent immediately before the conversion event.",in:M("order complete",{timestamp:1700000109,data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555,customerEmail:"buyer@shop.com",customerPhone:"+1234567890"}}),mapping:{name:"PURCHASE_EC2",settings:{ads:{label:"PURCHASE_EC2"}},data:{map:{value:"data.total"}}},out:[["gtag","set","user_data",{email:"buyer@shop.com",phone_number:"+1234567890"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_EC2",currency:"EUR",value:555}]]},W={title:"GTM dataLayer push",description:"A page view event is pushed to window.dataLayer for GTM with the mapped event name and parameters.",in:M("page view",{timestamp:1700000104}),mapping:{name:"page_view",settings:{gtm:{}},data:{map:{page_title:"data.title",page_location:"data.domain"}}},out:[["dataLayer.push",{event:"page_view",page_title:"walkerOS documentation",page_location:"www.example.com"}]]},V={title:"Consent Mode v2",description:"A walker consent command with marketing and functional granted updates gtag Consent Mode v2 parameters.",command:"consent",in:{marketing:!0,functional:!0},out:[["gtag","consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied"}],["gtag","consent","update",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted"}]]},D={title:"GA4 include all",description:"Include flattens every event section into prefixed GA4 params, exposing data, context, user, source, and event fields.",in:M("page view",{id:"ev-1700000106",timestamp:1700000106,source:{type:"collector",schema:"4",count:1,trace:"1700000106abcdef1700000106abcdef"}}),mapping:{include:["data","context","globals","user","source","event"]},out:[["gtag","event","page_view",{data_domain:"www.example.com",data_title:"walkerOS documentation",data_referrer:"https://www.walkeros.io/",data_search:"?foo=bar",data_hash:"#hash",data_id:"/docs/",context_dev:"test",globals_pagegroup:"docs",user_device:"c00k13",user_session:"s3ss10n",source_type:"collector",source_schema:"4",source_count:1,source_trace:"1700000106abcdef1700000106abcdef",source_release_default:"4.7.0",event_entity:"page",event_action:"view",event_trigger:"load",event_id:"ev-1700000106",event_name:"page view",event_timestamp:1700000106,event_timing:3.14,send_to:"G-XXXXXXXXXX"}]]},q={title:"Multi-tool push",description:"A single order event fans out to GA4, Google Ads, and GTM from one mapping rule with per-tool settings.",in:M("order complete",{timestamp:1700000107}),mapping:{name:"purchase",include:["data"],settings:{ga4:{},ads:{label:"PURCHASE_CONV"},gtm:{}},data:{map:{value:"data.total",currency:{key:"data.currency",value:"EUR"}}}},out:[["gtag","event","purchase",{value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555,send_to:"G-XXXXXXXXXX"}],["gtag","event","conversion",{send_to:"AW-123456789/PURCHASE_CONV",currency:"EUR",value:555,data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}],["dataLayer.push",{event:"purchase",value:555,currency:"EUR",data_id:"0rd3r1d",data_currency:"EUR",data_shipping:5.22,data_taxes:73.76,data_total:555}]]};export{A as examples,t as schemas};//# sourceMappingURL=dev.mjs.map
|
package/dist/examples/index.js
CHANGED
|
@@ -422,7 +422,7 @@ var ga4WithIncludeAll = {
|
|
|
422
422
|
source_schema: "4",
|
|
423
423
|
source_count: 1,
|
|
424
424
|
source_trace: "1700000106abcdef1700000106abcdef",
|
|
425
|
-
source_release_default: "4.7.0
|
|
425
|
+
source_release_default: "4.7.0",
|
|
426
426
|
// event_* params from event properties
|
|
427
427
|
event_entity: "page",
|
|
428
428
|
event_action: "view",
|
package/dist/examples/index.mjs
CHANGED
|
@@ -401,7 +401,7 @@ var ga4WithIncludeAll = {
|
|
|
401
401
|
source_schema: "4",
|
|
402
402
|
source_count: 1,
|
|
403
403
|
source_trace: "1700000106abcdef1700000106abcdef",
|
|
404
|
-
source_release_default: "4.7.0
|
|
404
|
+
source_release_default: "4.7.0",
|
|
405
405
|
// event_* params from event properties
|
|
406
406
|
event_entity: "page",
|
|
407
407
|
event_action: "view",
|
package/dist/index.browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(o,{DestinationGtag:()=>J,default:()=>ne,destinationGtag:()=>te,resetConsentState:()=>X});var i=new Set,c="https://www.googletagmanager.com/gtag/js?id=";function s(e,t,n=globalThis.document){if(i.has(e))return;i.add(e);const r=(e,t)=>{const r=n.createElement("script");r.src=e,t&&(r.onerror=t),n.head.appendChild(r)};t?r(t,()=>r(c+e)):r(c+e)}function a(e){const t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag}var u=Object.defineProperty,f=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})};function l(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}f({},{stepId:()=>l});function d(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}f({},{getDestination:()=>d});f({},{Level:()=>p});var g,p=((g=p||{})[g.ERROR=0]="ERROR",g[g.WARN=1]="WARN",g[g.INFO=2]="INFO",g[g.DEBUG=3]="DEBUG",g);function w(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}f({},{getTransformer:()=>w});function m(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}f({},{getSource:()=>m});function y(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function v(e,t){return await e.get(t)}f({},{getStore:()=>y,getStoreValue:()=>v});var h={merge:!0,shallow:!0,extend:!0};function b(e,t={},n={}){n={...h,...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 O(e){return Array.isArray(e)}function j(e){return void 0!==e}function _(e){return"object"==typeof e&&null!==e&&!O(e)&&"[object Object]"===Object.prototype.toString.call(e)}function I(e){return"string"==typeof e}function P(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&O(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=P(e,t,n);i.push(r)}return i}if(o=_(o)||O(o)?o[t]:void 0,void 0===o)break}return j(o)?o:n}function R(e){return function(e){return"boolean"==typeof e}(e)||I(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!j(e)||O(e)&&e.every(R)||_(e)&&Object.values(e).every(R)}function A(e){return R(e)?e:void 0}function E(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}var k=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function $(e,t={},n={}){var r,o;if(!j(e))return;const i=_(e)&&e.consent||n.consent||(null==(r=n.collector)?void 0:r.consent),c=null!=(o=n.event)?o:_(e)?e:{};if(!n.collector)throw new Error("getMappingValue: context.collector is required");const s={event:c,mapping:t,collector:n.collector,logger:n.collector.logger,consent:i},a=O(t)?t:[t];for(const t of a){const r=await E(D,e=>{if(e instanceof k)throw e;n.collector&&n.collector.status.failed++,s.logger.error("mapping processing failed",{event:c,error:e})})(e,t,{...s,mapping:t});if(j(r))return r}}async function D(e,t,n){return(O(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=I(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:c,consent:s,fn:a,key:u,loop:f,map:l,set:d,validate:g,value:p}=i,w={...n,mapping:r};if(c&&!await E(c,e=>{if(e instanceof k)throw e;return w.logger.error("mapping condition failed",{event:w.event,error:e}),!1})(e,w))return;if(s&&!function(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}(s,w.consent))return p;let m=j(p)?p:e;if(f){const[t,n]=f,r="this"===t?[e]:await $(e,t,w);m=O(r)?(await Promise.all(r.map(e=>$(e,n,w)))).filter(j):void 0}else l?m=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,i=await $(e,r,w);return j(i)&&(o[n]=i),o},Promise.resolve({})):d?m=await Promise.all(d.map(t=>D(e,t,w))):u?m=P(e,u,p):a&&(m=await E(a,e=>{if(e instanceof k)throw e;w.logger.error("mapping fn failed",{event:w.event,error:e})})(e,w));g&&!await E(g,e=>{if(e instanceof k)throw e;return w.logger.error("mapping validate failed",{event:w.event,error:e}),!1})(m,w)&&(m=void 0);const y=A(m);return j(y)?y:A(p)},Promise.resolve(void 0))}var S="observe";function C(e){const t=(e.startsWith("call:")?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}function x(e){return"function"==typeof e}function G(e){return"object"==typeof e&&null!==e}function L(e){return G(e)&&"then"in e&&x(e.then)}var N=["name","length","prototype","arguments","caller"];function M(e,t){if(-1!==N.indexOf(t))return!1;let n=e;for(;x(n);){if(Object.prototype.hasOwnProperty.call(n,t))return!0;const e=Object.getPrototypeOf(n);if(!x(e)||!x(Object.getPrototypeOf(e)))return!1;n=e}return!1}function T(e,t){const n=Reflect.getOwnPropertyDescriptor(e,t);return!(n&&!n.configurable)||"value"in n&&!0===n.writable}function W(e,t){let n=e;for(const e of t){if(x(n)){if(!M(n,e))return!0;if(!T(n,e))return!1}else if(L(n)){if(!(e in n))return!0}else if(!G(n)||!(e in n))return!1;n=Reflect.get(n,e)}return x(n)}function U(e){const t={window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...e},n=e&&e[S];if(function(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}(n)){delete t[S];const e=function(e,t,n){const r=[],o=[],i=[];for(const n of t){const t=C(n);if(0===t.length)continue;const r=t.join(".");i.push({rest:t,fn:r}),W(e,t)||o.push(r)}const c=new WeakMap,s=new WeakSet;function a(e,t){for(const o of e)if(n)try{n(o,t)}catch(e){}else r.push({fn:o,args:t,ts:Date.now()})}function u(e,t){return 0===t.length||f(e)?e:L(e)&&!t.some(t=>t.rest[0]in e)?Promise.resolve(e).then(e=>u(e,t)):x(e)?m(e,[],t):G(e)?d(e,t):e}function f(e){return(G(e)||x(e))&&s.has(e)}function l(e,t){const n=[],r=[];for(const o of e)o.rest[0]===t&&(1===o.rest.length?n.includes(o.fn)||n.push(o.fn):r.push({rest:o.rest.slice(1),fn:o.fn}));return{leafs:n,deeper:r}}function d(e,t){var n;const r=t.map(e=>`${e.fn}:${e.rest.join(".")}`).join("|"),o=null!=(n=c.get(e))?n:new Map;c.set(e,o);const i=o.get(r);if(i)return i;const s=g(e,t);return o.set(r,s),s}function g(e,t){return x(e)?p(e,t):t.some(t=>!T(e,t.rest[0]))?function(e,t){const n=Object.create(Object.getPrototypeOf(e)),r=w(e,t,()=>o),o=new Proxy(n,{get:(e,t)=>r.get(t),set:(t,n,r)=>Reflect.set(e,n,r,e),has:(t,n)=>Reflect.has(e,n),ownKeys:()=>Reflect.ownKeys(e),getOwnPropertyDescriptor(t,n){const r=Reflect.getOwnPropertyDescriptor(e,n);return r&&{...r,configurable:!0}},defineProperty:(t,n,r)=>Reflect.defineProperty(e,n,r),deleteProperty:(t,n)=>Reflect.deleteProperty(e,n)});return s.add(o),o}(e,t):p(e,t)}function p(e,t){const n=w(e,t,()=>r),r=new Proxy(e,{get:(e,t)=>"string"!=typeof t||T(e,t)?n.get(t):Reflect.get(e,t,e),set:(e,t,n)=>Reflect.set(e,t,n,e)});return s.add(r),r}function w(e,t,n){const r=new Map;return{get(o){const i=Reflect.get(e,o,e);if("string"!=typeof o)return i;if(!x(i)&&!G(i))return i;if(f(i))return i;const c=r.get(o);if(c&&c.value===i)return c.out;const{leafs:s,deeper:a}=l(t,o);if(!(s.length>0||a.length>0)&&(!x(i)||function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return i;let u=i;return x(i)?u=m(i,s,a,{proxy:n(),target:e}):a.length>0&&(u=d(i,a)),r.set(o,{value:i,out:u}),u}}}function m(e,t,n,r){const o=()=>n.filter(t=>!M(e,t.rest[0])),i=new Map,c=new Proxy(e,{get(e,t){const r=Reflect.get(e,t,e);if("string"!=typeof t||!T(e,t))return r;if(!M(e,t))return r;const{leafs:o,deeper:s}=l(n,t);if(0===o.length&&0===s.length)return r;if(f(r))return r;const a=i.get(t);if(a&&a.value===r)return a.out;let u=r;return x(r)?u=m(r,o,s,{proxy:c,target:e}):G(r)&&s.length>0&&(u=d(r,s)),i.set(t,{value:r,out:u}),u},set:(e,t,n)=>Reflect.set(e,t,n,e),apply(e,n,i){a(t,i);const c=!r||n!==r.proxy&&void 0!==n?n:r.target;return u(Reflect.apply(e,c,i),o())},construct(e,n,r){a(t,n);const i=Reflect.construct(e,n,r===c?e:r),s=u(i,o());return G(s)||x(s)?s:i}});return s.add(c),c}return{env:g(e,i),calls:r,unresolved:o}}(t,n.paths,n.record).env,r=new Set;for(const e of n.paths){const n=C(e)[0];if(void 0===n)continue;const o=t[n];null!==o&&"object"==typeof o&&r.add(n)}const o=Array.from(r,t=>[t,e[t]]);for(const[e,n]of o)t[e]=n}return t}function z(e){return e.replace(/[^a-zA-Z0-9_]+/g,"_")}async function F(e,t,n,r,o){const i=_(t)?t:{},c=n.data?await $(e,n.data,{collector:o}):{},s=(null==r?void 0:r.data)?await $(e,r.data,{collector:o}):{},a=_(c)?c:{},u=_(s)?s:{};return b(b(i,a),u)}var q=new Map(Object.entries({source_platform:"breaks GA4 traffic attribution",user_id:"reserved by GA4; set identity via gtag config"}));var B="dataLayer";function K(e,t,n,r){const{window:o,document:i}=U(n),{containerId:c,dataLayer:s,domain:a}=e,u=s||B,f=o[u],l=O(f)?f:[];o[u]=l,t&&c&&(l.push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),function(e,t,n,r=globalThis.document){const o=n!=B?"&l="+n:"",i=r.createElement("script");i.src=t+e+o,r.head.appendChild(i)}(c,a||"https://www.googletagmanager.com/gtm.js?id=",u,i))}var V={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]};function Z(e){const{como:t=!0}=e;if(!1!==t)return!0===t?V:t}function H(e){const t=Z(e);if(!t)return;const n=function(e){const t=new Set;return Object.values(e).forEach(e=>{(Array.isArray(e)?e:[e]).forEach(e=>t.add(e))}),[...t]}(t);if(!n.length)return;const r={};n.forEach(e=>r[e]="denied");const{como_advanced:o}=e;return o&&(r.wait_for_update="number"==typeof o?o:500),r}var J={},Q=!1;function X(){Q=!1}function Y(e,t){const n=e.settings||{};if(Q)return;if(!function(e,t){return!!(e&&Object.keys(e).length>0)||!!t.como_advanced}(e.consent,n))return;const r=H(n);if(!r)return;const{window:o}=U(t),i=a(o);i&&(i("consent","default",r),Q=!0)}var ee,te={type:"google-gtag",calls:["call:window.gtag"],config:{settings:{}},init({config:e,env:t,logger:n}){const{settings:r={},loadScript:o}=e,{ga4:i,ads:c,gtm:u}=r;(null==i?void 0:i.measurementId)||(null==c?void 0:c.conversionId)||(null==u?void 0:u.containerId)||n.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId");const f=!!U(t).window.gtag;return Y(e,t),(null==i?void 0:i.measurementId)&&function(e,t,n,r,o=!1){const{window:i,document:c}=U(n),{measurementId:u,transport_url:f,server_container_url:l,scriptSrc:d,pageview:g,init:p}=e;if(u||r.throw("Config settings ga4.measurementId missing"),a(i),!1===p)return;t&&s(u,d,c);const w={};f&&(w.transport_url=f),l&&(w.server_container_url=l),!1===g&&(w.send_page_view=!1);const m=i.gtag;o||m("js",new Date),m("config",u,w)}(i,o,t,n,f),(null==c?void 0:c.conversionId)&&function(e,t,n,r,o=!1){const{window:i,document:c}=U(n),{conversionId:u}=e;u||r.throw("Config settings ads.conversionId missing"),e.currency||(e.currency="EUR"),t&&s(u,void 0,c),a(i);const f=i.gtag;o||f("js",new Date),e.enhancedConversions?f("config",u,{allow_enhanced_conversions:!0}):f("config",u)}(c,o,t,n,f),(null==u?void 0:u.containerId)&&K(u,o,t),e},async push(e,{config:t,rule:n={},data:r,env:o,collector:i,logger:c}){const{settings:s={}}=t,{ga4:a,ads:u,gtm:f}=s,l=n.settings||{},d=await F(e,r,t,a,i),g=await F(e,r,t,u,i),p=await F(e,r,t,f,i);let w;(null==a?void 0:a.measurementId)&&function(e,t,n,r,o){const{window:i}=U(r);t.measurementId||o.throw("Config settings ga4.measurementId missing");const c={};if(_(n))for(const[e,t]of Object.entries(n)){const n=z(e);if(!n){o.warn("GA4 param dropped: empty name");continue}const r=q.get(n);r?o.debug(`GA4 param "${n}" dropped: ${r}`):(n in c&&o.warn(`GA4 param "${n}" overwritten: "${e}" collides after normalization`),c[n]=t)}const s=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(e.name,!1!==t.snakeCase);c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0),(0,i.gtag)("event",s,c)}(e,a,d,o,c),(null==u?void 0:u.conversionId)&&(null==u?void 0:u.enhancedConversions)&&(w=await async function(e,t,n){const r=t.enhancedConversions;if(!r)return;const o={};if(r.email){const t=await $(e,r.email,{collector:n});t&&(o.email=t)}if(r.phone_number){const t=await $(e,r.phone_number,{collector:n});t&&(o.phone_number=t)}if(r.address){const t={};for(const[o,i]of Object.entries(r.address))if(i){const r=await $(e,i,{collector:n});r&&(t[o]=r)}Object.keys(t).length>0&&(o.address=t)}return Object.keys(o).length>0?o:void 0}(e,u,i)),(null==u?void 0:u.conversionId)&&n.name&&function(e,t,n={},r,o,i,c,s){const{conversionId:a,currency:u}=t,f=_(r)?r:{},l=n.label||o;l||c.throw("Config mapping ads.label missing");const d={send_to:`${a}/${l}`,currency:u||"EUR",...f},{window:g}=U(i),p=g.gtag;s&&p("set","user_data",s),p("event","conversion",d)}(0,u,l.ads,g,n.name,o,c,w),(null==f?void 0:f.containerId)&&function(e,t,n={},r,o){const{window:i}=U(o),c={event:e.name},s=t.dataLayer||B,a=i[s],u=O(a)?a:[];i[s]=u,u.push({...c,..._(r)?r:e})}(e,f,l.gtm,p,o)},on(e,t){var n;if("consent"!==e||!_(t.data))return;const r=t.data,o=(null==(n=t.config)?void 0:n.settings)||{},i=Z(o);if(!i)return;const{window:c}=U(t.env),s=c.gtag;if(!s)return;if(!Q){const e=H(o);e&&s("consent","default",e),Q=!0}const a={};Object.entries(r).forEach(([e,t])=>{const n=i[e];if(!n)return;const r=Array.isArray(n)?n:[n],o=t?"granted":"denied";r.forEach(e=>{a[e]=o})}),0!==Object.keys(a).length&&s("consent","update",a)}},ne=te;return ee=o,((o,i,c,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let a of n(i))r.call(o,a)||a===c||e(o,a,{get:()=>i[a],enumerable:!(s=t(i,a))||s.enumerable});return o})(e({},"__esModule",{value:!0}),ee)})();
|
|
1
|
+
"use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(o,{DestinationGtag:()=>Q,default:()=>re,destinationGtag:()=>ne,resetConsentState:()=>Y});var c=new Set,i="https://www.googletagmanager.com/gtag/js?id=";function s(e,t,n=globalThis.document){if(c.has(e))return;c.add(e);const r=(e,t)=>{const r=n.createElement("script");r.src=e,t&&(r.onerror=t),n.head.appendChild(r)};t?r(t,()=>r(i+e)):r(i+e)}function a(e){const t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag}var u=Object.defineProperty,f=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0})};function l(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}f({},{stepId:()=>l});function d(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}f({},{getDestination:()=>d});f({},{Level:()=>p});var g,p=((g=p||{})[g.ERROR=0]="ERROR",g[g.WARN=1]="WARN",g[g.INFO=2]="INFO",g[g.DEBUG=3]="DEBUG",g);function w(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}f({},{getTransformer:()=>w});function v(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}f({},{getSource:()=>v});function y(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function m(e,t){return await e.get(t)}f({},{getStore:()=>y,getStoreValue:()=>m});var h={merge:!0,shallow:!0,extend:!0};function b(e,t={},n={}){n={...h,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const c=e[r];return n.merge&&Array.isArray(c)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...c]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function O(e){return Array.isArray(e)}function j(e){return void 0!==e}function _(e){return"object"==typeof e&&null!==e&&!O(e)&&"[object Object]"===Object.prototype.toString.call(e)}function I(e){return"string"==typeof e}function P(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&O(o)){const t=r.slice(e+1).join("."),c=[];for(const e of o){const r=P(e,t,n);c.push(r)}return c}if(o=_(o)||O(o)?o[t]:void 0,void 0===o)break}return j(o)?o:n}function R(e){return function(e){return"boolean"==typeof e}(e)||I(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!j(e)||O(e)&&e.every(R)||_(e)&&Object.values(e).every(R)}function A(e){return R(e)?e:void 0}function E(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}var k=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function $(e,t={},n={}){var r,o;if(!j(e))return;const c=_(e)&&e.consent||n.consent||(null==(r=n.collector)?void 0:r.consent),i=null!=(o=n.event)?o:_(e)?e:{};return D(e,t,{...n,consent:c,event:i})}async function D(e,t={},n={}){var r,o;const c=n.consent||(null==(r=n.collector)?void 0:r.consent),i=null!=(o=n.event)?o:{};if(!n.collector)throw new Error("getMappingValue: context.collector is required");const s={event:i,mapping:t,collector:n.collector,logger:n.collector.logger,consent:c},a=O(t)?t:[t];for(const t of a){const r=await E(S,e=>{if(e instanceof k)throw e;n.collector&&n.collector.status.failed++,s.logger.error("mapping processing failed",{event:i,error:e})})(e,t,{...s,mapping:t});if(j(r))return r}}async function S(e,t,n){return(O(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const c=I(r)?{key:r}:r;if(!Object.keys(c).length)return;const{condition:i,consent:s,fn:a,key:u,loop:f,map:l,set:d,validate:g,value:p}=c,w={...n,mapping:r};if(i&&!await E(i,e=>{if(e instanceof k)throw e;return w.logger.error("mapping condition failed",{event:w.event,error:e}),!1})(e,w))return;if(s&&!function(e,t={},n={}){const r={...t,...n},o={};let c=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(c=!0))}),!!c&&o}(s,w.consent))return p;let v=j(p)?p:e;if(f){const[t,n]=f,r="this"===t?[e]:await D(e,t,w);v=O(r)?(await Promise.all(r.map(e=>$(e,n,w)))).filter(j):void 0}else l?v=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,c=await D(e,r,w);return j(c)&&(o[n]=c),o},Promise.resolve({})):d?v=await Promise.all(d.map(t=>S(e,t,w))):u?v=P(e,u,p):a&&(v=await E(a,e=>{if(e instanceof k)throw e;w.logger.error("mapping fn failed",{event:w.event,error:e})})(e,w));g&&!await E(g,e=>{if(e instanceof k)throw e;return w.logger.error("mapping validate failed",{event:w.event,error:e}),!1})(v,w)&&(v=void 0);const y=A(v);return j(y)?y:A(p)},Promise.resolve(void 0))}var C="observe";function x(e){const t=(e.startsWith("call:")?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}function G(e){return"function"==typeof e}function L(e){return"object"==typeof e&&null!==e}function N(e){return L(e)&&"then"in e&&G(e.then)}var M=["name","length","prototype","arguments","caller"];function T(e,t){if(-1!==M.indexOf(t))return!1;let n=e;for(;G(n);){if(Object.prototype.hasOwnProperty.call(n,t))return!0;const e=Object.getPrototypeOf(n);if(!G(e)||!G(Object.getPrototypeOf(e)))return!1;n=e}return!1}function W(e,t){const n=Reflect.getOwnPropertyDescriptor(e,t);return!(n&&!n.configurable)||"value"in n&&!0===n.writable}function U(e,t){let n=e;for(const e of t){if(G(n)){if(!T(n,e))return!0;if(!W(n,e))return!1}else if(N(n)){if(!(e in n))return!0}else if(!L(n)||!(e in n))return!1;n=Reflect.get(n,e)}return G(n)}function z(e){const t={window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document,...e},n=e&&e[C];if(function(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}(n)){delete t[C];const e=function(e,t,n){const r=[],o=[],c=[];for(const n of t){const t=x(n);if(0===t.length)continue;const r=t.join(".");c.push({rest:t,fn:r}),U(e,t)||o.push(r)}const i=new WeakMap,s=new WeakSet;function a(e,t){for(const o of e)if(n)try{n(o,t)}catch(e){}else r.push({fn:o,args:t,ts:Date.now()})}function u(e,t){return 0===t.length||f(e)?e:N(e)&&!t.some(t=>t.rest[0]in e)?Promise.resolve(e).then(e=>u(e,t)):G(e)?v(e,[],t):L(e)?d(e,t):e}function f(e){return(L(e)||G(e))&&s.has(e)}function l(e,t){const n=[],r=[];for(const o of e)o.rest[0]===t&&(1===o.rest.length?n.includes(o.fn)||n.push(o.fn):r.push({rest:o.rest.slice(1),fn:o.fn}));return{leafs:n,deeper:r}}function d(e,t){var n;const r=t.map(e=>`${e.fn}:${e.rest.join(".")}`).join("|"),o=null!=(n=i.get(e))?n:new Map;i.set(e,o);const c=o.get(r);if(c)return c;const s=g(e,t);return o.set(r,s),s}function g(e,t){return G(e)?p(e,t):t.some(t=>!W(e,t.rest[0]))?function(e,t){const n=Object.create(Object.getPrototypeOf(e)),r=w(e,t,()=>o),o=new Proxy(n,{get:(e,t)=>r.get(t),set:(t,n,r)=>Reflect.set(e,n,r,e),has:(t,n)=>Reflect.has(e,n),ownKeys:()=>Reflect.ownKeys(e),getOwnPropertyDescriptor(t,n){const r=Reflect.getOwnPropertyDescriptor(e,n);return r&&{...r,configurable:!0}},defineProperty:(t,n,r)=>Reflect.defineProperty(e,n,r),deleteProperty:(t,n)=>Reflect.deleteProperty(e,n)});return s.add(o),o}(e,t):p(e,t)}function p(e,t){const n=w(e,t,()=>r),r=new Proxy(e,{get:(e,t)=>"string"!=typeof t||W(e,t)?n.get(t):Reflect.get(e,t,e),set:(e,t,n)=>Reflect.set(e,t,n,e)});return s.add(r),r}function w(e,t,n){const r=new Map;return{get(o){const c=Reflect.get(e,o,e);if("string"!=typeof o)return c;if(!G(c)&&!L(c))return c;if(f(c))return c;const i=r.get(o);if(i&&i.value===c)return i.out;const{leafs:s,deeper:a}=l(t,o);if(!(s.length>0||a.length>0)&&(!G(c)||function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return c;let u=c;return G(c)?u=v(c,s,a,{proxy:n(),target:e}):a.length>0&&(u=d(c,a)),r.set(o,{value:c,out:u}),u}}}function v(e,t,n,r){const o=()=>n.filter(t=>!T(e,t.rest[0])),c=new Map,i=new Proxy(e,{get(e,t){const r=Reflect.get(e,t,e);if("string"!=typeof t||!W(e,t))return r;if(!T(e,t))return r;const{leafs:o,deeper:s}=l(n,t);if(0===o.length&&0===s.length)return r;if(f(r))return r;const a=c.get(t);if(a&&a.value===r)return a.out;let u=r;return G(r)?u=v(r,o,s,{proxy:i,target:e}):L(r)&&s.length>0&&(u=d(r,s)),c.set(t,{value:r,out:u}),u},set:(e,t,n)=>Reflect.set(e,t,n,e),apply(e,n,c){a(t,c);const i=!r||n!==r.proxy&&void 0!==n?n:r.target;return u(Reflect.apply(e,i,c),o())},construct(e,n,r){a(t,n);const c=Reflect.construct(e,n,r===i?e:r),s=u(c,o());return L(s)||G(s)?s:c}});return s.add(i),i}return{env:g(e,c),calls:r,unresolved:o}}(t,n.paths,n.record).env,r=new Set;for(const e of n.paths){const n=x(e)[0];if(void 0===n)continue;const o=t[n];null!==o&&"object"==typeof o&&r.add(n)}const o=Array.from(r,t=>[t,e[t]]);for(const[e,n]of o)t[e]=n}return t}function F(e){return e.replace(/[^a-zA-Z0-9_]+/g,"_")}async function q(e,t,n,r,o){const c=_(t)?t:{},i=n.data?await $(e,n.data,{collector:o}):{},s=(null==r?void 0:r.data)?await $(e,r.data,{collector:o}):{},a=_(i)?i:{},u=_(s)?s:{};return b(b(c,a),u)}var B=new Map(Object.entries({source_platform:"breaks GA4 traffic attribution",user_id:"reserved by GA4; set identity via gtag config"}));var K="dataLayer";function V(e,t,n,r){const{window:o,document:c}=z(n),{containerId:i,dataLayer:s,domain:a}=e,u=s||K,f=o[u],l=O(f)?f:[];o[u]=l,t&&i&&(l.push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),function(e,t,n,r=globalThis.document){const o=n!=K?"&l="+n:"",c=r.createElement("script");c.src=t+e+o,r.head.appendChild(c)}(i,a||"https://www.googletagmanager.com/gtm.js?id=",u,c))}var Z={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]};function H(e){const{como:t=!0}=e;if(!1!==t)return!0===t?Z:t}function J(e){const t=H(e);if(!t)return;const n=function(e){const t=new Set;return Object.values(e).forEach(e=>{(Array.isArray(e)?e:[e]).forEach(e=>t.add(e))}),[...t]}(t);if(!n.length)return;const r={};n.forEach(e=>r[e]="denied");const{como_advanced:o}=e;return o&&(r.wait_for_update="number"==typeof o?o:500),r}var Q={},X=!1;function Y(){X=!1}function ee(e,t){const n=e.settings||{};if(X)return;if(!function(e,t){return!!(e&&Object.keys(e).length>0)||!!t.como_advanced}(e.consent,n))return;const r=J(n);if(!r)return;const{window:o}=z(t),c=a(o);c&&(c("consent","default",r),X=!0)}var te,ne={type:"google-gtag",calls:["call:window.gtag"],config:{settings:{}},init({config:e,env:t,logger:n}){const{settings:r={},loadScript:o}=e,{ga4:c,ads:i,gtm:u}=r;(null==c?void 0:c.measurementId)||(null==i?void 0:i.conversionId)||(null==u?void 0:u.containerId)||n.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId");const f=!!z(t).window.gtag;return ee(e,t),(null==c?void 0:c.measurementId)&&function(e,t,n,r,o=!1){const{window:c,document:i}=z(n),{measurementId:u,transport_url:f,server_container_url:l,scriptSrc:d,pageview:g,init:p}=e;if(u||r.throw("Config settings ga4.measurementId missing"),a(c),!1===p)return;t&&s(u,d,i);const w={};f&&(w.transport_url=f),l&&(w.server_container_url=l),!1===g&&(w.send_page_view=!1);const v=c.gtag;o||v("js",new Date),v("config",u,w)}(c,o,t,n,f),(null==i?void 0:i.conversionId)&&function(e,t,n,r,o=!1){const{window:c,document:i}=z(n),{conversionId:u}=e;u||r.throw("Config settings ads.conversionId missing"),e.currency||(e.currency="EUR"),t&&s(u,void 0,i),a(c);const f=c.gtag;o||f("js",new Date),e.enhancedConversions?f("config",u,{allow_enhanced_conversions:!0}):f("config",u)}(i,o,t,n,f),(null==u?void 0:u.containerId)&&V(u,o,t),e},async push(e,{config:t,rule:n={},data:r,env:o,collector:c,logger:i}){const{settings:s={}}=t,{ga4:a,ads:u,gtm:f}=s,l=n.settings||{},d=await q(e,r,t,a,c),g=await q(e,r,t,u,c),p=await q(e,r,t,f,c);let w;(null==a?void 0:a.measurementId)&&function(e,t,n,r,o){const{window:c}=z(r);t.measurementId||o.throw("Config settings ga4.measurementId missing");const i={};if(_(n))for(const[e,t]of Object.entries(n)){const n=F(e);if(!n){o.warn("GA4 param dropped: empty name");continue}const r=B.get(n);r?o.debug(`GA4 param "${n}" dropped: ${r}`):(n in i&&o.warn(`GA4 param "${n}" overwritten: "${e}" collides after normalization`),i[n]=t)}const s=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(e.name,!1!==t.snakeCase);i.send_to=t.measurementId,t.debug&&(i.debug_mode=!0),(0,c.gtag)("event",s,i)}(e,a,d,o,i),(null==u?void 0:u.conversionId)&&(null==u?void 0:u.enhancedConversions)&&(w=await async function(e,t,n){const r=t.enhancedConversions;if(!r)return;const o={};if(r.email){const t=await $(e,r.email,{collector:n});t&&(o.email=t)}if(r.phone_number){const t=await $(e,r.phone_number,{collector:n});t&&(o.phone_number=t)}if(r.address){const t={};for(const[o,c]of Object.entries(r.address))if(c){const r=await $(e,c,{collector:n});r&&(t[o]=r)}Object.keys(t).length>0&&(o.address=t)}return Object.keys(o).length>0?o:void 0}(e,u,c)),(null==u?void 0:u.conversionId)&&n.name&&function(e,t,n={},r,o,c,i,s){const{conversionId:a,currency:u}=t,f=_(r)?r:{},l=n.label||o;l||i.throw("Config mapping ads.label missing");const d={send_to:`${a}/${l}`,currency:u||"EUR",...f},{window:g}=z(c),p=g.gtag;s&&p("set","user_data",s),p("event","conversion",d)}(0,u,l.ads,g,n.name,o,i,w),(null==f?void 0:f.containerId)&&function(e,t,n={},r,o){const{window:c}=z(o),i={event:e.name},s=t.dataLayer||K,a=c[s],u=O(a)?a:[];c[s]=u,u.push({...i,..._(r)?r:e})}(e,f,l.gtm,p,o)},on(e,t){var n;if("consent"!==e||!_(t.data))return;const r=t.data,o=(null==(n=t.config)?void 0:n.settings)||{},c=H(o);if(!c)return;const{window:i}=z(t.env),s=i.gtag;if(!s)return;if(!X){const e=J(o);e&&s("consent","default",e),X=!0}const a={};Object.entries(r).forEach(([e,t])=>{const n=c[e];if(!n)return;const r=Array.isArray(n)?n:[n],o=t?"granted":"denied";r.forEach(e=>{a[e]=o})}),0!==Object.keys(a).length&&s("consent","update",a)}},re=ne;return te=o,((o,c,i,s)=>{if(c&&"object"==typeof c||"function"==typeof c)for(let a of n(c))r.call(o,a)||a===i||e(o,a,{get:()=>c[a],enumerable:!(s=t(c,a))||s.enumerable});return o})(e({},"__esModule",{value:!0}),te)})();
|
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 _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return 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 _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&_set_prototype_of(o,r.prototype),o},_construct.apply(null,arguments)}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 _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}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 _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}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 _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}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),c=Object.defineProperty;return c(i,"next",{value:u(0)}),c(i,"throw",{value:u(1)}),c(i,"return",{value:u(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function u(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,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!L.has(e)){L.add(e);var n=function(e,t){var n=r.createElement("script");n.src=e,t&&(n.onerror=t),r.head.appendChild(n)};t?n(t,function(){return n(N+e)}):n(N+e)}},t=function(e){var t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag},r=function(e,t){if("collector"===e)return"collector";if(!t)throw new Error("stepId(".concat(e,") requires an id"));return"".concat(e,".").concat(t)},n=function(e,t){var r=e.destinations[t];if(!r)throw new Error("Destination not found: ".concat(t));return r},o=function(e,t){var r=e.transformers[t];if(!r)throw new Error("Transformer not found: ".concat(t));return r},a=function(e,t){var r=e.sources[t];if(!r)throw new Error("Source not found: ".concat(t));return r},i=function(e,t){var r=e.stores[t];if(!r)throw new Error("Store not found: ".concat(t));return r},c=function(e,t){return _async_to_generator(function(){return _ts_generator(this,function(r){switch(r.label){case 0:return[4,e.get(t)];case 1:return[2,r.sent()]}})})()},u=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({},B,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)},l=function(e){return Array.isArray(e)},s=function(e){return void 0!==e},f=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!l(e)&&"[object Object]"===Object.prototype.toString.call(e)},_=function(e){return"string"==typeof e},d=function(e){return q(e)?e:void 0},p=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]}})})()}},v=function(e){return _async_to_generator(function(e){var t,r,n,o,a,i,c,u,_,d,v,y,g,b,h,m,w=arguments;return _ts_generator(this,function(j){switch(j.label){case 0:if(t=w.length>1&&void 0!==w[1]?w[1]:{},r=w.length>2&&void 0!==w[2]?w[2]:{},!s(e))return[2];if(a=f(e)&&e.consent||r.consent||(null===(o=r.collector)||void 0===o?void 0:o.consent),i=null!==(n=r.event)&&void 0!==n?n:f(e)?e:{},!r.collector)throw new Error("getMappingValue: context.collector is required");c={event:i,mapping:t,collector:r.collector,logger:r.collector.logger,consent:a},u=l(t)?t:[t],_=!0,d=!1,v=void 0,j.label=1;case 1:j.trys.push([1,6,7,8]),y=u[Symbol.iterator](),j.label=2;case 2:return(_=(g=y.next()).done)?[3,5]:(b=g.value,[4,p(Z,function(e){if(_instanceof(e,V))throw e;r.collector&&r.collector.status.failed++,c.logger.error("mapping processing failed",{event:i,error:e})})(e,b,_object_spread_props(_object_spread({},c),{mapping:b}))]);case 3:if(h=j.sent(),s(h))return[2,h];j.label=4;case 4:return _=!0,[3,2];case 5:return[3,8];case 6:return m=j.sent(),d=!0,v=m,[3,8];case 7:try{_||null==y.return||y.return()}finally{if(d)throw v}return[7];case 8:return[2]}})}).apply(this,arguments)},y=function(e){var t=(e.startsWith(J)?e.slice(5):e).split(".");return t.some(function(e){return""===e})?[]:t},g=function(e){return"function"==typeof e},b=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e},h=function(e){return b(e)&&"then"in e&&g(e.then)},m=function(e,t){if(-1!==Q.indexOf(t))return!1;for(var r=e;g(r);){if(Object.prototype.hasOwnProperty.call(r,t))return!0;var n=Object.getPrototypeOf(r);if(!g(n)||!g(Object.getPrototypeOf(n)))return!1;r=n}return!1},w=function(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);return!(r&&!r.configurable)||"value"in r&&!0===r.writable},j=function(e,t){var r=e,n=!0,o=!1,a=void 0;try{for(var i,c=t[Symbol.iterator]();!(n=(i=c.next()).done);n=!0){var u=i.value;if(g(r)){if(!m(r,u))return!0;if(!w(r,u))return!1}else if(h(r)){if(!(u in r))return!0}else if(!b(r)||!(u in r))return!1;r=Reflect.get(r,u)}}catch(e){o=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return g(r)},O=function(e){var t=_object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e),r=e&&e[H];if(function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;var t=e.paths,r=e.record;return Array.isArray(t)&&t.every(function(e){return"string"==typeof e})&&"function"==typeof r}(r)){delete t[H];var n=function(e,t,r){var n=[],o=[],a=[],i=!0,c=!1,u=void 0;try{for(var l,s=t[Symbol.iterator]();!(i=(l=s.next()).done);i=!0){var f=l.value,_=y(f);if(0!==_.length){var d=_.join(".");a.push({rest:_,fn:d}),j(e,_)||o.push(d)}}}catch(e){c=!0,u=e}finally{try{i||null==s.return||s.return()}finally{if(c)throw u}}var p=new WeakMap,v=new WeakSet;function O(e,t){var o=!0,a=!1,i=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;if(r)try{r(l,t)}catch(e){}else n.push({fn:l,args:t,ts:Date.now()})}}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}}function S(e,t){return 0===t.length||P(e)?e:h(e)&&!t.some(function(t){return t.rest[0]in e})?Promise.resolve(e).then(function(e){return S(e,t)}):g(e)?k(e,[],t):b(e)?A(e,t):e}function P(e){return(b(e)||g(e))&&v.has(e)}function I(e,t){var r=[],n=[],o=!0,a=!1,i=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;l.rest[0]===t&&(1===l.rest.length?r.includes(l.fn)||r.push(l.fn):n.push({rest:l.rest.slice(1),fn:l.fn}))}}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}return{leafs:r,deeper:n}}function A(e,t){var r,n=t.map(function(e){return"".concat(e.fn,":").concat(e.rest.join("."))}).join("|"),o=null!==(r=p.get(e))&&void 0!==r?r:new Map;p.set(e,o);var a=o.get(n);if(a)return a;var i=E(e,t);return o.set(n,i),i}function E(e,t){return g(e)?x(e,t):t.some(function(t){return!w(e,t.rest[0])})?function(e,t){var r=Object.create(Object.getPrototypeOf(e)),n=R(e,t,function(){return o}),o=new Proxy(r,{get:function(e,t){return n.get(t)},set:function(t,r,n){return Reflect.set(e,r,n,e)},has:function(t,r){return Reflect.has(e,r)},ownKeys:function(){return Reflect.ownKeys(e)},getOwnPropertyDescriptor:function(t,r){var n=Reflect.getOwnPropertyDescriptor(e,r);return n&&_object_spread_props(_object_spread({},n),{configurable:!0})},defineProperty:function(t,r,n){return Reflect.defineProperty(e,r,n)},deleteProperty:function(t,r){return Reflect.deleteProperty(e,r)}});return v.add(o),o}(e,t):x(e,t)}function x(e,t){var r=R(e,t,function(){return n}),n=new Proxy(e,{get:function(e,t){return"string"!=typeof t||w(e,t)?r.get(t):Reflect.get(e,t,e)},set:function(e,t,r){return Reflect.set(e,t,r,e)}});return v.add(n),n}function R(e,t,r){var n=new Map;return{get:function(o){var a=Reflect.get(e,o,e);if("string"!=typeof o)return a;if(!g(a)&&!b(a))return a;if(P(a))return a;var i=n.get(o);if(i&&i.value===a)return i.out;var c=I(t,o),u=c.leafs,l=c.deeper;if(!(u.length>0||l.length>0)&&(!g(a)||function(e){if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return a;var s=a;return g(a)?s=k(a,u,l,{proxy:r(),target:e}):l.length>0&&(s=A(a,l)),n.set(o,{value:a,out:s}),s}}}function k(e,t,r,n){var o=function(){return r.filter(function(t){return!m(e,t.rest[0])})},a=new Map,i=new Proxy(e,{get:function(e,t){var n=Reflect.get(e,t,e);if("string"!=typeof t||!w(e,t))return n;if(!m(e,t))return n;var o=I(r,t),c=o.leafs,u=o.deeper;if(0===c.length&&0===u.length)return n;if(P(n))return n;var l=a.get(t);if(l&&l.value===n)return l.out;var s=n;return g(n)?s=k(n,c,u,{proxy:i,target:e}):b(n)&&u.length>0&&(s=A(n,u)),a.set(t,{value:n,out:s}),s},set:function(e,t,r){return Reflect.set(e,t,r,e)},apply:function(e,r,a){O(t,a);var i=!n||r!==n.proxy&&void 0!==r?r:n.target;return S(Reflect.apply(e,i,a),o())},construct:function(e,r,n){O(t,r);var a=Reflect.construct(e,r,n===i?e:n),c=S(a,o());return b(c)||g(c)?c:a}});return v.add(i),i}return{env:E(e,a),calls:n,unresolved:o}}(t,r.paths,r.record).env,o=new Set,a=!0,i=!1,c=void 0;try{for(var u,l=r.paths[Symbol.iterator]();!(a=(u=l.next()).done);a=!0){var s=u.value,f=y(s)[0];if(void 0!==f){var _=t[f];null!==_&&"object"==(void 0===_?"undefined":_type_of(_))&&o.add(f)}}}catch(e){i=!0,c=e}finally{try{a||null==l.return||l.return()}finally{if(i)throw c}}var d=Array.from(o,function(e){return[e,n[e]]}),p=!0,v=!1,O=void 0;try{for(var S,P=d[Symbol.iterator]();!(p=(S=P.next()).done);p=!0){var I=_sliced_to_array(S.value,2),A=I[0],E=I[1];t[A]=E}}catch(e){v=!0,O=e}finally{try{p||null==P.return||P.return()}finally{if(v)throw O}}}return t},S=function(e){return e.replace(/[^a-zA-Z0-9_]+/g,"_")},P=function(e,t,r,n,o){return _async_to_generator(function(){var a,i,c,l,s,_,d;return _ts_generator(this,function(p){switch(p.label){case 0:return a=f(t)?t:{},r.data?[4,v(e,r.data,{collector:o})]:[3,2];case 1:return c=p.sent(),[3,3];case 2:c={},p.label=3;case 3:return i=c,(null==n?void 0:n.data)?[4,v(e,n.data,{collector:o})]:[3,5];case 4:return s=p.sent(),[3,6];case 5:s={},p.label=6;case 6:return l=s,_=f(i)?i:{},d=f(l)?l:{},[2,u(u(a,_),d)]}})})()},I=function(e,t,r){return _async_to_generator(function(){var n,o,a,i,c,u,l,s,f,_,d,p,y,g,b;return _ts_generator(this,function(h){switch(h.label){case 0:return(n=t.enhancedConversions)?(o={},n.email?[4,v(e,n.email,{collector:r})]:[3,2]):[2,void 0];case 1:(a=h.sent())&&(o.email=a),h.label=2;case 2:return n.phone_number?[4,v(e,n.phone_number,{collector:r})]:[3,4];case 3:(i=h.sent())&&(o.phone_number=i),h.label=4;case 4:if(!n.address)return[3,13];c={},u=!0,l=!1,s=void 0,h.label=5;case 5:h.trys.push([5,10,11,12]),f=Object.entries(n.address)[Symbol.iterator](),h.label=6;case 6:return(u=(_=f.next()).done)?[3,9]:(d=_sliced_to_array(_.value,2),p=d[0],(y=d[1])?[4,v(e,y,{collector:r})]:[3,8]);case 7:(g=h.sent())&&(c[p]=g),h.label=8;case 8:return u=!0,[3,6];case 9:return[3,12];case 10:return b=h.sent(),l=!0,s=b,[3,12];case 11:try{u||null==f.return||f.return()}finally{if(l)throw s}return[7];case 12:Object.keys(c).length>0&&(o.address=c),h.label=13;case 13:return[2,Object.keys(o).length>0?o:void 0]}})})()},A=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,o=r!=Y?"&l="+r:"",a=n.createElement("script");a.src=t+e+o,n.head.appendChild(a)},E=function(e){var t=e.como,r=void 0===t||t;if(!1!==r)return!0===r?te:r},x=function(e){var t=E(e);if(t){var r=function(e){var t=new Set;return Object.values(e).forEach(function(e){(Array.isArray(e)?e:[e]).forEach(function(e){return t.add(e)})}),_to_consumable_array(t)}(t);if(r.length){var n={};r.forEach(function(e){return n[e]="denied"});var o=e.como_advanced;return o&&(n.wait_for_update="number"==typeof o?o:re),n}}},R=function(){oe=!1},k=function(e,r){var n=e.settings||{};if(!oe&&function(e,t){return!!(e&&Object.keys(e).length>0)||!!t.como_advanced}(e.consent,n)){var o=x(n);if(o){var a=O(r).window,i=t(a);i&&(i("consent","default",o),oe=!0)}}},D=Object.defineProperty,C=Object.getOwnPropertyDescriptor,G=Object.getOwnPropertyNames,T=Object.prototype.hasOwnProperty,M={};!function(e,t){for(var r in t)D(e,r,{get:t[r],enumerable:!0})}(M,{DestinationGtag:function(){return ne},default:function(){return ie},destinationGtag:function(){return ae},resetConsentState:function(){return R}});var L=new Set,N="https://www.googletagmanager.com/gtag/js?id=",z=Object.defineProperty,F=function(e,t){for(var r in t)z(e,r,{get:t[r],enumerable:!0})};F({},{stepId:function(){return r}});F({},{getDestination:function(){return n}});F({},{Level:function(){return W}});var U,W=((U=W||{})[U.ERROR=0]="ERROR",U[U.WARN=1]="WARN",U[U.INFO=2]="INFO",U[U.DEBUG=3]="DEBUG",U);F({},{getTransformer:function(){return o}});F({},{getSource:function(){return a}});F({},{getStore:function(){return i},getStoreValue:function(){return c}});var B={merge:!0,shallow:!0,extend:!0};function K(e){for(var t=arguments.length>2?arguments[2]:void 0,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),n=e,o=0;o<r.length;o++){var a=r[o];if("*"===a&&l(n)){var i=r.slice(o+1).join("."),c=[],u=!0,_=!1,d=void 0;try{for(var p,v=n[Symbol.iterator]();!(u=(p=v.next()).done);u=!0){var y=K(p.value,i,t);c.push(y)}}catch(e){_=!0,d=e}finally{try{u||null==v.return||v.return()}finally{if(_)throw d}}return c}if(void 0===(n=f(n)||l(n)?n[a]:void 0))break}return s(n)?n:t}function q(e){return function(e){return"boolean"==typeof e}(e)||_(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!s(e)||l(e)&&e.every(q)||f(e)&&Object.values(e).every(q)}var V=function(){function e(t,r){var n;return _class_call_check(this,e),(n=_call_super(this,e,[t,r])).name="FatalError",Object.setPrototypeOf(n,e.prototype),n}return _inherits(e,_wrap_native_super(Error)),e}();function Z(e,t,r){return _async_to_generator(function(){return _ts_generator(this,function(n){return[2,(l(t)?t:[t]).reduce(function(t,n){return _async_to_generator(function(){var o,a,i,c,u,f,y,g,b,h,m,w,j,O,S,P,I,A,E,x,R,k,D,C,G;return _ts_generator(this,function(T){switch(T.label){case 0:return[4,t];case 1:return(o=T.sent())?[2,o]:(a=_(n)?{key:n}:n,Object.keys(a).length?(i=a.condition,c=a.consent,u=a.fn,f=a.key,y=a.loop,g=a.map,b=a.set,h=a.validate,m=a.value,w=_object_spread_props(_object_spread({},r),{mapping:n}),(j=i)?[4,p(i,function(e){if(_instanceof(e,V))throw e;return w.logger.error("mapping condition failed",{event:w.event,error:e}),!1})(e,w)]:[3,3]):[2]);case 2:j=!T.sent(),T.label=3;case 3:return j?[2]:c&&!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=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(c,w.consent)?[2,m]:(O=s(m)?m:e,y?(S=_sliced_to_array(y,2),P=S[0],I=S[1],"this"!==P?[3,4]:(E=[e],[3,6])):[3,10]);case 4:return[4,v(e,P,w)];case 5:E=T.sent(),T.label=6;case 6:return l(A=E)?[4,Promise.all(A.map(function(e){return v(e,I,w)}))]:[3,8];case 7:return x=T.sent().filter(s),[3,9];case 8:x=void 0,T.label=9;case 9:return O=x,[3,21];case 10:return g?[4,Object.entries(g).reduce(function(t,r){var n=_sliced_to_array(r,2),o=n[0],a=n[1];return _async_to_generator(function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,t];case 1:return r=i.sent(),[4,v(e,a,w)];case 2:return n=i.sent(),[2,(s(n)&&(r[o]=n),r)]}})})()},Promise.resolve({}))]:[3,12];case 11:return O=T.sent(),[3,20];case 12:return b?[4,Promise.all(b.map(function(t){return Z(e,t,w)}))]:[3,14];case 13:return R=O=T.sent(),[3,19];case 14:return f?(k=O=K(e,f,m),[3,18]):[3,15];case 15:return(D=u)?[4,p(u,function(e){if(_instanceof(e,V))throw e;w.logger.error("mapping fn failed",{event:w.event,error:e})})(e,w)]:[3,17];case 16:D=O=T.sent(),T.label=17;case 17:k=D,T.label=18;case 18:R=k,T.label=19;case 19:T.label=20;case 20:T.label=21;case 21:return(C=h)?[4,p(h,function(e){if(_instanceof(e,V))throw e;return w.logger.error("mapping validate failed",{event:w.event,error:e}),!1})(O,w)]:[3,23];case 22:C=!T.sent(),T.label=23;case 23:return C&&(O=void 0),G=d(O),[2,s(G)?G:d(m)]}})})()},Promise.resolve(void 0))]})})()}var $,H="observe",J="call:",Q=["name","length","prototype","arguments","caller"],X=new Map(Object.entries({source_platform:"breaks GA4 traffic attribution",user_id:"reserved by GA4; set identity via gtag config"})),Y="dataLayer",ee="https://www.googletagmanager.com/gtm.js?id=",te={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},re=500,ne={},oe=!1,ae={type:"google-gtag",calls:["call:window.gtag"],config:{settings:{}},init:function(r){var n=r.config,o=r.env,a=r.logger,i=n.settings,c=void 0===i?{}:i,u=n.loadScript,s=c.ga4,f=c.ads,_=c.gtm;(null==s?void 0:s.measurementId)||(null==f?void 0:f.conversionId)||(null==_?void 0:_.containerId)||a.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId");var d=!!O(o).window.gtag;return k(n,o),(null==s?void 0:s.measurementId)&&function(r,n,o,a){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=O(o),u=c.window,l=c.document,s=r.measurementId,f=r.transport_url,_=r.server_container_url,d=r.scriptSrc,p=r.pageview,v=r.init;if(s||a.throw("Config settings ga4.measurementId missing"),t(u),!1!==v){n&&e(s,d,l);var y={};f&&(y.transport_url=f),_&&(y.server_container_url=_),!1===p&&(y.send_page_view=!1);var g=u.gtag;i||g("js",new Date),g("config",s,y)}}(s,u,o,a,d),(null==f?void 0:f.conversionId)&&function(r,n,o,a){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=O(o),u=c.window,l=c.document,s=r.conversionId;s||a.throw("Config settings ads.conversionId missing"),r.currency||(r.currency="EUR"),n&&e(s,void 0,l),t(u);var f=u.gtag;i||f("js",new Date),r.enhancedConversions?f("config",s,{allow_enhanced_conversions:!0}):f("config",s)}(f,u,o,a,d),(null==_?void 0:_.containerId)&&function(e,t,r){var n=O(r),o=n.window,a=n.document,i=e.containerId,c=e.dataLayer,u=e.domain,s=c||Y,f=o[s],_=l(f)?f:[];o[s]=_,t&&i&&(_.push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),A(i,u||ee,s,a))}(_,u,o),n},push:function(e,t){return _async_to_generator(function(e,t){var r,n,o,a,i,c,u,s,_,d,p,v,y,g,b,h,m;return _ts_generator(this,function(w){switch(w.label){case 0:return r=t.config,n=t.rule,o=void 0===n?{}:n,a=t.data,i=t.env,c=t.collector,u=t.logger,s=r.settings,d=(_=void 0===s?{}:s).ga4,p=_.ads,v=_.gtm,y=o.settings||{},[4,P(e,a,r,d,c)];case 1:return g=w.sent(),[4,P(e,a,r,p,c)];case 2:return b=w.sent(),[4,P(e,a,r,v,c)];case 3:return h=w.sent(),(null==d?void 0:d.measurementId)&&function(e,t,r,n,o){var a=O(n).window;t.measurementId||o.throw("Config settings ga4.measurementId missing");var i={};if(f(r)){var c=!0,u=!1,l=void 0;try{for(var s,_=Object.entries(r)[Symbol.iterator]();!(c=(s=_.next()).done);c=!0){var d=_sliced_to_array(s.value,2),p=d[0],v=d[1],y=S(p);if(y){var g=X.get(y);g?o.debug('GA4 param "'.concat(y,'" dropped: ').concat(g)):(y in i&&o.warn('GA4 param "'.concat(y,'" overwritten: "').concat(p,'" collides after normalization')),i[y]=v)}else o.warn("GA4 param dropped: empty name")}}catch(e){u=!0,l=e}finally{try{c||null==_.return||_.return()}finally{if(u)throw l}}}var b=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(e.name,!1!==t.snakeCase);i.send_to=t.measurementId,t.debug&&(i.debug_mode=!0),(0,a.gtag)("event",b,i)}(e,d,g,i,u),(null==p?void 0:p.conversionId)&&(null==p?void 0:p.enhancedConversions)?[4,I(e,p,c)]:[3,5];case 4:m=w.sent(),w.label=5;case 5:return(null==p?void 0:p.conversionId)&&o.name&&function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0,i=arguments.length>6?arguments[6]:void 0,c=arguments.length>7?arguments[7]:void 0,u=t.conversionId,l=t.currency,s=f(n)?n:{},_=r.label||o;_||i.throw("Config mapping ads.label missing");var d=_object_spread({send_to:"".concat(u,"/").concat(_),currency:l||"EUR"},s),p=O(a).window.gtag;c&&p("set","user_data",c),p("event","conversion",d)}(e,p,y.ads,b,o.name,i,u,m),(null==v?void 0:v.containerId)&&function(e,t){var r=arguments.length>3?arguments[3]:void 0,n=O(arguments.length>4?arguments[4]:void 0).window,o={event:e.name},a=t.dataLayer||Y,i=n[a],c=l(i)?i:[];n[a]=c,c.push(_object_spread({},o,f(r)?r:e))}(e,v,y.gtm,h,i,u),[2]}})}).apply(this,arguments)},on:function(e,t){var r;if("consent"===e&&f(t.data)){var n=t.data,o=(null===(r=t.config)||void 0===r?void 0:r.settings)||{},a=E(o);if(a){var i=O(t.env).window.gtag;if(i){if(!oe){var c=x(o);c&&i("consent","default",c),oe=!0}var u={};Object.entries(n).forEach(function(e){var t=_sliced_to_array(e,2),r=t[0],n=t[1],o=a[r];if(o){var i=Array.isArray(o)?o:[o],c=n?"granted":"denied";i.forEach(function(e){u[e]=c})}}),0!==Object.keys(u).length&&i("consent","update",u)}}}}},ie=ae;return $=M,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;T.call(e,o)||o===r||D(e,o,{get:function(){return t[o]},enumerable:!(n=C(t,o))||n.enumerable})},l=G(t)[Symbol.iterator]();!(o=(c=l.next()).done);o=!0)u()}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}}return e}(D({},"__esModule",{value:!0}),$)}();
|
|
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 _assert_this_initialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return 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 _call_super(e,t,r){return t=_get_prototype_of(t),_possible_constructor_return(e,_is_native_reflect_construct()?Reflect.construct(t,r||[],_get_prototype_of(e).constructor):t.apply(e,r))}function _class_call_check(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _construct(e,t,r){return _construct=_is_native_reflect_construct()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&_set_prototype_of(o,r.prototype),o},_construct.apply(null,arguments)}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 _get_prototype_of(e){return _get_prototype_of=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_get_prototype_of(e)}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_set_prototype_of(e,t)}function _instanceof(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function _is_native_function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}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 _possible_constructor_return(e,t){return!t||"object"!==_type_of(t)&&"function"!=typeof t?_assert_this_initialized(e):t}function _set_prototype_of(e,t){return _set_prototype_of=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_set_prototype_of(e,t)}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 _wrap_native_super(e){var t="function"==typeof Map?new Map:void 0;return _wrap_native_super=function(e){if(null===e||!_is_native_function(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _construct(e,arguments,_get_prototype_of(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_set_prototype_of(r,e)},_wrap_native_super(e)}function _is_native_reflect_construct(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(_is_native_reflect_construct=function(){return!!e})()}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),c=Object.defineProperty;return c(i,"next",{value:u(0)}),c(i,"throw",{value:u(1)}),c(i,"return",{value:u(2)}),"function"==typeof Symbol&&c(i,Symbol.iterator,{value:function(){return this}}),i;function u(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,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!N.has(e)){N.add(e);var n=function(e,t){var n=r.createElement("script");n.src=e,t&&(n.onerror=t),r.head.appendChild(n)};t?n(t,function(){return n(z+e)}):n(z+e)}},t=function(e){var t=e;return t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)}),t.gtag},r=function(e,t){if("collector"===e)return"collector";if(!t)throw new Error("stepId(".concat(e,") requires an id"));return"".concat(e,".").concat(t)},n=function(e,t){var r=e.destinations[t];if(!r)throw new Error("Destination not found: ".concat(t));return r},o=function(e,t){var r=e.transformers[t];if(!r)throw new Error("Transformer not found: ".concat(t));return r},a=function(e,t){var r=e.sources[t];if(!r)throw new Error("Source not found: ".concat(t));return r},i=function(e,t){var r=e.stores[t];if(!r)throw new Error("Store not found: ".concat(t));return r},c=function(e,t){return _async_to_generator(function(){return _ts_generator(this,function(r){switch(r.label){case 0:return[4,e.get(t)];case 1:return[2,r.sent()]}})})()},u=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({},K,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)},l=function(e){return Array.isArray(e)},s=function(e){return void 0!==e},f=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!l(e)&&"[object Object]"===Object.prototype.toString.call(e)},_=function(e){return"string"==typeof e},d=function(e){return V(e)?e:void 0},p=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]}})})()}},v=function(e){return _async_to_generator(function(e){var t,r,n,o,a,i,c=arguments;return _ts_generator(this,function(u){return t=c.length>1&&void 0!==c[1]?c[1]:{},r=c.length>2&&void 0!==c[2]?c[2]:{},s(e)?(a=f(e)&&e.consent||r.consent||(null===(o=r.collector)||void 0===o?void 0:o.consent),i=null!==(n=r.event)&&void 0!==n?n:f(e)?e:{},[2,y(e,t,_object_spread_props(_object_spread({},r),{consent:a,event:i}))]):[2]})}).apply(this,arguments)},y=function(e){return _async_to_generator(function(e){var t,r,n,o,a,i,c,u,f,_,d,v,y,g,b,h,m=arguments;return _ts_generator(this,function(w){switch(w.label){case 0:if(t=m.length>1&&void 0!==m[1]?m[1]:{},a=(r=m.length>2&&void 0!==m[2]?m[2]:{}).consent||(null===(o=r.collector)||void 0===o?void 0:o.consent),i=null!==(n=r.event)&&void 0!==n?n:{},!r.collector)throw new Error("getMappingValue: context.collector is required");c={event:i,mapping:t,collector:r.collector,logger:r.collector.logger,consent:a},u=l(t)?t:[t],f=!0,_=!1,d=void 0,w.label=1;case 1:w.trys.push([1,6,7,8]),v=u[Symbol.iterator](),w.label=2;case 2:return(f=(y=v.next()).done)?[3,5]:(g=y.value,[4,p($,function(e){if(_instanceof(e,Z))throw e;r.collector&&r.collector.status.failed++,c.logger.error("mapping processing failed",{event:i,error:e})})(e,g,_object_spread_props(_object_spread({},c),{mapping:g}))]);case 3:if(b=w.sent(),s(b))return[2,b];w.label=4;case 4:return f=!0,[3,2];case 5:return[3,8];case 6:return h=w.sent(),_=!0,d=h,[3,8];case 7:try{f||null==v.return||v.return()}finally{if(_)throw d}return[7];case 8:return[2]}})}).apply(this,arguments)},g=function(e){var t=(e.startsWith(Q)?e.slice(5):e).split(".");return t.some(function(e){return""===e})?[]:t},b=function(e){return"function"==typeof e},h=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e},m=function(e){return h(e)&&"then"in e&&b(e.then)},w=function(e,t){if(-1!==X.indexOf(t))return!1;for(var r=e;b(r);){if(Object.prototype.hasOwnProperty.call(r,t))return!0;var n=Object.getPrototypeOf(r);if(!b(n)||!b(Object.getPrototypeOf(n)))return!1;r=n}return!1},j=function(e,t){var r=Reflect.getOwnPropertyDescriptor(e,t);return!(r&&!r.configurable)||"value"in r&&!0===r.writable},O=function(e,t){var r=e,n=!0,o=!1,a=void 0;try{for(var i,c=t[Symbol.iterator]();!(n=(i=c.next()).done);n=!0){var u=i.value;if(b(r)){if(!w(r,u))return!0;if(!j(r,u))return!1}else if(m(r)){if(!(u in r))return!0}else if(!h(r)||!(u in r))return!1;r=Reflect.get(r,u)}}catch(e){o=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw a}}return b(r)},S=function(e){var t=_object_spread({window:"undefined"!=typeof window?window:globalThis.window,document:"undefined"!=typeof document?document:globalThis.document},e),r=e&&e[J];if(function(e){if("object"!=(void 0===e?"undefined":_type_of(e))||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;var t=e.paths,r=e.record;return Array.isArray(t)&&t.every(function(e){return"string"==typeof e})&&"function"==typeof r}(r)){delete t[J];var n=function(e,t,r){var n=[],o=[],a=[],i=!0,c=!1,u=void 0;try{for(var l,s=t[Symbol.iterator]();!(i=(l=s.next()).done);i=!0){var f=l.value,_=g(f);if(0!==_.length){var d=_.join(".");a.push({rest:_,fn:d}),O(e,_)||o.push(d)}}}catch(e){c=!0,u=e}finally{try{i||null==s.return||s.return()}finally{if(c)throw u}}var p=new WeakMap,v=new WeakSet;function y(e,t){var o=!0,a=!1,i=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;if(r)try{r(l,t)}catch(e){}else n.push({fn:l,args:t,ts:Date.now()})}}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}}function S(e,t){return 0===t.length||P(e)?e:m(e)&&!t.some(function(t){return t.rest[0]in e})?Promise.resolve(e).then(function(e){return S(e,t)}):b(e)?k(e,[],t):h(e)?A(e,t):e}function P(e){return(h(e)||b(e))&&v.has(e)}function I(e,t){var r=[],n=[],o=!0,a=!1,i=void 0;try{for(var c,u=e[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;l.rest[0]===t&&(1===l.rest.length?r.includes(l.fn)||r.push(l.fn):n.push({rest:l.rest.slice(1),fn:l.fn}))}}catch(e){a=!0,i=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw i}}return{leafs:r,deeper:n}}function A(e,t){var r,n=t.map(function(e){return"".concat(e.fn,":").concat(e.rest.join("."))}).join("|"),o=null!==(r=p.get(e))&&void 0!==r?r:new Map;p.set(e,o);var a=o.get(n);if(a)return a;var i=E(e,t);return o.set(n,i),i}function E(e,t){return b(e)?x(e,t):t.some(function(t){return!j(e,t.rest[0])})?function(e,t){var r=Object.create(Object.getPrototypeOf(e)),n=R(e,t,function(){return o}),o=new Proxy(r,{get:function(e,t){return n.get(t)},set:function(t,r,n){return Reflect.set(e,r,n,e)},has:function(t,r){return Reflect.has(e,r)},ownKeys:function(){return Reflect.ownKeys(e)},getOwnPropertyDescriptor:function(t,r){var n=Reflect.getOwnPropertyDescriptor(e,r);return n&&_object_spread_props(_object_spread({},n),{configurable:!0})},defineProperty:function(t,r,n){return Reflect.defineProperty(e,r,n)},deleteProperty:function(t,r){return Reflect.deleteProperty(e,r)}});return v.add(o),o}(e,t):x(e,t)}function x(e,t){var r=R(e,t,function(){return n}),n=new Proxy(e,{get:function(e,t){return"string"!=typeof t||j(e,t)?r.get(t):Reflect.get(e,t,e)},set:function(e,t,r){return Reflect.set(e,t,r,e)}});return v.add(n),n}function R(e,t,r){var n=new Map;return{get:function(o){var a=Reflect.get(e,o,e);if("string"!=typeof o)return a;if(!b(a)&&!h(a))return a;if(P(a))return a;var i=n.get(o);if(i&&i.value===a)return i.out;var c=I(t,o),u=c.leafs,l=c.deeper;if(!(u.length>0||l.length>0)&&(!b(a)||function(e){if(Array.isArray(e))return!0;var t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e)))return a;var s=a;return b(a)?s=k(a,u,l,{proxy:r(),target:e}):l.length>0&&(s=A(a,l)),n.set(o,{value:a,out:s}),s}}}function k(e,t,r,n){var o=function(){return r.filter(function(t){return!w(e,t.rest[0])})},a=new Map,i=new Proxy(e,{get:function(e,t){var n=Reflect.get(e,t,e);if("string"!=typeof t||!j(e,t))return n;if(!w(e,t))return n;var o=I(r,t),c=o.leafs,u=o.deeper;if(0===c.length&&0===u.length)return n;if(P(n))return n;var l=a.get(t);if(l&&l.value===n)return l.out;var s=n;return b(n)?s=k(n,c,u,{proxy:i,target:e}):h(n)&&u.length>0&&(s=A(n,u)),a.set(t,{value:n,out:s}),s},set:function(e,t,r){return Reflect.set(e,t,r,e)},apply:function(e,r,a){y(t,a);var i=!n||r!==n.proxy&&void 0!==r?r:n.target;return S(Reflect.apply(e,i,a),o())},construct:function(e,r,n){y(t,r);var a=Reflect.construct(e,r,n===i?e:n),c=S(a,o());return h(c)||b(c)?c:a}});return v.add(i),i}return{env:E(e,a),calls:n,unresolved:o}}(t,r.paths,r.record).env,o=new Set,a=!0,i=!1,c=void 0;try{for(var u,l=r.paths[Symbol.iterator]();!(a=(u=l.next()).done);a=!0){var s=u.value,f=g(s)[0];if(void 0!==f){var _=t[f];null!==_&&"object"==(void 0===_?"undefined":_type_of(_))&&o.add(f)}}}catch(e){i=!0,c=e}finally{try{a||null==l.return||l.return()}finally{if(i)throw c}}var d=Array.from(o,function(e){return[e,n[e]]}),p=!0,v=!1,y=void 0;try{for(var S,P=d[Symbol.iterator]();!(p=(S=P.next()).done);p=!0){var I=_sliced_to_array(S.value,2),A=I[0],E=I[1];t[A]=E}}catch(e){v=!0,y=e}finally{try{p||null==P.return||P.return()}finally{if(v)throw y}}}return t},P=function(e){return e.replace(/[^a-zA-Z0-9_]+/g,"_")},I=function(e,t,r,n,o){return _async_to_generator(function(){var a,i,c,l,s,_,d;return _ts_generator(this,function(p){switch(p.label){case 0:return a=f(t)?t:{},r.data?[4,v(e,r.data,{collector:o})]:[3,2];case 1:return c=p.sent(),[3,3];case 2:c={},p.label=3;case 3:return i=c,(null==n?void 0:n.data)?[4,v(e,n.data,{collector:o})]:[3,5];case 4:return s=p.sent(),[3,6];case 5:s={},p.label=6;case 6:return l=s,_=f(i)?i:{},d=f(l)?l:{},[2,u(u(a,_),d)]}})})()},A=function(e,t,r){return _async_to_generator(function(){var n,o,a,i,c,u,l,s,f,_,d,p,y,g,b;return _ts_generator(this,function(h){switch(h.label){case 0:return(n=t.enhancedConversions)?(o={},n.email?[4,v(e,n.email,{collector:r})]:[3,2]):[2,void 0];case 1:(a=h.sent())&&(o.email=a),h.label=2;case 2:return n.phone_number?[4,v(e,n.phone_number,{collector:r})]:[3,4];case 3:(i=h.sent())&&(o.phone_number=i),h.label=4;case 4:if(!n.address)return[3,13];c={},u=!0,l=!1,s=void 0,h.label=5;case 5:h.trys.push([5,10,11,12]),f=Object.entries(n.address)[Symbol.iterator](),h.label=6;case 6:return(u=(_=f.next()).done)?[3,9]:(d=_sliced_to_array(_.value,2),p=d[0],(y=d[1])?[4,v(e,y,{collector:r})]:[3,8]);case 7:(g=h.sent())&&(c[p]=g),h.label=8;case 8:return u=!0,[3,6];case 9:return[3,12];case 10:return b=h.sent(),l=!0,s=b,[3,12];case 11:try{u||null==f.return||f.return()}finally{if(l)throw s}return[7];case 12:Object.keys(c).length>0&&(o.address=c),h.label=13;case 13:return[2,Object.keys(o).length>0?o:void 0]}})})()},E=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,o=r!=ee?"&l="+r:"",a=n.createElement("script");a.src=t+e+o,n.head.appendChild(a)},x=function(e){var t=e.como,r=void 0===t||t;if(!1!==r)return!0===r?re:r},R=function(e){var t=x(e);if(t){var r=function(e){var t=new Set;return Object.values(e).forEach(function(e){(Array.isArray(e)?e:[e]).forEach(function(e){return t.add(e)})}),_to_consumable_array(t)}(t);if(r.length){var n={};r.forEach(function(e){return n[e]="denied"});var o=e.como_advanced;return o&&(n.wait_for_update="number"==typeof o?o:ne),n}}},k=function(){ae=!1},D=function(e,r){var n=e.settings||{};if(!ae&&function(e,t){return!!(e&&Object.keys(e).length>0)||!!t.como_advanced}(e.consent,n)){var o=R(n);if(o){var a=S(r).window,i=t(a);i&&(i("consent","default",o),ae=!0)}}},C=Object.defineProperty,G=Object.getOwnPropertyDescriptor,T=Object.getOwnPropertyNames,M=Object.prototype.hasOwnProperty,L={};!function(e,t){for(var r in t)C(e,r,{get:t[r],enumerable:!0})}(L,{DestinationGtag:function(){return oe},default:function(){return ce},destinationGtag:function(){return ie},resetConsentState:function(){return k}});var N=new Set,z="https://www.googletagmanager.com/gtag/js?id=",F=Object.defineProperty,U=function(e,t){for(var r in t)F(e,r,{get:t[r],enumerable:!0})};U({},{stepId:function(){return r}});U({},{getDestination:function(){return n}});U({},{Level:function(){return B}});var W,B=((W=B||{})[W.ERROR=0]="ERROR",W[W.WARN=1]="WARN",W[W.INFO=2]="INFO",W[W.DEBUG=3]="DEBUG",W);U({},{getTransformer:function(){return o}});U({},{getSource:function(){return a}});U({},{getStore:function(){return i},getStoreValue:function(){return c}});var K={merge:!0,shallow:!0,extend:!0};function q(e){for(var t=arguments.length>2?arguments[2]:void 0,r=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"").split("."),n=e,o=0;o<r.length;o++){var a=r[o];if("*"===a&&l(n)){var i=r.slice(o+1).join("."),c=[],u=!0,_=!1,d=void 0;try{for(var p,v=n[Symbol.iterator]();!(u=(p=v.next()).done);u=!0){var y=q(p.value,i,t);c.push(y)}}catch(e){_=!0,d=e}finally{try{u||null==v.return||v.return()}finally{if(_)throw d}}return c}if(void 0===(n=f(n)||l(n)?n[a]:void 0))break}return s(n)?n:t}function V(e){return function(e){return"boolean"==typeof e}(e)||_(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!s(e)||l(e)&&e.every(V)||f(e)&&Object.values(e).every(V)}var Z=function(){function e(t,r){var n;return _class_call_check(this,e),(n=_call_super(this,e,[t,r])).name="FatalError",Object.setPrototypeOf(n,e.prototype),n}return _inherits(e,_wrap_native_super(Error)),e}();function $(e,t,r){return _async_to_generator(function(){return _ts_generator(this,function(n){return[2,(l(t)?t:[t]).reduce(function(t,n){return _async_to_generator(function(){var o,a,i,c,u,f,g,b,h,m,w,j,O,S,P,I,A,E,x,R,k,D,C,G,T;return _ts_generator(this,function(M){switch(M.label){case 0:return[4,t];case 1:return(o=M.sent())?[2,o]:(a=_(n)?{key:n}:n,Object.keys(a).length?(i=a.condition,c=a.consent,u=a.fn,f=a.key,g=a.loop,b=a.map,h=a.set,m=a.validate,w=a.value,j=_object_spread_props(_object_spread({},r),{mapping:n}),(O=i)?[4,p(i,function(e){if(_instanceof(e,Z))throw e;return j.logger.error("mapping condition failed",{event:j.event,error:e}),!1})(e,j)]:[3,3]):[2]);case 2:O=!M.sent(),M.label=3;case 3:return O?[2]:c&&!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=!e||0===Object.keys(e).length;return Object.keys(t).forEach(function(o){t[o]&&(r[o]=!0,e&&e[o]&&(n=!0))}),!!n&&r}(c,j.consent)?[2,w]:(S=s(w)?w:e,g?(P=_sliced_to_array(g,2),I=P[0],A=P[1],"this"!==I?[3,4]:(x=[e],[3,6])):[3,10]);case 4:return[4,y(e,I,j)];case 5:x=M.sent(),M.label=6;case 6:return l(E=x)?[4,Promise.all(E.map(function(e){return v(e,A,j)}))]:[3,8];case 7:return R=M.sent().filter(s),[3,9];case 8:R=void 0,M.label=9;case 9:return S=R,[3,21];case 10:return b?[4,Object.entries(b).reduce(function(t,r){var n=_sliced_to_array(r,2),o=n[0],a=n[1];return _async_to_generator(function(){var r,n;return _ts_generator(this,function(i){switch(i.label){case 0:return[4,t];case 1:return r=i.sent(),[4,y(e,a,j)];case 2:return n=i.sent(),[2,(s(n)&&(r[o]=n),r)]}})})()},Promise.resolve({}))]:[3,12];case 11:return S=M.sent(),[3,20];case 12:return h?[4,Promise.all(h.map(function(t){return $(e,t,j)}))]:[3,14];case 13:return k=S=M.sent(),[3,19];case 14:return f?(D=S=q(e,f,w),[3,18]):[3,15];case 15:return(C=u)?[4,p(u,function(e){if(_instanceof(e,Z))throw e;j.logger.error("mapping fn failed",{event:j.event,error:e})})(e,j)]:[3,17];case 16:C=S=M.sent(),M.label=17;case 17:D=C,M.label=18;case 18:k=D,M.label=19;case 19:M.label=20;case 20:M.label=21;case 21:return(G=m)?[4,p(m,function(e){if(_instanceof(e,Z))throw e;return j.logger.error("mapping validate failed",{event:j.event,error:e}),!1})(S,j)]:[3,23];case 22:G=!M.sent(),M.label=23;case 23:return G&&(S=void 0),T=d(S),[2,s(T)?T:d(w)]}})})()},Promise.resolve(void 0))]})})()}var H,J="observe",Q="call:",X=["name","length","prototype","arguments","caller"],Y=new Map(Object.entries({source_platform:"breaks GA4 traffic attribution",user_id:"reserved by GA4; set identity via gtag config"})),ee="dataLayer",te="https://www.googletagmanager.com/gtm.js?id=",re={marketing:["ad_storage","ad_user_data","ad_personalization"],functional:["analytics_storage"]},ne=500,oe={},ae=!1,ie={type:"google-gtag",calls:["call:window.gtag"],config:{settings:{}},init:function(r){var n=r.config,o=r.env,a=r.logger,i=n.settings,c=void 0===i?{}:i,u=n.loadScript,s=c.ga4,f=c.ads,_=c.gtm;(null==s?void 0:s.measurementId)||(null==f?void 0:f.conversionId)||(null==_?void 0:_.containerId)||a.throw("Config settings missing. Set ga4.measurementId, ads.conversionId, or gtm.containerId");var d=!!S(o).window.gtag;return D(n,o),(null==s?void 0:s.measurementId)&&function(r,n,o,a){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=S(o),u=c.window,l=c.document,s=r.measurementId,f=r.transport_url,_=r.server_container_url,d=r.scriptSrc,p=r.pageview,v=r.init;if(s||a.throw("Config settings ga4.measurementId missing"),t(u),!1!==v){n&&e(s,d,l);var y={};f&&(y.transport_url=f),_&&(y.server_container_url=_),!1===p&&(y.send_page_view=!1);var g=u.gtag;i||g("js",new Date),g("config",s,y)}}(s,u,o,a,d),(null==f?void 0:f.conversionId)&&function(r,n,o,a){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=S(o),u=c.window,l=c.document,s=r.conversionId;s||a.throw("Config settings ads.conversionId missing"),r.currency||(r.currency="EUR"),n&&e(s,void 0,l),t(u);var f=u.gtag;i||f("js",new Date),r.enhancedConversions?f("config",s,{allow_enhanced_conversions:!0}):f("config",s)}(f,u,o,a,d),(null==_?void 0:_.containerId)&&function(e,t,r){var n=S(r),o=n.window,a=n.document,i=e.containerId,c=e.dataLayer,u=e.domain,s=c||ee,f=o[s],_=l(f)?f:[];o[s]=_,t&&i&&(_.push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),E(i,u||te,s,a))}(_,u,o),n},push:function(e,t){return _async_to_generator(function(e,t){var r,n,o,a,i,c,u,s,_,d,p,v,y,g,b,h,m;return _ts_generator(this,function(w){switch(w.label){case 0:return r=t.config,n=t.rule,o=void 0===n?{}:n,a=t.data,i=t.env,c=t.collector,u=t.logger,s=r.settings,d=(_=void 0===s?{}:s).ga4,p=_.ads,v=_.gtm,y=o.settings||{},[4,I(e,a,r,d,c)];case 1:return g=w.sent(),[4,I(e,a,r,p,c)];case 2:return b=w.sent(),[4,I(e,a,r,v,c)];case 3:return h=w.sent(),(null==d?void 0:d.measurementId)&&function(e,t,r,n,o){var a=S(n).window;t.measurementId||o.throw("Config settings ga4.measurementId missing");var i={};if(f(r)){var c=!0,u=!1,l=void 0;try{for(var s,_=Object.entries(r)[Symbol.iterator]();!(c=(s=_.next()).done);c=!0){var d=_sliced_to_array(s.value,2),p=d[0],v=d[1],y=P(p);if(y){var g=Y.get(y);g?o.debug('GA4 param "'.concat(y,'" dropped: ').concat(g)):(y in i&&o.warn('GA4 param "'.concat(y,'" overwritten: "').concat(p,'" collides after normalization')),i[y]=v)}else o.warn("GA4 param dropped: empty name")}}catch(e){u=!0,l=e}finally{try{c||null==_.return||_.return()}finally{if(u)throw l}}}var b=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(e.name,!1!==t.snakeCase);i.send_to=t.measurementId,t.debug&&(i.debug_mode=!0),(0,a.gtag)("event",b,i)}(e,d,g,i,u),(null==p?void 0:p.conversionId)&&(null==p?void 0:p.enhancedConversions)?[4,A(e,p,c)]:[3,5];case 4:m=w.sent(),w.label=5;case 5:return(null==p?void 0:p.conversionId)&&o.name&&function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0,i=arguments.length>6?arguments[6]:void 0,c=arguments.length>7?arguments[7]:void 0,u=t.conversionId,l=t.currency,s=f(n)?n:{},_=r.label||o;_||i.throw("Config mapping ads.label missing");var d=_object_spread({send_to:"".concat(u,"/").concat(_),currency:l||"EUR"},s),p=S(a).window.gtag;c&&p("set","user_data",c),p("event","conversion",d)}(e,p,y.ads,b,o.name,i,u,m),(null==v?void 0:v.containerId)&&function(e,t){var r=arguments.length>3?arguments[3]:void 0,n=S(arguments.length>4?arguments[4]:void 0).window,o={event:e.name},a=t.dataLayer||ee,i=n[a],c=l(i)?i:[];n[a]=c,c.push(_object_spread({},o,f(r)?r:e))}(e,v,y.gtm,h,i,u),[2]}})}).apply(this,arguments)},on:function(e,t){var r;if("consent"===e&&f(t.data)){var n=t.data,o=(null===(r=t.config)||void 0===r?void 0:r.settings)||{},a=x(o);if(a){var i=S(t.env).window.gtag;if(i){if(!ae){var c=R(o);c&&i("consent","default",c),ae=!0}var u={};Object.entries(n).forEach(function(e){var t=_sliced_to_array(e,2),r=t[0],n=t[1],o=a[r];if(o){var i=Array.isArray(o)?o:[o],c=n?"granted":"denied";i.forEach(function(e){u[e]=c})}}),0!==Object.keys(u).length&&i("consent","update",u)}}}}},ce=ie;return H=L,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;M.call(e,o)||o===r||C(e,o,{get:function(){return t[o]},enumerable:!(n=G(t,o))||n.enumerable})},l=T(t)[Symbol.iterator]();!(o=(c=l.next()).done);o=!0)u()}catch(e){a=!0,i=e}finally{try{o||null==l.return||l.return()}finally{if(a)throw i}}}return e}(C({},"__esModule",{value:!0}),H)}();
|
package/dist/walkerOS.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$meta": {
|
|
3
3
|
"package": "@walkeros/web-destination-gtag",
|
|
4
|
-
"version": "4.7.0
|
|
4
|
+
"version": "4.7.0",
|
|
5
5
|
"type": "destination",
|
|
6
6
|
"platform": [
|
|
7
7
|
"web"
|
|
8
8
|
],
|
|
9
|
+
"exports": {},
|
|
9
10
|
"docs": "https://www.walkeros.io/docs/destinations/web/gtag",
|
|
10
11
|
"source": "https://github.com/elbwalker/walkerOS/tree/main/packages/web/destinations/gtag/src"
|
|
11
12
|
},
|
|
@@ -432,7 +433,7 @@
|
|
|
432
433
|
"consent": {
|
|
433
434
|
"functional": true
|
|
434
435
|
},
|
|
435
|
-
"id": "
|
|
436
|
+
"id": "9bb6b1f2fa09727a",
|
|
436
437
|
"trigger": "click",
|
|
437
438
|
"entity": "product",
|
|
438
439
|
"action": "add",
|
|
@@ -582,7 +583,7 @@
|
|
|
582
583
|
"consent": {
|
|
583
584
|
"functional": true
|
|
584
585
|
},
|
|
585
|
-
"id": "
|
|
586
|
+
"id": "bbf9578cbf7a6fa8",
|
|
586
587
|
"trigger": "load",
|
|
587
588
|
"entity": "order",
|
|
588
589
|
"action": "complete",
|
|
@@ -785,7 +786,7 @@
|
|
|
785
786
|
"source_schema": "4",
|
|
786
787
|
"source_count": 1,
|
|
787
788
|
"source_trace": "1700000106abcdef1700000106abcdef",
|
|
788
|
-
"source_release_default": "4.7.0
|
|
789
|
+
"source_release_default": "4.7.0",
|
|
789
790
|
"event_entity": "page",
|
|
790
791
|
"event_action": "view",
|
|
791
792
|
"event_trigger": "load",
|
|
@@ -878,7 +879,7 @@
|
|
|
878
879
|
"consent": {
|
|
879
880
|
"functional": true
|
|
880
881
|
},
|
|
881
|
-
"id": "
|
|
882
|
+
"id": "bbb610981085c185",
|
|
882
883
|
"trigger": "load",
|
|
883
884
|
"entity": "order",
|
|
884
885
|
"action": "complete",
|
|
@@ -958,7 +959,7 @@
|
|
|
958
959
|
"consent": {
|
|
959
960
|
"functional": true
|
|
960
961
|
},
|
|
961
|
-
"id": "
|
|
962
|
+
"id": "fdafc79bd1352f79",
|
|
962
963
|
"trigger": "load",
|
|
963
964
|
"entity": "page",
|
|
964
965
|
"action": "view",
|
|
@@ -1095,7 +1096,7 @@
|
|
|
1095
1096
|
"consent": {
|
|
1096
1097
|
"functional": true
|
|
1097
1098
|
},
|
|
1098
|
-
"id": "
|
|
1099
|
+
"id": "2cf922ecd405fc5f",
|
|
1099
1100
|
"trigger": "load",
|
|
1100
1101
|
"entity": "order",
|
|
1101
1102
|
"action": "complete",
|
|
@@ -1217,7 +1218,7 @@
|
|
|
1217
1218
|
"consent": {
|
|
1218
1219
|
"functional": true
|
|
1219
1220
|
},
|
|
1220
|
-
"id": "
|
|
1221
|
+
"id": "2e130cf73bae0594",
|
|
1221
1222
|
"trigger": "load",
|
|
1222
1223
|
"entity": "page",
|
|
1223
1224
|
"action": "view",
|
|
@@ -1321,7 +1322,7 @@
|
|
|
1321
1322
|
"consent": {
|
|
1322
1323
|
"functional": true
|
|
1323
1324
|
},
|
|
1324
|
-
"id": "
|
|
1325
|
+
"id": "0e8de7687ce0c008",
|
|
1325
1326
|
"trigger": "load",
|
|
1326
1327
|
"entity": "order",
|
|
1327
1328
|
"action": "complete",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@walkeros/web-destination-gtag",
|
|
3
3
|
"description": "Unified Google destination for walkerOS (GA4, Ads, GTM)",
|
|
4
|
-
"version": "4.7.0
|
|
4
|
+
"version": "4.7.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"update": "npx npm-check-updates -u && npm update"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@walkeros/core": "4.7.0
|
|
42
|
-
"@walkeros/web-core": "4.7.0
|
|
41
|
+
"@walkeros/core": "4.7.0",
|
|
42
|
+
"@walkeros/web-core": "4.7.0"
|
|
43
43
|
},
|
|
44
44
|
"repository": {
|
|
45
45
|
"url": "git+https://github.com/elbwalker/walkerOS.git",
|