@beworke/pixel 0.1.0-rc.11 → 0.1.0-rc.13
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 +15 -0
- package/dist/{Pixel-BnN86r4X.d.ts → Pixel-BKTvqIwz.d.ts} +4 -4
- package/dist/{Pixel-BoUGqCbP.d.mts → Pixel-DgVo0j7D.d.mts} +4 -4
- package/dist/{StorageFactory-C0prtNR7.d.mts → StorageFactory-BRtmy983.d.mts} +2 -2
- package/dist/{StorageFactory-BfCArzMM.d.ts → StorageFactory-BcOX0fsg.d.ts} +2 -2
- package/dist/browser/index.cjs.js +1 -1
- package/dist/browser/index.cjs.js.map +1 -1
- package/dist/browser/index.d.mts +6 -6
- package/dist/browser/index.d.ts +6 -6
- package/dist/browser/index.esm.js +1 -1
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/pixel.buygoods-checkout.global.js +1 -1
- package/dist/browser/pixel.buygoods-checkout.global.js.map +1 -1
- package/dist/browser/pixel.buygoods-landing.global.js +1 -1
- package/dist/browser/pixel.buygoods-landing.global.js.map +1 -1
- package/dist/browser/pixel.global.js +1 -1
- package/dist/browser/pixel.global.js.map +1 -1
- package/dist/browser/pixel.internal-checkout.global.js +1 -1
- package/dist/browser/pixel.internal-checkout.global.js.map +1 -1
- package/dist/config/index.cjs.js +1 -1
- package/dist/config/index.cjs.js.map +1 -1
- package/dist/config/index.d.mts +4 -4
- package/dist/config/index.d.ts +4 -4
- package/dist/config/index.esm.js +1 -1
- package/dist/config/index.esm.js.map +1 -1
- package/dist/events/index.cjs.js +1 -1
- package/dist/events/index.cjs.js.map +1 -1
- package/dist/events/index.d.mts +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.esm.js +1 -1
- package/dist/events/index.esm.js.map +1 -1
- package/dist/{index-BxT2d-TK.d.mts → index-CKZeennc.d.mts} +36 -2
- package/dist/{index-B8u_3PGG.d.ts → index-YlvQBRzR.d.ts} +36 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.mts +9 -9
- package/dist/index.d.ts +9 -9
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/{pixel-_BSDpx4M.d.mts → pixel-CCHv_ror.d.mts} +17 -1
- package/dist/{pixel-DNGbAN5C.d.ts → pixel-CgKoaWS3.d.ts} +17 -1
- package/dist/{pixel-default-config-DLRya1tl.d.mts → pixel-default-config-CTtkGKh1.d.mts} +2 -2
- package/dist/{pixel-default-config-BMYaqs7i.d.ts → pixel-default-config-D0NZVzDZ.d.ts} +2 -2
- package/dist/{pixel-settings-DGxl0MVm.d.mts → pixel-settings-BlhqPyAS.d.mts} +1 -1
- package/dist/{pixel-settings-D-t9zQb4.d.ts → pixel-settings-CHyZHDO6.d.ts} +1 -1
- package/dist/runtime/index.cjs.js +1 -1
- package/dist/runtime/index.cjs.js.map +1 -1
- package/dist/runtime/index.d.mts +7 -5
- package/dist/runtime/index.d.ts +7 -5
- package/dist/runtime/index.esm.js +1 -1
- package/dist/runtime/index.esm.js.map +1 -1
- package/dist/services/index.cjs.js +1 -1
- package/dist/services/index.cjs.js.map +1 -1
- package/dist/services/index.d.mts +46 -7
- package/dist/services/index.d.ts +46 -7
- package/dist/services/index.esm.js +1 -1
- package/dist/services/index.esm.js.map +1 -1
- package/dist/{types-B-Nzagpk.d.mts → types-9Uo3slwh.d.mts} +2 -2
- package/dist/{types-D3kJ9bfT.d.ts → types-CN1t3kwE.d.mts} +3 -2
- package/dist/{types-Dfi9C49l.d.ts → types-DaSPqzo_.d.ts} +2 -2
- package/dist/{types-D0KVsgzs.d.mts → types-DexAGG5B.d.ts} +3 -2
- package/dist/v2/global.global.js +1 -1
- package/dist/v2/global.global.js.map +1 -1
- package/dist/v2/index.cjs.js +1 -1
- package/dist/v2/index.cjs.js.map +1 -1
- package/dist/v2/index.d.mts +11 -11
- package/dist/v2/index.d.ts +11 -11
- package/dist/v2/index.esm.js +1 -1
- package/dist/v2/index.esm.js.map +1 -1
- package/docs/public/configuration/commerce.md +20 -1
- package/package.json +1 -1
package/dist/config/index.cjs.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/* Pixel v2 — SDK de analytics e conversão */
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var b=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var V=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},G=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of N(t))!R.call(e,i)&&i!==r&&b(e,i,{get:()=>t[i],enumerable:!(n=w(t,i))||n.enumerable});return e};var B=e=>G(b({},"__esModule",{value:!0}),e);var H={};V(H,{CUSTOMER_FIELD_KEYS:()=>p,DEFAULT_ATTRIBUTION_CONFIG:()=>d,DEFAULT_BEHAVIOR_MODULE_CONFIG:()=>f,DEFAULT_COMMERCE_CONFIG:()=>l,DEFAULT_COMMERCE_ENRICHMENT:()=>C,DEFAULT_CONVERSION_MODULE_CONFIG:()=>y,DEFAULT_CORE_MODULE_CONFIG:()=>E,DEFAULT_INTEGRATIONS_MODULE_CONFIG:()=>_,DEFAULT_INTERNAL_TRANSPORT_BASE_URL:()=>L,DEFAULT_PIXEL_CONFIG:()=>T,DEFAULT_PRIVACY_MODULE_CONFIG:()=>x,DEFAULT_SELECTOR_TYPE:()=>A,DEFAULT_TRANSPORT_CONFIG:()=>o,PIXEL_ID_MAX_LENGTH:()=>I,PixelConfigurationError:()=>a,getPrimarySelectorValue:()=>m,normalizeCalculateValueFrom:()=>M,normalizePixelId:()=>h,resolveCustomerFieldMappings:()=>F,resolvePixelConfig:()=>v,resolveSelectorTypeFallback:()=>P});module.exports=B(H);var A="css";function m(e){if(e==null)return null;if(typeof e=="string"){let r=e.trim();return r.length>0?r:null}if(Array.isArray(e)){for(let r of e){let n=m(r);if(n)return n}return null}let t=e.value?.trim();return t&&t.length>0?t:null}function P(e,t){if(t)return t;if(e!=null&&typeof e!="string")if(Array.isArray(e)){for(let r of e)if(typeof r!="string")return r.type}else return e.type;return"css"}var p=["email","phone","name","firstName","lastName","address","address2","city","state","postalCode","country"],C={pageView:{enabled:!0,source:"cart"},viewContent:{enabled:!0,source:"event_or_cart"},lead:{enabled:!1,source:"event_or_cart"},addToCart:{enabled:!0,source:"event_or_cart"},removeFromCart:{enabled:!0,source:"event_or_cart"},initiateCheckout:{enabled:!0,source:"cart"},addPaymentInfo:{enabled:!0,source:"cart"},purchase:{enabled:!0,source:"cart"}},l={enabled:!0,currency:"BRL",catalog:{products:[]},cart:{mode:"custom",initialItems:[],allowDynamicItems:!0,calculateValueFrom:"cart"},mappings:{attributes:{},fields:{}},customer:{fields:{}},enrichment:{...C}};function O(e){return e?(Array.isArray(e)?e:[e]).map(r=>String(r).trim()).filter(Boolean):[]}function F(e,t){let r={};for(let n of p){let i=[...O(e?.fields?.[n]),...O(t?.[n])];i.length>0&&(r[n]=i)}return r}function M(e){switch(e){case"event":case"event_items":return"event";case"manual":return"manual";case"catalog":return"catalog";case"cart":case"selected_items":default:return"cart"}}var d={enabled:!0,ttlDays:90,persist:!0,captureUrlParams:!0,captureCookies:!0,customClickIdParams:[]};var f={enabled:!1,heartbeat:{enabled:!1,intervalMs:15e3,hiddenIntervalMs:6e4,emitWhenHidden:!1,emitWhenIdle:!0,includeSnapshot:!0,fireImmediately:!1},engagement:{enabled:!1,evaluationIntervalMs:5e3,emitOnChange:!0,minScoreDelta:5,emitSummaryOnDestroy:!0,weights:{activeTime:.25,scroll:.2,click:.15,viewport:.2,visibility:.1,heartbeat:.1},penalties:{idle:.2,rageClick:.1},thresholds:{lowMax:29,mediumMax:69}},rateLimit:{enabled:!1,windowMs:1e3,maxSignalsPerWindow:50,criticalBypass:!0},buffer:{enabled:!1,maxSize:200,maxAgeMs:3e4,flushSize:50,dropStrategy:"compress_similar",flushOnHidden:!0},stateMachine:{enabled:!1,historyLimit:50},sessionSummary:{enabled:!1,emitOnHidden:!1,emitOnDestroy:!0,minimumSessionMs:0},trackers:{scroll:{enabled:!1,thresholds:[25,50,75,100],debounceMs:100},click:{enabled:!1,rageClick:{enabled:!0,threshold:3,windowMs:500}},idle:{enabled:!1,thresholdMs:6e4},visibility:{enabled:!1},exitIntent:{enabled:!1},viewport:{enabled:!1,targets:[],rootMargin:"0px",observeMutations:!0,mutationDebounceMs:100,maxObservedElements:500}}};function g(e,t){return{name:t==="click"?e:`${e}:${t}`,type:"selector",selector:`[data-track="${e}"]`,selectorType:"css",trigger:t}}function s(e){return{enabled:!0,sources:[g(e,"click")]}}var y={enabled:!0,manual:{pageView:{enabled:!0},purchase:{enabled:!0},lead:{enabled:!0},addToCart:{enabled:!0},removeFromCart:{enabled:!0},initiateCheckout:{enabled:!0},addPaymentInfo:{enabled:!0},search:{enabled:!0},viewContent:{enabled:!0}},auto:{enabled:!0,detectors:{lead:s("lead"),addToCart:s("add_to_cart"),removeFromCart:s("remove_from_cart"),initiateCheckout:s("initiate_checkout"),purchase:s("purchase"),addPaymentInfo:s("add_payment_info"),search:s("search"),viewContent:{enabled:!0,sources:[g("view_content","click"),g("view_content","hover"),g("view_content","visible")]}}},rules:{enabled:!1,selectors:["[data-track]"],texts:["Comprar","Comprar Agora","Finalizar Compra","Checkout"],urlPatterns:["thank-you","purchase","success","order","checkout"],checkout:{enabled:!1},card:{enabled:!1}}};var E={enabled:!0,pageView:{enabled:!0,trackInitialPageView:!0,spa:!0,dedupeMs:2e3},visitor:{enabled:!0,persistence:"cookie_localStorage",renew:!1},session:{enabled:!0,ttlMs:108e5,renewOnActivity:!0,renewOnPageView:!0},fingerprint:{enabled:!0,mode:"light",cache:!0},consent:{enabled:!1,required:!1,waitForConsent:!1},dedupe:{enabled:!0,windowMs:2e3},coordination:{enabled:!0,leaderElection:!0,broadcastChannel:!0},ordering:{enabled:!0,preserveOrder:!0},urlContext:{enabled:!1}};var _={enabled:!1,debug:!1,concurrency:3,timeoutMs:5e3,continueOnError:!0,destinations:{console:{enabled:!1},memory:{enabled:!1},mock:{enabled:!1},meta:{enabled:!1,pixelIds:[],autoPageView:!0,loadScript:!0},google:{enabled:!1,tagIds:[],autoPageView:!0,loadScript:!0},tiktok:{enabled:!1,pixelIds:[],autoPageView:!0,loadScript:!0}}};var x={enabled:!1,consent:{enabled:!1,required:!1},pii:{enabled:!1,hashEmail:!0,hashPhone:!0},anonymization:{enabled:!1,anonymizeIp:!0}};var L="https://micro-service-pixel-production-4826.up.railway.app",o={enabled:!0,sender:{mode:"internal",baseUrl:L},persistence:{enabled:!0},replay:{enabled:!0},ordering:{enabled:!0},coordination:{enabled:!0},circuitBreaker:{enabled:!0,failureThreshold:5,resetTimeoutMs:3e4,halfOpenMaxAttempts:2},backpressure:{enabled:!0,maxQueueSize:500,policy:"drop_oldest",sampleRate:.5},deadLetter:{enabled:!0,maxEntries:200},compression:{enabled:!0,strategy:"identity"},retry:{enabled:!0,maxAttempts:4,baseDelayMs:500,maxDelayMs:4e3,multiplier:2},batch:{enabled:!0,batchSize:10,maxWaitMs:5e3},timeout:{enabled:!0,timeoutMs:1e4},offline:{enabled:!0},flush:{enabled:!0,flushIntervalMs:2e3,flushOnDestroy:!0,prepareUnloadHooks:!0}};var T={app:{source:"custom",target:"custom",platform:"",environment:"production",debug:!1},identity:{pixelId:""},transport:{...o,sender:{...o.sender},persistence:{...o.persistence},replay:{...o.replay},ordering:{...o.ordering},coordination:{...o.coordination},circuitBreaker:{...o.circuitBreaker},backpressure:{...o.backpressure},deadLetter:{...o.deadLetter},compression:{...o.compression},retry:{...o.retry},batch:{...o.batch},timeout:{...o.timeout},offline:{...o.offline},flush:{...o.flush}},storage:{prefix:"__gmk",namespace:"pixel",persistence:{visitor:"localStorage",session:"sessionStorage",attribution:"localStorage"},queue:{enabled:!0,persistence:"memory",index:!0}},attribution:{...d},commerce:{...l,catalog:{products:[]},cart:{mode:"custom",initialItems:[],allowDynamicItems:!0,calculateValueFrom:"cart"},mappings:{attributes:{},fields:{}},enrichment:{...l.enrichment}},modules:{core:E,behavior:f,conversion:y,integrations:_,privacy:x}};var a=class extends Error{constructor(t,r,n){super(t),this.name="PixelConfigurationError",this.code=r,n!==void 0&&(this.cause=n)}};var I=128;function z(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<=31||r>=127&&r<=159)return!0}return!1}function h(e){if(typeof e!="string")throw new a("identity.pixelId must be a non-empty string.","INVALID_PIXEL_ID");let t=e.trim();if(t.length===0)throw new a("identity.pixelId must be a non-empty string.","INVALID_PIXEL_ID");if(t.length>I)throw new a(`identity.pixelId exceeds the maximum length of ${I} characters.`,"INVALID_PIXEL_ID");if(z(t))throw new a("identity.pixelId must not contain control characters.","INVALID_PIXEL_ID");return t}var U=new Set(["__proto__","prototype","constructor"]);function u(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function c(e){if(Array.isArray(e))return e.map(t=>c(t));if(u(e)){let t={};for(let r of Object.keys(e))U.has(r)||(t[r]=c(e[r]));return t}return e}function k(e,t,r){if(t===void 0)return e;if(Array.isArray(t))return c(t);if(typeof t=="function"||!u(t))return t;let n=u(e)?c(e):{};for(let i of Object.keys(t)){if(U.has(i))continue;let S=t[i];if(S===void 0)continue;let D=r?`${r}.${i}`:i;if(D==="transport.sender"){n[i]=c(S);continue}n[i]=k(n[i],S,D)}return n}function v(e){if(!u(e))throw new a("Pixel settings must be a plain object.","INVALID_SETTINGS");let t=k(c(T),e,""),r=u(e.identity)?e.identity.pixelId:void 0;return t.identity={...t.identity,pixelId:h(r)},t}0&&(module.exports={CUSTOMER_FIELD_KEYS,DEFAULT_ATTRIBUTION_CONFIG,DEFAULT_BEHAVIOR_MODULE_CONFIG,DEFAULT_COMMERCE_CONFIG,DEFAULT_COMMERCE_ENRICHMENT,DEFAULT_CONVERSION_MODULE_CONFIG,DEFAULT_CORE_MODULE_CONFIG,DEFAULT_INTEGRATIONS_MODULE_CONFIG,DEFAULT_INTERNAL_TRANSPORT_BASE_URL,DEFAULT_PIXEL_CONFIG,DEFAULT_PRIVACY_MODULE_CONFIG,DEFAULT_SELECTOR_TYPE,DEFAULT_TRANSPORT_CONFIG,PIXEL_ID_MAX_LENGTH,PixelConfigurationError,getPrimarySelectorValue,normalizeCalculateValueFrom,normalizePixelId,resolveCustomerFieldMappings,resolvePixelConfig,resolveSelectorTypeFallback});
|
|
3
3
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/index.ts","../../src/config/shared/selector.ts","../../src/config/shared/commerce.ts","../../src/config/defaults/attribution.ts","../../src/config/defaults/modules/behavior.ts","../../src/config/defaults/modules/conversion.ts","../../src/config/defaults/modules/core.ts","../../src/config/defaults/modules/integrations.ts","../../src/config/defaults/modules/privacy.ts","../../src/config/defaults/transport.ts","../../src/config/defaults/pixel-default-config.ts","../../src/config/errors.ts","../../src/config/pixelId.ts","../../src/config/resolvePixelConfig.ts"],"sourcesContent":["export type {\n AppConfig,\n KnownPixelPlatform,\n KnownPixelSource,\n PixelEnvironment,\n PixelPlatform,\n PixelSource,\n PixelTarget,\n} from './types/app';\nexport type { IdentityConfig } from './types/identity';\nexport type { AttributionConfig } from './types/attribution';\nexport type {\n TransportBackpressureConfig,\n TransportBackpressurePolicy,\n TransportBatchConfig,\n TransportCircuitBreakerConfig,\n TransportCompressionConfig,\n TransportConfig,\n TransportCoordinationConfig,\n TransportDeadLetterConfig,\n TransportExternalSenderConfig,\n TransportFlushConfig,\n TransportInternalSenderConfig,\n TransportOfflineConfig,\n TransportOrderingConfig,\n TransportPersistenceConfig,\n TransportReplayConfig,\n TransportRetryConfig,\n TransportSenderConfig,\n TransportTestSenderConfig,\n TransportTimeoutConfig,\n} from './types/transport';\nexport type {\n AttributionStoragePersistence,\n QueueStoragePersistence,\n SessionStoragePersistence,\n StorageConfig,\n StorageKeysConfig,\n VisitorStoragePersistence,\n} from './types/storage';\nexport type {\n AutoSourceBase,\n AutoSourceType,\n AutoTrackSource,\n EngagementThresholds,\n EngagementWeights,\n EngagementPenalties,\n FingerprintMode,\n FormAutoSource,\n LifecycleAutoSource,\n LinkAutoSource,\n LinkMatchProtocol,\n LinkQueryCondition,\n LinkQueryMatch,\n LinkTargetMatch,\n LinkValueBinding,\n LinkValueResolver,\n LinkValueTransform,\n PaymentAutoSource,\n PaymentMethod,\n SelectorAutoSource,\n SelectorAutoTrigger,\n SelectorConfig,\n SelectorDescriptor,\n SelectorInput,\n SelectorType,\n SelectorFormConfig,\n SelectorFormMode,\n SelectorFormTrigger,\n CommerceCalculateValueFrom,\n CommerceCartConfig,\n CommerceCartItem,\n CommerceCartMode,\n CommerceConfig,\n CommerceEnrichmentConfig,\n CommerceEnrichmentSource,\n CommerceEventEnrichmentConfig,\n CommerceMappingsConfig,\n CommerceProduct,\n ProductCatalogConfig,\n ProductType,\n UrlAutoSource,\n UrlContextConfig,\n UrlContextLinkDecorationStrategy,\n UrlContextMode,\n UrlContextPayload,\n UrlContextSnapshot,\n UrlContextSource,\n UrlContextWriteStrategy,\n UrlForwardParamsConfig,\n UrlLinkDecorationConfig,\n UrlManagedParamConfig,\n UrlManagedParamMode,\n UrlQueryParamsConfig,\n} from './shared';\nexport {\n DEFAULT_SELECTOR_TYPE,\n DEFAULT_COMMERCE_CONFIG,\n DEFAULT_COMMERCE_ENRICHMENT,\n getPrimarySelectorValue,\n normalizeCalculateValueFrom,\n resolveSelectorTypeFallback,\n} from './shared';\nexport type {\n AddPaymentInfoAutoDetectorConfig,\n AddToCartAutoDetectorConfig,\n AnonymizationConfig,\n AutoConversionConfig,\n AutoDetectorConfig,\n BehaviorModuleConfig,\n ClickBehaviorConfig,\n ConsentConfig,\n ConversionAutoDetectorsConfig,\n ConversionModuleConfig,\n ConversionRulesConfig,\n CoordinationConfig,\n CoreModuleConfig,\n DedupeConfig,\n EngagementBehaviorConfig,\n ExitIntentBehaviorConfig,\n FingerprintConfig,\n GoogleBrowserDestinationConfig,\n GoogleIntegrationConfig,\n HeartbeatModuleConfig,\n IdleBehaviorConfig,\n InitiateCheckoutAutoDetectorConfig,\n IntegrationTestDestinationConfig,\n IntegrationsModuleConfig,\n LeadAutoDetectorConfig,\n ManualConversionConfig,\n ManualEventConfig,\n MetaBrowserDestinationConfig,\n MetaIntegrationConfig,\n ModulesConfig,\n TikTokBrowserDestinationConfig,\n OrderingConfig,\n PageViewConfig,\n PiiConfig,\n PrivacyConsentConfig,\n PrivacyModuleConfig,\n PurchaseAutoDetectorConfig,\n RemoveFromCartAutoDetectorConfig,\n ScrollBehaviorConfig,\n SearchAutoDetectorConfig,\n SessionConfig,\n ViewContentAutoDetectorConfig,\n ViewportBehaviorConfig,\n ViewportTargetConfig,\n VisibilityBehaviorConfig,\n VisitorConfig,\n} from './types/modules';\nexport type { PixelConfig } from './types/pixel';\nexport type {\n DeepPartial,\n PixelSettings,\n PixelTransportSettings,\n} from './types/pixel-settings';\nexport { resolvePixelConfig } from './resolvePixelConfig';\nexport {\n PixelConfigurationError,\n type PixelConfigurationErrorCode,\n} from './errors';\nexport { PIXEL_ID_MAX_LENGTH, normalizePixelId } from './pixelId';\n\nexport { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nexport { DEFAULT_ATTRIBUTION_CONFIG } from './defaults/attribution';\nexport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './defaults/modules/behavior';\nexport { DEFAULT_CONVERSION_MODULE_CONFIG } from './defaults/modules/conversion';\nexport { DEFAULT_CORE_MODULE_CONFIG } from './defaults/modules/core';\nexport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './defaults/modules/integrations';\nexport { DEFAULT_PRIVACY_MODULE_CONFIG } from './defaults/modules/privacy';\nexport {\n DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n DEFAULT_TRANSPORT_CONFIG,\n} from './defaults/transport';\n","/**\n * Tipo padrão/fallback para interpretar selectors string sem prefixo.\n *\n * Ordem de resolução (`SelectorResolver`):\n * 1. Objeto → selector.type\n * 2. String com prefixo (css:, id:, class:, attr:, attribute:, text:) → prefixo\n * 3. String sem prefixo → selectorType\n * 4. Sem selectorType → css (DEFAULT_SELECTOR_TYPE)\n */\nexport type SelectorType = 'css' | 'id' | 'class' | 'attribute' | 'text';\n\n/** Fallback quando `selectorType` é omitido. */\nexport const DEFAULT_SELECTOR_TYPE: SelectorType = 'css';\n\n/**\n * Forma avançada de um seletor individual.\n * `exact` / `caseSensitive` aplicam-se principalmente a `type: 'text'`.\n * `closest` restringe a busca a um ancestral CSS (resolvido na etapa do Resolver).\n */\nexport type SelectorDescriptor = {\n type: SelectorType;\n value: string;\n exact?: boolean;\n caseSensitive?: boolean;\n closest?: string;\n};\n\n/** Um seletor: string simples/prefixada ou descritor tipado. */\nexport type SelectorInput = string | SelectorDescriptor;\n\n/** Um ou vários seletores (OR — qualquer match dispara). */\nexport type SelectorConfig = SelectorInput | SelectorInput[];\n\n/**\n * Extrai o valor primário de um `SelectorConfig` (utilitário de config).\n * Para match/query no DOM, use `SelectorResolver`.\n */\nexport function getPrimarySelectorValue(\n selector: SelectorConfig | undefined\n): string | null {\n if (selector == null) return null;\n\n if (typeof selector === 'string') {\n const trimmed = selector.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n if (Array.isArray(selector)) {\n for (const item of selector) {\n const value = getPrimarySelectorValue(item);\n if (value) return value;\n }\n return null;\n }\n\n const value = selector.value?.trim();\n return value && value.length > 0 ? value : null;\n}\n\n/**\n * Resolve o `selectorType` efetivo: config explícita → tipo do descriptor → css.\n */\nexport function resolveSelectorTypeFallback(\n selector: SelectorConfig | undefined,\n selectorType?: SelectorType\n): SelectorType {\n if (selectorType) return selectorType;\n\n if (selector != null && typeof selector !== 'string') {\n if (Array.isArray(selector)) {\n for (const item of selector) {\n if (typeof item !== 'string') return item.type;\n }\n } else {\n return selector.type;\n }\n }\n\n return DEFAULT_SELECTOR_TYPE;\n}\n","/**\n * Contratos globais de commerce (root `PixelConfig.commerce`).\n * Não pertencem a conversion — representam o contexto comercial da página/fluxo.\n */\n\nexport type ProductType =\n | 'main'\n | 'order_bump'\n | 'upsell'\n | 'downsell'\n | 'cross_sell'\n | 'addon'\n | 'subscription'\n | 'custom'\n | 'other';\n\nexport type CommerceProduct = {\n id: string;\n name?: string;\n sku?: string;\n type?: ProductType;\n price?: number;\n currency?: string;\n quantity?: number;\n category?: string;\n variant?: string;\n brand?: string;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartItem = {\n productId: string;\n quantity?: number;\n price?: number;\n currency?: string;\n selected?: boolean;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartMode =\n | 'landing_page'\n | 'single_product'\n | 'multi_product'\n | 'checkout'\n | 'upsell'\n | 'custom'\n | 'cart'\n | 'funnel';\n\nexport type CommerceCalculateValueFrom =\n | 'cart'\n | 'event'\n | 'manual'\n | 'catalog';\n\nexport type CommerceEnrichmentSource =\n | 'cart'\n | 'event'\n | 'event_or_cart'\n | 'catalog';\n\nexport type CommerceEventEnrichmentConfig = {\n enabled: boolean;\n source?: CommerceEnrichmentSource;\n};\n\nexport type CommerceEnrichmentConfig = {\n pageView?: CommerceEventEnrichmentConfig;\n viewContent?: CommerceEventEnrichmentConfig;\n lead?: CommerceEventEnrichmentConfig;\n addToCart?: CommerceEventEnrichmentConfig;\n removeFromCart?: CommerceEventEnrichmentConfig;\n initiateCheckout?: CommerceEventEnrichmentConfig;\n addPaymentInfo?: CommerceEventEnrichmentConfig;\n purchase?: CommerceEventEnrichmentConfig;\n};\n\nexport type ProductCatalogConfig = {\n products?: CommerceProduct[];\n};\n\nexport type CommerceCartConfig = {\n mode?: CommerceCartMode;\n /** Seed inicial do carrinho — não é estado vivo. */\n initialItems?: CommerceCartItem[];\n allowDynamicItems?: boolean;\n calculateValueFrom?: CommerceCalculateValueFrom;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceMappingsConfig = {\n attributes?: Record<string, string[]>;\n fields?: Record<string, string[]>;\n};\n\nexport type CommerceConfig = {\n enabled?: boolean;\n currency?: string;\n catalog?: ProductCatalogConfig;\n cart?: CommerceCartConfig;\n mappings?: CommerceMappingsConfig;\n enrichment?: CommerceEnrichmentConfig;\n};\n\nexport const DEFAULT_COMMERCE_ENRICHMENT: Required<CommerceEnrichmentConfig> = {\n pageView: { enabled: true, source: 'cart' },\n viewContent: { enabled: true, source: 'event_or_cart' },\n lead: { enabled: false, source: 'event_or_cart' },\n addToCart: { enabled: true, source: 'event_or_cart' },\n removeFromCart: { enabled: true, source: 'event_or_cart' },\n initiateCheckout: { enabled: true, source: 'cart' },\n addPaymentInfo: { enabled: true, source: 'cart' },\n purchase: { enabled: true, source: 'cart' },\n};\n\n/**\n * Commerce on by default so catalog/cart enrichment runs when products exist.\n * Empty catalog / empty cart is a no-op.\n */\nexport const DEFAULT_COMMERCE_CONFIG: CommerceConfig = {\n enabled: true,\n currency: 'BRL',\n catalog: {\n products: [],\n },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: {\n attributes: {},\n fields: {},\n },\n enrichment: { ...DEFAULT_COMMERCE_ENRICHMENT },\n};\n\n/** Normaliza calculateValueFrom (inclui aliases legado em runtime). */\nexport function normalizeCalculateValueFrom(\n value: CommerceCalculateValueFrom | string | undefined\n): 'cart' | 'event' | 'manual' | 'catalog' {\n switch (value) {\n case 'event':\n case 'event_items':\n return 'event';\n case 'manual':\n return 'manual';\n case 'catalog':\n return 'catalog';\n case 'cart':\n case 'selected_items':\n default:\n return 'cart';\n }\n}\n","import type { AttributionConfig } from '../types/attribution';\n\nexport const DEFAULT_ATTRIBUTION_CONFIG: AttributionConfig = {\n enabled: true,\n ttlDays: 90,\n persist: true,\n captureUrlParams: true,\n captureCookies: true,\n customClickIdParams: [],\n};\n","import type { BehaviorModuleConfig } from '../../types/modules/behavior';\n\nexport const DEFAULT_BEHAVIOR_MODULE_CONFIG: BehaviorModuleConfig = {\n enabled: false,\n\n heartbeat: {\n enabled: false,\n intervalMs: 15_000,\n hiddenIntervalMs: 60_000,\n emitWhenHidden: false,\n emitWhenIdle: true,\n includeSnapshot: true,\n fireImmediately: false,\n },\n\n engagement: {\n enabled: false,\n evaluationIntervalMs: 5_000,\n emitOnChange: true,\n minScoreDelta: 5,\n emitSummaryOnDestroy: true,\n\n weights: {\n activeTime: 0.25,\n scroll: 0.2,\n click: 0.15,\n viewport: 0.2,\n visibility: 0.1,\n heartbeat: 0.1,\n },\n\n penalties: {\n idle: 0.2,\n rageClick: 0.1,\n },\n\n thresholds: {\n lowMax: 29,\n mediumMax: 69,\n },\n },\n\n rateLimit: {\n enabled: false,\n windowMs: 1_000,\n maxSignalsPerWindow: 50,\n criticalBypass: true,\n },\n\n buffer: {\n enabled: false,\n maxSize: 200,\n maxAgeMs: 30_000,\n flushSize: 50,\n dropStrategy: 'compress_similar',\n flushOnHidden: true,\n },\n\n stateMachine: {\n enabled: false,\n historyLimit: 50,\n },\n\n sessionSummary: {\n enabled: false,\n emitOnHidden: false,\n emitOnDestroy: true,\n minimumSessionMs: 0,\n },\n\n trackers: {\n scroll: {\n enabled: false,\n thresholds: [25, 50, 75, 100],\n debounceMs: 100,\n },\n\n click: {\n enabled: false,\n rageClick: {\n enabled: true,\n threshold: 3,\n windowMs: 500,\n },\n },\n\n idle: {\n enabled: false,\n thresholdMs: 60_000,\n },\n\n visibility: {\n enabled: false,\n },\n\n exitIntent: {\n enabled: false,\n },\n\n viewport: {\n enabled: false,\n targets: [],\n rootMargin: '0px',\n observeMutations: true,\n mutationDebounceMs: 100,\n maxObservedElements: 500,\n },\n },\n};\n","import type { ConversionModuleConfig } from '../../types/modules/conversion';\n\nfunction dataTrackSource(\n event: string,\n trigger: 'click' | 'hover' | 'visible'\n) {\n return {\n name: trigger === 'click' ? event : `${event}:${trigger}`,\n type: 'selector' as const,\n selector: `[data-track=\"${event}\"]`,\n selectorType: 'css' as const,\n trigger,\n };\n}\n\nfunction dataTrackDetector(event: string) {\n return {\n enabled: true,\n sources: [dataTrackSource(event, 'click')],\n };\n}\n\nexport const DEFAULT_CONVERSION_MODULE_CONFIG: ConversionModuleConfig = {\n enabled: true,\n\n manual: {\n pageView: {\n enabled: true,\n },\n purchase: {\n enabled: true,\n },\n lead: {\n enabled: true,\n },\n addToCart: {\n enabled: true,\n },\n removeFromCart: {\n enabled: true,\n },\n initiateCheckout: {\n enabled: true,\n },\n addPaymentInfo: {\n enabled: true,\n },\n search: {\n enabled: true,\n },\n viewContent: {\n enabled: true,\n },\n },\n\n auto: {\n enabled: true,\n\n detectors: {\n lead: dataTrackDetector('lead'),\n addToCart: dataTrackDetector('add_to_cart'),\n removeFromCart: dataTrackDetector('remove_from_cart'),\n initiateCheckout: dataTrackDetector('initiate_checkout'),\n purchase: dataTrackDetector('purchase'),\n addPaymentInfo: dataTrackDetector('add_payment_info'),\n search: dataTrackDetector('search'),\n viewContent: {\n enabled: true,\n sources: [\n dataTrackSource('view_content', 'click'),\n dataTrackSource('view_content', 'hover'),\n dataTrackSource('view_content', 'visible'),\n ],\n },\n },\n },\n\n rules: {\n enabled: false,\n selectors: ['[data-track]'],\n texts: ['Comprar', 'Comprar Agora', 'Finalizar Compra', 'Checkout'],\n urlPatterns: ['thank-you', 'purchase', 'success', 'order', 'checkout'],\n checkout: {\n enabled: false,\n },\n card: {\n enabled: false,\n },\n },\n};\n","import type { CoreModuleConfig } from '../../types/modules/core';\n\nexport const DEFAULT_CORE_MODULE_CONFIG: CoreModuleConfig = {\n enabled: true,\n\n pageView: {\n enabled: true,\n trackInitialPageView: true,\n spa: true,\n dedupeMs: 2000,\n },\n\n visitor: {\n enabled: true,\n persistence: 'cookie_localStorage',\n renew: false,\n },\n\n session: {\n enabled: true,\n ttlMs: 10800000,\n renewOnActivity: true,\n renewOnPageView: true,\n },\n\n fingerprint: {\n enabled: true,\n mode: 'light',\n cache: true,\n },\n\n consent: {\n enabled: false,\n required: false,\n waitForConsent: false,\n },\n\n dedupe: {\n enabled: true,\n windowMs: 2000,\n },\n\n coordination: {\n enabled: true,\n leaderElection: true,\n broadcastChannel: true,\n },\n\n ordering: {\n enabled: true,\n preserveOrder: true,\n },\n\n urlContext: {\n enabled: false,\n },\n};\n","import type { IntegrationsModuleConfig } from '../../types/modules/integrations';\n\nexport const DEFAULT_INTEGRATIONS_MODULE_CONFIG: IntegrationsModuleConfig = {\n enabled: false,\n debug: false,\n concurrency: 3,\n timeoutMs: 5000,\n continueOnError: true,\n\n destinations: {\n console: { enabled: false },\n memory: { enabled: false },\n mock: { enabled: false },\n meta: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n google: {\n enabled: false,\n tagIds: [],\n autoPageView: true,\n loadScript: true,\n },\n tiktok: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n },\n};\n","import type { PrivacyModuleConfig } from '../../types/modules/privacy';\n\nexport const DEFAULT_PRIVACY_MODULE_CONFIG: PrivacyModuleConfig = {\n enabled: false,\n\n consent: {\n enabled: false,\n required: false,\n },\n\n pii: {\n enabled: false,\n hashEmail: true,\n hashPhone: true,\n },\n\n anonymization: {\n enabled: false,\n anonymizeIp: true,\n },\n};\n","import type { TransportConfig } from '../types/transport';\n\nexport const DEFAULT_INTERNAL_TRANSPORT_BASE_URL =\n 'https://micro-service-pixel-production-4826.up.railway.app';\n\nexport const DEFAULT_TRANSPORT_CONFIG: TransportConfig = {\n enabled: true,\n sender: {\n mode: 'internal',\n baseUrl: DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n },\n persistence: { enabled: true },\n replay: { enabled: true },\n ordering: { enabled: true },\n coordination: { enabled: true },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n resetTimeoutMs: 30_000,\n halfOpenMaxAttempts: 2,\n },\n backpressure: {\n enabled: true,\n maxQueueSize: 500,\n policy: 'drop_oldest',\n sampleRate: 0.5,\n },\n deadLetter: {\n enabled: true,\n maxEntries: 200,\n },\n compression: {\n enabled: true,\n strategy: 'identity',\n },\n retry: {\n enabled: true,\n maxAttempts: 4,\n baseDelayMs: 500,\n maxDelayMs: 4_000,\n multiplier: 2,\n },\n batch: {\n enabled: true,\n batchSize: 10,\n maxWaitMs: 5_000,\n },\n timeout: {\n enabled: true,\n timeoutMs: 10_000,\n },\n offline: { enabled: true },\n flush: {\n enabled: true,\n flushIntervalMs: 2_000,\n flushOnDestroy: true,\n prepareUnloadHooks: true,\n },\n};\n","import type { PixelConfig } from '../types/pixel';\nimport { DEFAULT_ATTRIBUTION_CONFIG } from './attribution';\nimport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './modules/behavior';\nimport { DEFAULT_CONVERSION_MODULE_CONFIG } from './modules/conversion';\nimport { DEFAULT_CORE_MODULE_CONFIG } from './modules/core';\nimport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './modules/integrations';\nimport { DEFAULT_PRIVACY_MODULE_CONFIG } from './modules/privacy';\nimport { DEFAULT_TRANSPORT_CONFIG } from './transport';\nimport { DEFAULT_COMMERCE_CONFIG } from '../shared/commerce';\n\nexport const DEFAULT_PIXEL_CONFIG: PixelConfig = {\n app: {\n source: 'custom',\n target: 'custom',\n platform: '',\n environment: 'production',\n debug: false,\n },\n\n identity: {\n pixelId: '',\n },\n\n transport: {\n ...DEFAULT_TRANSPORT_CONFIG,\n sender: { ...DEFAULT_TRANSPORT_CONFIG.sender },\n persistence: { ...DEFAULT_TRANSPORT_CONFIG.persistence },\n replay: { ...DEFAULT_TRANSPORT_CONFIG.replay },\n ordering: { ...DEFAULT_TRANSPORT_CONFIG.ordering },\n coordination: { ...DEFAULT_TRANSPORT_CONFIG.coordination },\n circuitBreaker: { ...DEFAULT_TRANSPORT_CONFIG.circuitBreaker },\n backpressure: { ...DEFAULT_TRANSPORT_CONFIG.backpressure },\n deadLetter: { ...DEFAULT_TRANSPORT_CONFIG.deadLetter },\n compression: { ...DEFAULT_TRANSPORT_CONFIG.compression },\n retry: { ...DEFAULT_TRANSPORT_CONFIG.retry },\n batch: { ...DEFAULT_TRANSPORT_CONFIG.batch },\n timeout: { ...DEFAULT_TRANSPORT_CONFIG.timeout },\n offline: { ...DEFAULT_TRANSPORT_CONFIG.offline },\n flush: { ...DEFAULT_TRANSPORT_CONFIG.flush },\n },\n\n storage: {\n prefix: '__gmk',\n namespace: 'pixel',\n\n persistence: {\n visitor: 'localStorage',\n session: 'sessionStorage',\n attribution: 'localStorage',\n },\n\n queue: {\n enabled: true,\n persistence: 'memory',\n index: true,\n },\n },\n\n attribution: { ...DEFAULT_ATTRIBUTION_CONFIG },\n\n commerce: {\n ...DEFAULT_COMMERCE_CONFIG,\n catalog: { products: [] },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: { attributes: {}, fields: {} },\n enrichment: { ...DEFAULT_COMMERCE_CONFIG.enrichment },\n },\n\n modules: {\n core: DEFAULT_CORE_MODULE_CONFIG,\n behavior: DEFAULT_BEHAVIOR_MODULE_CONFIG,\n conversion: DEFAULT_CONVERSION_MODULE_CONFIG,\n integrations: DEFAULT_INTEGRATIONS_MODULE_CONFIG,\n privacy: DEFAULT_PRIVACY_MODULE_CONFIG,\n },\n};\n","export type PixelConfigurationErrorCode =\n | 'INVALID_PIXEL_ID'\n | 'INVALID_SETTINGS';\n\nexport class PixelConfigurationError extends Error {\n readonly code: PixelConfigurationErrorCode;\n\n readonly cause?: unknown;\n\n constructor(\n message: string,\n code: PixelConfigurationErrorCode,\n cause?: unknown\n ) {\n super(message);\n this.name = 'PixelConfigurationError';\n this.code = code;\n if (cause !== undefined) {\n this.cause = cause;\n }\n }\n}\n","import { PixelConfigurationError } from './errors';\n\n/** Tamanho máximo aceito para `identity.pixelId` após trim. */\nexport const PIXEL_ID_MAX_LENGTH = 128;\n\nfunction hasControlChars(value: string): boolean {\n for (let i = 0; i < value.length; i += 1) {\n const code = value.charCodeAt(i);\n if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Normaliza e valida `identity.pixelId` em runtime (o bundle global é JS).\n * Não exige o prefixo `pix_`.\n */\nexport function normalizePixelId(value: unknown): string {\n if (typeof value !== 'string') {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n const normalized = value.trim();\n\n if (normalized.length === 0) {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (normalized.length > PIXEL_ID_MAX_LENGTH) {\n throw new PixelConfigurationError(\n `identity.pixelId exceeds the maximum length of ${PIXEL_ID_MAX_LENGTH} characters.`,\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (hasControlChars(normalized)) {\n throw new PixelConfigurationError(\n 'identity.pixelId must not contain control characters.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n return normalized;\n}\n","import { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nimport { PixelConfigurationError } from './errors';\nimport { normalizePixelId } from './pixelId';\nimport type { PixelConfig } from './types/pixel';\nimport type { PixelSettings } from './types/pixel-settings';\n\nconst BLOCKED_KEYS = new Set(['__proto__', 'prototype', 'constructor']);\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n if (Array.isArray(value)) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T;\n }\n\n if (isPlainObject(value)) {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n out[key] = cloneDeep(value[key]);\n }\n return out as T;\n }\n\n return value;\n}\n\nfunction mergeDeep(target: unknown, source: unknown, path: string): unknown {\n if (source === undefined) {\n return target;\n }\n\n if (Array.isArray(source)) {\n return cloneDeep(source);\n }\n\n if (typeof source === 'function') {\n return source;\n }\n\n if (!isPlainObject(source)) {\n return source;\n }\n\n const base: Record<string, unknown> = isPlainObject(target)\n ? cloneDeep(target)\n : {};\n\n for (const key of Object.keys(source)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n\n const srcVal = source[key];\n if (srcVal === undefined) {\n continue;\n }\n\n const nextPath = path ? `${path}.${key}` : key;\n if (nextPath === 'transport.sender') {\n base[key] = cloneDeep(srcVal);\n continue;\n }\n\n base[key] = mergeDeep(base[key], srcVal, nextPath);\n }\n\n return base;\n}\n\n/**\n * Resolve input público parcial em `PixelConfig` completo e isolado.\n *\n * Não muta `DEFAULT_PIXEL_CONFIG` nem o `settings` recebido.\n * Cada chamada produz uma árvore nova (sem refs mutáveis compartilhadas).\n */\nexport function resolvePixelConfig(settings: PixelSettings): PixelConfig {\n if (!isPlainObject(settings)) {\n throw new PixelConfigurationError(\n 'Pixel settings must be a plain object.',\n 'INVALID_SETTINGS'\n );\n }\n\n const merged = mergeDeep(\n cloneDeep(DEFAULT_PIXEL_CONFIG),\n settings,\n ''\n ) as PixelConfig;\n\n const rawPixelId = isPlainObject(settings.identity)\n ? settings.identity.pixelId\n : undefined;\n\n merged.identity = {\n ...merged.identity,\n pixelId: normalizePixelId(rawPixelId),\n };\n\n return merged;\n}\n"],"mappings":"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","names":["config_exports","__export","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_PIXEL_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_SELECTOR_TYPE","DEFAULT_TRANSPORT_CONFIG","PIXEL_ID_MAX_LENGTH","PixelConfigurationError","getPrimarySelectorValue","normalizeCalculateValueFrom","normalizePixelId","resolvePixelConfig","resolveSelectorTypeFallback","__toCommonJS","DEFAULT_SELECTOR_TYPE","getPrimarySelectorValue","selector","trimmed","item","value","resolveSelectorTypeFallback","selectorType","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_COMMERCE_CONFIG","normalizeCalculateValueFrom","value","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","dataTrackSource","event","trigger","dataTrackDetector","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_TRANSPORT_CONFIG","DEFAULT_PIXEL_CONFIG","DEFAULT_TRANSPORT_CONFIG","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","PixelConfigurationError","message","code","cause","PIXEL_ID_MAX_LENGTH","hasControlChars","value","i","code","normalizePixelId","PixelConfigurationError","normalized","BLOCKED_KEYS","isPlainObject","value","proto","cloneDeep","item","out","key","mergeDeep","target","source","path","base","srcVal","nextPath","resolvePixelConfig","settings","PixelConfigurationError","merged","DEFAULT_PIXEL_CONFIG","rawPixelId","normalizePixelId"]}
|
|
1
|
+
{"version":3,"sources":["../../src/config/index.ts","../../src/config/shared/selector.ts","../../src/config/shared/commerce.ts","../../src/config/defaults/attribution.ts","../../src/config/defaults/modules/behavior.ts","../../src/config/defaults/modules/conversion.ts","../../src/config/defaults/modules/core.ts","../../src/config/defaults/modules/integrations.ts","../../src/config/defaults/modules/privacy.ts","../../src/config/defaults/transport.ts","../../src/config/defaults/pixel-default-config.ts","../../src/config/errors.ts","../../src/config/pixelId.ts","../../src/config/resolvePixelConfig.ts"],"sourcesContent":["export type {\n AppConfig,\n KnownPixelPlatform,\n KnownPixelSource,\n PixelEnvironment,\n PixelPlatform,\n PixelSource,\n PixelTarget,\n} from './types/app';\nexport type { IdentityConfig } from './types/identity';\nexport type { AttributionConfig } from './types/attribution';\nexport type {\n TransportBackpressureConfig,\n TransportBackpressurePolicy,\n TransportBatchConfig,\n TransportCircuitBreakerConfig,\n TransportCompressionConfig,\n TransportConfig,\n TransportCoordinationConfig,\n TransportDeadLetterConfig,\n TransportExternalSenderConfig,\n TransportFlushConfig,\n TransportInternalSenderConfig,\n TransportOfflineConfig,\n TransportOrderingConfig,\n TransportPersistenceConfig,\n TransportReplayConfig,\n TransportRetryConfig,\n TransportSenderConfig,\n TransportTestSenderConfig,\n TransportTimeoutConfig,\n} from './types/transport';\nexport type {\n AttributionStoragePersistence,\n QueueStoragePersistence,\n SessionStoragePersistence,\n StorageConfig,\n StorageKeysConfig,\n VisitorStoragePersistence,\n} from './types/storage';\nexport type {\n AutoSourceBase,\n AutoSourceType,\n AutoTrackSource,\n EngagementThresholds,\n EngagementWeights,\n EngagementPenalties,\n FingerprintMode,\n FormAutoSource,\n LifecycleAutoSource,\n LinkAutoSource,\n LinkMatchProtocol,\n LinkQueryCondition,\n LinkQueryMatch,\n LinkTargetMatch,\n LinkValueBinding,\n LinkValueResolver,\n LinkValueTransform,\n PaymentAutoSource,\n PaymentMethod,\n SelectorAutoSource,\n SelectorAutoTrigger,\n SelectorConfig,\n SelectorDescriptor,\n SelectorInput,\n SelectorType,\n SelectorFormConfig,\n SelectorFormMode,\n SelectorFormTrigger,\n CommerceCalculateValueFrom,\n CommerceCartConfig,\n CommerceCartItem,\n CommerceCartMode,\n CommerceConfig,\n CommerceCustomerConfig,\n CommerceEnrichmentConfig,\n CommerceEnrichmentSource,\n CommerceEventEnrichmentConfig,\n CommerceMappingsConfig,\n CommerceProduct,\n CustomerFieldKey,\n CustomerFieldSelectorInput,\n ProductCatalogConfig,\n ProductType,\n UrlAutoSource,\n UrlContextConfig,\n UrlContextLinkDecorationStrategy,\n UrlContextMode,\n UrlContextPayload,\n UrlContextSnapshot,\n UrlContextSource,\n UrlContextWriteStrategy,\n UrlForwardParamsConfig,\n UrlLinkDecorationConfig,\n UrlManagedParamConfig,\n UrlManagedParamMode,\n UrlQueryParamsConfig,\n} from './shared';\nexport {\n DEFAULT_SELECTOR_TYPE,\n CUSTOMER_FIELD_KEYS,\n DEFAULT_COMMERCE_CONFIG,\n DEFAULT_COMMERCE_ENRICHMENT,\n getPrimarySelectorValue,\n normalizeCalculateValueFrom,\n resolveCustomerFieldMappings,\n resolveSelectorTypeFallback,\n} from './shared';\nexport type {\n AddPaymentInfoAutoDetectorConfig,\n AddToCartAutoDetectorConfig,\n AnonymizationConfig,\n AutoConversionConfig,\n AutoDetectorConfig,\n BehaviorModuleConfig,\n ClickBehaviorConfig,\n ConsentConfig,\n ConversionAutoDetectorsConfig,\n ConversionModuleConfig,\n ConversionRulesConfig,\n CoordinationConfig,\n CoreModuleConfig,\n DedupeConfig,\n EngagementBehaviorConfig,\n ExitIntentBehaviorConfig,\n FingerprintConfig,\n GoogleBrowserDestinationConfig,\n GoogleIntegrationConfig,\n HeartbeatModuleConfig,\n IdleBehaviorConfig,\n InitiateCheckoutAutoDetectorConfig,\n IntegrationTestDestinationConfig,\n IntegrationsModuleConfig,\n LeadAutoDetectorConfig,\n ManualConversionConfig,\n ManualEventConfig,\n MetaBrowserDestinationConfig,\n MetaIntegrationConfig,\n ModulesConfig,\n TikTokBrowserDestinationConfig,\n OrderingConfig,\n PageViewConfig,\n PiiConfig,\n PrivacyConsentConfig,\n PrivacyModuleConfig,\n PurchaseAutoDetectorConfig,\n RemoveFromCartAutoDetectorConfig,\n ScrollBehaviorConfig,\n SearchAutoDetectorConfig,\n SessionConfig,\n ViewContentAutoDetectorConfig,\n ViewportBehaviorConfig,\n ViewportTargetConfig,\n VisibilityBehaviorConfig,\n VisitorConfig,\n} from './types/modules';\nexport type { PixelConfig } from './types/pixel';\nexport type {\n DeepPartial,\n PixelSettings,\n PixelTransportSettings,\n} from './types/pixel-settings';\nexport { resolvePixelConfig } from './resolvePixelConfig';\nexport {\n PixelConfigurationError,\n type PixelConfigurationErrorCode,\n} from './errors';\nexport { PIXEL_ID_MAX_LENGTH, normalizePixelId } from './pixelId';\n\nexport { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nexport { DEFAULT_ATTRIBUTION_CONFIG } from './defaults/attribution';\nexport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './defaults/modules/behavior';\nexport { DEFAULT_CONVERSION_MODULE_CONFIG } from './defaults/modules/conversion';\nexport { DEFAULT_CORE_MODULE_CONFIG } from './defaults/modules/core';\nexport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './defaults/modules/integrations';\nexport { DEFAULT_PRIVACY_MODULE_CONFIG } from './defaults/modules/privacy';\nexport {\n DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n DEFAULT_TRANSPORT_CONFIG,\n} from './defaults/transport';\n","/**\n * Tipo padrão/fallback para interpretar selectors string sem prefixo.\n *\n * Ordem de resolução (`SelectorResolver`):\n * 1. Objeto → selector.type\n * 2. String com prefixo (css:, id:, class:, attr:, attribute:, text:) → prefixo\n * 3. String sem prefixo → selectorType\n * 4. Sem selectorType → css (DEFAULT_SELECTOR_TYPE)\n */\nexport type SelectorType = 'css' | 'id' | 'class' | 'attribute' | 'text';\n\n/** Fallback quando `selectorType` é omitido. */\nexport const DEFAULT_SELECTOR_TYPE: SelectorType = 'css';\n\n/**\n * Forma avançada de um seletor individual.\n * `exact` / `caseSensitive` aplicam-se principalmente a `type: 'text'`.\n * `closest` restringe a busca a um ancestral CSS (resolvido na etapa do Resolver).\n */\nexport type SelectorDescriptor = {\n type: SelectorType;\n value: string;\n exact?: boolean;\n caseSensitive?: boolean;\n closest?: string;\n};\n\n/** Um seletor: string simples/prefixada ou descritor tipado. */\nexport type SelectorInput = string | SelectorDescriptor;\n\n/** Um ou vários seletores (OR — qualquer match dispara). */\nexport type SelectorConfig = SelectorInput | SelectorInput[];\n\n/**\n * Extrai o valor primário de um `SelectorConfig` (utilitário de config).\n * Para match/query no DOM, use `SelectorResolver`.\n */\nexport function getPrimarySelectorValue(\n selector: SelectorConfig | undefined\n): string | null {\n if (selector == null) return null;\n\n if (typeof selector === 'string') {\n const trimmed = selector.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n if (Array.isArray(selector)) {\n for (const item of selector) {\n const value = getPrimarySelectorValue(item);\n if (value) return value;\n }\n return null;\n }\n\n const value = selector.value?.trim();\n return value && value.length > 0 ? value : null;\n}\n\n/**\n * Resolve o `selectorType` efetivo: config explícita → tipo do descriptor → css.\n */\nexport function resolveSelectorTypeFallback(\n selector: SelectorConfig | undefined,\n selectorType?: SelectorType\n): SelectorType {\n if (selectorType) return selectorType;\n\n if (selector != null && typeof selector !== 'string') {\n if (Array.isArray(selector)) {\n for (const item of selector) {\n if (typeof item !== 'string') return item.type;\n }\n } else {\n return selector.type;\n }\n }\n\n return DEFAULT_SELECTOR_TYPE;\n}\n","/**\n * Contratos globais de commerce (root `PixelConfig.commerce`).\n * Não pertencem a conversion — representam o contexto comercial da página/fluxo.\n */\n\nexport type ProductType =\n | 'main'\n | 'order_bump'\n | 'upsell'\n | 'downsell'\n | 'cross_sell'\n | 'addon'\n | 'subscription'\n | 'custom'\n | 'other';\n\nexport type CommerceProduct = {\n id: string;\n name?: string;\n sku?: string;\n type?: ProductType;\n price?: number;\n currency?: string;\n quantity?: number;\n category?: string;\n variant?: string;\n brand?: string;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartItem = {\n productId: string;\n quantity?: number;\n price?: number;\n currency?: string;\n selected?: boolean;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartMode =\n | 'landing_page'\n | 'single_product'\n | 'multi_product'\n | 'checkout'\n | 'upsell'\n | 'custom'\n | 'cart'\n | 'funnel';\n\nexport type CommerceCalculateValueFrom =\n | 'cart'\n | 'event'\n | 'manual'\n | 'catalog';\n\nexport type CommerceEnrichmentSource =\n | 'cart'\n | 'event'\n | 'event_or_cart'\n | 'catalog';\n\nexport type CommerceEventEnrichmentConfig = {\n enabled: boolean;\n source?: CommerceEnrichmentSource;\n};\n\nexport type CommerceEnrichmentConfig = {\n pageView?: CommerceEventEnrichmentConfig;\n viewContent?: CommerceEventEnrichmentConfig;\n lead?: CommerceEventEnrichmentConfig;\n addToCart?: CommerceEventEnrichmentConfig;\n removeFromCart?: CommerceEventEnrichmentConfig;\n initiateCheckout?: CommerceEventEnrichmentConfig;\n addPaymentInfo?: CommerceEventEnrichmentConfig;\n purchase?: CommerceEventEnrichmentConfig;\n};\n\nexport type ProductCatalogConfig = {\n products?: CommerceProduct[];\n};\n\nexport type CommerceCartConfig = {\n mode?: CommerceCartMode;\n /** Seed inicial do carrinho — não é estado vivo. */\n initialItems?: CommerceCartItem[];\n allowDynamicItems?: boolean;\n calculateValueFrom?: CommerceCalculateValueFrom;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceMappingsConfig = {\n attributes?: Record<string, string[]>;\n fields?: Record<string, string[]>;\n};\n\nexport const CUSTOMER_FIELD_KEYS = [\n 'email',\n 'phone',\n 'name',\n 'firstName',\n 'lastName',\n 'address',\n 'address2',\n 'city',\n 'state',\n 'postalCode',\n 'country',\n] as const;\n\nexport type CustomerFieldKey = (typeof CUSTOMER_FIELD_KEYS)[number];\n\nexport type CustomerFieldSelectorInput = string | readonly string[];\n\n/**\n * Seletores extras de customer. Sempre somam aos defaults — nunca substituem.\n * Aceita name/id (`user_email`) ou CSS (`#contato-email`, `[data-cliente-email]`).\n */\nexport type CommerceCustomerConfig = {\n fields?: Partial<Record<CustomerFieldKey, CustomerFieldSelectorInput>>;\n};\n\nexport type CommerceConfig = {\n enabled?: boolean;\n currency?: string;\n catalog?: ProductCatalogConfig;\n cart?: CommerceCartConfig;\n mappings?: CommerceMappingsConfig;\n customer?: CommerceCustomerConfig;\n enrichment?: CommerceEnrichmentConfig;\n};\n\nexport const DEFAULT_COMMERCE_ENRICHMENT: Required<CommerceEnrichmentConfig> = {\n pageView: { enabled: true, source: 'cart' },\n viewContent: { enabled: true, source: 'event_or_cart' },\n lead: { enabled: false, source: 'event_or_cart' },\n addToCart: { enabled: true, source: 'event_or_cart' },\n removeFromCart: { enabled: true, source: 'event_or_cart' },\n initiateCheckout: { enabled: true, source: 'cart' },\n addPaymentInfo: { enabled: true, source: 'cart' },\n purchase: { enabled: true, source: 'cart' },\n};\n\n/**\n * Commerce on by default so catalog/cart enrichment runs when products exist.\n * Empty catalog / empty cart is a no-op.\n */\nexport const DEFAULT_COMMERCE_CONFIG: CommerceConfig = {\n enabled: true,\n currency: 'BRL',\n catalog: {\n products: [],\n },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: {\n attributes: {},\n fields: {},\n },\n customer: {\n fields: {},\n },\n enrichment: { ...DEFAULT_COMMERCE_ENRICHMENT },\n};\n\nfunction selectorList(\n value: CustomerFieldSelectorInput | undefined\n): string[] {\n if (!value) return [];\n const items = Array.isArray(value) ? value : [value];\n return items.map(item => String(item).trim()).filter(Boolean);\n}\n\n/**\n * Junta `commerce.customer.fields` com extras de `commerce.mappings.fields`.\n * O extrator mescla o resultado com os defaults de cada campo.\n */\nexport function resolveCustomerFieldMappings(\n customer?: CommerceCustomerConfig | null,\n legacyFields?: Record<string, string | readonly string[]> | null\n): Record<string, string[]> {\n const result: Record<string, string[]> = {};\n\n for (const key of CUSTOMER_FIELD_KEYS) {\n const extras = [\n ...selectorList(customer?.fields?.[key]),\n ...selectorList(legacyFields?.[key]),\n ];\n if (extras.length > 0) {\n result[key] = extras;\n }\n }\n\n return result;\n}\n\n/** Normaliza calculateValueFrom (inclui aliases legado em runtime). */\nexport function normalizeCalculateValueFrom(\n value: CommerceCalculateValueFrom | string | undefined\n): 'cart' | 'event' | 'manual' | 'catalog' {\n switch (value) {\n case 'event':\n case 'event_items':\n return 'event';\n case 'manual':\n return 'manual';\n case 'catalog':\n return 'catalog';\n case 'cart':\n case 'selected_items':\n default:\n return 'cart';\n }\n}\n","import type { AttributionConfig } from '../types/attribution';\n\nexport const DEFAULT_ATTRIBUTION_CONFIG: AttributionConfig = {\n enabled: true,\n ttlDays: 90,\n persist: true,\n captureUrlParams: true,\n captureCookies: true,\n customClickIdParams: [],\n};\n","import type { BehaviorModuleConfig } from '../../types/modules/behavior';\n\nexport const DEFAULT_BEHAVIOR_MODULE_CONFIG: BehaviorModuleConfig = {\n enabled: false,\n\n heartbeat: {\n enabled: false,\n intervalMs: 15_000,\n hiddenIntervalMs: 60_000,\n emitWhenHidden: false,\n emitWhenIdle: true,\n includeSnapshot: true,\n fireImmediately: false,\n },\n\n engagement: {\n enabled: false,\n evaluationIntervalMs: 5_000,\n emitOnChange: true,\n minScoreDelta: 5,\n emitSummaryOnDestroy: true,\n\n weights: {\n activeTime: 0.25,\n scroll: 0.2,\n click: 0.15,\n viewport: 0.2,\n visibility: 0.1,\n heartbeat: 0.1,\n },\n\n penalties: {\n idle: 0.2,\n rageClick: 0.1,\n },\n\n thresholds: {\n lowMax: 29,\n mediumMax: 69,\n },\n },\n\n rateLimit: {\n enabled: false,\n windowMs: 1_000,\n maxSignalsPerWindow: 50,\n criticalBypass: true,\n },\n\n buffer: {\n enabled: false,\n maxSize: 200,\n maxAgeMs: 30_000,\n flushSize: 50,\n dropStrategy: 'compress_similar',\n flushOnHidden: true,\n },\n\n stateMachine: {\n enabled: false,\n historyLimit: 50,\n },\n\n sessionSummary: {\n enabled: false,\n emitOnHidden: false,\n emitOnDestroy: true,\n minimumSessionMs: 0,\n },\n\n trackers: {\n scroll: {\n enabled: false,\n thresholds: [25, 50, 75, 100],\n debounceMs: 100,\n },\n\n click: {\n enabled: false,\n rageClick: {\n enabled: true,\n threshold: 3,\n windowMs: 500,\n },\n },\n\n idle: {\n enabled: false,\n thresholdMs: 60_000,\n },\n\n visibility: {\n enabled: false,\n },\n\n exitIntent: {\n enabled: false,\n },\n\n viewport: {\n enabled: false,\n targets: [],\n rootMargin: '0px',\n observeMutations: true,\n mutationDebounceMs: 100,\n maxObservedElements: 500,\n },\n },\n};\n","import type { ConversionModuleConfig } from '../../types/modules/conversion';\n\nfunction dataTrackSource(\n event: string,\n trigger: 'click' | 'hover' | 'visible'\n) {\n return {\n name: trigger === 'click' ? event : `${event}:${trigger}`,\n type: 'selector' as const,\n selector: `[data-track=\"${event}\"]`,\n selectorType: 'css' as const,\n trigger,\n };\n}\n\nfunction dataTrackDetector(event: string) {\n return {\n enabled: true,\n sources: [dataTrackSource(event, 'click')],\n };\n}\n\nexport const DEFAULT_CONVERSION_MODULE_CONFIG: ConversionModuleConfig = {\n enabled: true,\n\n manual: {\n pageView: {\n enabled: true,\n },\n purchase: {\n enabled: true,\n },\n lead: {\n enabled: true,\n },\n addToCart: {\n enabled: true,\n },\n removeFromCart: {\n enabled: true,\n },\n initiateCheckout: {\n enabled: true,\n },\n addPaymentInfo: {\n enabled: true,\n },\n search: {\n enabled: true,\n },\n viewContent: {\n enabled: true,\n },\n },\n\n auto: {\n enabled: true,\n\n detectors: {\n lead: dataTrackDetector('lead'),\n addToCart: dataTrackDetector('add_to_cart'),\n removeFromCart: dataTrackDetector('remove_from_cart'),\n initiateCheckout: dataTrackDetector('initiate_checkout'),\n purchase: dataTrackDetector('purchase'),\n addPaymentInfo: dataTrackDetector('add_payment_info'),\n search: dataTrackDetector('search'),\n viewContent: {\n enabled: true,\n sources: [\n dataTrackSource('view_content', 'click'),\n dataTrackSource('view_content', 'hover'),\n dataTrackSource('view_content', 'visible'),\n ],\n },\n },\n },\n\n rules: {\n enabled: false,\n selectors: ['[data-track]'],\n texts: ['Comprar', 'Comprar Agora', 'Finalizar Compra', 'Checkout'],\n urlPatterns: ['thank-you', 'purchase', 'success', 'order', 'checkout'],\n checkout: {\n enabled: false,\n },\n card: {\n enabled: false,\n },\n },\n};\n","import type { CoreModuleConfig } from '../../types/modules/core';\n\nexport const DEFAULT_CORE_MODULE_CONFIG: CoreModuleConfig = {\n enabled: true,\n\n pageView: {\n enabled: true,\n trackInitialPageView: true,\n spa: true,\n dedupeMs: 2000,\n },\n\n visitor: {\n enabled: true,\n persistence: 'cookie_localStorage',\n renew: false,\n },\n\n session: {\n enabled: true,\n ttlMs: 10800000,\n renewOnActivity: true,\n renewOnPageView: true,\n },\n\n fingerprint: {\n enabled: true,\n mode: 'light',\n cache: true,\n },\n\n consent: {\n enabled: false,\n required: false,\n waitForConsent: false,\n },\n\n dedupe: {\n enabled: true,\n windowMs: 2000,\n },\n\n coordination: {\n enabled: true,\n leaderElection: true,\n broadcastChannel: true,\n },\n\n ordering: {\n enabled: true,\n preserveOrder: true,\n },\n\n urlContext: {\n enabled: false,\n },\n};\n","import type { IntegrationsModuleConfig } from '../../types/modules/integrations';\n\nexport const DEFAULT_INTEGRATIONS_MODULE_CONFIG: IntegrationsModuleConfig = {\n enabled: false,\n debug: false,\n concurrency: 3,\n timeoutMs: 5000,\n continueOnError: true,\n\n destinations: {\n console: { enabled: false },\n memory: { enabled: false },\n mock: { enabled: false },\n meta: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n google: {\n enabled: false,\n tagIds: [],\n autoPageView: true,\n loadScript: true,\n },\n tiktok: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n },\n};\n","import type { PrivacyModuleConfig } from '../../types/modules/privacy';\n\nexport const DEFAULT_PRIVACY_MODULE_CONFIG: PrivacyModuleConfig = {\n enabled: false,\n\n consent: {\n enabled: false,\n required: false,\n },\n\n pii: {\n enabled: false,\n hashEmail: true,\n hashPhone: true,\n },\n\n anonymization: {\n enabled: false,\n anonymizeIp: true,\n },\n};\n","import type { TransportConfig } from '../types/transport';\n\nexport const DEFAULT_INTERNAL_TRANSPORT_BASE_URL =\n 'https://micro-service-pixel-production-4826.up.railway.app';\n\nexport const DEFAULT_TRANSPORT_CONFIG: TransportConfig = {\n enabled: true,\n sender: {\n mode: 'internal',\n baseUrl: DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n },\n persistence: { enabled: true },\n replay: { enabled: true },\n ordering: { enabled: true },\n coordination: { enabled: true },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n resetTimeoutMs: 30_000,\n halfOpenMaxAttempts: 2,\n },\n backpressure: {\n enabled: true,\n maxQueueSize: 500,\n policy: 'drop_oldest',\n sampleRate: 0.5,\n },\n deadLetter: {\n enabled: true,\n maxEntries: 200,\n },\n compression: {\n enabled: true,\n strategy: 'identity',\n },\n retry: {\n enabled: true,\n maxAttempts: 4,\n baseDelayMs: 500,\n maxDelayMs: 4_000,\n multiplier: 2,\n },\n batch: {\n enabled: true,\n batchSize: 10,\n maxWaitMs: 5_000,\n },\n timeout: {\n enabled: true,\n timeoutMs: 10_000,\n },\n offline: { enabled: true },\n flush: {\n enabled: true,\n flushIntervalMs: 2_000,\n flushOnDestroy: true,\n prepareUnloadHooks: true,\n },\n};\n","import type { PixelConfig } from '../types/pixel';\nimport { DEFAULT_ATTRIBUTION_CONFIG } from './attribution';\nimport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './modules/behavior';\nimport { DEFAULT_CONVERSION_MODULE_CONFIG } from './modules/conversion';\nimport { DEFAULT_CORE_MODULE_CONFIG } from './modules/core';\nimport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './modules/integrations';\nimport { DEFAULT_PRIVACY_MODULE_CONFIG } from './modules/privacy';\nimport { DEFAULT_TRANSPORT_CONFIG } from './transport';\nimport { DEFAULT_COMMERCE_CONFIG } from '../shared/commerce';\n\nexport const DEFAULT_PIXEL_CONFIG: PixelConfig = {\n app: {\n source: 'custom',\n target: 'custom',\n platform: '',\n environment: 'production',\n debug: false,\n },\n\n identity: {\n pixelId: '',\n },\n\n transport: {\n ...DEFAULT_TRANSPORT_CONFIG,\n sender: { ...DEFAULT_TRANSPORT_CONFIG.sender },\n persistence: { ...DEFAULT_TRANSPORT_CONFIG.persistence },\n replay: { ...DEFAULT_TRANSPORT_CONFIG.replay },\n ordering: { ...DEFAULT_TRANSPORT_CONFIG.ordering },\n coordination: { ...DEFAULT_TRANSPORT_CONFIG.coordination },\n circuitBreaker: { ...DEFAULT_TRANSPORT_CONFIG.circuitBreaker },\n backpressure: { ...DEFAULT_TRANSPORT_CONFIG.backpressure },\n deadLetter: { ...DEFAULT_TRANSPORT_CONFIG.deadLetter },\n compression: { ...DEFAULT_TRANSPORT_CONFIG.compression },\n retry: { ...DEFAULT_TRANSPORT_CONFIG.retry },\n batch: { ...DEFAULT_TRANSPORT_CONFIG.batch },\n timeout: { ...DEFAULT_TRANSPORT_CONFIG.timeout },\n offline: { ...DEFAULT_TRANSPORT_CONFIG.offline },\n flush: { ...DEFAULT_TRANSPORT_CONFIG.flush },\n },\n\n storage: {\n prefix: '__gmk',\n namespace: 'pixel',\n\n persistence: {\n visitor: 'localStorage',\n session: 'sessionStorage',\n attribution: 'localStorage',\n },\n\n queue: {\n enabled: true,\n persistence: 'memory',\n index: true,\n },\n },\n\n attribution: { ...DEFAULT_ATTRIBUTION_CONFIG },\n\n commerce: {\n ...DEFAULT_COMMERCE_CONFIG,\n catalog: { products: [] },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: { attributes: {}, fields: {} },\n enrichment: { ...DEFAULT_COMMERCE_CONFIG.enrichment },\n },\n\n modules: {\n core: DEFAULT_CORE_MODULE_CONFIG,\n behavior: DEFAULT_BEHAVIOR_MODULE_CONFIG,\n conversion: DEFAULT_CONVERSION_MODULE_CONFIG,\n integrations: DEFAULT_INTEGRATIONS_MODULE_CONFIG,\n privacy: DEFAULT_PRIVACY_MODULE_CONFIG,\n },\n};\n","export type PixelConfigurationErrorCode =\n | 'INVALID_PIXEL_ID'\n | 'INVALID_SETTINGS';\n\nexport class PixelConfigurationError extends Error {\n readonly code: PixelConfigurationErrorCode;\n\n readonly cause?: unknown;\n\n constructor(\n message: string,\n code: PixelConfigurationErrorCode,\n cause?: unknown\n ) {\n super(message);\n this.name = 'PixelConfigurationError';\n this.code = code;\n if (cause !== undefined) {\n this.cause = cause;\n }\n }\n}\n","import { PixelConfigurationError } from './errors';\n\n/** Tamanho máximo aceito para `identity.pixelId` após trim. */\nexport const PIXEL_ID_MAX_LENGTH = 128;\n\nfunction hasControlChars(value: string): boolean {\n for (let i = 0; i < value.length; i += 1) {\n const code = value.charCodeAt(i);\n if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Normaliza e valida `identity.pixelId` em runtime (o bundle global é JS).\n * Não exige o prefixo `pix_`.\n */\nexport function normalizePixelId(value: unknown): string {\n if (typeof value !== 'string') {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n const normalized = value.trim();\n\n if (normalized.length === 0) {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (normalized.length > PIXEL_ID_MAX_LENGTH) {\n throw new PixelConfigurationError(\n `identity.pixelId exceeds the maximum length of ${PIXEL_ID_MAX_LENGTH} characters.`,\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (hasControlChars(normalized)) {\n throw new PixelConfigurationError(\n 'identity.pixelId must not contain control characters.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n return normalized;\n}\n","import { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nimport { PixelConfigurationError } from './errors';\nimport { normalizePixelId } from './pixelId';\nimport type { PixelConfig } from './types/pixel';\nimport type { PixelSettings } from './types/pixel-settings';\n\nconst BLOCKED_KEYS = new Set(['__proto__', 'prototype', 'constructor']);\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n if (Array.isArray(value)) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T;\n }\n\n if (isPlainObject(value)) {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n out[key] = cloneDeep(value[key]);\n }\n return out as T;\n }\n\n return value;\n}\n\nfunction mergeDeep(target: unknown, source: unknown, path: string): unknown {\n if (source === undefined) {\n return target;\n }\n\n if (Array.isArray(source)) {\n return cloneDeep(source);\n }\n\n if (typeof source === 'function') {\n return source;\n }\n\n if (!isPlainObject(source)) {\n return source;\n }\n\n const base: Record<string, unknown> = isPlainObject(target)\n ? cloneDeep(target)\n : {};\n\n for (const key of Object.keys(source)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n\n const srcVal = source[key];\n if (srcVal === undefined) {\n continue;\n }\n\n const nextPath = path ? `${path}.${key}` : key;\n if (nextPath === 'transport.sender') {\n base[key] = cloneDeep(srcVal);\n continue;\n }\n\n base[key] = mergeDeep(base[key], srcVal, nextPath);\n }\n\n return base;\n}\n\n/**\n * Resolve input público parcial em `PixelConfig` completo e isolado.\n *\n * Não muta `DEFAULT_PIXEL_CONFIG` nem o `settings` recebido.\n * Cada chamada produz uma árvore nova (sem refs mutáveis compartilhadas).\n */\nexport function resolvePixelConfig(settings: PixelSettings): PixelConfig {\n if (!isPlainObject(settings)) {\n throw new PixelConfigurationError(\n 'Pixel settings must be a plain object.',\n 'INVALID_SETTINGS'\n );\n }\n\n const merged = mergeDeep(\n cloneDeep(DEFAULT_PIXEL_CONFIG),\n settings,\n ''\n ) as PixelConfig;\n\n const rawPixelId = isPlainObject(settings.identity)\n ? settings.identity.pixelId\n : undefined;\n\n merged.identity = {\n ...merged.identity,\n pixelId: normalizePixelId(rawPixelId),\n };\n\n return merged;\n}\n"],"mappings":"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","names":["config_exports","__export","CUSTOMER_FIELD_KEYS","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_PIXEL_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_SELECTOR_TYPE","DEFAULT_TRANSPORT_CONFIG","PIXEL_ID_MAX_LENGTH","PixelConfigurationError","getPrimarySelectorValue","normalizeCalculateValueFrom","normalizePixelId","resolveCustomerFieldMappings","resolvePixelConfig","resolveSelectorTypeFallback","__toCommonJS","DEFAULT_SELECTOR_TYPE","getPrimarySelectorValue","selector","trimmed","item","value","resolveSelectorTypeFallback","selectorType","CUSTOMER_FIELD_KEYS","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_COMMERCE_CONFIG","selectorList","value","item","resolveCustomerFieldMappings","customer","legacyFields","result","key","extras","normalizeCalculateValueFrom","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","dataTrackSource","event","trigger","dataTrackDetector","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_TRANSPORT_CONFIG","DEFAULT_PIXEL_CONFIG","DEFAULT_TRANSPORT_CONFIG","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","PixelConfigurationError","message","code","cause","PIXEL_ID_MAX_LENGTH","hasControlChars","value","i","code","normalizePixelId","PixelConfigurationError","normalized","BLOCKED_KEYS","isPlainObject","value","proto","cloneDeep","item","out","key","mergeDeep","target","source","path","base","srcVal","nextPath","resolvePixelConfig","settings","PixelConfigurationError","merged","DEFAULT_PIXEL_CONFIG","rawPixelId","normalizePixelId"]}
|
package/dist/config/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as AttributionConfig, B as BehaviorModuleConfig, e as ConversionModuleConfig, f as CoreModuleConfig, g as IntegrationsModuleConfig, h as PrivacyModuleConfig, T as TransportConfig } from '../pixel-
|
|
2
|
-
export {
|
|
1
|
+
import { d as AttributionConfig, B as BehaviorModuleConfig, e as ConversionModuleConfig, f as CoreModuleConfig, g as IntegrationsModuleConfig, h as PrivacyModuleConfig, T as TransportConfig } from '../pixel-CCHv_ror.mjs';
|
|
2
|
+
export { aD as AddPaymentInfoAutoDetectorConfig, aE as AddToCartAutoDetectorConfig, aF as AnonymizationConfig, a as AppConfig, A as AttributionStoragePersistence, aG as AutoConversionConfig, aH as AutoDetectorConfig, J as AutoSourceBase, L as AutoSourceType, N as AutoTrackSource, aw as CUSTOMER_FIELD_KEYS, aI as ClickBehaviorConfig, ag as CommerceCalculateValueFrom, ah as CommerceCartConfig, ai as CommerceCartItem, aj as CommerceCartMode, C as CommerceConfig, ak as CommerceCustomerConfig, al as CommerceEnrichmentConfig, am as CommerceEnrichmentSource, an as CommerceEventEnrichmentConfig, ao as CommerceMappingsConfig, ap as CommerceProduct, aJ as ConsentConfig, aK as ConversionAutoDetectorsConfig, aL as ConversionRulesConfig, aM as CoordinationConfig, aq as CustomerFieldKey, ar as CustomerFieldSelectorInput, ax as DEFAULT_COMMERCE_CONFIG, ay as DEFAULT_COMMERCE_ENRICHMENT, av as DEFAULT_SELECTOR_TYPE, aN as DedupeConfig, aO as EngagementBehaviorConfig, U as EngagementPenalties, O as EngagementThresholds, R as EngagementWeights, aP as ExitIntentBehaviorConfig, aQ as FingerprintConfig, W as FingerprintMode, X as FormAutoSource, aR as GoogleBrowserDestinationConfig, aS as GoogleIntegrationConfig, aT as HeartbeatModuleConfig, I as IdentityConfig, aU as IdleBehaviorConfig, aV as InitiateCheckoutAutoDetectorConfig, aW as IntegrationTestDestinationConfig, K as KnownPixelPlatform, i as KnownPixelSource, aX as LeadAutoDetectorConfig, Y as LifecycleAutoSource, Z as LinkAutoSource, _ as LinkMatchProtocol, $ as LinkQueryCondition, a0 as LinkQueryMatch, a1 as LinkTargetMatch, a2 as LinkValueBinding, a3 as LinkValueResolver, a4 as LinkValueTransform, aY as ManualConversionConfig, aZ as ManualEventConfig, a_ as MetaBrowserDestinationConfig, a$ as MetaIntegrationConfig, M as ModulesConfig, b1 as OrderingConfig, b2 as PageViewConfig, a5 as PaymentAutoSource, a6 as PaymentMethod, b3 as PiiConfig, P as PixelConfig, j as PixelEnvironment, k as PixelPlatform, l as PixelSource, m as PixelTarget, b4 as PrivacyConsentConfig, as as ProductCatalogConfig, at as ProductType, b5 as PurchaseAutoDetectorConfig, Q as QueueStoragePersistence, b6 as RemoveFromCartAutoDetectorConfig, b7 as ScrollBehaviorConfig, b8 as SearchAutoDetectorConfig, a7 as SelectorAutoSource, a8 as SelectorAutoTrigger, a9 as SelectorConfig, aa as SelectorDescriptor, ad as SelectorFormConfig, ae as SelectorFormMode, af as SelectorFormTrigger, ab as SelectorInput, ac as SelectorType, b9 as SessionConfig, S as SessionStoragePersistence, c as StorageConfig, H as StorageKeysConfig, b0 as TikTokBrowserDestinationConfig, n as TransportBackpressureConfig, o as TransportBackpressurePolicy, p as TransportBatchConfig, q as TransportCircuitBreakerConfig, r as TransportCompressionConfig, s as TransportCoordinationConfig, t as TransportDeadLetterConfig, u as TransportExternalSenderConfig, v as TransportFlushConfig, w as TransportInternalSenderConfig, x as TransportOfflineConfig, y as TransportOrderingConfig, z as TransportPersistenceConfig, D as TransportReplayConfig, E as TransportRetryConfig, b as TransportSenderConfig, F as TransportTestSenderConfig, G as TransportTimeoutConfig, au as UrlAutoSource, ba as ViewContentAutoDetectorConfig, bb as ViewportBehaviorConfig, bc as ViewportTargetConfig, bd as VisibilityBehaviorConfig, be as VisitorConfig, V as VisitorStoragePersistence, az as getPrimarySelectorValue, aA as normalizeCalculateValueFrom, aB as resolveCustomerFieldMappings, aC as resolveSelectorTypeFallback } from '../pixel-CCHv_ror.mjs';
|
|
3
3
|
export { U as UrlContextConfig, b as UrlContextLinkDecorationStrategy, c as UrlContextMode, d as UrlContextPayload, a as UrlContextSnapshot, e as UrlContextSource, f as UrlContextWriteStrategy, g as UrlForwardParamsConfig, h as UrlLinkDecorationConfig, i as UrlManagedParamConfig, j as UrlManagedParamMode, k as UrlQueryParamsConfig } from '../url-context-Ck2LK18V.mjs';
|
|
4
|
-
export { D as DeepPartial, P as PixelSettings, a as PixelTransportSettings } from '../pixel-settings-
|
|
5
|
-
export { D as DEFAULT_PIXEL_CONFIG, P as PixelConfigurationError, a as PixelConfigurationErrorCode, r as resolvePixelConfig } from '../pixel-default-config-
|
|
4
|
+
export { D as DeepPartial, P as PixelSettings, a as PixelTransportSettings } from '../pixel-settings-BlhqPyAS.mjs';
|
|
5
|
+
export { D as DEFAULT_PIXEL_CONFIG, P as PixelConfigurationError, a as PixelConfigurationErrorCode, r as resolvePixelConfig } from '../pixel-default-config-CTtkGKh1.mjs';
|
|
6
6
|
|
|
7
7
|
/** Tamanho máximo aceito para `identity.pixelId` após trim. */
|
|
8
8
|
declare const PIXEL_ID_MAX_LENGTH = 128;
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as AttributionConfig, B as BehaviorModuleConfig, e as ConversionModuleConfig, f as CoreModuleConfig, g as IntegrationsModuleConfig, h as PrivacyModuleConfig, T as TransportConfig } from '../pixel-
|
|
2
|
-
export {
|
|
1
|
+
import { d as AttributionConfig, B as BehaviorModuleConfig, e as ConversionModuleConfig, f as CoreModuleConfig, g as IntegrationsModuleConfig, h as PrivacyModuleConfig, T as TransportConfig } from '../pixel-CgKoaWS3.js';
|
|
2
|
+
export { aD as AddPaymentInfoAutoDetectorConfig, aE as AddToCartAutoDetectorConfig, aF as AnonymizationConfig, a as AppConfig, A as AttributionStoragePersistence, aG as AutoConversionConfig, aH as AutoDetectorConfig, J as AutoSourceBase, L as AutoSourceType, N as AutoTrackSource, aw as CUSTOMER_FIELD_KEYS, aI as ClickBehaviorConfig, ag as CommerceCalculateValueFrom, ah as CommerceCartConfig, ai as CommerceCartItem, aj as CommerceCartMode, C as CommerceConfig, ak as CommerceCustomerConfig, al as CommerceEnrichmentConfig, am as CommerceEnrichmentSource, an as CommerceEventEnrichmentConfig, ao as CommerceMappingsConfig, ap as CommerceProduct, aJ as ConsentConfig, aK as ConversionAutoDetectorsConfig, aL as ConversionRulesConfig, aM as CoordinationConfig, aq as CustomerFieldKey, ar as CustomerFieldSelectorInput, ax as DEFAULT_COMMERCE_CONFIG, ay as DEFAULT_COMMERCE_ENRICHMENT, av as DEFAULT_SELECTOR_TYPE, aN as DedupeConfig, aO as EngagementBehaviorConfig, U as EngagementPenalties, O as EngagementThresholds, R as EngagementWeights, aP as ExitIntentBehaviorConfig, aQ as FingerprintConfig, W as FingerprintMode, X as FormAutoSource, aR as GoogleBrowserDestinationConfig, aS as GoogleIntegrationConfig, aT as HeartbeatModuleConfig, I as IdentityConfig, aU as IdleBehaviorConfig, aV as InitiateCheckoutAutoDetectorConfig, aW as IntegrationTestDestinationConfig, K as KnownPixelPlatform, i as KnownPixelSource, aX as LeadAutoDetectorConfig, Y as LifecycleAutoSource, Z as LinkAutoSource, _ as LinkMatchProtocol, $ as LinkQueryCondition, a0 as LinkQueryMatch, a1 as LinkTargetMatch, a2 as LinkValueBinding, a3 as LinkValueResolver, a4 as LinkValueTransform, aY as ManualConversionConfig, aZ as ManualEventConfig, a_ as MetaBrowserDestinationConfig, a$ as MetaIntegrationConfig, M as ModulesConfig, b1 as OrderingConfig, b2 as PageViewConfig, a5 as PaymentAutoSource, a6 as PaymentMethod, b3 as PiiConfig, P as PixelConfig, j as PixelEnvironment, k as PixelPlatform, l as PixelSource, m as PixelTarget, b4 as PrivacyConsentConfig, as as ProductCatalogConfig, at as ProductType, b5 as PurchaseAutoDetectorConfig, Q as QueueStoragePersistence, b6 as RemoveFromCartAutoDetectorConfig, b7 as ScrollBehaviorConfig, b8 as SearchAutoDetectorConfig, a7 as SelectorAutoSource, a8 as SelectorAutoTrigger, a9 as SelectorConfig, aa as SelectorDescriptor, ad as SelectorFormConfig, ae as SelectorFormMode, af as SelectorFormTrigger, ab as SelectorInput, ac as SelectorType, b9 as SessionConfig, S as SessionStoragePersistence, c as StorageConfig, H as StorageKeysConfig, b0 as TikTokBrowserDestinationConfig, n as TransportBackpressureConfig, o as TransportBackpressurePolicy, p as TransportBatchConfig, q as TransportCircuitBreakerConfig, r as TransportCompressionConfig, s as TransportCoordinationConfig, t as TransportDeadLetterConfig, u as TransportExternalSenderConfig, v as TransportFlushConfig, w as TransportInternalSenderConfig, x as TransportOfflineConfig, y as TransportOrderingConfig, z as TransportPersistenceConfig, D as TransportReplayConfig, E as TransportRetryConfig, b as TransportSenderConfig, F as TransportTestSenderConfig, G as TransportTimeoutConfig, au as UrlAutoSource, ba as ViewContentAutoDetectorConfig, bb as ViewportBehaviorConfig, bc as ViewportTargetConfig, bd as VisibilityBehaviorConfig, be as VisitorConfig, V as VisitorStoragePersistence, az as getPrimarySelectorValue, aA as normalizeCalculateValueFrom, aB as resolveCustomerFieldMappings, aC as resolveSelectorTypeFallback } from '../pixel-CgKoaWS3.js';
|
|
3
3
|
export { U as UrlContextConfig, b as UrlContextLinkDecorationStrategy, c as UrlContextMode, d as UrlContextPayload, a as UrlContextSnapshot, e as UrlContextSource, f as UrlContextWriteStrategy, g as UrlForwardParamsConfig, h as UrlLinkDecorationConfig, i as UrlManagedParamConfig, j as UrlManagedParamMode, k as UrlQueryParamsConfig } from '../url-context-Ck2LK18V.js';
|
|
4
|
-
export { D as DeepPartial, P as PixelSettings, a as PixelTransportSettings } from '../pixel-settings-
|
|
5
|
-
export { D as DEFAULT_PIXEL_CONFIG, P as PixelConfigurationError, a as PixelConfigurationErrorCode, r as resolvePixelConfig } from '../pixel-default-config-
|
|
4
|
+
export { D as DeepPartial, P as PixelSettings, a as PixelTransportSettings } from '../pixel-settings-CHyZHDO6.js';
|
|
5
|
+
export { D as DEFAULT_PIXEL_CONFIG, P as PixelConfigurationError, a as PixelConfigurationErrorCode, r as resolvePixelConfig } from '../pixel-default-config-D0NZVzDZ.js';
|
|
6
6
|
|
|
7
7
|
/** Tamanho máximo aceito para `identity.pixelId` após trim. */
|
|
8
8
|
declare const PIXEL_ID_MAX_LENGTH = 128;
|
package/dist/config/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/* Pixel v2 — SDK de analytics e conversão */
|
|
2
|
-
var
|
|
2
|
+
var A="css";function C(e){if(e==null)return null;if(typeof e=="string"){let r=e.trim();return r.length>0?r:null}if(Array.isArray(e)){for(let r of e){let n=C(r);if(n)return n}return null}let t=e.value?.trim();return t&&t.length>0?t:null}function P(e,t){if(t)return t;if(e!=null&&typeof e!="string")if(Array.isArray(e)){for(let r of e)if(typeof r!="string")return r.type}else return e.type;return"css"}var d=["email","phone","name","firstName","lastName","address","address2","city","state","postalCode","country"],f={pageView:{enabled:!0,source:"cart"},viewContent:{enabled:!0,source:"event_or_cart"},lead:{enabled:!1,source:"event_or_cart"},addToCart:{enabled:!0,source:"event_or_cart"},removeFromCart:{enabled:!0,source:"event_or_cart"},initiateCheckout:{enabled:!0,source:"cart"},addPaymentInfo:{enabled:!0,source:"cart"},purchase:{enabled:!0,source:"cart"}},c={enabled:!0,currency:"BRL",catalog:{products:[]},cart:{mode:"custom",initialItems:[],allowDynamicItems:!0,calculateValueFrom:"cart"},mappings:{attributes:{},fields:{}},customer:{fields:{}},enrichment:{...f}};function F(e){return e?(Array.isArray(e)?e:[e]).map(r=>String(r).trim()).filter(Boolean):[]}function M(e,t){let r={};for(let n of d){let i=[...F(e?.fields?.[n]),...F(t?.[n])];i.length>0&&(r[n]=i)}return r}function L(e){switch(e){case"event":case"event_items":return"event";case"manual":return"manual";case"catalog":return"catalog";case"cart":case"selected_items":default:return"cart"}}var g={enabled:!0,ttlDays:90,persist:!0,captureUrlParams:!0,captureCookies:!0,customClickIdParams:[]};var y={enabled:!1,heartbeat:{enabled:!1,intervalMs:15e3,hiddenIntervalMs:6e4,emitWhenHidden:!1,emitWhenIdle:!0,includeSnapshot:!0,fireImmediately:!1},engagement:{enabled:!1,evaluationIntervalMs:5e3,emitOnChange:!0,minScoreDelta:5,emitSummaryOnDestroy:!0,weights:{activeTime:.25,scroll:.2,click:.15,viewport:.2,visibility:.1,heartbeat:.1},penalties:{idle:.2,rageClick:.1},thresholds:{lowMax:29,mediumMax:69}},rateLimit:{enabled:!1,windowMs:1e3,maxSignalsPerWindow:50,criticalBypass:!0},buffer:{enabled:!1,maxSize:200,maxAgeMs:3e4,flushSize:50,dropStrategy:"compress_similar",flushOnHidden:!0},stateMachine:{enabled:!1,historyLimit:50},sessionSummary:{enabled:!1,emitOnHidden:!1,emitOnDestroy:!0,minimumSessionMs:0},trackers:{scroll:{enabled:!1,thresholds:[25,50,75,100],debounceMs:100},click:{enabled:!1,rageClick:{enabled:!0,threshold:3,windowMs:500}},idle:{enabled:!1,thresholdMs:6e4},visibility:{enabled:!1},exitIntent:{enabled:!1},viewport:{enabled:!1,targets:[],rootMargin:"0px",observeMutations:!0,mutationDebounceMs:100,maxObservedElements:500}}};function m(e,t){return{name:t==="click"?e:`${e}:${t}`,type:"selector",selector:`[data-track="${e}"]`,selectorType:"css",trigger:t}}function s(e){return{enabled:!0,sources:[m(e,"click")]}}var E={enabled:!0,manual:{pageView:{enabled:!0},purchase:{enabled:!0},lead:{enabled:!0},addToCart:{enabled:!0},removeFromCart:{enabled:!0},initiateCheckout:{enabled:!0},addPaymentInfo:{enabled:!0},search:{enabled:!0},viewContent:{enabled:!0}},auto:{enabled:!0,detectors:{lead:s("lead"),addToCart:s("add_to_cart"),removeFromCart:s("remove_from_cart"),initiateCheckout:s("initiate_checkout"),purchase:s("purchase"),addPaymentInfo:s("add_payment_info"),search:s("search"),viewContent:{enabled:!0,sources:[m("view_content","click"),m("view_content","hover"),m("view_content","visible")]}}},rules:{enabled:!1,selectors:["[data-track]"],texts:["Comprar","Comprar Agora","Finalizar Compra","Checkout"],urlPatterns:["thank-you","purchase","success","order","checkout"],checkout:{enabled:!1},card:{enabled:!1}}};var _={enabled:!0,pageView:{enabled:!0,trackInitialPageView:!0,spa:!0,dedupeMs:2e3},visitor:{enabled:!0,persistence:"cookie_localStorage",renew:!1},session:{enabled:!0,ttlMs:108e5,renewOnActivity:!0,renewOnPageView:!0},fingerprint:{enabled:!0,mode:"light",cache:!0},consent:{enabled:!1,required:!1,waitForConsent:!1},dedupe:{enabled:!0,windowMs:2e3},coordination:{enabled:!0,leaderElection:!0,broadcastChannel:!0},ordering:{enabled:!0,preserveOrder:!0},urlContext:{enabled:!1}};var x={enabled:!1,debug:!1,concurrency:3,timeoutMs:5e3,continueOnError:!0,destinations:{console:{enabled:!1},memory:{enabled:!1},mock:{enabled:!1},meta:{enabled:!1,pixelIds:[],autoPageView:!0,loadScript:!0},google:{enabled:!1,tagIds:[],autoPageView:!0,loadScript:!0},tiktok:{enabled:!1,pixelIds:[],autoPageView:!0,loadScript:!0}}};var T={enabled:!1,consent:{enabled:!1,required:!1},pii:{enabled:!1,hashEmail:!0,hashPhone:!0},anonymization:{enabled:!1,anonymizeIp:!0}};var D="https://micro-service-pixel-production-4826.up.railway.app",o={enabled:!0,sender:{mode:"internal",baseUrl:D},persistence:{enabled:!0},replay:{enabled:!0},ordering:{enabled:!0},coordination:{enabled:!0},circuitBreaker:{enabled:!0,failureThreshold:5,resetTimeoutMs:3e4,halfOpenMaxAttempts:2},backpressure:{enabled:!0,maxQueueSize:500,policy:"drop_oldest",sampleRate:.5},deadLetter:{enabled:!0,maxEntries:200},compression:{enabled:!0,strategy:"identity"},retry:{enabled:!0,maxAttempts:4,baseDelayMs:500,maxDelayMs:4e3,multiplier:2},batch:{enabled:!0,batchSize:10,maxWaitMs:5e3},timeout:{enabled:!0,timeoutMs:1e4},offline:{enabled:!0},flush:{enabled:!0,flushIntervalMs:2e3,flushOnDestroy:!0,prepareUnloadHooks:!0}};var I={app:{source:"custom",target:"custom",platform:"",environment:"production",debug:!1},identity:{pixelId:""},transport:{...o,sender:{...o.sender},persistence:{...o.persistence},replay:{...o.replay},ordering:{...o.ordering},coordination:{...o.coordination},circuitBreaker:{...o.circuitBreaker},backpressure:{...o.backpressure},deadLetter:{...o.deadLetter},compression:{...o.compression},retry:{...o.retry},batch:{...o.batch},timeout:{...o.timeout},offline:{...o.offline},flush:{...o.flush}},storage:{prefix:"__gmk",namespace:"pixel",persistence:{visitor:"localStorage",session:"sessionStorage",attribution:"localStorage"},queue:{enabled:!0,persistence:"memory",index:!0}},attribution:{...g},commerce:{...c,catalog:{products:[]},cart:{mode:"custom",initialItems:[],allowDynamicItems:!0,calculateValueFrom:"cart"},mappings:{attributes:{},fields:{}},enrichment:{...c.enrichment}},modules:{core:_,behavior:y,conversion:E,integrations:x,privacy:T}};var a=class extends Error{constructor(t,r,n){super(t),this.name="PixelConfigurationError",this.code=r,n!==void 0&&(this.cause=n)}};var h=128;function k(e){for(let t=0;t<e.length;t+=1){let r=e.charCodeAt(t);if(r<=31||r>=127&&r<=159)return!0}return!1}function S(e){if(typeof e!="string")throw new a("identity.pixelId must be a non-empty string.","INVALID_PIXEL_ID");let t=e.trim();if(t.length===0)throw new a("identity.pixelId must be a non-empty string.","INVALID_PIXEL_ID");if(t.length>h)throw new a(`identity.pixelId exceeds the maximum length of ${h} characters.`,"INVALID_PIXEL_ID");if(k(t))throw new a("identity.pixelId must not contain control characters.","INVALID_PIXEL_ID");return t}var O=new Set(["__proto__","prototype","constructor"]);function u(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function l(e){if(Array.isArray(e))return e.map(t=>l(t));if(u(e)){let t={};for(let r of Object.keys(e))O.has(r)||(t[r]=l(e[r]));return t}return e}function U(e,t,r){if(t===void 0)return e;if(Array.isArray(t))return l(t);if(typeof t=="function"||!u(t))return t;let n=u(e)?l(e):{};for(let i of Object.keys(t)){if(O.has(i))continue;let p=t[i];if(p===void 0)continue;let b=r?`${r}.${i}`:i;if(b==="transport.sender"){n[i]=l(p);continue}n[i]=U(n[i],p,b)}return n}function v(e){if(!u(e))throw new a("Pixel settings must be a plain object.","INVALID_SETTINGS");let t=U(l(I),e,""),r=u(e.identity)?e.identity.pixelId:void 0;return t.identity={...t.identity,pixelId:S(r)},t}export{d as CUSTOMER_FIELD_KEYS,g as DEFAULT_ATTRIBUTION_CONFIG,y as DEFAULT_BEHAVIOR_MODULE_CONFIG,c as DEFAULT_COMMERCE_CONFIG,f as DEFAULT_COMMERCE_ENRICHMENT,E as DEFAULT_CONVERSION_MODULE_CONFIG,_ as DEFAULT_CORE_MODULE_CONFIG,x as DEFAULT_INTEGRATIONS_MODULE_CONFIG,D as DEFAULT_INTERNAL_TRANSPORT_BASE_URL,I as DEFAULT_PIXEL_CONFIG,T as DEFAULT_PRIVACY_MODULE_CONFIG,A as DEFAULT_SELECTOR_TYPE,o as DEFAULT_TRANSPORT_CONFIG,h as PIXEL_ID_MAX_LENGTH,a as PixelConfigurationError,C as getPrimarySelectorValue,L as normalizeCalculateValueFrom,S as normalizePixelId,M as resolveCustomerFieldMappings,v as resolvePixelConfig,P as resolveSelectorTypeFallback};
|
|
3
3
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/shared/selector.ts","../../src/config/shared/commerce.ts","../../src/config/defaults/attribution.ts","../../src/config/defaults/modules/behavior.ts","../../src/config/defaults/modules/conversion.ts","../../src/config/defaults/modules/core.ts","../../src/config/defaults/modules/integrations.ts","../../src/config/defaults/modules/privacy.ts","../../src/config/defaults/transport.ts","../../src/config/defaults/pixel-default-config.ts","../../src/config/errors.ts","../../src/config/pixelId.ts","../../src/config/resolvePixelConfig.ts"],"sourcesContent":["/**\n * Tipo padrão/fallback para interpretar selectors string sem prefixo.\n *\n * Ordem de resolução (`SelectorResolver`):\n * 1. Objeto → selector.type\n * 2. String com prefixo (css:, id:, class:, attr:, attribute:, text:) → prefixo\n * 3. String sem prefixo → selectorType\n * 4. Sem selectorType → css (DEFAULT_SELECTOR_TYPE)\n */\nexport type SelectorType = 'css' | 'id' | 'class' | 'attribute' | 'text';\n\n/** Fallback quando `selectorType` é omitido. */\nexport const DEFAULT_SELECTOR_TYPE: SelectorType = 'css';\n\n/**\n * Forma avançada de um seletor individual.\n * `exact` / `caseSensitive` aplicam-se principalmente a `type: 'text'`.\n * `closest` restringe a busca a um ancestral CSS (resolvido na etapa do Resolver).\n */\nexport type SelectorDescriptor = {\n type: SelectorType;\n value: string;\n exact?: boolean;\n caseSensitive?: boolean;\n closest?: string;\n};\n\n/** Um seletor: string simples/prefixada ou descritor tipado. */\nexport type SelectorInput = string | SelectorDescriptor;\n\n/** Um ou vários seletores (OR — qualquer match dispara). */\nexport type SelectorConfig = SelectorInput | SelectorInput[];\n\n/**\n * Extrai o valor primário de um `SelectorConfig` (utilitário de config).\n * Para match/query no DOM, use `SelectorResolver`.\n */\nexport function getPrimarySelectorValue(\n selector: SelectorConfig | undefined\n): string | null {\n if (selector == null) return null;\n\n if (typeof selector === 'string') {\n const trimmed = selector.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n if (Array.isArray(selector)) {\n for (const item of selector) {\n const value = getPrimarySelectorValue(item);\n if (value) return value;\n }\n return null;\n }\n\n const value = selector.value?.trim();\n return value && value.length > 0 ? value : null;\n}\n\n/**\n * Resolve o `selectorType` efetivo: config explícita → tipo do descriptor → css.\n */\nexport function resolveSelectorTypeFallback(\n selector: SelectorConfig | undefined,\n selectorType?: SelectorType\n): SelectorType {\n if (selectorType) return selectorType;\n\n if (selector != null && typeof selector !== 'string') {\n if (Array.isArray(selector)) {\n for (const item of selector) {\n if (typeof item !== 'string') return item.type;\n }\n } else {\n return selector.type;\n }\n }\n\n return DEFAULT_SELECTOR_TYPE;\n}\n","/**\n * Contratos globais de commerce (root `PixelConfig.commerce`).\n * Não pertencem a conversion — representam o contexto comercial da página/fluxo.\n */\n\nexport type ProductType =\n | 'main'\n | 'order_bump'\n | 'upsell'\n | 'downsell'\n | 'cross_sell'\n | 'addon'\n | 'subscription'\n | 'custom'\n | 'other';\n\nexport type CommerceProduct = {\n id: string;\n name?: string;\n sku?: string;\n type?: ProductType;\n price?: number;\n currency?: string;\n quantity?: number;\n category?: string;\n variant?: string;\n brand?: string;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartItem = {\n productId: string;\n quantity?: number;\n price?: number;\n currency?: string;\n selected?: boolean;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartMode =\n | 'landing_page'\n | 'single_product'\n | 'multi_product'\n | 'checkout'\n | 'upsell'\n | 'custom'\n | 'cart'\n | 'funnel';\n\nexport type CommerceCalculateValueFrom =\n | 'cart'\n | 'event'\n | 'manual'\n | 'catalog';\n\nexport type CommerceEnrichmentSource =\n | 'cart'\n | 'event'\n | 'event_or_cart'\n | 'catalog';\n\nexport type CommerceEventEnrichmentConfig = {\n enabled: boolean;\n source?: CommerceEnrichmentSource;\n};\n\nexport type CommerceEnrichmentConfig = {\n pageView?: CommerceEventEnrichmentConfig;\n viewContent?: CommerceEventEnrichmentConfig;\n lead?: CommerceEventEnrichmentConfig;\n addToCart?: CommerceEventEnrichmentConfig;\n removeFromCart?: CommerceEventEnrichmentConfig;\n initiateCheckout?: CommerceEventEnrichmentConfig;\n addPaymentInfo?: CommerceEventEnrichmentConfig;\n purchase?: CommerceEventEnrichmentConfig;\n};\n\nexport type ProductCatalogConfig = {\n products?: CommerceProduct[];\n};\n\nexport type CommerceCartConfig = {\n mode?: CommerceCartMode;\n /** Seed inicial do carrinho — não é estado vivo. */\n initialItems?: CommerceCartItem[];\n allowDynamicItems?: boolean;\n calculateValueFrom?: CommerceCalculateValueFrom;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceMappingsConfig = {\n attributes?: Record<string, string[]>;\n fields?: Record<string, string[]>;\n};\n\nexport type CommerceConfig = {\n enabled?: boolean;\n currency?: string;\n catalog?: ProductCatalogConfig;\n cart?: CommerceCartConfig;\n mappings?: CommerceMappingsConfig;\n enrichment?: CommerceEnrichmentConfig;\n};\n\nexport const DEFAULT_COMMERCE_ENRICHMENT: Required<CommerceEnrichmentConfig> = {\n pageView: { enabled: true, source: 'cart' },\n viewContent: { enabled: true, source: 'event_or_cart' },\n lead: { enabled: false, source: 'event_or_cart' },\n addToCart: { enabled: true, source: 'event_or_cart' },\n removeFromCart: { enabled: true, source: 'event_or_cart' },\n initiateCheckout: { enabled: true, source: 'cart' },\n addPaymentInfo: { enabled: true, source: 'cart' },\n purchase: { enabled: true, source: 'cart' },\n};\n\n/**\n * Commerce on by default so catalog/cart enrichment runs when products exist.\n * Empty catalog / empty cart is a no-op.\n */\nexport const DEFAULT_COMMERCE_CONFIG: CommerceConfig = {\n enabled: true,\n currency: 'BRL',\n catalog: {\n products: [],\n },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: {\n attributes: {},\n fields: {},\n },\n enrichment: { ...DEFAULT_COMMERCE_ENRICHMENT },\n};\n\n/** Normaliza calculateValueFrom (inclui aliases legado em runtime). */\nexport function normalizeCalculateValueFrom(\n value: CommerceCalculateValueFrom | string | undefined\n): 'cart' | 'event' | 'manual' | 'catalog' {\n switch (value) {\n case 'event':\n case 'event_items':\n return 'event';\n case 'manual':\n return 'manual';\n case 'catalog':\n return 'catalog';\n case 'cart':\n case 'selected_items':\n default:\n return 'cart';\n }\n}\n","import type { AttributionConfig } from '../types/attribution';\n\nexport const DEFAULT_ATTRIBUTION_CONFIG: AttributionConfig = {\n enabled: true,\n ttlDays: 90,\n persist: true,\n captureUrlParams: true,\n captureCookies: true,\n customClickIdParams: [],\n};\n","import type { BehaviorModuleConfig } from '../../types/modules/behavior';\n\nexport const DEFAULT_BEHAVIOR_MODULE_CONFIG: BehaviorModuleConfig = {\n enabled: false,\n\n heartbeat: {\n enabled: false,\n intervalMs: 15_000,\n hiddenIntervalMs: 60_000,\n emitWhenHidden: false,\n emitWhenIdle: true,\n includeSnapshot: true,\n fireImmediately: false,\n },\n\n engagement: {\n enabled: false,\n evaluationIntervalMs: 5_000,\n emitOnChange: true,\n minScoreDelta: 5,\n emitSummaryOnDestroy: true,\n\n weights: {\n activeTime: 0.25,\n scroll: 0.2,\n click: 0.15,\n viewport: 0.2,\n visibility: 0.1,\n heartbeat: 0.1,\n },\n\n penalties: {\n idle: 0.2,\n rageClick: 0.1,\n },\n\n thresholds: {\n lowMax: 29,\n mediumMax: 69,\n },\n },\n\n rateLimit: {\n enabled: false,\n windowMs: 1_000,\n maxSignalsPerWindow: 50,\n criticalBypass: true,\n },\n\n buffer: {\n enabled: false,\n maxSize: 200,\n maxAgeMs: 30_000,\n flushSize: 50,\n dropStrategy: 'compress_similar',\n flushOnHidden: true,\n },\n\n stateMachine: {\n enabled: false,\n historyLimit: 50,\n },\n\n sessionSummary: {\n enabled: false,\n emitOnHidden: false,\n emitOnDestroy: true,\n minimumSessionMs: 0,\n },\n\n trackers: {\n scroll: {\n enabled: false,\n thresholds: [25, 50, 75, 100],\n debounceMs: 100,\n },\n\n click: {\n enabled: false,\n rageClick: {\n enabled: true,\n threshold: 3,\n windowMs: 500,\n },\n },\n\n idle: {\n enabled: false,\n thresholdMs: 60_000,\n },\n\n visibility: {\n enabled: false,\n },\n\n exitIntent: {\n enabled: false,\n },\n\n viewport: {\n enabled: false,\n targets: [],\n rootMargin: '0px',\n observeMutations: true,\n mutationDebounceMs: 100,\n maxObservedElements: 500,\n },\n },\n};\n","import type { ConversionModuleConfig } from '../../types/modules/conversion';\n\nfunction dataTrackSource(\n event: string,\n trigger: 'click' | 'hover' | 'visible'\n) {\n return {\n name: trigger === 'click' ? event : `${event}:${trigger}`,\n type: 'selector' as const,\n selector: `[data-track=\"${event}\"]`,\n selectorType: 'css' as const,\n trigger,\n };\n}\n\nfunction dataTrackDetector(event: string) {\n return {\n enabled: true,\n sources: [dataTrackSource(event, 'click')],\n };\n}\n\nexport const DEFAULT_CONVERSION_MODULE_CONFIG: ConversionModuleConfig = {\n enabled: true,\n\n manual: {\n pageView: {\n enabled: true,\n },\n purchase: {\n enabled: true,\n },\n lead: {\n enabled: true,\n },\n addToCart: {\n enabled: true,\n },\n removeFromCart: {\n enabled: true,\n },\n initiateCheckout: {\n enabled: true,\n },\n addPaymentInfo: {\n enabled: true,\n },\n search: {\n enabled: true,\n },\n viewContent: {\n enabled: true,\n },\n },\n\n auto: {\n enabled: true,\n\n detectors: {\n lead: dataTrackDetector('lead'),\n addToCart: dataTrackDetector('add_to_cart'),\n removeFromCart: dataTrackDetector('remove_from_cart'),\n initiateCheckout: dataTrackDetector('initiate_checkout'),\n purchase: dataTrackDetector('purchase'),\n addPaymentInfo: dataTrackDetector('add_payment_info'),\n search: dataTrackDetector('search'),\n viewContent: {\n enabled: true,\n sources: [\n dataTrackSource('view_content', 'click'),\n dataTrackSource('view_content', 'hover'),\n dataTrackSource('view_content', 'visible'),\n ],\n },\n },\n },\n\n rules: {\n enabled: false,\n selectors: ['[data-track]'],\n texts: ['Comprar', 'Comprar Agora', 'Finalizar Compra', 'Checkout'],\n urlPatterns: ['thank-you', 'purchase', 'success', 'order', 'checkout'],\n checkout: {\n enabled: false,\n },\n card: {\n enabled: false,\n },\n },\n};\n","import type { CoreModuleConfig } from '../../types/modules/core';\n\nexport const DEFAULT_CORE_MODULE_CONFIG: CoreModuleConfig = {\n enabled: true,\n\n pageView: {\n enabled: true,\n trackInitialPageView: true,\n spa: true,\n dedupeMs: 2000,\n },\n\n visitor: {\n enabled: true,\n persistence: 'cookie_localStorage',\n renew: false,\n },\n\n session: {\n enabled: true,\n ttlMs: 10800000,\n renewOnActivity: true,\n renewOnPageView: true,\n },\n\n fingerprint: {\n enabled: true,\n mode: 'light',\n cache: true,\n },\n\n consent: {\n enabled: false,\n required: false,\n waitForConsent: false,\n },\n\n dedupe: {\n enabled: true,\n windowMs: 2000,\n },\n\n coordination: {\n enabled: true,\n leaderElection: true,\n broadcastChannel: true,\n },\n\n ordering: {\n enabled: true,\n preserveOrder: true,\n },\n\n urlContext: {\n enabled: false,\n },\n};\n","import type { IntegrationsModuleConfig } from '../../types/modules/integrations';\n\nexport const DEFAULT_INTEGRATIONS_MODULE_CONFIG: IntegrationsModuleConfig = {\n enabled: false,\n debug: false,\n concurrency: 3,\n timeoutMs: 5000,\n continueOnError: true,\n\n destinations: {\n console: { enabled: false },\n memory: { enabled: false },\n mock: { enabled: false },\n meta: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n google: {\n enabled: false,\n tagIds: [],\n autoPageView: true,\n loadScript: true,\n },\n tiktok: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n },\n};\n","import type { PrivacyModuleConfig } from '../../types/modules/privacy';\n\nexport const DEFAULT_PRIVACY_MODULE_CONFIG: PrivacyModuleConfig = {\n enabled: false,\n\n consent: {\n enabled: false,\n required: false,\n },\n\n pii: {\n enabled: false,\n hashEmail: true,\n hashPhone: true,\n },\n\n anonymization: {\n enabled: false,\n anonymizeIp: true,\n },\n};\n","import type { TransportConfig } from '../types/transport';\n\nexport const DEFAULT_INTERNAL_TRANSPORT_BASE_URL =\n 'https://micro-service-pixel-production-4826.up.railway.app';\n\nexport const DEFAULT_TRANSPORT_CONFIG: TransportConfig = {\n enabled: true,\n sender: {\n mode: 'internal',\n baseUrl: DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n },\n persistence: { enabled: true },\n replay: { enabled: true },\n ordering: { enabled: true },\n coordination: { enabled: true },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n resetTimeoutMs: 30_000,\n halfOpenMaxAttempts: 2,\n },\n backpressure: {\n enabled: true,\n maxQueueSize: 500,\n policy: 'drop_oldest',\n sampleRate: 0.5,\n },\n deadLetter: {\n enabled: true,\n maxEntries: 200,\n },\n compression: {\n enabled: true,\n strategy: 'identity',\n },\n retry: {\n enabled: true,\n maxAttempts: 4,\n baseDelayMs: 500,\n maxDelayMs: 4_000,\n multiplier: 2,\n },\n batch: {\n enabled: true,\n batchSize: 10,\n maxWaitMs: 5_000,\n },\n timeout: {\n enabled: true,\n timeoutMs: 10_000,\n },\n offline: { enabled: true },\n flush: {\n enabled: true,\n flushIntervalMs: 2_000,\n flushOnDestroy: true,\n prepareUnloadHooks: true,\n },\n};\n","import type { PixelConfig } from '../types/pixel';\nimport { DEFAULT_ATTRIBUTION_CONFIG } from './attribution';\nimport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './modules/behavior';\nimport { DEFAULT_CONVERSION_MODULE_CONFIG } from './modules/conversion';\nimport { DEFAULT_CORE_MODULE_CONFIG } from './modules/core';\nimport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './modules/integrations';\nimport { DEFAULT_PRIVACY_MODULE_CONFIG } from './modules/privacy';\nimport { DEFAULT_TRANSPORT_CONFIG } from './transport';\nimport { DEFAULT_COMMERCE_CONFIG } from '../shared/commerce';\n\nexport const DEFAULT_PIXEL_CONFIG: PixelConfig = {\n app: {\n source: 'custom',\n target: 'custom',\n platform: '',\n environment: 'production',\n debug: false,\n },\n\n identity: {\n pixelId: '',\n },\n\n transport: {\n ...DEFAULT_TRANSPORT_CONFIG,\n sender: { ...DEFAULT_TRANSPORT_CONFIG.sender },\n persistence: { ...DEFAULT_TRANSPORT_CONFIG.persistence },\n replay: { ...DEFAULT_TRANSPORT_CONFIG.replay },\n ordering: { ...DEFAULT_TRANSPORT_CONFIG.ordering },\n coordination: { ...DEFAULT_TRANSPORT_CONFIG.coordination },\n circuitBreaker: { ...DEFAULT_TRANSPORT_CONFIG.circuitBreaker },\n backpressure: { ...DEFAULT_TRANSPORT_CONFIG.backpressure },\n deadLetter: { ...DEFAULT_TRANSPORT_CONFIG.deadLetter },\n compression: { ...DEFAULT_TRANSPORT_CONFIG.compression },\n retry: { ...DEFAULT_TRANSPORT_CONFIG.retry },\n batch: { ...DEFAULT_TRANSPORT_CONFIG.batch },\n timeout: { ...DEFAULT_TRANSPORT_CONFIG.timeout },\n offline: { ...DEFAULT_TRANSPORT_CONFIG.offline },\n flush: { ...DEFAULT_TRANSPORT_CONFIG.flush },\n },\n\n storage: {\n prefix: '__gmk',\n namespace: 'pixel',\n\n persistence: {\n visitor: 'localStorage',\n session: 'sessionStorage',\n attribution: 'localStorage',\n },\n\n queue: {\n enabled: true,\n persistence: 'memory',\n index: true,\n },\n },\n\n attribution: { ...DEFAULT_ATTRIBUTION_CONFIG },\n\n commerce: {\n ...DEFAULT_COMMERCE_CONFIG,\n catalog: { products: [] },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: { attributes: {}, fields: {} },\n enrichment: { ...DEFAULT_COMMERCE_CONFIG.enrichment },\n },\n\n modules: {\n core: DEFAULT_CORE_MODULE_CONFIG,\n behavior: DEFAULT_BEHAVIOR_MODULE_CONFIG,\n conversion: DEFAULT_CONVERSION_MODULE_CONFIG,\n integrations: DEFAULT_INTEGRATIONS_MODULE_CONFIG,\n privacy: DEFAULT_PRIVACY_MODULE_CONFIG,\n },\n};\n","export type PixelConfigurationErrorCode =\n | 'INVALID_PIXEL_ID'\n | 'INVALID_SETTINGS';\n\nexport class PixelConfigurationError extends Error {\n readonly code: PixelConfigurationErrorCode;\n\n readonly cause?: unknown;\n\n constructor(\n message: string,\n code: PixelConfigurationErrorCode,\n cause?: unknown\n ) {\n super(message);\n this.name = 'PixelConfigurationError';\n this.code = code;\n if (cause !== undefined) {\n this.cause = cause;\n }\n }\n}\n","import { PixelConfigurationError } from './errors';\n\n/** Tamanho máximo aceito para `identity.pixelId` após trim. */\nexport const PIXEL_ID_MAX_LENGTH = 128;\n\nfunction hasControlChars(value: string): boolean {\n for (let i = 0; i < value.length; i += 1) {\n const code = value.charCodeAt(i);\n if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Normaliza e valida `identity.pixelId` em runtime (o bundle global é JS).\n * Não exige o prefixo `pix_`.\n */\nexport function normalizePixelId(value: unknown): string {\n if (typeof value !== 'string') {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n const normalized = value.trim();\n\n if (normalized.length === 0) {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (normalized.length > PIXEL_ID_MAX_LENGTH) {\n throw new PixelConfigurationError(\n `identity.pixelId exceeds the maximum length of ${PIXEL_ID_MAX_LENGTH} characters.`,\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (hasControlChars(normalized)) {\n throw new PixelConfigurationError(\n 'identity.pixelId must not contain control characters.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n return normalized;\n}\n","import { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nimport { PixelConfigurationError } from './errors';\nimport { normalizePixelId } from './pixelId';\nimport type { PixelConfig } from './types/pixel';\nimport type { PixelSettings } from './types/pixel-settings';\n\nconst BLOCKED_KEYS = new Set(['__proto__', 'prototype', 'constructor']);\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n if (Array.isArray(value)) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T;\n }\n\n if (isPlainObject(value)) {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n out[key] = cloneDeep(value[key]);\n }\n return out as T;\n }\n\n return value;\n}\n\nfunction mergeDeep(target: unknown, source: unknown, path: string): unknown {\n if (source === undefined) {\n return target;\n }\n\n if (Array.isArray(source)) {\n return cloneDeep(source);\n }\n\n if (typeof source === 'function') {\n return source;\n }\n\n if (!isPlainObject(source)) {\n return source;\n }\n\n const base: Record<string, unknown> = isPlainObject(target)\n ? cloneDeep(target)\n : {};\n\n for (const key of Object.keys(source)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n\n const srcVal = source[key];\n if (srcVal === undefined) {\n continue;\n }\n\n const nextPath = path ? `${path}.${key}` : key;\n if (nextPath === 'transport.sender') {\n base[key] = cloneDeep(srcVal);\n continue;\n }\n\n base[key] = mergeDeep(base[key], srcVal, nextPath);\n }\n\n return base;\n}\n\n/**\n * Resolve input público parcial em `PixelConfig` completo e isolado.\n *\n * Não muta `DEFAULT_PIXEL_CONFIG` nem o `settings` recebido.\n * Cada chamada produz uma árvore nova (sem refs mutáveis compartilhadas).\n */\nexport function resolvePixelConfig(settings: PixelSettings): PixelConfig {\n if (!isPlainObject(settings)) {\n throw new PixelConfigurationError(\n 'Pixel settings must be a plain object.',\n 'INVALID_SETTINGS'\n );\n }\n\n const merged = mergeDeep(\n cloneDeep(DEFAULT_PIXEL_CONFIG),\n settings,\n ''\n ) as PixelConfig;\n\n const rawPixelId = isPlainObject(settings.identity)\n ? settings.identity.pixelId\n : undefined;\n\n merged.identity = {\n ...merged.identity,\n pixelId: normalizePixelId(rawPixelId),\n };\n\n return merged;\n}\n"],"mappings":"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","names":["DEFAULT_SELECTOR_TYPE","getPrimarySelectorValue","selector","trimmed","item","value","resolveSelectorTypeFallback","selectorType","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_COMMERCE_CONFIG","normalizeCalculateValueFrom","value","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","dataTrackSource","event","trigger","dataTrackDetector","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_TRANSPORT_CONFIG","DEFAULT_PIXEL_CONFIG","DEFAULT_TRANSPORT_CONFIG","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","PixelConfigurationError","message","code","cause","PIXEL_ID_MAX_LENGTH","hasControlChars","value","i","code","normalizePixelId","PixelConfigurationError","normalized","BLOCKED_KEYS","isPlainObject","value","proto","cloneDeep","item","out","key","mergeDeep","target","source","path","base","srcVal","nextPath","resolvePixelConfig","settings","PixelConfigurationError","merged","DEFAULT_PIXEL_CONFIG","rawPixelId","normalizePixelId"]}
|
|
1
|
+
{"version":3,"sources":["../../src/config/shared/selector.ts","../../src/config/shared/commerce.ts","../../src/config/defaults/attribution.ts","../../src/config/defaults/modules/behavior.ts","../../src/config/defaults/modules/conversion.ts","../../src/config/defaults/modules/core.ts","../../src/config/defaults/modules/integrations.ts","../../src/config/defaults/modules/privacy.ts","../../src/config/defaults/transport.ts","../../src/config/defaults/pixel-default-config.ts","../../src/config/errors.ts","../../src/config/pixelId.ts","../../src/config/resolvePixelConfig.ts"],"sourcesContent":["/**\n * Tipo padrão/fallback para interpretar selectors string sem prefixo.\n *\n * Ordem de resolução (`SelectorResolver`):\n * 1. Objeto → selector.type\n * 2. String com prefixo (css:, id:, class:, attr:, attribute:, text:) → prefixo\n * 3. String sem prefixo → selectorType\n * 4. Sem selectorType → css (DEFAULT_SELECTOR_TYPE)\n */\nexport type SelectorType = 'css' | 'id' | 'class' | 'attribute' | 'text';\n\n/** Fallback quando `selectorType` é omitido. */\nexport const DEFAULT_SELECTOR_TYPE: SelectorType = 'css';\n\n/**\n * Forma avançada de um seletor individual.\n * `exact` / `caseSensitive` aplicam-se principalmente a `type: 'text'`.\n * `closest` restringe a busca a um ancestral CSS (resolvido na etapa do Resolver).\n */\nexport type SelectorDescriptor = {\n type: SelectorType;\n value: string;\n exact?: boolean;\n caseSensitive?: boolean;\n closest?: string;\n};\n\n/** Um seletor: string simples/prefixada ou descritor tipado. */\nexport type SelectorInput = string | SelectorDescriptor;\n\n/** Um ou vários seletores (OR — qualquer match dispara). */\nexport type SelectorConfig = SelectorInput | SelectorInput[];\n\n/**\n * Extrai o valor primário de um `SelectorConfig` (utilitário de config).\n * Para match/query no DOM, use `SelectorResolver`.\n */\nexport function getPrimarySelectorValue(\n selector: SelectorConfig | undefined\n): string | null {\n if (selector == null) return null;\n\n if (typeof selector === 'string') {\n const trimmed = selector.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n if (Array.isArray(selector)) {\n for (const item of selector) {\n const value = getPrimarySelectorValue(item);\n if (value) return value;\n }\n return null;\n }\n\n const value = selector.value?.trim();\n return value && value.length > 0 ? value : null;\n}\n\n/**\n * Resolve o `selectorType` efetivo: config explícita → tipo do descriptor → css.\n */\nexport function resolveSelectorTypeFallback(\n selector: SelectorConfig | undefined,\n selectorType?: SelectorType\n): SelectorType {\n if (selectorType) return selectorType;\n\n if (selector != null && typeof selector !== 'string') {\n if (Array.isArray(selector)) {\n for (const item of selector) {\n if (typeof item !== 'string') return item.type;\n }\n } else {\n return selector.type;\n }\n }\n\n return DEFAULT_SELECTOR_TYPE;\n}\n","/**\n * Contratos globais de commerce (root `PixelConfig.commerce`).\n * Não pertencem a conversion — representam o contexto comercial da página/fluxo.\n */\n\nexport type ProductType =\n | 'main'\n | 'order_bump'\n | 'upsell'\n | 'downsell'\n | 'cross_sell'\n | 'addon'\n | 'subscription'\n | 'custom'\n | 'other';\n\nexport type CommerceProduct = {\n id: string;\n name?: string;\n sku?: string;\n type?: ProductType;\n price?: number;\n currency?: string;\n quantity?: number;\n category?: string;\n variant?: string;\n brand?: string;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartItem = {\n productId: string;\n quantity?: number;\n price?: number;\n currency?: string;\n selected?: boolean;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceCartMode =\n | 'landing_page'\n | 'single_product'\n | 'multi_product'\n | 'checkout'\n | 'upsell'\n | 'custom'\n | 'cart'\n | 'funnel';\n\nexport type CommerceCalculateValueFrom =\n | 'cart'\n | 'event'\n | 'manual'\n | 'catalog';\n\nexport type CommerceEnrichmentSource =\n | 'cart'\n | 'event'\n | 'event_or_cart'\n | 'catalog';\n\nexport type CommerceEventEnrichmentConfig = {\n enabled: boolean;\n source?: CommerceEnrichmentSource;\n};\n\nexport type CommerceEnrichmentConfig = {\n pageView?: CommerceEventEnrichmentConfig;\n viewContent?: CommerceEventEnrichmentConfig;\n lead?: CommerceEventEnrichmentConfig;\n addToCart?: CommerceEventEnrichmentConfig;\n removeFromCart?: CommerceEventEnrichmentConfig;\n initiateCheckout?: CommerceEventEnrichmentConfig;\n addPaymentInfo?: CommerceEventEnrichmentConfig;\n purchase?: CommerceEventEnrichmentConfig;\n};\n\nexport type ProductCatalogConfig = {\n products?: CommerceProduct[];\n};\n\nexport type CommerceCartConfig = {\n mode?: CommerceCartMode;\n /** Seed inicial do carrinho — não é estado vivo. */\n initialItems?: CommerceCartItem[];\n allowDynamicItems?: boolean;\n calculateValueFrom?: CommerceCalculateValueFrom;\n metadata?: Record<string, unknown>;\n};\n\nexport type CommerceMappingsConfig = {\n attributes?: Record<string, string[]>;\n fields?: Record<string, string[]>;\n};\n\nexport const CUSTOMER_FIELD_KEYS = [\n 'email',\n 'phone',\n 'name',\n 'firstName',\n 'lastName',\n 'address',\n 'address2',\n 'city',\n 'state',\n 'postalCode',\n 'country',\n] as const;\n\nexport type CustomerFieldKey = (typeof CUSTOMER_FIELD_KEYS)[number];\n\nexport type CustomerFieldSelectorInput = string | readonly string[];\n\n/**\n * Seletores extras de customer. Sempre somam aos defaults — nunca substituem.\n * Aceita name/id (`user_email`) ou CSS (`#contato-email`, `[data-cliente-email]`).\n */\nexport type CommerceCustomerConfig = {\n fields?: Partial<Record<CustomerFieldKey, CustomerFieldSelectorInput>>;\n};\n\nexport type CommerceConfig = {\n enabled?: boolean;\n currency?: string;\n catalog?: ProductCatalogConfig;\n cart?: CommerceCartConfig;\n mappings?: CommerceMappingsConfig;\n customer?: CommerceCustomerConfig;\n enrichment?: CommerceEnrichmentConfig;\n};\n\nexport const DEFAULT_COMMERCE_ENRICHMENT: Required<CommerceEnrichmentConfig> = {\n pageView: { enabled: true, source: 'cart' },\n viewContent: { enabled: true, source: 'event_or_cart' },\n lead: { enabled: false, source: 'event_or_cart' },\n addToCart: { enabled: true, source: 'event_or_cart' },\n removeFromCart: { enabled: true, source: 'event_or_cart' },\n initiateCheckout: { enabled: true, source: 'cart' },\n addPaymentInfo: { enabled: true, source: 'cart' },\n purchase: { enabled: true, source: 'cart' },\n};\n\n/**\n * Commerce on by default so catalog/cart enrichment runs when products exist.\n * Empty catalog / empty cart is a no-op.\n */\nexport const DEFAULT_COMMERCE_CONFIG: CommerceConfig = {\n enabled: true,\n currency: 'BRL',\n catalog: {\n products: [],\n },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: {\n attributes: {},\n fields: {},\n },\n customer: {\n fields: {},\n },\n enrichment: { ...DEFAULT_COMMERCE_ENRICHMENT },\n};\n\nfunction selectorList(\n value: CustomerFieldSelectorInput | undefined\n): string[] {\n if (!value) return [];\n const items = Array.isArray(value) ? value : [value];\n return items.map(item => String(item).trim()).filter(Boolean);\n}\n\n/**\n * Junta `commerce.customer.fields` com extras de `commerce.mappings.fields`.\n * O extrator mescla o resultado com os defaults de cada campo.\n */\nexport function resolveCustomerFieldMappings(\n customer?: CommerceCustomerConfig | null,\n legacyFields?: Record<string, string | readonly string[]> | null\n): Record<string, string[]> {\n const result: Record<string, string[]> = {};\n\n for (const key of CUSTOMER_FIELD_KEYS) {\n const extras = [\n ...selectorList(customer?.fields?.[key]),\n ...selectorList(legacyFields?.[key]),\n ];\n if (extras.length > 0) {\n result[key] = extras;\n }\n }\n\n return result;\n}\n\n/** Normaliza calculateValueFrom (inclui aliases legado em runtime). */\nexport function normalizeCalculateValueFrom(\n value: CommerceCalculateValueFrom | string | undefined\n): 'cart' | 'event' | 'manual' | 'catalog' {\n switch (value) {\n case 'event':\n case 'event_items':\n return 'event';\n case 'manual':\n return 'manual';\n case 'catalog':\n return 'catalog';\n case 'cart':\n case 'selected_items':\n default:\n return 'cart';\n }\n}\n","import type { AttributionConfig } from '../types/attribution';\n\nexport const DEFAULT_ATTRIBUTION_CONFIG: AttributionConfig = {\n enabled: true,\n ttlDays: 90,\n persist: true,\n captureUrlParams: true,\n captureCookies: true,\n customClickIdParams: [],\n};\n","import type { BehaviorModuleConfig } from '../../types/modules/behavior';\n\nexport const DEFAULT_BEHAVIOR_MODULE_CONFIG: BehaviorModuleConfig = {\n enabled: false,\n\n heartbeat: {\n enabled: false,\n intervalMs: 15_000,\n hiddenIntervalMs: 60_000,\n emitWhenHidden: false,\n emitWhenIdle: true,\n includeSnapshot: true,\n fireImmediately: false,\n },\n\n engagement: {\n enabled: false,\n evaluationIntervalMs: 5_000,\n emitOnChange: true,\n minScoreDelta: 5,\n emitSummaryOnDestroy: true,\n\n weights: {\n activeTime: 0.25,\n scroll: 0.2,\n click: 0.15,\n viewport: 0.2,\n visibility: 0.1,\n heartbeat: 0.1,\n },\n\n penalties: {\n idle: 0.2,\n rageClick: 0.1,\n },\n\n thresholds: {\n lowMax: 29,\n mediumMax: 69,\n },\n },\n\n rateLimit: {\n enabled: false,\n windowMs: 1_000,\n maxSignalsPerWindow: 50,\n criticalBypass: true,\n },\n\n buffer: {\n enabled: false,\n maxSize: 200,\n maxAgeMs: 30_000,\n flushSize: 50,\n dropStrategy: 'compress_similar',\n flushOnHidden: true,\n },\n\n stateMachine: {\n enabled: false,\n historyLimit: 50,\n },\n\n sessionSummary: {\n enabled: false,\n emitOnHidden: false,\n emitOnDestroy: true,\n minimumSessionMs: 0,\n },\n\n trackers: {\n scroll: {\n enabled: false,\n thresholds: [25, 50, 75, 100],\n debounceMs: 100,\n },\n\n click: {\n enabled: false,\n rageClick: {\n enabled: true,\n threshold: 3,\n windowMs: 500,\n },\n },\n\n idle: {\n enabled: false,\n thresholdMs: 60_000,\n },\n\n visibility: {\n enabled: false,\n },\n\n exitIntent: {\n enabled: false,\n },\n\n viewport: {\n enabled: false,\n targets: [],\n rootMargin: '0px',\n observeMutations: true,\n mutationDebounceMs: 100,\n maxObservedElements: 500,\n },\n },\n};\n","import type { ConversionModuleConfig } from '../../types/modules/conversion';\n\nfunction dataTrackSource(\n event: string,\n trigger: 'click' | 'hover' | 'visible'\n) {\n return {\n name: trigger === 'click' ? event : `${event}:${trigger}`,\n type: 'selector' as const,\n selector: `[data-track=\"${event}\"]`,\n selectorType: 'css' as const,\n trigger,\n };\n}\n\nfunction dataTrackDetector(event: string) {\n return {\n enabled: true,\n sources: [dataTrackSource(event, 'click')],\n };\n}\n\nexport const DEFAULT_CONVERSION_MODULE_CONFIG: ConversionModuleConfig = {\n enabled: true,\n\n manual: {\n pageView: {\n enabled: true,\n },\n purchase: {\n enabled: true,\n },\n lead: {\n enabled: true,\n },\n addToCart: {\n enabled: true,\n },\n removeFromCart: {\n enabled: true,\n },\n initiateCheckout: {\n enabled: true,\n },\n addPaymentInfo: {\n enabled: true,\n },\n search: {\n enabled: true,\n },\n viewContent: {\n enabled: true,\n },\n },\n\n auto: {\n enabled: true,\n\n detectors: {\n lead: dataTrackDetector('lead'),\n addToCart: dataTrackDetector('add_to_cart'),\n removeFromCart: dataTrackDetector('remove_from_cart'),\n initiateCheckout: dataTrackDetector('initiate_checkout'),\n purchase: dataTrackDetector('purchase'),\n addPaymentInfo: dataTrackDetector('add_payment_info'),\n search: dataTrackDetector('search'),\n viewContent: {\n enabled: true,\n sources: [\n dataTrackSource('view_content', 'click'),\n dataTrackSource('view_content', 'hover'),\n dataTrackSource('view_content', 'visible'),\n ],\n },\n },\n },\n\n rules: {\n enabled: false,\n selectors: ['[data-track]'],\n texts: ['Comprar', 'Comprar Agora', 'Finalizar Compra', 'Checkout'],\n urlPatterns: ['thank-you', 'purchase', 'success', 'order', 'checkout'],\n checkout: {\n enabled: false,\n },\n card: {\n enabled: false,\n },\n },\n};\n","import type { CoreModuleConfig } from '../../types/modules/core';\n\nexport const DEFAULT_CORE_MODULE_CONFIG: CoreModuleConfig = {\n enabled: true,\n\n pageView: {\n enabled: true,\n trackInitialPageView: true,\n spa: true,\n dedupeMs: 2000,\n },\n\n visitor: {\n enabled: true,\n persistence: 'cookie_localStorage',\n renew: false,\n },\n\n session: {\n enabled: true,\n ttlMs: 10800000,\n renewOnActivity: true,\n renewOnPageView: true,\n },\n\n fingerprint: {\n enabled: true,\n mode: 'light',\n cache: true,\n },\n\n consent: {\n enabled: false,\n required: false,\n waitForConsent: false,\n },\n\n dedupe: {\n enabled: true,\n windowMs: 2000,\n },\n\n coordination: {\n enabled: true,\n leaderElection: true,\n broadcastChannel: true,\n },\n\n ordering: {\n enabled: true,\n preserveOrder: true,\n },\n\n urlContext: {\n enabled: false,\n },\n};\n","import type { IntegrationsModuleConfig } from '../../types/modules/integrations';\n\nexport const DEFAULT_INTEGRATIONS_MODULE_CONFIG: IntegrationsModuleConfig = {\n enabled: false,\n debug: false,\n concurrency: 3,\n timeoutMs: 5000,\n continueOnError: true,\n\n destinations: {\n console: { enabled: false },\n memory: { enabled: false },\n mock: { enabled: false },\n meta: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n google: {\n enabled: false,\n tagIds: [],\n autoPageView: true,\n loadScript: true,\n },\n tiktok: {\n enabled: false,\n pixelIds: [],\n autoPageView: true,\n loadScript: true,\n },\n },\n};\n","import type { PrivacyModuleConfig } from '../../types/modules/privacy';\n\nexport const DEFAULT_PRIVACY_MODULE_CONFIG: PrivacyModuleConfig = {\n enabled: false,\n\n consent: {\n enabled: false,\n required: false,\n },\n\n pii: {\n enabled: false,\n hashEmail: true,\n hashPhone: true,\n },\n\n anonymization: {\n enabled: false,\n anonymizeIp: true,\n },\n};\n","import type { TransportConfig } from '../types/transport';\n\nexport const DEFAULT_INTERNAL_TRANSPORT_BASE_URL =\n 'https://micro-service-pixel-production-4826.up.railway.app';\n\nexport const DEFAULT_TRANSPORT_CONFIG: TransportConfig = {\n enabled: true,\n sender: {\n mode: 'internal',\n baseUrl: DEFAULT_INTERNAL_TRANSPORT_BASE_URL,\n },\n persistence: { enabled: true },\n replay: { enabled: true },\n ordering: { enabled: true },\n coordination: { enabled: true },\n circuitBreaker: {\n enabled: true,\n failureThreshold: 5,\n resetTimeoutMs: 30_000,\n halfOpenMaxAttempts: 2,\n },\n backpressure: {\n enabled: true,\n maxQueueSize: 500,\n policy: 'drop_oldest',\n sampleRate: 0.5,\n },\n deadLetter: {\n enabled: true,\n maxEntries: 200,\n },\n compression: {\n enabled: true,\n strategy: 'identity',\n },\n retry: {\n enabled: true,\n maxAttempts: 4,\n baseDelayMs: 500,\n maxDelayMs: 4_000,\n multiplier: 2,\n },\n batch: {\n enabled: true,\n batchSize: 10,\n maxWaitMs: 5_000,\n },\n timeout: {\n enabled: true,\n timeoutMs: 10_000,\n },\n offline: { enabled: true },\n flush: {\n enabled: true,\n flushIntervalMs: 2_000,\n flushOnDestroy: true,\n prepareUnloadHooks: true,\n },\n};\n","import type { PixelConfig } from '../types/pixel';\nimport { DEFAULT_ATTRIBUTION_CONFIG } from './attribution';\nimport { DEFAULT_BEHAVIOR_MODULE_CONFIG } from './modules/behavior';\nimport { DEFAULT_CONVERSION_MODULE_CONFIG } from './modules/conversion';\nimport { DEFAULT_CORE_MODULE_CONFIG } from './modules/core';\nimport { DEFAULT_INTEGRATIONS_MODULE_CONFIG } from './modules/integrations';\nimport { DEFAULT_PRIVACY_MODULE_CONFIG } from './modules/privacy';\nimport { DEFAULT_TRANSPORT_CONFIG } from './transport';\nimport { DEFAULT_COMMERCE_CONFIG } from '../shared/commerce';\n\nexport const DEFAULT_PIXEL_CONFIG: PixelConfig = {\n app: {\n source: 'custom',\n target: 'custom',\n platform: '',\n environment: 'production',\n debug: false,\n },\n\n identity: {\n pixelId: '',\n },\n\n transport: {\n ...DEFAULT_TRANSPORT_CONFIG,\n sender: { ...DEFAULT_TRANSPORT_CONFIG.sender },\n persistence: { ...DEFAULT_TRANSPORT_CONFIG.persistence },\n replay: { ...DEFAULT_TRANSPORT_CONFIG.replay },\n ordering: { ...DEFAULT_TRANSPORT_CONFIG.ordering },\n coordination: { ...DEFAULT_TRANSPORT_CONFIG.coordination },\n circuitBreaker: { ...DEFAULT_TRANSPORT_CONFIG.circuitBreaker },\n backpressure: { ...DEFAULT_TRANSPORT_CONFIG.backpressure },\n deadLetter: { ...DEFAULT_TRANSPORT_CONFIG.deadLetter },\n compression: { ...DEFAULT_TRANSPORT_CONFIG.compression },\n retry: { ...DEFAULT_TRANSPORT_CONFIG.retry },\n batch: { ...DEFAULT_TRANSPORT_CONFIG.batch },\n timeout: { ...DEFAULT_TRANSPORT_CONFIG.timeout },\n offline: { ...DEFAULT_TRANSPORT_CONFIG.offline },\n flush: { ...DEFAULT_TRANSPORT_CONFIG.flush },\n },\n\n storage: {\n prefix: '__gmk',\n namespace: 'pixel',\n\n persistence: {\n visitor: 'localStorage',\n session: 'sessionStorage',\n attribution: 'localStorage',\n },\n\n queue: {\n enabled: true,\n persistence: 'memory',\n index: true,\n },\n },\n\n attribution: { ...DEFAULT_ATTRIBUTION_CONFIG },\n\n commerce: {\n ...DEFAULT_COMMERCE_CONFIG,\n catalog: { products: [] },\n cart: {\n mode: 'custom',\n initialItems: [],\n allowDynamicItems: true,\n calculateValueFrom: 'cart',\n },\n mappings: { attributes: {}, fields: {} },\n enrichment: { ...DEFAULT_COMMERCE_CONFIG.enrichment },\n },\n\n modules: {\n core: DEFAULT_CORE_MODULE_CONFIG,\n behavior: DEFAULT_BEHAVIOR_MODULE_CONFIG,\n conversion: DEFAULT_CONVERSION_MODULE_CONFIG,\n integrations: DEFAULT_INTEGRATIONS_MODULE_CONFIG,\n privacy: DEFAULT_PRIVACY_MODULE_CONFIG,\n },\n};\n","export type PixelConfigurationErrorCode =\n | 'INVALID_PIXEL_ID'\n | 'INVALID_SETTINGS';\n\nexport class PixelConfigurationError extends Error {\n readonly code: PixelConfigurationErrorCode;\n\n readonly cause?: unknown;\n\n constructor(\n message: string,\n code: PixelConfigurationErrorCode,\n cause?: unknown\n ) {\n super(message);\n this.name = 'PixelConfigurationError';\n this.code = code;\n if (cause !== undefined) {\n this.cause = cause;\n }\n }\n}\n","import { PixelConfigurationError } from './errors';\n\n/** Tamanho máximo aceito para `identity.pixelId` após trim. */\nexport const PIXEL_ID_MAX_LENGTH = 128;\n\nfunction hasControlChars(value: string): boolean {\n for (let i = 0; i < value.length; i += 1) {\n const code = value.charCodeAt(i);\n if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Normaliza e valida `identity.pixelId` em runtime (o bundle global é JS).\n * Não exige o prefixo `pix_`.\n */\nexport function normalizePixelId(value: unknown): string {\n if (typeof value !== 'string') {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n const normalized = value.trim();\n\n if (normalized.length === 0) {\n throw new PixelConfigurationError(\n 'identity.pixelId must be a non-empty string.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (normalized.length > PIXEL_ID_MAX_LENGTH) {\n throw new PixelConfigurationError(\n `identity.pixelId exceeds the maximum length of ${PIXEL_ID_MAX_LENGTH} characters.`,\n 'INVALID_PIXEL_ID'\n );\n }\n\n if (hasControlChars(normalized)) {\n throw new PixelConfigurationError(\n 'identity.pixelId must not contain control characters.',\n 'INVALID_PIXEL_ID'\n );\n }\n\n return normalized;\n}\n","import { DEFAULT_PIXEL_CONFIG } from './defaults/pixel-default-config';\nimport { PixelConfigurationError } from './errors';\nimport { normalizePixelId } from './pixelId';\nimport type { PixelConfig } from './types/pixel';\nimport type { PixelSettings } from './types/pixel-settings';\n\nconst BLOCKED_KEYS = new Set(['__proto__', 'prototype', 'constructor']);\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== 'object') {\n return false;\n }\n if (Array.isArray(value)) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n\nfunction cloneDeep<T>(value: T): T {\n if (Array.isArray(value)) {\n return value.map(item => cloneDeep(item)) as T;\n }\n\n if (isPlainObject(value)) {\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(value)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n out[key] = cloneDeep(value[key]);\n }\n return out as T;\n }\n\n return value;\n}\n\nfunction mergeDeep(target: unknown, source: unknown, path: string): unknown {\n if (source === undefined) {\n return target;\n }\n\n if (Array.isArray(source)) {\n return cloneDeep(source);\n }\n\n if (typeof source === 'function') {\n return source;\n }\n\n if (!isPlainObject(source)) {\n return source;\n }\n\n const base: Record<string, unknown> = isPlainObject(target)\n ? cloneDeep(target)\n : {};\n\n for (const key of Object.keys(source)) {\n if (BLOCKED_KEYS.has(key)) {\n continue;\n }\n\n const srcVal = source[key];\n if (srcVal === undefined) {\n continue;\n }\n\n const nextPath = path ? `${path}.${key}` : key;\n if (nextPath === 'transport.sender') {\n base[key] = cloneDeep(srcVal);\n continue;\n }\n\n base[key] = mergeDeep(base[key], srcVal, nextPath);\n }\n\n return base;\n}\n\n/**\n * Resolve input público parcial em `PixelConfig` completo e isolado.\n *\n * Não muta `DEFAULT_PIXEL_CONFIG` nem o `settings` recebido.\n * Cada chamada produz uma árvore nova (sem refs mutáveis compartilhadas).\n */\nexport function resolvePixelConfig(settings: PixelSettings): PixelConfig {\n if (!isPlainObject(settings)) {\n throw new PixelConfigurationError(\n 'Pixel settings must be a plain object.',\n 'INVALID_SETTINGS'\n );\n }\n\n const merged = mergeDeep(\n cloneDeep(DEFAULT_PIXEL_CONFIG),\n settings,\n ''\n ) as PixelConfig;\n\n const rawPixelId = isPlainObject(settings.identity)\n ? settings.identity.pixelId\n : undefined;\n\n merged.identity = {\n ...merged.identity,\n pixelId: normalizePixelId(rawPixelId),\n };\n\n return merged;\n}\n"],"mappings":"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","names":["DEFAULT_SELECTOR_TYPE","getPrimarySelectorValue","selector","trimmed","item","value","resolveSelectorTypeFallback","selectorType","CUSTOMER_FIELD_KEYS","DEFAULT_COMMERCE_ENRICHMENT","DEFAULT_COMMERCE_CONFIG","selectorList","value","item","resolveCustomerFieldMappings","customer","legacyFields","result","key","extras","normalizeCalculateValueFrom","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","dataTrackSource","event","trigger","dataTrackDetector","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","DEFAULT_INTERNAL_TRANSPORT_BASE_URL","DEFAULT_TRANSPORT_CONFIG","DEFAULT_PIXEL_CONFIG","DEFAULT_TRANSPORT_CONFIG","DEFAULT_ATTRIBUTION_CONFIG","DEFAULT_COMMERCE_CONFIG","DEFAULT_CORE_MODULE_CONFIG","DEFAULT_BEHAVIOR_MODULE_CONFIG","DEFAULT_CONVERSION_MODULE_CONFIG","DEFAULT_INTEGRATIONS_MODULE_CONFIG","DEFAULT_PRIVACY_MODULE_CONFIG","PixelConfigurationError","message","code","cause","PIXEL_ID_MAX_LENGTH","hasControlChars","value","i","code","normalizePixelId","PixelConfigurationError","normalized","BLOCKED_KEYS","isPlainObject","value","proto","cloneDeep","item","out","key","mergeDeep","target","source","path","base","srcVal","nextPath","resolvePixelConfig","settings","PixelConfigurationError","merged","DEFAULT_PIXEL_CONFIG","rawPixelId","normalizePixelId"]}
|
package/dist/events/index.cjs.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/* Pixel v2 — SDK de analytics e conversão */
|
|
2
|
-
"use strict";var
|
|
2
|
+
"use strict";var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var h=(r,e)=>{for(var n in e)c(r,n,{get:e[n],enumerable:!0})},v=(r,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of g(e))!E.call(r,s)&&s!==n&&c(r,s,{get:()=>e[s],enumerable:!(a=y(e,s))||a.enumerable});return r};var C=r=>v(c({},"__esModule",{value:!0}),r);var S={};h(S,{BaseEventBuilder:()=>o});module.exports=C(S);function i(r){return r?Object.values(r).some(e=>typeof e=="string"&&e.trim().length>0):!1}var o=class{constructor(e,n,a,s){this.metadataService=e,this.attribution=n??null,this.urlContext=a??null,this.customerIdentity=s??null}build(e){let n=this.metadataService.getMetadata(),a=this.attribution?.getSnapshot(),s=a!==void 0&&Object.keys(a).some(f=>{let u=a[f];return u!=null&&u!==""}),t=this.urlContext?.isEnabled()?this.urlContext.getSnapshot():null,d=t!==null&&Object.keys(t.queryParams).length>0,l=t!==null&&(t.urlContext.managed&&Object.keys(t.urlContext.managed).length>0||t.urlContext.forwarded&&Object.keys(t.urlContext.forwarded).length>0||t.urlContext.source&&Object.keys(t.urlContext.source).length>0),p=this.customerIdentity?.getSnapshot()??null,m=e.customer??p;return{...e,timestamp:Date.now(),path:n.path,url:n.url,hostname:n.hostname,language:n.language,timezone:n.timezone,...s?{identifiers:a}:{},...d?{queryParams:{...t.queryParams}}:{},...l?{urlContext:{...t.urlContext.managed?{managed:{...t.urlContext.managed}}:{},...t.urlContext.forwarded?{forwarded:{...t.urlContext.forwarded}}:{},...t.urlContext.source?{source:{...t.urlContext.source}}:{}}}:{},...i(m)?{customer:{...m}}:{}}}};0&&(module.exports={BaseEventBuilder});
|
|
3
3
|
//# sourceMappingURL=index.cjs.js.map
|