@walkeros/walker.js 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -301,5 +301,5 @@ for contribution guidelines.
301
301
  - [@walkeros/collector](../../../packages/collector) - Core collector
302
302
  - [@walkeros/web-source-browser](../../../packages/web/sources/browser) -
303
303
  Browser source
304
- - [@walkeros/web-source-dataLayer](../../../packages/web/sources/dataLayer) -
304
+ - [@walkeros/web-source-datalayer](../../../packages/web/sources/dataLayer) -
305
305
  DataLayer source
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,aAAa,0BAAY,CAAC;AAyLhC,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,163 @@
1
+ // Browser environment setup for walker.js tests
2
+ // Based on @walkeros/jest/web.setup.ts
3
+ const mockDataLayer = jest.fn();
4
+ global.beforeEach(() => {
5
+ jest.useFakeTimers();
6
+ // Mocks
7
+ jest.clearAllMocks();
8
+ jest.resetModules();
9
+ // Reset DOM with event listeners etc.
10
+ document.getElementsByTagName('html')[0].innerHTML = '';
11
+ document.body = document.body.cloneNode();
12
+ // elbLayer and dataLayer
13
+ const w = window;
14
+ w.elbLayer = undefined;
15
+ w.dataLayer = [];
16
+ w.dataLayer.push = mockDataLayer;
17
+ // Performance API - mock the method that was causing test failures
18
+ global.performance.getEntriesByType = jest
19
+ .fn()
20
+ .mockReturnValue([{ type: 'navigate' }]);
21
+ // Mock IntersectionObserver - required for sourceBrowser visibility tracking
22
+ global.IntersectionObserver = jest.fn().mockImplementation((callback) => ({
23
+ observe: jest.fn(),
24
+ unobserve: jest.fn(),
25
+ disconnect: jest.fn(),
26
+ }));
27
+ // Mock ResizeObserver - might be needed for responsive tracking
28
+ global.ResizeObserver = jest.fn().mockImplementation((callback) => ({
29
+ observe: jest.fn(),
30
+ unobserve: jest.fn(),
31
+ disconnect: jest.fn(),
32
+ }));
33
+ // Mock MutationObserver - needed for DOM change detection
34
+ global.MutationObserver = jest.fn().mockImplementation((callback) => ({
35
+ observe: jest.fn(),
36
+ disconnect: jest.fn(),
37
+ takeRecords: jest.fn(),
38
+ }));
39
+ // Other browser APIs that might be needed
40
+ Object.defineProperty(window, 'location', {
41
+ value: {
42
+ hostname: 'localhost',
43
+ pathname: '/',
44
+ search: '',
45
+ hash: '',
46
+ href: 'http://localhost:3000/',
47
+ origin: 'http://localhost:3000',
48
+ protocol: 'http:',
49
+ host: 'localhost:3000',
50
+ port: '3000',
51
+ },
52
+ writable: true,
53
+ });
54
+ // Mock document.currentScript for auto-init tests
55
+ Object.defineProperty(document, 'currentScript', {
56
+ value: null,
57
+ writable: true,
58
+ });
59
+ // Mock document properties
60
+ Object.defineProperty(document, 'title', {
61
+ value: 'Test Page',
62
+ writable: true,
63
+ });
64
+ Object.defineProperty(document, 'referrer', {
65
+ value: '',
66
+ writable: true,
67
+ });
68
+ Object.defineProperty(document, 'readyState', {
69
+ value: 'complete',
70
+ writable: true,
71
+ });
72
+ // Mock navigator
73
+ Object.defineProperty(window, 'navigator', {
74
+ value: {
75
+ userAgent: 'Mozilla/5.0 (Node.js jsdom test environment)',
76
+ language: 'en-US',
77
+ platform: 'linux',
78
+ },
79
+ writable: true,
80
+ });
81
+ // Mock screen
82
+ Object.defineProperty(window, 'screen', {
83
+ value: {
84
+ width: 1920,
85
+ height: 1080,
86
+ },
87
+ writable: true,
88
+ });
89
+ // Mock element positioning methods - required for visibility detection
90
+ Element.prototype.getBoundingClientRect = jest.fn(() => ({
91
+ x: 0,
92
+ y: 0,
93
+ width: 100,
94
+ height: 100,
95
+ top: 0,
96
+ left: 0,
97
+ bottom: 100,
98
+ right: 100,
99
+ toJSON: jest.fn(),
100
+ }));
101
+ // Mock element offset properties
102
+ Object.defineProperties(Element.prototype, {
103
+ offsetTop: { get: () => 0, configurable: true },
104
+ offsetLeft: { get: () => 0, configurable: true },
105
+ offsetWidth: { get: () => 100, configurable: true },
106
+ offsetHeight: { get: () => 100, configurable: true },
107
+ clientWidth: { get: () => 100, configurable: true },
108
+ clientHeight: { get: () => 100, configurable: true },
109
+ });
110
+ // Mock getComputedStyle - required for element styling calculations
111
+ global.getComputedStyle = jest.fn().mockImplementation(() => ({
112
+ getPropertyValue: jest.fn().mockReturnValue(''),
113
+ width: '100px',
114
+ height: '100px',
115
+ display: 'block',
116
+ visibility: 'visible',
117
+ }));
118
+ // Mock matchMedia - might be needed for responsive features
119
+ Object.defineProperty(window, 'matchMedia', {
120
+ writable: true,
121
+ value: jest.fn().mockImplementation((query) => ({
122
+ matches: false,
123
+ media: query,
124
+ onchange: null,
125
+ addListener: jest.fn(),
126
+ removeListener: jest.fn(),
127
+ addEventListener: jest.fn(),
128
+ removeEventListener: jest.fn(),
129
+ dispatchEvent: jest.fn(),
130
+ })),
131
+ });
132
+ // Mock localStorage and sessionStorage - required for browser source
133
+ const mockStorage = {
134
+ getItem: jest.fn(),
135
+ setItem: jest.fn(),
136
+ removeItem: jest.fn(),
137
+ clear: jest.fn(),
138
+ key: jest.fn(),
139
+ length: 0,
140
+ };
141
+ Object.defineProperty(window, 'localStorage', {
142
+ value: mockStorage,
143
+ writable: true,
144
+ });
145
+ Object.defineProperty(window, 'sessionStorage', {
146
+ value: mockStorage,
147
+ writable: true,
148
+ });
149
+ // Mock requestAnimationFrame and cancelAnimationFrame
150
+ global.requestAnimationFrame = jest.fn((cb) => setTimeout(cb, 0));
151
+ global.cancelAnimationFrame = jest.fn((id) => clearTimeout(id));
152
+ // Mock requestIdleCallback if it exists
153
+ if (typeof global.requestIdleCallback === 'undefined') {
154
+ global.requestIdleCallback = jest.fn((cb) => setTimeout(cb, 0));
155
+ global.cancelIdleCallback = jest.fn((id) => clearTimeout(id));
156
+ }
157
+ });
158
+ global.afterEach(() => {
159
+ jest.runOnlyPendingTimers();
160
+ jest.useRealTimers();
161
+ });
162
+ export { mockDataLayer };
163
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../src/destination.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,wBAAgB,oBAAoB,IAAI,WAAW,CAAC,eAAe,CA6BlE"}
@@ -0,0 +1,28 @@
1
+ import { isObject } from '@walkeros/core';
2
+ export function dataLayerDestination() {
3
+ window.dataLayer = window.dataLayer || [];
4
+ const dataLayerPush = (event) => {
5
+ // Do not process events from dataLayer source
6
+ if (isObject(event) &&
7
+ isObject(event.source) &&
8
+ String(event.source.type).includes('dataLayer'))
9
+ return;
10
+ window.dataLayer.push(event);
11
+ };
12
+ const destination = {
13
+ type: 'dataLayer',
14
+ config: {},
15
+ push: (event, context) => {
16
+ dataLayerPush(context.data || event);
17
+ },
18
+ pushBatch: (batch) => {
19
+ dataLayerPush({
20
+ event: 'batch',
21
+ batched_event: batch.key,
22
+ events: batch.data.length ? batch.data : batch.events,
23
+ });
24
+ },
25
+ };
26
+ return destination;
27
+ }
28
+ //# sourceMappingURL=destination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination.js","sourceRoot":"","sources":["../src/destination.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,UAAU,oBAAoB;IAClC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,EAAE;QACvC,8CAA8C;QAC9C,IACE,QAAQ,CAAC,KAAK,CAAC;YACf,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAE/C,OAAO;QAER,MAAM,CAAC,SAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,WAAW,GAAyB;QACxC,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACvB,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,aAAa,CAAC;gBACZ,KAAK,EAAE,OAAO;gBACd,aAAa,EAAE,KAAK,CAAC,GAAG;gBACxB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM;aACtD,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC"}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Collector } from '@walkeros/core';
2
2
  import { SourceBrowser } from '@walkeros/web-source-browser';
3
3
  export { getAllEvents, getEvents, getGlobals } from '@walkeros/web-source-browser';
4
- import { SourceDataLayer } from '@walkeros/web-source-dataLayer';
4
+ import { SourceDataLayer } from '@walkeros/web-source-datalayer';
5
5
 
6
6
  declare global {
7
7
  interface Window {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Collector } from '@walkeros/core';
2
2
  import { SourceBrowser } from '@walkeros/web-source-browser';
3
3
  export { getAllEvents, getEvents, getGlobals } from '@walkeros/web-source-browser';
4
- import { SourceDataLayer } from '@walkeros/web-source-dataLayer';
4
+ import { SourceDataLayer } from '@walkeros/web-source-datalayer';
5
5
 
6
6
  declare global {
7
7
  interface Window {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAEL,YAAY,EACZ,SAAS,EACT,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAKtC,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAG/C,wBAAsB,cAAc,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiE3E;AAGD,eAAe,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1,71 @@
1
- "use strict";var e,r=Object.defineProperty,t=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,s={};((e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})})(s,{Walkerjs:()=>d,createWalkerjs:()=>w,default:()=>y,getAllEvents:()=>l.getAllEvents,getEvents:()=>l.getEvents,getGlobals:()=>l.getGlobals}),module.exports=(e=s,((e,s,c,n)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let l of a(s))o.call(e,l)||l===c||r(e,l,{get:()=>s[l],enumerable:!(n=t(s,l))||n.enumerable});return e})(r({},"__esModule",{value:!0}),e));var c=require("@walkeros/collector"),n=require("@walkeros/core"),l=require("@walkeros/web-source-browser"),i=require("@walkeros/web-source-dataLayer"),u=require("@walkeros/core");function b(){window.dataLayer=window.dataLayer||[];const e=e=>{(0,u.isObject)(e)&&(0,u.isObject)(e.source)&&String(e.source.type).includes("dataLayer")||window.dataLayer.push(e)};return{type:"dataLayer",config:{},push:(r,t)=>{e(t.data||r)},pushBatch:r=>{e({event:"batch",batched_event:r.key,events:r.data.length?r.data:r.events})}}}var d={};async function w(e={}){const r={collector:{destinations:{dataLayer:b()}},browser:{run:!0,session:!0},dataLayer:!1,elb:"elb"},t=(0,n.assign)(r,e),a={...t.collector,sources:{browser:{code:l.sourceBrowser,config:{settings:t.browser}}}};if(t.dataLayer){const e=(0,n.isObject)(t.dataLayer)?t.dataLayer:{};a.sources&&(a.sources.dataLayer={code:(0,i.sourceDataLayer)(e),config:{settings:e}})}const{collector:o}=await(0,c.createCollector)(a),s=o.sources.browser;if(!(null==s?void 0:s.elb))throw new Error("Failed to initialize browser source");const u={collector:o,elb:s.elb};return t.elb&&(window[t.elb]=s.elb),t.name&&(window[t.name]=o),u}var y=w;//# sourceMappingURL=index.js.map
1
+ import { createCollector } from '@walkeros/collector';
2
+ import { assign, isObject } from '@walkeros/core';
3
+ import { sourceBrowser, getAllEvents, getEvents, getGlobals, } from '@walkeros/web-source-browser';
4
+ import { sourceDataLayer } from '@walkeros/web-source-datalayer';
5
+ import { dataLayerDestination } from './destination';
6
+ import * as Walkerjs_1 from './types';
7
+ export { Walkerjs_1 as Walkerjs };
8
+ export { getAllEvents, getEvents, getGlobals };
9
+ // Factory function to create walker.js instance
10
+ export async function createWalkerjs(config = {}) {
11
+ // Default configuration
12
+ const defaultConfig = {
13
+ collector: {
14
+ destinations: {
15
+ dataLayer: dataLayerDestination(),
16
+ },
17
+ },
18
+ browser: {
19
+ run: true,
20
+ session: true,
21
+ },
22
+ dataLayer: false,
23
+ elb: 'elb',
24
+ };
25
+ const fullConfig = assign(defaultConfig, config);
26
+ // Build collector config with sources
27
+ const collectorConfig = {
28
+ ...fullConfig.collector,
29
+ sources: {
30
+ browser: {
31
+ code: sourceBrowser,
32
+ config: {
33
+ settings: fullConfig.browser,
34
+ },
35
+ },
36
+ },
37
+ };
38
+ // Add dataLayer source if configured
39
+ if (fullConfig.dataLayer) {
40
+ const dataLayerSettings = isObject(fullConfig.dataLayer)
41
+ ? fullConfig.dataLayer
42
+ : {};
43
+ if (collectorConfig.sources) {
44
+ collectorConfig.sources.dataLayer = {
45
+ code: sourceDataLayer(dataLayerSettings),
46
+ config: {
47
+ settings: dataLayerSettings,
48
+ },
49
+ };
50
+ }
51
+ }
52
+ const { collector } = await createCollector(collectorConfig);
53
+ // Get browser elb function
54
+ const browserSource = collector.sources.browser;
55
+ if (!(browserSource === null || browserSource === void 0 ? void 0 : browserSource.elb)) {
56
+ throw new Error('Failed to initialize browser source');
57
+ }
58
+ const instance = {
59
+ collector,
60
+ elb: browserSource.elb,
61
+ };
62
+ // Set up global variables if configured
63
+ if (fullConfig.elb)
64
+ window[fullConfig.elb] = browserSource.elb;
65
+ if (fullConfig.name)
66
+ window[fullConfig.name] = collector;
67
+ return instance;
68
+ }
69
+ // Export factory function as default
70
+ export default createWalkerjs;
71
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/destination.ts","../src/types/index.ts"],"sourcesContent":["import type { Config, Instance } from './types';\nimport { createCollector, type CollectorConfig } from '@walkeros/collector';\nimport { assign, isObject } from '@walkeros/core';\nimport {\n sourceBrowser,\n getAllEvents,\n getEvents,\n getGlobals,\n type SourceBrowser,\n} from '@walkeros/web-source-browser';\nimport { sourceDataLayer } from '@walkeros/web-source-dataLayer';\nimport { dataLayerDestination } from './destination';\n\n// Re-export types\nexport * as Walkerjs from './types';\n\nexport { getAllEvents, getEvents, getGlobals };\n\n// Factory function to create walker.js instance\nexport async function createWalkerjs(config: Config = {}): Promise<Instance> {\n // Default configuration\n const defaultConfig: Config = {\n collector: {\n destinations: {\n dataLayer: dataLayerDestination(),\n },\n },\n browser: {\n run: true,\n session: true,\n },\n dataLayer: false,\n elb: 'elb',\n };\n\n const fullConfig = assign(defaultConfig, config);\n\n // Build collector config with sources\n const collectorConfig: Partial<CollectorConfig> = {\n ...fullConfig.collector,\n sources: {\n browser: {\n code: sourceBrowser,\n config: {\n settings: fullConfig.browser,\n },\n },\n },\n };\n\n // Add dataLayer source if configured\n if (fullConfig.dataLayer) {\n const dataLayerSettings = isObject(fullConfig.dataLayer)\n ? fullConfig.dataLayer\n : {};\n\n if (collectorConfig.sources) {\n collectorConfig.sources.dataLayer = {\n code: sourceDataLayer(dataLayerSettings),\n config: {\n settings: dataLayerSettings,\n },\n };\n }\n }\n\n const { collector } = await createCollector(collectorConfig);\n\n // Get browser elb function\n const browserSource = collector.sources.browser;\n if (!browserSource?.elb) {\n throw new Error('Failed to initialize browser source');\n }\n\n const instance: Instance = {\n collector,\n elb: browserSource.elb as SourceBrowser.BrowserPush,\n };\n\n // Set up global variables if configured\n if (fullConfig.elb) window[fullConfig.elb] = browserSource.elb;\n if (fullConfig.name) window[fullConfig.name] = collector;\n\n return instance;\n}\n\n// Export factory function as default\nexport default createWalkerjs;\n","import type { Destination } from '@walkeros/core';\nimport type { DataLayer } from './types';\nimport { isObject } from '@walkeros/core';\n\nexport function dataLayerDestination(): Destination.InitDestination {\n window.dataLayer = window.dataLayer || [];\n const dataLayerPush = (event: unknown) => {\n // Do not process events from dataLayer source\n if (\n isObject(event) &&\n isObject(event.source) &&\n String(event.source.type).includes('dataLayer')\n )\n return;\n\n (window.dataLayer as DataLayer)!.push(event);\n };\n const destination: Destination.Instance = {\n type: 'dataLayer',\n config: {},\n push: (event, context) => {\n dataLayerPush(context.data || event);\n },\n pushBatch: (batch) => {\n dataLayerPush({\n event: 'batch',\n batched_event: batch.key,\n events: batch.data.length ? batch.data : batch.events,\n });\n },\n };\n\n return destination;\n}\n","import type { Collector, Source, WalkerOS } from '@walkeros/core';\nimport type { SourceBrowser } from '@walkeros/web-source-browser';\nimport type { SourceDataLayer } from '@walkeros/web-source-dataLayer';\n\ndeclare global {\n interface Window {\n [key: string]: DataLayer;\n }\n}\n\n// Instance interface\nexport interface Instance {\n collector: Collector.Instance;\n elb: SourceBrowser.BrowserPush;\n}\n\n// Configuration interface\nexport interface Config {\n // Collector configuration\n collector?: Collector.InitConfig;\n\n // Browser source configuration\n browser?: Partial<SourceBrowser.Settings>;\n\n // DataLayer configuration\n dataLayer?: boolean | Partial<SourceDataLayer.Settings>;\n\n // Global configuration\n elb?: string; // Name for the global elb function\n name?: string; // Name for the global instance\n run?: boolean; // Auto-run on initialization (default: true)\n}\n\nexport type DataLayer = undefined | Array<unknown>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAsD;AACtD,IAAAA,eAAiC;AACjC,gCAMO;AACP,kCAAgC;;;ACRhC,kBAAyB;AAElB,SAAS,uBAAoD;AAClE,SAAO,YAAY,OAAO,aAAa,CAAC;AACxC,QAAM,gBAAgB,CAAC,UAAmB;AAExC,YACE,sBAAS,KAAK,SACd,sBAAS,MAAM,MAAM,KACrB,OAAO,MAAM,OAAO,IAAI,EAAE,SAAS,WAAW;AAE9C;AAEF,IAAC,OAAO,UAAyB,KAAK,KAAK;AAAA,EAC7C;AACA,QAAM,cAAoC;AAAA,IACxC,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,MAAM,CAAC,OAAO,YAAY;AACxB,oBAAc,QAAQ,QAAQ,KAAK;AAAA,IACrC;AAAA,IACA,WAAW,CAAC,UAAU;AACpB,oBAAc;AAAA,QACZ,OAAO;AAAA,QACP,eAAe,MAAM;AAAA,QACrB,QAAQ,MAAM,KAAK,SAAS,MAAM,OAAO,MAAM;AAAA,MACjD,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;;;ACjCA;;;AFmBA,eAAsB,eAAe,SAAiB,CAAC,GAAsB;AAE3E,QAAM,gBAAwB;AAAA,IAC5B,WAAW;AAAA,MACT,cAAc;AAAA,QACZ,WAAW,qBAAqB;AAAA,MAClC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,EACP;AAEA,QAAM,iBAAa,qBAAO,eAAe,MAAM;AAG/C,QAAM,kBAA4C;AAAA,IAChD,GAAG,WAAW;AAAA,IACd,SAAS;AAAA,MACP,SAAS;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,UAAU,WAAW;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,WAAW,WAAW;AACxB,UAAM,wBAAoB,uBAAS,WAAW,SAAS,IACnD,WAAW,YACX,CAAC;AAEL,QAAI,gBAAgB,SAAS;AAC3B,sBAAgB,QAAQ,YAAY;AAAA,QAClC,UAAM,6CAAgB,iBAAiB;AAAA,QACvC,QAAQ;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,UAAU,IAAI,UAAM,kCAAgB,eAAe;AAG3D,QAAM,gBAAgB,UAAU,QAAQ;AACxC,MAAI,EAAC,+CAAe,MAAK;AACvB,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAEA,QAAM,WAAqB;AAAA,IACzB;AAAA,IACA,KAAK,cAAc;AAAA,EACrB;AAGA,MAAI,WAAW,IAAK,QAAO,WAAW,GAAG,IAAI,cAAc;AAC3D,MAAI,WAAW,KAAM,QAAO,WAAW,IAAI,IAAI;AAE/C,SAAO;AACT;AAGA,IAAO,gBAAQ;","names":["import_core"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAwB,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,GAEX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;4BAG3B,SAAS;uBAAvB,QAAQ;AAEpB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAE/C,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE;IACtD,wBAAwB;IACxB,MAAM,aAAa,GAAW;QAC5B,SAAS,EAAE;YACT,YAAY,EAAE;gBACZ,SAAS,EAAE,oBAAoB,EAAE;aAClC;SACF;QACD,OAAO,EAAE;YACP,GAAG,EAAE,IAAI;YACT,OAAO,EAAE,IAAI;SACd;QACD,SAAS,EAAE,KAAK;QAChB,GAAG,EAAE,KAAK;KACX,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAEjD,sCAAsC;IACtC,MAAM,eAAe,GAA6B;QAChD,GAAG,UAAU,CAAC,SAAS;QACvB,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE;oBACN,QAAQ,EAAE,UAAU,CAAC,OAAO;iBAC7B;aACF;SACF;KACF,CAAC;IAEF,qCAAqC;IACrC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YACtD,CAAC,CAAC,UAAU,CAAC,SAAS;YACtB,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;YAC5B,eAAe,CAAC,OAAO,CAAC,SAAS,GAAG;gBAClC,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC;gBACxC,MAAM,EAAE;oBACN,QAAQ,EAAE,iBAAiB;iBAC5B;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;IAE7D,2BAA2B;IAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,IAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,CAAA,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,QAAQ,GAAa;QACzB,SAAS;QACT,GAAG,EAAE,aAAa,CAAC,GAAgC;KACpD,CAAC;IAEF,wCAAwC;IACxC,IAAI,UAAU,CAAC,GAAG;QAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAC/D,IAAI,UAAU,CAAC,IAAI;QAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAEzD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qCAAqC;AACrC,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/destination.ts","../src/types/index.ts","../src/index.ts"],"sourcesContent":["import type { Destination } from '@walkeros/core';\nimport type { DataLayer } from './types';\nimport { isObject } from '@walkeros/core';\n\nexport function dataLayerDestination(): Destination.InitDestination {\n window.dataLayer = window.dataLayer || [];\n const dataLayerPush = (event: unknown) => {\n // Do not process events from dataLayer source\n if (\n isObject(event) &&\n isObject(event.source) &&\n String(event.source.type).includes('dataLayer')\n )\n return;\n\n (window.dataLayer as DataLayer)!.push(event);\n };\n const destination: Destination.Instance = {\n type: 'dataLayer',\n config: {},\n push: (event, context) => {\n dataLayerPush(context.data || event);\n },\n pushBatch: (batch) => {\n dataLayerPush({\n event: 'batch',\n batched_event: batch.key,\n events: batch.data.length ? batch.data : batch.events,\n });\n },\n };\n\n return destination;\n}\n","import type { Collector, Source, WalkerOS } from '@walkeros/core';\nimport type { SourceBrowser } from '@walkeros/web-source-browser';\nimport type { SourceDataLayer } from '@walkeros/web-source-dataLayer';\n\ndeclare global {\n interface Window {\n [key: string]: DataLayer;\n }\n}\n\n// Instance interface\nexport interface Instance {\n collector: Collector.Instance;\n elb: SourceBrowser.BrowserPush;\n}\n\n// Configuration interface\nexport interface Config {\n // Collector configuration\n collector?: Collector.InitConfig;\n\n // Browser source configuration\n browser?: Partial<SourceBrowser.Settings>;\n\n // DataLayer configuration\n dataLayer?: boolean | Partial<SourceDataLayer.Settings>;\n\n // Global configuration\n elb?: string; // Name for the global elb function\n name?: string; // Name for the global instance\n run?: boolean; // Auto-run on initialization (default: true)\n}\n\nexport type DataLayer = undefined | Array<unknown>;\n","import type { Config, Instance } from './types';\nimport { createCollector, type CollectorConfig } from '@walkeros/collector';\nimport { assign, isObject } from '@walkeros/core';\nimport {\n sourceBrowser,\n getAllEvents,\n getEvents,\n getGlobals,\n type SourceBrowser,\n} from '@walkeros/web-source-browser';\nimport { sourceDataLayer } from '@walkeros/web-source-dataLayer';\nimport { dataLayerDestination } from './destination';\n\n// Re-export types\nexport * as Walkerjs from './types';\n\nexport { getAllEvents, getEvents, getGlobals };\n\n// Factory function to create walker.js instance\nexport async function createWalkerjs(config: Config = {}): Promise<Instance> {\n // Default configuration\n const defaultConfig: Config = {\n collector: {\n destinations: {\n dataLayer: dataLayerDestination(),\n },\n },\n browser: {\n run: true,\n session: true,\n },\n dataLayer: false,\n elb: 'elb',\n };\n\n const fullConfig = assign(defaultConfig, config);\n\n // Build collector config with sources\n const collectorConfig: Partial<CollectorConfig> = {\n ...fullConfig.collector,\n sources: {\n browser: {\n code: sourceBrowser,\n config: {\n settings: fullConfig.browser,\n },\n },\n },\n };\n\n // Add dataLayer source if configured\n if (fullConfig.dataLayer) {\n const dataLayerSettings = isObject(fullConfig.dataLayer)\n ? fullConfig.dataLayer\n : {};\n\n if (collectorConfig.sources) {\n collectorConfig.sources.dataLayer = {\n code: sourceDataLayer(dataLayerSettings),\n config: {\n settings: dataLayerSettings,\n },\n };\n }\n }\n\n const { collector } = await createCollector(collectorConfig);\n\n // Get browser elb function\n const browserSource = collector.sources.browser;\n if (!browserSource?.elb) {\n throw new Error('Failed to initialize browser source');\n }\n\n const instance: Instance = {\n collector,\n elb: browserSource.elb as SourceBrowser.BrowserPush,\n };\n\n // Set up global variables if configured\n if (fullConfig.elb) window[fullConfig.elb] = browserSource.elb;\n if (fullConfig.name) window[fullConfig.name] = collector;\n\n return instance;\n}\n\n// Export factory function as default\nexport default createWalkerjs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,uBAAoD;AAClE,SAAO,YAAY,OAAO,aAAa,CAAC;AACxC,QAAM,gBAAgB,CAAC,UAAmB;AAExC,QACE,EAAS,KAAK,KACd,EAAS,MAAM,MAAM,KACrB,OAAO,MAAM,OAAO,IAAI,EAAE,SAAS,WAAW;AAE9C;AAEF,IAAC,OAAO,UAAyB,KAAK,KAAK;AAAA,EAC7C;AACA,QAAM,cAAoC;AAAA,IACxC,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,MAAM,CAAC,OAAO,YAAY;AACxB,oBAAc,QAAQ,QAAQ,KAAK;AAAA,IACrC;AAAA,IACA,WAAW,CAAC,UAAU;AACpB,oBAAc;AAAA,QACZ,OAAO;AAAA,QACP,eAAe,MAAM;AAAA,QACrB,QAAQ,MAAM,KAAK,SAAS,MAAM,OAAO,MAAM;AAAA,MACjD,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;;;ACjCA;;;ACmBA,eAAsB,eAAe,SAAiB,CAAC,GAAsB;AAE3E,QAAM,gBAAwB;AAAA,IAC5B,WAAW;AAAA,MACT,cAAc;AAAA,QACZ,WAAW,qBAAqB;AAAA,MAClC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,EACP;AAEA,QAAM,aAAa,EAAO,eAAe,MAAM;AAG/C,QAAM,kBAA4C;AAAA,IAChD,GAAG,WAAW;AAAA,IACd,SAAS;AAAA,MACP,SAAS;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,UAAU,WAAW;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,WAAW,WAAW;AACxB,UAAM,oBAAoB,EAAS,WAAW,SAAS,IACnD,WAAW,YACX,CAAC;AAEL,QAAI,gBAAgB,SAAS;AAC3B,sBAAgB,QAAQ,YAAY;AAAA,QAClC,MAAMA,GAAgB,iBAAiB;AAAA,QACvC,QAAQ;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,UAAU,IAAI,MAAMC,GAAgB,eAAe;AAG3D,QAAM,gBAAgB,UAAU,QAAQ;AACxC,MAAI,EAAC,+CAAe,MAAK;AACvB,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAEA,QAAM,WAAqB;AAAA,IACzB;AAAA,IACA,KAAK,cAAc;AAAA,EACrB;AAGA,MAAI,WAAW,IAAK,QAAO,WAAW,GAAG,IAAI,cAAc;AAC3D,MAAI,WAAW,KAAM,QAAO,WAAW,IAAI,IAAI;AAE/C,SAAO;AACT;AAGA,IAAO,gBAAQ;","names":["x","J"]}
1
+ {"version":3,"sources":["../src/destination.ts","../src/types/index.ts","../src/index.ts"],"sourcesContent":["import type { Destination } from '@walkeros/core';\nimport type { DataLayer } from './types';\nimport { isObject } from '@walkeros/core';\n\nexport function dataLayerDestination(): Destination.InitDestination {\n window.dataLayer = window.dataLayer || [];\n const dataLayerPush = (event: unknown) => {\n // Do not process events from dataLayer source\n if (\n isObject(event) &&\n isObject(event.source) &&\n String(event.source.type).includes('dataLayer')\n )\n return;\n\n (window.dataLayer as DataLayer)!.push(event);\n };\n const destination: Destination.Instance = {\n type: 'dataLayer',\n config: {},\n push: (event, context) => {\n dataLayerPush(context.data || event);\n },\n pushBatch: (batch) => {\n dataLayerPush({\n event: 'batch',\n batched_event: batch.key,\n events: batch.data.length ? batch.data : batch.events,\n });\n },\n };\n\n return destination;\n}\n","import type { Collector, Source, WalkerOS } from '@walkeros/core';\nimport type { SourceBrowser } from '@walkeros/web-source-browser';\nimport type { SourceDataLayer } from '@walkeros/web-source-datalayer';\n\ndeclare global {\n interface Window {\n [key: string]: DataLayer;\n }\n}\n\n// Instance interface\nexport interface Instance {\n collector: Collector.Instance;\n elb: SourceBrowser.BrowserPush;\n}\n\n// Configuration interface\nexport interface Config {\n // Collector configuration\n collector?: Collector.InitConfig;\n\n // Browser source configuration\n browser?: Partial<SourceBrowser.Settings>;\n\n // DataLayer configuration\n dataLayer?: boolean | Partial<SourceDataLayer.Settings>;\n\n // Global configuration\n elb?: string; // Name for the global elb function\n name?: string; // Name for the global instance\n run?: boolean; // Auto-run on initialization (default: true)\n}\n\nexport type DataLayer = undefined | Array<unknown>;\n","import type { Config, Instance } from './types';\nimport { createCollector, type CollectorConfig } from '@walkeros/collector';\nimport { assign, isObject } from '@walkeros/core';\nimport {\n sourceBrowser,\n getAllEvents,\n getEvents,\n getGlobals,\n type SourceBrowser,\n} from '@walkeros/web-source-browser';\nimport { sourceDataLayer } from '@walkeros/web-source-datalayer';\nimport { dataLayerDestination } from './destination';\n\n// Re-export types\nexport * as Walkerjs from './types';\n\nexport { getAllEvents, getEvents, getGlobals };\n\n// Factory function to create walker.js instance\nexport async function createWalkerjs(config: Config = {}): Promise<Instance> {\n // Default configuration\n const defaultConfig: Config = {\n collector: {\n destinations: {\n dataLayer: dataLayerDestination(),\n },\n },\n browser: {\n run: true,\n session: true,\n },\n dataLayer: false,\n elb: 'elb',\n };\n\n const fullConfig = assign(defaultConfig, config);\n\n // Build collector config with sources\n const collectorConfig: Partial<CollectorConfig> = {\n ...fullConfig.collector,\n sources: {\n browser: {\n code: sourceBrowser,\n config: {\n settings: fullConfig.browser,\n },\n },\n },\n };\n\n // Add dataLayer source if configured\n if (fullConfig.dataLayer) {\n const dataLayerSettings = isObject(fullConfig.dataLayer)\n ? fullConfig.dataLayer\n : {};\n\n if (collectorConfig.sources) {\n collectorConfig.sources.dataLayer = {\n code: sourceDataLayer(dataLayerSettings),\n config: {\n settings: dataLayerSettings,\n },\n };\n }\n }\n\n const { collector } = await createCollector(collectorConfig);\n\n // Get browser elb function\n const browserSource = collector.sources.browser;\n if (!browserSource?.elb) {\n throw new Error('Failed to initialize browser source');\n }\n\n const instance: Instance = {\n collector,\n elb: browserSource.elb as SourceBrowser.BrowserPush,\n };\n\n // Set up global variables if configured\n if (fullConfig.elb) window[fullConfig.elb] = browserSource.elb;\n if (fullConfig.name) window[fullConfig.name] = collector;\n\n return instance;\n}\n\n// Export factory function as default\nexport default createWalkerjs;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,uBAAoD;AAClE,SAAO,YAAY,OAAO,aAAa,CAAC;AACxC,QAAM,gBAAgB,CAAC,UAAmB;AAExC,QACE,EAAS,KAAK,KACd,EAAS,MAAM,MAAM,KACrB,OAAO,MAAM,OAAO,IAAI,EAAE,SAAS,WAAW;AAE9C;AAEF,IAAC,OAAO,UAAyB,KAAK,KAAK;AAAA,EAC7C;AACA,QAAM,cAAoC;AAAA,IACxC,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,MAAM,CAAC,OAAO,YAAY;AACxB,oBAAc,QAAQ,QAAQ,KAAK;AAAA,IACrC;AAAA,IACA,WAAW,CAAC,UAAU;AACpB,oBAAc;AAAA,QACZ,OAAO;AAAA,QACP,eAAe,MAAM;AAAA,QACrB,QAAQ,MAAM,KAAK,SAAS,MAAM,OAAO,MAAM;AAAA,MACjD,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;;;ACjCA;;;ACmBA,eAAsB,eAAe,SAAiB,CAAC,GAAsB;AAE3E,QAAM,gBAAwB;AAAA,IAC5B,WAAW;AAAA,MACT,cAAc;AAAA,QACZ,WAAW,qBAAqB;AAAA,MAClC;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,IACX,KAAK;AAAA,EACP;AAEA,QAAM,aAAa,EAAO,eAAe,MAAM;AAG/C,QAAM,kBAA4C;AAAA,IAChD,GAAG,WAAW;AAAA,IACd,SAAS;AAAA,MACP,SAAS;AAAA,QACP,MAAM;AAAA,QACN,QAAQ;AAAA,UACN,UAAU,WAAW;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAGA,MAAI,WAAW,WAAW;AACxB,UAAM,oBAAoB,EAAS,WAAW,SAAS,IACnD,WAAW,YACX,CAAC;AAEL,QAAI,gBAAgB,SAAS;AAC3B,sBAAgB,QAAQ,YAAY;AAAA,QAClC,MAAMA,GAAgB,iBAAiB;AAAA,QACvC,QAAQ;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,UAAU,IAAI,MAAMC,GAAgB,eAAe;AAG3D,QAAM,gBAAgB,UAAU,QAAQ;AACxC,MAAI,EAAC,+CAAe,MAAK;AACvB,UAAM,IAAI,MAAM,qCAAqC;AAAA,EACvD;AAEA,QAAM,WAAqB;AAAA,IACzB;AAAA,IACA,KAAK,cAAc;AAAA,EACrB;AAGA,MAAI,WAAW,IAAK,QAAO,WAAW,GAAG,IAAI,cAAc;AAC3D,MAAI,WAAW,KAAM,QAAO,WAAW,IAAI,IAAI;AAE/C,SAAO;AACT;AAGA,IAAO,gBAAQ;","names":["x","J"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1B;CACF;AAGD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC;IAC9B,GAAG,EAAE,aAAa,CAAC,WAAW,CAAC;CAChC;AAGD,MAAM,WAAW,MAAM;IAErB,SAAS,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;IAGjC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAG1C,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAGxD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walkerjs.d.ts","sourceRoot":"","sources":["../src/walkerjs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { parseInlineConfig } from '@walkeros/web-core';
2
+ import { createWalkerjs } from './index';
3
+ if (window && document) {
4
+ const initializeWalker = async () => {
5
+ let globalConfig;
6
+ // Check for config from script tag
7
+ const scriptElement = document.querySelector('script[data-elbconfig]');
8
+ if (scriptElement) {
9
+ const configValue = scriptElement.getAttribute('data-elbconfig') || '';
10
+ if (configValue.includes(':')) {
11
+ // Inline config: "elb:track;run:false;instance:myWalker"
12
+ globalConfig = parseInlineConfig(configValue);
13
+ }
14
+ else if (configValue) {
15
+ // Named config: "myWalkerConfig"
16
+ globalConfig = window[configValue];
17
+ }
18
+ }
19
+ // Fallback to window.elbConfig
20
+ if (!globalConfig)
21
+ globalConfig = window.elbConfig;
22
+ // Auto-initialize if config is found
23
+ if (globalConfig) {
24
+ await createWalkerjs(globalConfig);
25
+ }
26
+ };
27
+ // Initialize immediately if DOM is ready, otherwise wait for DOM ready
28
+ if (document.readyState === 'loading') {
29
+ document.addEventListener('DOMContentLoaded', initializeWalker);
30
+ }
31
+ else {
32
+ initializeWalker();
33
+ }
34
+ }
35
+ //# sourceMappingURL=walkerjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walkerjs.js","sourceRoot":"","sources":["../src/walkerjs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;IACvB,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,YAAgC,CAAC;QAErC,mCAAmC;QACnC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACvE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAEvE,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,yDAAyD;gBACzD,YAAY,GAAG,iBAAiB,CAAC,WAAW,CAAW,CAAC;YAC1D,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,iCAAiC;gBACjC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAW,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,YAAY;YAAE,YAAY,GAAG,MAAM,CAAC,SAAmB,CAAC;QAE7D,qCAAqC;QACrC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;IAEF,uEAAuE;IACvE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,gBAAgB,EAAE,CAAC;IACrB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@walkeros/walker.js",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Ready-to-use walkerOS bundle with browser source, collector, and dataLayer support",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -38,7 +38,7 @@
38
38
  "@walkeros/collector": "0.0.7",
39
39
  "@walkeros/web-core": "0.0.7",
40
40
  "@walkeros/web-source-browser": "0.0.7",
41
- "@walkeros/web-source-dataLayer": "0.0.7"
41
+ "@walkeros/web-source-datalayer": "0.0.7"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@swc/jest": "^0.2.36",