@walkeros/collector 0.5.0 → 0.5.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/dev.d.mts +4 -9
  2. package/dist/dev.d.ts +4 -9
  3. package/dist/dev.js +1 -1
  4. package/dist/dev.js.map +1 -1
  5. package/dist/dev.mjs +1 -1
  6. package/dist/dev.mjs.map +1 -1
  7. package/dist/index.d.mts +1 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.mjs +1 -1
  12. package/dist/index.mjs.map +1 -1
  13. package/package.json +2 -2
  14. package/dist/__tests__/auto-run.test.d.ts +0 -2
  15. package/dist/__tests__/auto-run.test.d.ts.map +0 -1
  16. package/dist/__tests__/auto-run.test.js +0 -102
  17. package/dist/__tests__/auto-run.test.js.map +0 -1
  18. package/dist/__tests__/consent.test.d.ts +0 -2
  19. package/dist/__tests__/consent.test.d.ts.map +0 -1
  20. package/dist/__tests__/consent.test.js +0 -21
  21. package/dist/__tests__/consent.test.js.map +0 -1
  22. package/dist/__tests__/create-flow.test.d.ts +0 -2
  23. package/dist/__tests__/create-flow.test.d.ts.map +0 -1
  24. package/dist/__tests__/create-flow.test.js +0 -69
  25. package/dist/__tests__/create-flow.test.js.map +0 -1
  26. package/dist/__tests__/destination-code.test.d.ts +0 -2
  27. package/dist/__tests__/destination-code.test.d.ts.map +0 -1
  28. package/dist/__tests__/destination-code.test.js +0 -323
  29. package/dist/__tests__/destination-code.test.js.map +0 -1
  30. package/dist/__tests__/destination.test.d.ts +0 -2
  31. package/dist/__tests__/destination.test.d.ts.map +0 -1
  32. package/dist/__tests__/destination.test.js +0 -320
  33. package/dist/__tests__/destination.test.js.map +0 -1
  34. package/dist/__tests__/handle.test.d.ts +0 -2
  35. package/dist/__tests__/handle.test.d.ts.map +0 -1
  36. package/dist/__tests__/handle.test.js +0 -78
  37. package/dist/__tests__/handle.test.js.map +0 -1
  38. package/dist/__tests__/mapping.test.d.ts +0 -2
  39. package/dist/__tests__/mapping.test.d.ts.map +0 -1
  40. package/dist/__tests__/mapping.test.js +0 -310
  41. package/dist/__tests__/mapping.test.js.map +0 -1
  42. package/dist/__tests__/source.test.d.ts +0 -2
  43. package/dist/__tests__/source.test.d.ts.map +0 -1
  44. package/dist/__tests__/source.test.js +0 -306
  45. package/dist/__tests__/source.test.js.map +0 -1
  46. package/dist/__tests__/start-flow.test.d.ts +0 -2
  47. package/dist/__tests__/start-flow.test.d.ts.map +0 -1
  48. package/dist/__tests__/start-flow.test.js +0 -167
  49. package/dist/__tests__/start-flow.test.js.map +0 -1
  50. package/dist/__tests__/walker-entity.test.d.ts +0 -2
  51. package/dist/__tests__/walker-entity.test.d.ts.map +0 -1
  52. package/dist/__tests__/walker-entity.test.js +0 -52
  53. package/dist/__tests__/walker-entity.test.js.map +0 -1
  54. package/dist/collector.d.ts +0 -3
  55. package/dist/collector.d.ts.map +0 -1
  56. package/dist/collector.js +0 -60
  57. package/dist/collector.js.map +0 -1
  58. package/dist/command.d.ts +0 -12
  59. package/dist/command.d.ts.map +0 -1
  60. package/dist/command.js +0 -20
  61. package/dist/command.js.map +0 -1
  62. package/dist/consent.d.ts +0 -10
  63. package/dist/consent.d.ts.map +0 -1
  64. package/dist/consent.js +0 -30
  65. package/dist/consent.js.map +0 -1
  66. package/dist/constants.d.ts +0 -13
  67. package/dist/constants.d.ts.map +0 -1
  68. package/dist/constants.js +0 -35
  69. package/dist/constants.js.map +0 -1
  70. package/dist/destination-code.d.ts +0 -4
  71. package/dist/destination-code.d.ts.map +0 -1
  72. package/dist/destination-code.js +0 -60
  73. package/dist/destination-code.js.map +0 -1
  74. package/dist/destination.d.ts +0 -61
  75. package/dist/destination.d.ts.map +0 -1
  76. package/dist/destination.js +0 -314
  77. package/dist/destination.js.map +0 -1
  78. package/dist/dev.d.ts.map +0 -1
  79. package/dist/elb.d.ts +0 -11
  80. package/dist/elb.d.ts.map +0 -1
  81. package/dist/elb.js +0 -60
  82. package/dist/elb.js.map +0 -1
  83. package/dist/flow.d.ts +0 -4
  84. package/dist/flow.d.ts.map +0 -1
  85. package/dist/flow.js +0 -44
  86. package/dist/flow.js.map +0 -1
  87. package/dist/handle.d.ts +0 -29
  88. package/dist/handle.d.ts.map +0 -1
  89. package/dist/handle.js +0 -161
  90. package/dist/handle.js.map +0 -1
  91. package/dist/index.d.ts.map +0 -1
  92. package/dist/on.d.ts +0 -19
  93. package/dist/on.d.ts.map +0 -1
  94. package/dist/on.js +0 -127
  95. package/dist/on.js.map +0 -1
  96. package/dist/push.d.ts +0 -11
  97. package/dist/push.d.ts.map +0 -1
  98. package/dist/push.js +0 -43
  99. package/dist/push.js.map +0 -1
  100. package/dist/schemas.d.ts +0 -4
  101. package/dist/schemas.d.ts.map +0 -1
  102. package/dist/schemas.js +0 -35
  103. package/dist/schemas.js.map +0 -1
  104. package/dist/source.d.ts +0 -10
  105. package/dist/source.d.ts.map +0 -1
  106. package/dist/source.js +0 -47
  107. package/dist/source.js.map +0 -1
  108. package/dist/types/code.d.ts +0 -22
  109. package/dist/types/code.d.ts.map +0 -1
  110. package/dist/types/code.js +0 -2
  111. package/dist/types/code.js.map +0 -1
  112. package/dist/types/collector.d.ts +0 -19
  113. package/dist/types/collector.d.ts.map +0 -1
  114. package/dist/types/collector.js +0 -2
  115. package/dist/types/collector.js.map +0 -1
  116. package/dist/types/index.d.ts +0 -3
  117. package/dist/types/index.d.ts.map +0 -1
  118. package/dist/types/index.js +0 -4
  119. package/dist/types/index.js.map +0 -1
@@ -1,306 +0,0 @@
1
- import { startFlow } from '../flow';
2
- import { initSources } from '../source';
3
- // Mock source implementation using new pattern
4
- const mockSource = async (config, env) => {
5
- const { push } = env;
6
- if (!push) {
7
- throw new Error('Mock source requires push function');
8
- }
9
- // Simulate some source activity
10
- setTimeout(() => {
11
- push({ name: 'mock event', data: { source: 'mock' } });
12
- }, 10);
13
- return {
14
- type: 'mock',
15
- config: {
16
- ...config,
17
- settings: config.settings || { test: true },
18
- },
19
- push: push, // Required push method - forwards to collector
20
- destroy: async () => {
21
- // Cleanup
22
- },
23
- };
24
- };
25
- // Mock source that throws an error
26
- const errorSource = async (config, env) => {
27
- throw new Error('Source initialization failed');
28
- };
29
- describe('Source', () => {
30
- let collector;
31
- beforeEach(async () => {
32
- const result = await startFlow();
33
- collector = result.collector;
34
- });
35
- describe('initSources', () => {
36
- it('should initialize sources with code/config/env pattern', async () => {
37
- const sources = {
38
- testSource: {
39
- code: mockSource,
40
- config: {
41
- type: 'mock',
42
- settings: { name: 'test' },
43
- },
44
- env: {
45
- custom: 'value',
46
- },
47
- },
48
- };
49
- collector.sources = await initSources(collector, sources);
50
- expect(collector.sources).toHaveProperty('testSource');
51
- expect(collector.sources.testSource.type).toBe('mock');
52
- expect(collector.sources.testSource.config.settings).toEqual({
53
- name: 'test',
54
- });
55
- });
56
- it('should handle source initialization errors gracefully', async () => {
57
- const sources = {
58
- errorSource: {
59
- code: errorSource,
60
- config: {
61
- type: 'error',
62
- settings: {},
63
- },
64
- env: {},
65
- },
66
- };
67
- // Should not throw an error
68
- collector.sources = await initSources(collector, sources);
69
- expect(collector.sources).not.toHaveProperty('errorSource');
70
- });
71
- it('should inject elb function into source environment', async () => {
72
- const captureEnv = async (config, env) => {
73
- expect(env.push).toBeDefined();
74
- expect(typeof env.push).toBe('function');
75
- expect(env.command).toBeDefined();
76
- expect(typeof env.command).toBe('function');
77
- // The elb function should be a wrapper that calls collector.push
78
- // Don't test strict equality since it's wrapped
79
- return {
80
- type: 'capture',
81
- config: {
82
- ...config,
83
- settings: config.settings || {},
84
- },
85
- push: env.push, // Required push method
86
- };
87
- };
88
- const sources = {
89
- captureSource: {
90
- code: captureEnv,
91
- config: {
92
- type: 'capture',
93
- settings: {},
94
- },
95
- env: {},
96
- },
97
- };
98
- collector.sources = await initSources(collector, sources);
99
- expect(collector.sources).toHaveProperty('captureSource');
100
- });
101
- it('should merge environment with custom properties', async () => {
102
- const captureEnv = async (config, env) => {
103
- expect(env.push).toBeDefined();
104
- expect(env.command).toBeDefined();
105
- expect(env.customProp).toBe('customValue');
106
- expect(env.window).toBeDefined();
107
- return {
108
- type: 'env-test',
109
- config: {
110
- ...config,
111
- settings: config.settings || {},
112
- },
113
- push: env.push, // Required push method
114
- };
115
- };
116
- const sources = {
117
- envTestSource: {
118
- code: captureEnv,
119
- config: {
120
- type: 'env-test',
121
- settings: {},
122
- },
123
- env: {
124
- customProp: 'customValue',
125
- window: { location: { href: 'https://test.com' } },
126
- },
127
- },
128
- };
129
- collector.sources = await initSources(collector, sources);
130
- expect(collector.sources).toHaveProperty('envTestSource');
131
- });
132
- it('should initialize multiple sources', async () => {
133
- const sources = {
134
- source1: {
135
- code: mockSource,
136
- config: {
137
- type: 'mock1',
138
- settings: { name: 'source1' },
139
- },
140
- env: {},
141
- },
142
- source2: {
143
- code: mockSource,
144
- config: {
145
- type: 'mock2',
146
- settings: { name: 'source2' },
147
- },
148
- env: {},
149
- },
150
- };
151
- collector.sources = await initSources(collector, sources);
152
- expect(collector.sources).toHaveProperty('source1');
153
- expect(collector.sources).toHaveProperty('source2');
154
- expect(collector.sources.source1.config.settings).toEqual({
155
- name: 'source1',
156
- });
157
- expect(collector.sources.source2.config.settings).toEqual({
158
- name: 'source2',
159
- });
160
- });
161
- });
162
- describe('startFlow with sources', () => {
163
- it('should initialize sources during collector creation', async () => {
164
- const { collector: testCollector } = await startFlow({
165
- sources: {
166
- testSource: {
167
- code: mockSource,
168
- config: {
169
- type: 'mock',
170
- settings: { test: true },
171
- },
172
- env: {
173
- mockWindow: { location: 'test' },
174
- },
175
- },
176
- },
177
- });
178
- expect(testCollector.sources).toHaveProperty('testSource');
179
- expect(testCollector.sources.testSource.type).toBe('mock');
180
- });
181
- it('should work with empty sources configuration', async () => {
182
- const { collector: testCollector } = await startFlow({
183
- sources: {},
184
- });
185
- expect(testCollector.sources).toBeDefined();
186
- // ELB source is always present
187
- expect(Object.keys(testCollector.sources)).toHaveLength(1);
188
- expect(testCollector.sources.elb).toBeDefined();
189
- });
190
- });
191
- describe('source push mechanism', () => {
192
- it('should push events to sources with on method', async () => {
193
- const onMock = jest.fn();
194
- // Mock source with on method
195
- const sourceWithOn = async (config, env) => {
196
- return {
197
- type: 'reactive',
198
- config: {
199
- ...config,
200
- settings: config.settings || {},
201
- },
202
- push: env.push, // Required push method
203
- on: onMock,
204
- };
205
- };
206
- const sources = {
207
- reactiveSource: {
208
- code: sourceWithOn,
209
- config: {
210
- type: 'reactive',
211
- settings: { test: true },
212
- },
213
- env: {},
214
- },
215
- };
216
- collector.sources = await initSources(collector, sources);
217
- // Trigger consent event
218
- await collector.command('consent', { marketing: true });
219
- // Verify the source's on method was called
220
- expect(onMock).toHaveBeenCalledWith('consent', { marketing: true });
221
- });
222
- it('should push session events to sources', async () => {
223
- const onMock = jest.fn();
224
- const sourceWithOn = async (config, env) => {
225
- return {
226
- type: 'reactive',
227
- config: {
228
- ...config,
229
- settings: config.settings || {},
230
- },
231
- push: env.push, // Required push method
232
- on: onMock,
233
- };
234
- };
235
- collector.sources = await initSources(collector, {
236
- reactiveSource: {
237
- code: sourceWithOn,
238
- config: { type: 'reactive', settings: {} },
239
- env: {},
240
- },
241
- });
242
- // Set session data and trigger session event
243
- collector.session = {
244
- id: 'test-session',
245
- isStart: true,
246
- storage: false,
247
- device: 'test',
248
- };
249
- await collector.command('session');
250
- // Verify the source's on method was called with session context
251
- expect(onMock).toHaveBeenCalledWith('session', collector.session);
252
- });
253
- it('should not fail if source does not have on method', async () => {
254
- const sourceWithoutOn = async (config, env) => {
255
- return {
256
- type: 'passive',
257
- config: {
258
- ...config,
259
- settings: config.settings || {},
260
- },
261
- push: env.push, // Required push method
262
- // No on method
263
- };
264
- };
265
- collector.sources = await initSources(collector, {
266
- passiveSource: {
267
- code: sourceWithoutOn,
268
- config: { type: 'passive', settings: {} },
269
- env: {},
270
- },
271
- });
272
- // Should not throw error even without on method
273
- expect(async () => {
274
- await collector.command('consent', { marketing: true });
275
- }).not.toThrow();
276
- });
277
- it('should push different event types correctly', async () => {
278
- const onMock = jest.fn();
279
- const sourceWithOn = async (config, env) => {
280
- return {
281
- type: 'reactive',
282
- config: {
283
- ...config,
284
- settings: config.settings || {},
285
- },
286
- push: env.push, // Required push method
287
- on: onMock,
288
- };
289
- };
290
- collector.sources = await initSources(collector, {
291
- reactiveSource: {
292
- code: sourceWithOn,
293
- config: { type: 'reactive', settings: {} },
294
- env: {},
295
- },
296
- });
297
- // Test different event types
298
- await collector.command('ready');
299
- await collector.command('run');
300
- expect(onMock).toHaveBeenCalledWith('ready', undefined);
301
- expect(onMock).toHaveBeenCalledWith('run', undefined);
302
- expect(onMock).toHaveBeenCalledTimes(2);
303
- });
304
- });
305
- });
306
- //# sourceMappingURL=source.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.test.js","sourceRoot":"","sources":["../../src/__tests__/source.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=start-flow.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-flow.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/start-flow.test.ts"],"names":[],"mappings":""}
@@ -1,167 +0,0 @@
1
- import { startFlow } from '../flow';
2
- describe('Source Start Flow Integration', () => {
3
- it('should return ELB source push as elb when no sources', async () => {
4
- const { collector, elb } = await startFlow({
5
- run: false,
6
- });
7
- // elb should be the ELB source's push function
8
- expect(collector.sources.elb).toBeDefined();
9
- expect(elb).toBe(collector.sources.elb.push);
10
- });
11
- it('should return first source push as elb by default', async () => {
12
- const customPush = async () => ({
13
- ok: true,
14
- successful: [],
15
- queued: [],
16
- failed: [],
17
- });
18
- const mockSource = async () => ({
19
- type: 'mock',
20
- config: {},
21
- push: customPush,
22
- });
23
- const { collector, elb } = await startFlow({
24
- sources: {
25
- mockSource: {
26
- code: mockSource,
27
- },
28
- },
29
- run: false,
30
- });
31
- // elb should be first source's push by default
32
- expect(elb).toBe(customPush);
33
- expect(elb).not.toBe(collector.push);
34
- });
35
- it('should return primary source push as elb when marked', async () => {
36
- const customPush = async () => ({
37
- ok: true,
38
- successful: [],
39
- queued: [],
40
- failed: [],
41
- });
42
- const mockSource = async () => ({
43
- type: 'mock',
44
- config: {},
45
- push: customPush,
46
- });
47
- const { collector, elb } = await startFlow({
48
- sources: {
49
- mockSource: {
50
- code: mockSource,
51
- primary: true, // Mark as primary
52
- },
53
- },
54
- run: false,
55
- });
56
- // elb should be the source's push method
57
- expect(elb).toBe(customPush);
58
- expect(elb).not.toBe(collector.push);
59
- // Verify primary flag is stored in source config
60
- expect(collector.sources.mockSource.config.primary).toBe(true);
61
- });
62
- it('should override first source with primary flag', async () => {
63
- const firstPush = async () => ({
64
- ok: true,
65
- successful: [],
66
- queued: [],
67
- failed: [],
68
- });
69
- const secondPush = async () => ({
70
- ok: true,
71
- successful: [],
72
- queued: [],
73
- failed: [],
74
- });
75
- const mockSource1 = async () => ({
76
- type: 'mock1',
77
- config: {},
78
- push: firstPush,
79
- });
80
- const mockSource2 = async () => ({
81
- type: 'mock2',
82
- config: {},
83
- push: secondPush,
84
- });
85
- const { elb } = await startFlow({
86
- sources: {
87
- first: {
88
- code: mockSource1,
89
- },
90
- second: {
91
- code: mockSource2,
92
- primary: true, // Explicitly mark second as primary
93
- },
94
- },
95
- run: false,
96
- });
97
- // Should use explicitly marked primary, not first source
98
- expect(elb).toBe(secondPush);
99
- expect(elb).not.toBe(firstPush);
100
- });
101
- it('should initialize complete setup from flow config', async () => {
102
- const mockPushCalls = [];
103
- const mockSource = async (config, env) => {
104
- expect(config).toEqual({
105
- settings: {
106
- test: 'value',
107
- },
108
- });
109
- expect(env).toMatchObject({
110
- push: expect.any(Function),
111
- command: expect.any(Function),
112
- sources: expect.any(Object),
113
- elb: expect.any(Function),
114
- foo: 'bar',
115
- });
116
- return {
117
- type: 'mock',
118
- config: {
119
- settings: config.settings || {},
120
- },
121
- push: env.push, // Required push method
122
- };
123
- };
124
- const { collector, elb } = await startFlow({
125
- sources: {
126
- mockSource: {
127
- code: mockSource,
128
- config: {
129
- settings: {
130
- test: 'value',
131
- },
132
- },
133
- env: {
134
- foo: 'bar',
135
- // elb will be injected by collector
136
- },
137
- },
138
- },
139
- destinations: {
140
- test: {
141
- code: {
142
- type: 'test',
143
- config: {},
144
- push: (event) => {
145
- mockPushCalls.push(event);
146
- },
147
- },
148
- },
149
- },
150
- });
151
- expect(collector.sources.mockSource).toEqual({
152
- type: 'mock',
153
- config: {
154
- settings: { test: 'value' },
155
- },
156
- push: expect.any(Function),
157
- });
158
- expect(collector.sources.elb).toBeDefined();
159
- await elb({ name: 'manual event', data: { test: 'data' } });
160
- expect(mockPushCalls).toHaveLength(1);
161
- expect(mockPushCalls[0]).toMatchObject({
162
- name: 'manual event',
163
- data: { test: 'data' },
164
- });
165
- });
166
- });
167
- //# sourceMappingURL=start-flow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"start-flow.test.js","sourceRoot":"","sources":["../../src/__tests__/start-flow.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=walker-entity.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walker-entity.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/walker-entity.test.ts"],"names":[],"mappings":""}
@@ -1,52 +0,0 @@
1
- import { startFlow } from '../flow';
2
- describe('Walker Entity Events', () => {
3
- it('allows "walker" as entity name for regular events', async () => {
4
- const mockPush = jest.fn().mockResolvedValue(undefined);
5
- const mockDestination = {
6
- push: mockPush,
7
- };
8
- const { elb } = await startFlow({
9
- destinations: {
10
- test: {
11
- code: mockDestination,
12
- config: {},
13
- },
14
- },
15
- });
16
- // This should now work - "walker" as entity name
17
- await elb({ name: 'walker view', data: { page: 'home' } });
18
- expect(mockPush).toHaveBeenCalledWith(expect.objectContaining({
19
- entity: 'walker',
20
- action: 'view',
21
- name: 'walker view',
22
- data: { page: 'home' },
23
- }), expect.any(Object));
24
- });
25
- it('distinguishes between walker events and walker commands', async () => {
26
- const mockPush = jest.fn().mockResolvedValue(undefined);
27
- const mockDestination = {
28
- push: mockPush,
29
- };
30
- const { elb, collector } = await startFlow({
31
- destinations: {
32
- test: {
33
- code: mockDestination,
34
- config: {},
35
- },
36
- },
37
- });
38
- // Regular walker entity event
39
- await elb({ name: 'walker view', data: { page: 'home' } });
40
- // Walker command (goes through command, not push)
41
- await elb('walker consent', { marketing: true });
42
- // Only the event should hit the destination
43
- expect(mockPush).toHaveBeenCalledTimes(1);
44
- expect(mockPush).toHaveBeenCalledWith(expect.objectContaining({
45
- entity: 'walker',
46
- action: 'view',
47
- }), expect.any(Object));
48
- // Command should update collector state
49
- expect(collector.consent.marketing).toBe(true);
50
- });
51
- });
52
- //# sourceMappingURL=walker-entity.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"walker-entity.test.js","sourceRoot":"","sources":["../../src/__tests__/walker-entity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG;YACtB,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,SAAS,CAAC;YAC9B,YAAY,EAAE;gBACZ,IAAI,EAAE;oBACJ,IAAI,EAAE,eAAsB;oBAC5B,MAAM,EAAE,EAAE;iBACX;aACF;SACF,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACvB,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,eAAe,GAAG;YACtB,IAAI,EAAE,QAAQ;SACf,CAAC;QAEF,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC;YACzC,YAAY,EAAE;gBACZ,IAAI,EAAE;oBACJ,IAAI,EAAE,eAAsB;oBAC5B,MAAM,EAAE,EAAE;iBACX;aACF;SACF,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAE3D,kDAAkD;QAClD,MAAM,GAAG,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,4CAA4C;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;SACf,CAAC,EACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QAEF,wCAAwC;QACxC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Collector } from '@walkeros/core';
2
- export declare function collector(initConfig: Collector.InitConfig): Promise<Collector.Instance>;
3
- //# sourceMappingURL=collector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAUlE,wBAAsB,SAAS,CAC7B,UAAU,EAAE,SAAS,CAAC,UAAU,GAC/B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAqE7B"}
package/dist/collector.js DELETED
@@ -1,60 +0,0 @@
1
- import { assign, createLogger } from '@walkeros/core';
2
- import { commonHandleCommand } from './handle';
3
- import { initDestinations } from './destination';
4
- import { createPush } from './push';
5
- import { createCommand } from './command';
6
- export async function collector(initConfig) {
7
- const version = __VERSION__;
8
- const defaultConfig = {
9
- globalsStatic: {},
10
- sessionStatic: {},
11
- tagging: 0,
12
- run: true,
13
- };
14
- const config = assign(defaultConfig, initConfig, {
15
- merge: false,
16
- extend: false,
17
- });
18
- // Create logger with config from initConfig
19
- const loggerConfig = {
20
- level: initConfig.logger?.level,
21
- handler: initConfig.logger?.handler,
22
- };
23
- const logger = createLogger(loggerConfig);
24
- // Enhanced globals with static globals from config
25
- const finalGlobals = { ...config.globalsStatic, ...initConfig.globals };
26
- const collector = {
27
- allowed: false,
28
- config,
29
- consent: initConfig.consent || {},
30
- count: 0,
31
- custom: initConfig.custom || {},
32
- destinations: {},
33
- globals: finalGlobals,
34
- group: '',
35
- hooks: {},
36
- logger,
37
- on: {},
38
- queue: [],
39
- round: 0,
40
- session: undefined,
41
- timing: Date.now(),
42
- user: initConfig.user || {},
43
- version,
44
- sources: {},
45
- push: undefined, // Placeholder, will be set below
46
- command: undefined, // Placeholder, will be set below
47
- };
48
- // Set the push and command functions with the collector reference
49
- collector.push = createPush(collector, (event) => ({
50
- timing: Math.round((Date.now() - collector.timing) / 10) / 100,
51
- source: { type: 'collector', id: '', previous_id: '' },
52
- ...event,
53
- }));
54
- collector.command = createCommand(collector, commonHandleCommand);
55
- // Initialize destinations after collector is fully created
56
- // Sources are initialized in startFlow after ELB source is created
57
- collector.destinations = await initDestinations(collector, initConfig.destinations || {});
58
- return collector;
59
- }
60
- //# sourceMappingURL=collector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collector.js","sourceRoot":"","sources":["../src/collector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,UAAgC;IAEhC,MAAM,OAAO,GAAG,WAAW,CAAC;IAE5B,MAAM,aAAa,GAAqB;QACtC,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,OAAO,EAAE,CAAC;QACV,GAAG,EAAE,IAAI;KACV,CAAC;IAEF,MAAM,MAAM,GAAqB,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE;QACjE,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,YAAY,GAAkB;QAClC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK;QAC/B,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO;KACpC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAE1C,mDAAmD;IACnD,MAAM,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAExE,MAAM,SAAS,GAAuB;QACpC,OAAO,EAAE,KAAK;QACd,MAAM;QACN,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;QACjC,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;QAC/B,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,MAAM;QACN,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;QAClB,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,EAAE;QAC3B,OAAO;QACP,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,SAAwC,EAAE,iCAAiC;QACjF,OAAO,EAAE,SAA2C,EAAE,iCAAiC;KACxF,CAAC;IAEF,kEAAkE;IAClE,SAAS,CAAC,IAAI,GAAG,UAAU,CACzB,SAAS,EACT,CAAC,KAAgC,EAAyB,EAAE,CAC1D,CAAC;QACC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG;QAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QACtD,GAAG,KAAK;KACT,CAA0B,CAC9B,CAAC;IAEF,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAElE,2DAA2D;IAC3D,mEAAmE;IACnE,SAAS,CAAC,YAAY,GAAG,MAAM,gBAAgB,CAC7C,SAAS,EACT,UAAU,CAAC,YAAY,IAAI,EAAE,CAC9B,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/command.d.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { Collector } from '@walkeros/core';
2
- import type { HandleCommandFn } from './types/collector';
3
- /**
4
- * Creates the command function for the collector.
5
- * Handles walker commands (config, consent, destination, etc.)
6
- *
7
- * @param collector - The walkerOS collector instance
8
- * @param handleCommand - Command handler function
9
- * @returns The command function
10
- */
11
- export declare function createCommand<T extends Collector.Instance>(collector: T, handleCommand: HandleCommandFn<T>): Collector.CommandFn;
12
- //# sourceMappingURL=command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAO,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,SAAS,CAAC,QAAQ,EACxD,SAAS,EAAE,CAAC,EACZ,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,GAChC,SAAS,CAAC,SAAS,CAmBrB"}