@borisch/snitch 1.0.0 → 1.0.2

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 (62) hide show
  1. package/README.md +288 -28
  2. package/dist/packages/common/anonymous-id-store.js +2 -3
  3. package/dist/packages/common/anonymous-id-store.js.map +1 -1
  4. package/dist/packages/common/create-unique-id.js +1 -1
  5. package/dist/packages/common/create-unique-id.js.map +1 -1
  6. package/dist/packages/common/plugin-interfaces.d.ts +1 -1
  7. package/dist/packages/common/tmr.d.ts +1 -1
  8. package/dist/packages/common/tracker-interfaces.d.ts +3 -3
  9. package/dist/packages/snitch/snitch.d.ts +1 -1
  10. package/dist/packages/snitch/snitch.js +1 -1
  11. package/dist/packages/snitch/snitch.js.map +1 -1
  12. package/dist/packages/snitch/use-plugins.d.ts +2 -2
  13. package/dist/packages/snitch/use-plugins.js.map +1 -1
  14. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.d.ts +1 -1
  15. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.js +1 -1
  16. package/dist/packages/snitch-plugin-beacon-transport/beacon-transport.js.map +1 -1
  17. package/dist/packages/snitch-plugin-debug-logger/debug-logger.js +1 -1
  18. package/dist/packages/snitch-plugin-debug-logger/debug-logger.js.map +1 -1
  19. package/dist/packages/snitch-plugin-engagement/engagement.js +1 -1
  20. package/dist/packages/snitch-plugin-engagement/engagement.js.map +1 -1
  21. package/dist/packages/snitch-plugin-exceptions/exceptions.js +1 -1
  22. package/dist/packages/snitch-plugin-exceptions/exceptions.js.map +1 -1
  23. package/dist/packages/snitch-plugin-flag/flag-service.d.ts +1 -1
  24. package/dist/packages/snitch-plugin-flag/flag.js +4 -4
  25. package/dist/packages/snitch-plugin-flag/flag.js.map +1 -1
  26. package/dist/packages/snitch-plugin-launch/launch.js +2 -2
  27. package/dist/packages/snitch-plugin-launch/launch.js.map +1 -1
  28. package/dist/packages/snitch-plugin-location/listen-for-location-change.js +1 -1
  29. package/dist/packages/snitch-plugin-location/listen-for-location-change.js.map +1 -1
  30. package/dist/packages/snitch-plugin-location/location.d.ts +1 -1
  31. package/dist/packages/snitch-plugin-location/location.js +2 -2
  32. package/dist/packages/snitch-plugin-location/location.js.map +1 -1
  33. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.d.ts +1 -1
  34. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.js +1 -1
  35. package/dist/packages/snitch-plugin-s2s-transport/s2s-transport.js.map +1 -1
  36. package/dist/packages/snitch-plugin-screens/screens.d.ts +1 -1
  37. package/dist/packages/snitch-plugin-screens/screens.js +1 -1
  38. package/dist/packages/snitch-plugin-screens/screens.js.map +1 -1
  39. package/dist/packages/snitch-plugin-scroll/listen-for-scroll-change.js +1 -1
  40. package/dist/packages/snitch-plugin-scroll/listen-for-scroll-change.js.map +1 -1
  41. package/dist/packages/snitch-plugin-scroll/scroll.js +25 -11
  42. package/dist/packages/snitch-plugin-scroll/scroll.js.map +1 -1
  43. package/dist/packages/snitch-plugin-session/session.js +24 -10
  44. package/dist/packages/snitch-plugin-session/session.js.map +1 -1
  45. package/dist/packages/snitch-plugin-session/storage.js +11 -12
  46. package/dist/packages/snitch-plugin-session/storage.js.map +1 -1
  47. package/dist/packages/snitch-plugin-session/utm.js +3 -4
  48. package/dist/packages/snitch-plugin-session/utm.js.map +1 -1
  49. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-counter-mock.d.ts +1 -1
  50. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-transport.js +25 -11
  51. package/dist/packages/snitch-plugin-topmailru-transport/topmailru-transport.js.map +1 -1
  52. package/dist/packages/snitch-plugin-useragent/useragent.js +1 -1
  53. package/dist/packages/snitch-plugin-useragent/useragent.js.map +1 -1
  54. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-send.js +1 -1
  55. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-send.js.map +1 -1
  56. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-transport.js +3 -3
  57. package/dist/packages/snitch-plugin-vkbridge-transport/vkbridge-transport.js.map +1 -1
  58. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch.js +2 -2
  59. package/dist/packages/snitch-plugin-vkma-launch/vkma-launch.js.map +1 -1
  60. package/dist/packages/snitch-plugin-web-vitals/web-vitals.js +1 -1
  61. package/dist/packages/snitch-plugin-web-vitals/web-vitals.js.map +1 -1
  62. package/package.json +12 -12
package/README.md CHANGED
@@ -11,12 +11,23 @@ npm install @borisch/snitch
11
11
  ## Quick Start
12
12
 
13
13
  ```ts
14
- import { snitch, sessionPlugin, scrollPlugin, beaconTransportPlugin } from '@borisch/snitch'
14
+ import {
15
+ snitch,
16
+ sessionPlugin,
17
+ launchPlugin,
18
+ scrollPlugin,
19
+ locationPlugin,
20
+ beaconTransportPlugin,
21
+ debugLoggerPlugin,
22
+ } from '@borisch/snitch'
15
23
 
16
24
  const captureEvent = snitch(
17
25
  sessionPlugin(),
18
- scrollPlugin({ threshold: 25 }),
19
- beaconTransportPlugin({ url: 'https://analytics.example.com/collect' })
26
+ launchPlugin(),
27
+ scrollPlugin(),
28
+ locationPlugin({ captureLocationChange: true }),
29
+ beaconTransportPlugin({ hostname: 'analytics.example.com' }),
30
+ debugLoggerPlugin(),
20
31
  )
21
32
 
22
33
  // Manually capture events
@@ -25,43 +36,283 @@ captureEvent('button_click', { buttonId: 'signup' })
25
36
 
26
37
  The `snitch()` function accepts any number of plugins and returns a `captureEvent` function. Plugins can:
27
38
 
28
- - **Provide event parameters** (automatically attached to every event)
39
+ - **Provide event parameters** automatically attached to every event
29
40
  - **Emit events** on their own (e.g. scroll milestones, page views)
30
- - **Transport events** to a backend (Beacon API, fetch, VK Bridge, etc.)
41
+ - **Transport events** to a backend
31
42
  - **Intercept events** before they are sent
43
+ - **Expose mixins** — additional methods attached to the `captureEvent` function
32
44
 
33
45
  ## Plugins
34
46
 
35
- | Plugin | Factory | Description |
36
- | ------------------ | ------------------------ | ---------------------------------------------------------- |
37
- | Session | `sessionPlugin()` | Generates a unique session ID, attaches it to every event |
38
- | Launch | `launchPlugin()` | Captures a `launch` event on initialization |
39
- | Scroll | `scrollPlugin(opts)` | Tracks scroll depth milestones (default: 25/50/75/100%) |
40
- | Location | `locationPlugin()` | Attaches page URL and referrer to every event |
41
- | Engagement | `engagementPlugin(opts)` | Tracks time spent on page, emits engagement events |
42
- | Screens | `screenPlugin()` | Tracks screen/page view events |
43
- | Exceptions | `exceptionsPlugin()` | Captures unhandled errors and unhandled promise rejections |
44
- | Web Vitals | `webVitalsPlugin()` | Reports Core Web Vitals (LCP, FID, CLS, etc.) |
45
- | Flag | `flagPlugin(opts)` | Attaches a static key-value flag to every event |
46
- | User Agent | `useragentPlugin()` | Attaches `navigator.userAgent` to every event |
47
- | Debug Logger | `debugLoggerPlugin()` | Logs all events to the console (for development) |
48
- | VK Mini App Launch | `vkmaLaunchPlugin()` | Parses VK Mini App launch parameters |
47
+ ### `sessionPlugin()`
48
+
49
+ Manages user sessions using `localStorage`. A new session starts when:
50
+
51
+ - No previous session exists
52
+ - The previous session has been inactive for 30+ minutes
53
+ - UTM parameters are present in the URL
54
+
55
+ If a session expires between events, a new session is started automatically before the next event is sent.
56
+
57
+ Emits: `sessionStart`
58
+
59
+ Attaches to every event:
60
+ | Param | Description |
61
+ |-------|-------------|
62
+ | `sid` | Unique session ID |
63
+ | `scnt` | Total session count for this device |
64
+ | `set` | Milliseconds since session started |
65
+ | `sutm` | Compact UTM parameters from the URL that started the session |
66
+
67
+ ---
68
+
69
+ ### `launchPlugin()`
70
+
71
+ Captures a `launch` event when the tracker initializes. Records whether the page runs inside an iframe.
72
+
73
+ Emits: `launch` with `{ ifr: "true" | "false" }`
74
+
75
+ Attaches to every event:
76
+ | Param | Description |
77
+ |-------|-------------|
78
+ | `lid` | Unique launch ID (generated per `snitch()` call) |
79
+ | `ref` | `document.referrer` at initialization time |
80
+
81
+ ---
82
+
83
+ ### `scrollPlugin()`
84
+
85
+ Tracks scroll depth. Emits events when the user scrolls past depth milestones (25%, 50%, 75%, 100%). The scroll depth cache resets whenever a `locationChange` or `screenChange` event occurs, so milestones are tracked per-page.
86
+
87
+ Emits: `scroll` with `{ depthPercent: number }`
88
+
89
+ ---
90
+
91
+ ### `locationPlugin(options)`
92
+
93
+ Tracks the current page URL and optionally emits events on URL changes (SPA navigation, `pushState`, etc.).
94
+
95
+ **Options:**
96
+ | Option | Type | Description |
97
+ |--------|------|-------------|
98
+ | `captureLocationChange` | `boolean` | Whether to listen for URL changes and emit events |
99
+ | `getLocation` | `() => string` | Custom location getter (defaults to `window.location.href`) |
100
+
101
+ Emits (when `captureLocationChange` is `true`): `locationChange` with `{ phref: string }` (previous URL)
102
+
103
+ Attaches to every event:
104
+ | Param | Description |
105
+ |-------|-------------|
106
+ | `href` | Current page URL (truncated to 500 characters) |
107
+
108
+ ---
109
+
110
+ ### `engagementPlugin(options?)`
111
+
112
+ Periodically emits engagement events while the page is visible. Events are suppressed when the tab is hidden (`document.hidden === true`).
113
+
114
+ **Options:**
115
+ | Option | Type | Default | Description |
116
+ |--------|------|---------|-------------|
117
+ | `engagementTrackingIntervalMsec` | `number` | `10000` | Interval in milliseconds between engagement pings |
118
+
119
+ Emits: `engage` (at configured interval, only when tab is visible)
120
+
121
+ ---
122
+
123
+ ### `screenPlugin(initialScreen)`
124
+
125
+ Tracks screen/page views within an app. Maintains current and previous screen state.
126
+
127
+ **Options:**
128
+ | Option | Type | Description |
129
+ |--------|------|-------------|
130
+ | `screenType` | `string` | Type/category of the initial screen |
131
+ | `screenId` | `string?` | Optional screen identifier |
132
+
133
+ To change screens, call `captureEvent('screenChange', { screenType: 'catalog', screenId: 'page2' })`. The plugin automatically injects previous screen params and removes the raw `screenType`/`screenId` from the event payload.
134
+
135
+ Attaches to every event:
136
+ | Param | Description |
137
+ |-------|-------------|
138
+ | `sct` | Current screen type |
139
+ | `scid` | Current screen ID (or `""`) |
140
+
141
+ Attaches to `screenChange` events:
142
+ | Param | Description |
143
+ |-------|-------------|
144
+ | `psct` | Previous screen type |
145
+ | `pscid` | Previous screen ID (or `""`) |
146
+
147
+ ---
148
+
149
+ ### `exceptionsPlugin()`
150
+
151
+ Captures unhandled errors and promise rejections globally.
152
+
153
+ Emits:
154
+
155
+ - `uncaughtError` with `{ message, filename, lineno, colno, error }`
156
+ - `unhandledRejection` with `{ reason }`
157
+
158
+ ---
159
+
160
+ ### `webVitalsPlugin()`
161
+
162
+ Reports [Core Web Vitals](https://web.dev/vitals/) using the `web-vitals` library. Tracks CLS, FID, LCP, TTFB, and FCP.
163
+
164
+ Emits: `webVital` with `{ name, value, delta, metricId }`
165
+
166
+ ---
167
+
168
+ ### `flagPlugin(options)`
169
+
170
+ Feature flag evaluation plugin. Adds `getFlag()` and `getFlags()` methods to the `captureEvent` function via mixins.
171
+
172
+ **Options:**
173
+ | Option | Type | Description |
174
+ |--------|------|-------------|
175
+ | `flagApiEndpoint` | `string` | URL of the flag evaluation API |
176
+ | `userIdResolver` | `() => string \| null \| undefined` | Optional custom user ID resolver |
177
+
178
+ User ID is resolved in order: custom resolver → VK user ID from URL → Top Mail.ru counter cookie → auto-generated anonymous ID (persisted in `localStorage`).
179
+
180
+ **Usage:**
181
+
182
+ ```ts
183
+ const captureEvent = snitch(flagPlugin({ flagApiEndpoint: 'https://flags.example.com/api' })) as any
184
+
185
+ const flag = await captureEvent.getFlag('new-feature')
186
+ // { flagKey: 'new-feature', match: true, variant: 'control', attachment: '...' }
187
+
188
+ const flags = await captureEvent.getFlags(['feature-a', 'feature-b'])
189
+ ```
190
+
191
+ Emits:
192
+
193
+ - `flagEvaluationComplete` with full evaluation response
194
+ - `flagEvaluationFailed` with `{ flagKey, errorMessage }`
195
+
196
+ ---
197
+
198
+ ### `useragentPlugin()`
199
+
200
+ Attaches the browser user agent string to every event.
201
+
202
+ Attaches to every event:
203
+ | Param | Description |
204
+ |-------|-------------|
205
+ | `ua` | `navigator.userAgent` |
206
+
207
+ ---
208
+
209
+ ### `debugLoggerPlugin()`
210
+
211
+ Development helper. Logs every event to the browser console with timestamps and time deltas between events. When the event has a non-empty payload, it is also rendered via `console.table()`.
212
+
213
+ **Silent by default.** To enable, set a `localStorage` flag:
214
+
215
+ ```js
216
+ localStorage.setItem('snitch:debug', 'true')
217
+ ```
218
+
219
+ The flag is read once when `debugLoggerPlugin()` is called. To disable, remove the flag and reload:
220
+
221
+ ```js
222
+ localStorage.removeItem('snitch:debug')
223
+ ```
224
+
225
+ ---
49
226
 
50
227
  ## Transports
51
228
 
52
- | Transport | Factory | Description |
53
- | ----------- | -------------------------------- | ------------------------------------------------------------------------------- |
54
- | Beacon | `beaconTransportPlugin(opts)` | Sends events as URL query params via `navigator.sendBeacon()` |
55
- | S2S | `s2sTransportPlugin(opts)` | Sends events as URL query params via `fetch()` GET (for server-side / Node 18+) |
56
- | Top Mail.ru | `topmailruTransportPlugin(opts)` | Sends events to Top Mail.ru counter |
57
- | VK Bridge | `vkBridgeTransportPlugin(opts)` | Sends events via VK Bridge |
229
+ ### `beaconTransportPlugin(options?)`
230
+
231
+ Sends events via [`navigator.sendBeacon()`](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon). All event data is encoded as URL query parameters designed for CDN log-based analytics where request URLs are parsed from access logs.
232
+
233
+ **Options:**
234
+ | Option | Type | Default | Description |
235
+ |--------|------|---------|-------------|
236
+ | `hostname` | `string` | `window.location.hostname` | Target hostname |
237
+ | `path` | `string` | `/_snitch` | URL path |
238
+
239
+ Requests are sent to: `{protocol}//{hostname}{path}?event={name}&...params`
240
+
241
+ ---
242
+
243
+ ### `s2sTransportPlugin(options)`
244
+
245
+ Sends events via `fetch()` GET requests over HTTPS. Fire-and-forget (errors are silently caught). Designed for server-side environments (Node 18+, Cloudflare Workers) or any environment with `fetch`.
246
+
247
+ **Options:**
248
+ | Option | Type | Default | Description |
249
+ |--------|------|---------|-------------|
250
+ | `hostname` | `string` | _required_ | Target hostname |
251
+ | `path` | `string` | `/_snitch` | URL path |
252
+ | `s2sToken` | `string` | — | Optional auth token (sent as a query parameter) |
253
+
254
+ Requests are sent to: `https://{hostname}{path}?event={name}&...params[&s2sToken=...]`
255
+
256
+ ---
257
+
258
+ ### `topmailruTransportPlugin(counterId, userIdResolver?)`
259
+
260
+ Sends events to [Top Mail.ru](https://top.mail.ru/) analytics counter by pushing to the `window._tmr` queue.
261
+
262
+ **Parameters:**
263
+ | Param | Type | Description |
264
+ |-------|------|-------------|
265
+ | `counterId` | `string` | Top Mail.ru counter ID (required) |
266
+ | `userIdResolver` | `() => string \| null \| undefined` | Optional custom user ID resolver |
267
+
268
+ User ID resolution order: custom resolver → TMR counter cookie → auto-generated anonymous ID.
269
+
270
+ ---
271
+
272
+ ### `vkBridgeTransportPlugin()`
273
+
274
+ Sends events via [VK Bridge](https://dev.vk.com/mini-apps/bridge) for VK Mini Apps. Extracts `vk_user_id` from the URL. Each event triggers two VK Bridge calls: `VKWebAppTrackEvent` and `VKWebAppSendCustomEvent`. All param values are coerced to strings to work around iOS VK Bridge limitations.
275
+
276
+ ---
277
+
278
+ ## Platform-Specific Plugins
279
+
280
+ ### `vkmaLaunchPlugin()`
281
+
282
+ A VK Mini Apps variant of `launchPlugin`. Parses VK Mini App launch parameters from the URL (`vk_user_id`, `vk_app_id`, `vk_platform`, `vk_ref`, etc.).
283
+
284
+ Emits: `launch` (with iframe flag + VKMA params), `mt_internal_launch`
285
+
286
+ Attaches to every event:
287
+ | Param | Description |
288
+ |-------|-------------|
289
+ | `lid` | Unique launch ID |
290
+ | `ref` | `document.referrer` |
291
+ | `mauid` | VK user ID |
292
+ | `maaid` | VK app ID |
293
+ | `malang` | VK language |
294
+ | `mac` | VK access token settings |
295
+ | `map` | VK platform |
296
+ | `maref` | VK ref |
297
+
298
+ ---
58
299
 
59
300
  ## Types
60
301
 
61
302
  All public types are exported for TypeScript consumers:
62
303
 
63
304
  ```ts
64
- import type { Plugin, EventTransport, TrackerEventPayload } from '@borisch/snitch'
305
+ import type {
306
+ Plugin,
307
+ EventTransport,
308
+ EventSource,
309
+ EventPayloadParamsProvider,
310
+ InitializationHandler,
311
+ BeforeCaptureEventHandler,
312
+ MixinProvider,
313
+ TrackerEventPayload,
314
+ EventHandler,
315
+ } from '@borisch/snitch'
65
316
  ```
66
317
 
67
318
  ## Writing a Custom Plugin
@@ -73,12 +324,21 @@ import type { Plugin } from '@borisch/snitch'
73
324
 
74
325
  function myPlugin(): Plugin {
75
326
  return {
327
+ // Attach params to every event
76
328
  getEventPayloadParams() {
77
329
  return { customParam: 'value' }
78
330
  },
331
+ // React to events before transport
332
+ beforeCaptureEvent(eventName, eventParams) {
333
+ // filter, modify, log, etc.
334
+ },
335
+ // Transport events
79
336
  sendEvent(eventName, eventParams) {
80
- // custom transport logic
81
- }
337
+ fetch('/analytics', {
338
+ method: 'POST',
339
+ body: JSON.stringify({ eventName, ...eventParams }),
340
+ })
341
+ },
82
342
  }
83
343
  }
84
344
  ```
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAnonymousUserId = exports.setAnonymousUserId = void 0;
3
+ exports.setAnonymousUserId = setAnonymousUserId;
4
+ exports.getAnonymousUserId = getAnonymousUserId;
4
5
  const LOCAL_STORAGE_USER_ID_KEY = 'isdp:auid';
5
6
  let anonymousUserIdCache;
6
7
  function setAnonymousUserId(userId) {
@@ -10,7 +11,6 @@ function setAnonymousUserId(userId) {
10
11
  catch (error) { }
11
12
  anonymousUserIdCache = userId;
12
13
  }
13
- exports.setAnonymousUserId = setAnonymousUserId;
14
14
  function getAnonymousUserId() {
15
15
  if (anonymousUserIdCache)
16
16
  return anonymousUserIdCache;
@@ -23,5 +23,4 @@ function getAnonymousUserId() {
23
23
  }
24
24
  return anonymousUserIdCache;
25
25
  }
26
- exports.getAnonymousUserId = getAnonymousUserId;
27
26
  //# sourceMappingURL=anonymous-id-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anonymous-id-store.js","sourceRoot":"","sources":["../../../packages/common/anonymous-id-store.ts"],"names":[],"mappings":";;;AAAA,MAAM,yBAAyB,GAAG,WAAW,CAAA;AAC7C,IAAI,oBAAmC,CAAA;AAEvC,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,IAAI;QACF,YAAY,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;KACxD;IAAC,OAAO,KAAK,EAAE,GAAE;IAClB,oBAAoB,GAAG,MAAM,CAAA;AAC/B,CAAC;AALD,gDAKC;AAED,SAAgB,kBAAkB;IAChC,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAA;IACrD,IAAI;QACF,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;KACvE;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC;AATD,gDASC"}
1
+ {"version":3,"file":"anonymous-id-store.js","sourceRoot":"","sources":["../../../packages/common/anonymous-id-store.ts"],"names":[],"mappings":";;AAGA,gDAKC;AAED,gDASC;AAnBD,MAAM,yBAAyB,GAAG,WAAW,CAAA;AAC7C,IAAI,oBAAmC,CAAA;AAEvC,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,IAAI,CAAC;QACH,YAAY,CAAC,OAAO,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;IAClB,oBAAoB,GAAG,MAAM,CAAA;AAC/B,CAAC;AAED,SAAgB,kBAAkB;IAChC,IAAI,oBAAoB;QAAE,OAAO,oBAAoB,CAAA;IACrD,IAAI,CAAC;QACH,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAA;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,oBAAoB,CAAA;AAC7B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = createUniqueId;
3
4
  function createUniqueId() {
4
5
  let uniqueId = '';
5
6
  const length = 32;
@@ -10,5 +11,4 @@ function createUniqueId() {
10
11
  }
11
12
  return uniqueId;
12
13
  }
13
- exports.default = createUniqueId;
14
14
  //# sourceMappingURL=create-unique-id.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-unique-id.js","sourceRoot":"","sources":["../../../packages/common/create-unique-id.ts"],"names":[],"mappings":";;AAAA,SAAwB,cAAc;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,QAAQ,GAAG,gEAAgE,CAAA;IACjF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAA;KACxE;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AATD,iCASC"}
1
+ {"version":3,"file":"create-unique-id.js","sourceRoot":"","sources":["../../../packages/common/create-unique-id.ts"],"names":[],"mappings":";;AAAA,iCASC;AATD,SAAwB,cAAc;IACpC,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,QAAQ,GAAG,gEAAgE,CAAA;IACjF,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -19,4 +19,4 @@ export interface EventTransport {
19
19
  export interface MixinProvider {
20
20
  getMixins(): Record<string, Function>;
21
21
  }
22
- export declare type Plugin = Partial<EventPayloadParamsProvider & InitializationHandler & BeforeCaptureEventHandler & EventTransport & EventSource & MixinProvider>;
22
+ export type Plugin = Partial<EventPayloadParamsProvider & InitializationHandler & BeforeCaptureEventHandler & EventTransport & EventSource & MixinProvider>;
@@ -3,7 +3,7 @@ declare global {
3
3
  _tmr: TMRCounter | UninitializedTMRCounter;
4
4
  }
5
5
  }
6
- export declare type UninitializedTMRCounter = Array<TMRInstructionSendCustomEvent | TMRInstructionSetUserId | TMRInstructionUnsetUserId | TMRInstructionSetOnReadyCallback>;
6
+ export type UninitializedTMRCounter = Array<TMRInstructionSendCustomEvent | TMRInstructionSetUserId | TMRInstructionUnsetUserId | TMRInstructionSetOnReadyCallback>;
7
7
  interface TMRInstruction {
8
8
  id: string;
9
9
  type: string;
@@ -1,8 +1,8 @@
1
1
  import { Plugin } from './plugin-interfaces';
2
- export declare type TrackerEventPayload = {
2
+ export type TrackerEventPayload = {
3
3
  [key: string]: string | number;
4
4
  };
5
- export declare type EventHandler = (eventName: string, eventPayload?: TrackerEventPayload) => void;
6
- export declare type TrackerInitializationOptions = {
5
+ export type EventHandler = (eventName: string, eventPayload?: TrackerEventPayload) => void;
6
+ export type TrackerInitializationOptions = {
7
7
  plugins?: Array<Plugin>;
8
8
  };
@@ -1,4 +1,4 @@
1
1
  import { Plugin } from '../common/plugin-interfaces';
2
2
  import { TrackerEventPayload } from '../common/tracker-interfaces';
3
- declare const _default: (...args: Array<Plugin>) => (eventName: string, eventPayload?: TrackerEventPayload | undefined) => void;
3
+ declare const _default: (...args: Array<Plugin>) => (eventName: string, eventPayload?: TrackerEventPayload) => void;
4
4
  export default _default;
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const use_plugins_1 = __importDefault(require("./use-plugins"));
7
7
  exports.default = (...args) => {
8
- const plugins = use_plugins_1.default(args);
8
+ const plugins = (0, use_plugins_1.default)(args);
9
9
  const captureEvent = (eventName, eventPayload) => {
10
10
  plugins.callBeforeCaptureEventHandlers(eventName, eventPayload);
11
11
  plugins.callTransports(eventName, plugins.callEventPayloadParamsProviders({
@@ -1 +1 @@
1
- {"version":3,"file":"snitch.js","sourceRoot":"","sources":["../../../packages/snitch/snitch.ts"],"names":[],"mappings":";;;;;AAEA,gEAAsC;AAEtC,kBAAe,CAAC,GAAG,IAAmB,EAAE,EAAE;IACxC,MAAM,OAAO,GAAG,qBAAU,CAAC,IAAI,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,YAAkC,EAAE,EAAE;QAC7E,OAAO,CAAC,8BAA8B,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC/D,OAAO,CAAC,cAAc,CACpB,SAAS,EACT,OAAO,CAAC,+BAA+B,CAAC;YACtC,GAAG,YAAY;SAChB,CAAC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IACrC,OAAO,CAAC,0BAA0B,EAAE,CAAA;IACpC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"snitch.js","sourceRoot":"","sources":["../../../packages/snitch/snitch.ts"],"names":[],"mappings":";;;;;AAEA,gEAAsC;AAEtC,kBAAe,CAAC,GAAG,IAAmB,EAAE,EAAE;IACxC,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,YAAkC,EAAE,EAAE;QAC7E,OAAO,CAAC,8BAA8B,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC/D,OAAO,CAAC,cAAc,CACpB,SAAS,EACT,OAAO,CAAC,+BAA+B,CAAC;YACtC,GAAG,YAAY;SAChB,CAAC,CACH,CAAA;IACH,CAAC,CAAA;IAED,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;IACrC,OAAO,CAAC,0BAA0B,EAAE,CAAA;IACpC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACjC,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { Plugin } from '../common/plugin-interfaces';
2
2
  import { EventHandler, TrackerEventPayload } from '../common/tracker-interfaces';
3
3
  declare const _default: (plugins: Array<Plugin>) => {
4
- callBeforeCaptureEventHandlers(eventName: string, eventPayload?: TrackerEventPayload | undefined): void;
4
+ callBeforeCaptureEventHandlers(eventName: string, eventPayload?: TrackerEventPayload): void;
5
5
  callEventPayloadParamsProviders(eventPayload: TrackerEventPayload): TrackerEventPayload;
6
- callTransports(eventName: string, eventPayload?: TrackerEventPayload | undefined): void;
6
+ callTransports(eventName: string, eventPayload?: TrackerEventPayload): void;
7
7
  callInitializationHandlers(): void;
8
8
  setEventHandler(eventHandler: EventHandler): void;
9
9
  applyMixins(eventHandler: EventHandler): void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-plugins.js","sourceRoot":"","sources":["../../../packages/snitch/use-plugins.ts"],"names":[],"mappings":";;AAGA,kBAAe,CAAC,OAAsB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,CAAC,SAAiB,EAAE,YAAkC;QAClF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;YACvB,MAAA,MAAM,CAAC,kBAAkB,+CAAzB,MAAM,EAAsB,SAAS,EAAE,YAAY,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+BAA+B,CAAC,YAAiC;QAC/D,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACnB,GAAG,MAAM;gBACT,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,qBAAqB,+CAA5B,MAAM,CAA0B,KAAI,EAAE,CAAC;aAC5C,CAAC,CAAA;SAAA,EACF,YAAY,CACb,CAAA;IACH,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,YAAkC;QAClE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;YACvB,MAAA,MAAM,CAAC,SAAS,+CAAhB,MAAM,EAAa,SAAS,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,MAAM,+CAAb,MAAM,CAAW,CAAA,EAAA,CAAC,CAAA;IAC9C,CAAC;IAED,eAAe,CAAC,YAA0B;QACxC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,eAAe,+CAAtB,MAAM,EAAmB,YAAY,CAAC,CAAA,EAAA,CAAC,CAAA;IACnE,CAAC;IAED,WAAW,CAAC,YAA0B;QACpC,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ,OAAO,CAAC,MAAM,CAAC,CAAC,MAAgC,EAAE,MAAM,EAAE,EAAE;YAC1D,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,CAAA;aAC5C;YACD,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CACP,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"use-plugins.js","sourceRoot":"","sources":["../../../packages/snitch/use-plugins.ts"],"names":[],"mappings":";;AAGA,kBAAe,CAAC,OAAsB,EAAE,EAAE,CAAC,CAAC;IAC1C,8BAA8B,CAAC,SAAiB,EAAE,YAAkC;QAClF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;YACvB,MAAA,MAAM,CAAC,kBAAkB,uDAAG,SAAS,EAAE,YAAY,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+BAA+B,CAAC,YAAiC;QAC/D,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;;YAAC,OAAA,CAAC;gBACnB,GAAG,MAAM;gBACT,GAAG,CAAC,CAAA,MAAA,MAAM,CAAC,qBAAqB,sDAAI,KAAI,EAAE,CAAC;aAC5C,CAAC,CAAA;SAAA,EACF,YAAY,CACb,CAAA;IACH,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,YAAkC;QAClE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;;YACvB,MAAA,MAAM,CAAC,SAAS,uDAAG,SAAS,EAAE,YAAY,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,MAAM,sDAAI,CAAA,EAAA,CAAC,CAAA;IAC9C,CAAC;IAED,eAAe,CAAC,YAA0B;QACxC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,eAAe,uDAAG,YAAY,CAAC,CAAA,EAAA,CAAC,CAAA;IACnE,CAAC;IAED,WAAW,CAAC,YAA0B;QACpC,MAAM,CAAC,cAAc,CACnB,YAAY,EACZ,OAAO,CAAC,MAAM,CAAC,CAAC,MAAgC,EAAE,MAAM,EAAE,EAAE;YAC1D,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,EAAE,CAAA;YAC7C,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CACP,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { EventTransport } from '../common/plugin-interfaces';
2
- export declare type BeaconTransportOptions = {
2
+ export type BeaconTransportOptions = {
3
3
  hostname?: string;
4
4
  path?: string;
5
5
  };
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = beaconTransportPlugin;
3
4
  function beaconTransportPlugin(options) {
4
5
  var _a, _b;
5
6
  const hostname = (_a = options === null || options === void 0 ? void 0 : options.hostname) !== null && _a !== void 0 ? _a : window.location.hostname;
@@ -18,5 +19,4 @@ function beaconTransportPlugin(options) {
18
19
  }
19
20
  };
20
21
  }
21
- exports.default = beaconTransportPlugin;
22
22
  //# sourceMappingURL=beacon-transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"beacon-transport.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-beacon-transport/beacon-transport.ts"],"names":[],"mappings":";;AAQA,SAAwB,qBAAqB,CAAC,OAAgC;;IAC5E,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC9D,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,UAAU,CAAA;IAExC,OAAO;QACL,SAAS,CAAC,SAAiB,EAAE,WAAiC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACxD,IAAI,WAAW,EAAE;gBACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;oBAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;iBAC1C;aACF;YACD,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,QAAQ,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAClE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;KACF,CAAA;AACH,CAAC;AAjBD,wCAiBC"}
1
+ {"version":3,"file":"beacon-transport.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-beacon-transport/beacon-transport.ts"],"names":[],"mappings":";;AAQA,wCAiBC;AAjBD,SAAwB,qBAAqB,CAAC,OAAgC;;IAC5E,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;IAC9D,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,UAAU,CAAA;IAExC,OAAO;QACL,SAAS,CAAC,SAAiB,EAAE,WAAiC;YAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;YACzC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACxD,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,QAAQ,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAClE,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = engagementPlugin;
3
4
  function engagementPlugin() {
4
5
  let lastLogTS = null;
5
6
  function logLine(message) {
@@ -18,5 +19,4 @@ function engagementPlugin() {
18
19
  }
19
20
  };
20
21
  }
21
- exports.default = engagementPlugin;
22
22
  //# sourceMappingURL=debug-logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-debug-logger/debug-logger.ts"],"names":[],"mappings":";;AAEA,SAAwB,gBAAgB;IACtC,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,SAAS,OAAO,CAAC,OAAe;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,CAAC,GAAG,CACT,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAC1D,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAI,SAAoB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EACpF,gBAAgB,OAAO,EAAE,EACzB,aAAa,EACb,cAAc,EACd,mBAAmB,CACpB,CAAA;QACD,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IACD,OAAO;QACL,MAAM;YACJ,OAAO,CAAC,yBAAyB,CAAC,CAAA;QACpC,CAAC;QAED,kBAAkB,CAAC,SAAiB,EAAE,YAAiC;YACrE,OAAO,CAAC,mBAAmB,SAAS,GAAG,CAAC,CAAA;YACxC,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACzF,CAAC;KACF,CAAA;AACH,CAAC;AAxBD,mCAwBC"}
1
+ {"version":3,"file":"debug-logger.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-debug-logger/debug-logger.ts"],"names":[],"mappings":";;AAEA,mCAwBC;AAxBD,SAAwB,gBAAgB;IACtC,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,SAAS,OAAO,CAAC,OAAe;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QACtB,OAAO,CAAC,GAAG,CACT,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,IAC1D,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAI,SAAoB,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EACpF,gBAAgB,OAAO,EAAE,EACzB,aAAa,EACb,cAAc,EACd,mBAAmB,CACpB,CAAA;QACD,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC;IACD,OAAO;QACL,MAAM;YACJ,OAAO,CAAC,yBAAyB,CAAC,CAAA;QACpC,CAAC;QAED,kBAAkB,CAAC,SAAiB,EAAE,YAAiC;YACrE,OAAO,CAAC,mBAAmB,SAAS,GAAG,CAAC,CAAA;YACxC,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QACzF,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = engagementPlugin;
3
4
  const DEFAULT_ENGAGEMENT_TRACKING_INTERVAL_MSEC = 10 * 1000; // 10 seconds
4
5
  function engagementPlugin(options = { engagementTrackingIntervalMsec: DEFAULT_ENGAGEMENT_TRACKING_INTERVAL_MSEC }) {
5
6
  let captureEvent;
@@ -15,5 +16,4 @@ function engagementPlugin(options = { engagementTrackingIntervalMsec: DEFAULT_EN
15
16
  }
16
17
  };
17
18
  }
18
- exports.default = engagementPlugin;
19
19
  //# sourceMappingURL=engagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-engagement/engagement.ts"],"names":[],"mappings":";;AAGA,MAAM,yCAAyC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAEzE,SAAwB,gBAAgB,CACtC,UAEI,EAAE,8BAA8B,EAAE,yCAAyC,EAAE;IAEjF,IAAI,YAA0B,CAAA;IAE9B,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QAED,MAAM;YACJ,WAAW,CAAC,GAAG,EAAE;gBACf,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK;oBAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;YACvD,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAA;QAC5C,CAAC;KACF,CAAA;AACH,CAAC;AAlBD,mCAkBC"}
1
+ {"version":3,"file":"engagement.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-engagement/engagement.ts"],"names":[],"mappings":";;AAKA,mCAkBC;AApBD,MAAM,yCAAyC,GAAG,EAAE,GAAG,IAAI,CAAA,CAAC,aAAa;AAEzE,SAAwB,gBAAgB,CACtC,UAEI,EAAE,8BAA8B,EAAE,yCAAyC,EAAE;IAEjF,IAAI,YAA0B,CAAA;IAE9B,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QAED,MAAM;YACJ,WAAW,CAAC,GAAG,EAAE;gBACf,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK;oBAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;YACvD,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAA;QAC5C,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = exceptionsPlugin;
3
4
  function exceptionsPlugin() {
4
5
  let captureEvent;
5
6
  function captureError(errorEvent) {
@@ -27,5 +28,4 @@ function exceptionsPlugin() {
27
28
  }
28
29
  };
29
30
  }
30
- exports.default = exceptionsPlugin;
31
31
  //# sourceMappingURL=exceptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-exceptions/exceptions.ts"],"names":[],"mappings":";;AAGA,SAAwB,gBAAgB;IACtC,IAAI,YAA0B,CAAA;IAE9B,SAAS,YAAY,CAAC,UAAsB;;QAC1C,YAAY,CAAC,eAAe,EAAE;YAC5B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,EAAE;YACrC,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,0CAAE,QAAQ,EAAE;YACnC,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,0CAAE,QAAQ,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,gBAAgB,CAAC,cAAqC;QAC7D,YAAY,CAAC,oBAAoB,EAAE;YACjC,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QACD,MAAM;YACJ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAC9C,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;QACjE,CAAC;KACF,CAAA;AACH,CAAC;AA5BD,mCA4BC"}
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-exceptions/exceptions.ts"],"names":[],"mappings":";;AAGA,mCA4BC;AA5BD,SAAwB,gBAAgB;IACtC,IAAI,YAA0B,CAAA;IAE9B,SAAS,YAAY,CAAC,UAAsB;;QAC1C,YAAY,CAAC,eAAe,EAAE;YAC5B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,MAAM,EAAE,MAAA,UAAU,CAAC,MAAM,0CAAE,QAAQ,EAAE;YACrC,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,0CAAE,QAAQ,EAAE;YACnC,KAAK,EAAE,MAAA,UAAU,CAAC,KAAK,0CAAE,QAAQ,EAAE;SACpC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,gBAAgB,CAAC,cAAqC;QAC7D,YAAY,CAAC,oBAAoB,EAAE;YACjC,MAAM,EAAE,cAAc,CAAC,MAAM;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,eAAe,CAAC,YAA0B;YACxC,YAAY,GAAG,YAAY,CAAA;QAC7B,CAAC;QACD,MAAM;YACJ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAC9C,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAA;QACjE,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare type EvaluationReason = 'UNKNOWN_EVALUATION_REASON' | 'FLAG_DISABLED_EVALUATION_REASON' | 'FLAG_NOT_FOUND_EVALUATION_REASON' | 'MATCH_EVALUATION_REASON' | 'ERROR_EVALUATION_REASON';
1
+ export type EvaluationReason = 'UNKNOWN_EVALUATION_REASON' | 'FLAG_DISABLED_EVALUATION_REASON' | 'FLAG_NOT_FOUND_EVALUATION_REASON' | 'MATCH_EVALUATION_REASON' | 'ERROR_EVALUATION_REASON';
2
2
  export declare const EvaluationReason: {
3
3
  readonly UnknownEvaluationReason: "UNKNOWN_EVALUATION_REASON";
4
4
  readonly FlagDisabledEvaluationReason: "FLAG_DISABLED_EVALUATION_REASON";
@@ -3,18 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = flagPlugin;
6
7
  const anonymous_id_store_1 = require("../common/anonymous-id-store");
7
8
  const tmr_1 = require("../common/tmr");
8
9
  const flag_service_1 = __importDefault(require("./flag-service"));
9
10
  function flagPlugin(options) {
10
- const flagService = flag_service_1.default(options.flagApiEndpoint);
11
+ const flagService = (0, flag_service_1.default)(options.flagApiEndpoint);
11
12
  const url = new URL(location.href);
12
13
  const vkUserId = url.searchParams.get('vk_user_id');
13
14
  const getEntityId = () => {
14
15
  const entityId = (options.userIdResolver && options.userIdResolver()) ||
15
16
  vkUserId ||
16
- tmr_1.getTMRCounterUserId() ||
17
- anonymous_id_store_1.getAnonymousUserId();
17
+ (0, tmr_1.getTMRCounterUserId)() ||
18
+ (0, anonymous_id_store_1.getAnonymousUserId)();
18
19
  if (!entityId)
19
20
  throw Error('Flag evaluation without entityId is not possible');
20
21
  return entityId;
@@ -84,5 +85,4 @@ function flagPlugin(options) {
84
85
  }
85
86
  };
86
87
  }
87
- exports.default = flagPlugin;
88
88
  //# sourceMappingURL=flag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flag.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-flag/flag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flag.js","sourceRoot":"","sources":["../../../packages/snitch-plugin-flag/flag.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = launchPlugin;
6
7
  const create_unique_id_1 = __importDefault(require("../common/create-unique-id"));
7
8
  function launchPlugin() {
8
9
  let captureEvent;
9
- const launchId = create_unique_id_1.default();
10
+ const launchId = (0, create_unique_id_1.default)();
10
11
  const referrer = window.document.referrer;
11
12
  return {
12
13
  setEventHandler(eventHandler) {
@@ -25,5 +26,4 @@ function launchPlugin() {
25
26
  }
26
27
  };
27
28
  }
28
- exports.default = launchPlugin;
29
29
  //# sourceMappingURL=launch.js.map