@datalyr/web 1.6.5 → 1.7.1
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 +20 -5
- package/dist/attribution.d.ts +7 -0
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.test.d.ts +8 -0
- package/dist/attribution.test.d.ts.map +1 -0
- package/dist/auto-identify.d.ts +2 -1
- package/dist/auto-identify.d.ts.map +1 -1
- package/dist/config.d.ts +40 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.test.d.ts +2 -0
- package/dist/config.test.d.ts.map +1 -0
- package/dist/container.d.ts +10 -0
- package/dist/container.d.ts.map +1 -1
- package/dist/datalyr.cjs.js +712 -210
- package/dist/datalyr.cjs.js.map +1 -1
- package/dist/datalyr.esm.js +712 -210
- package/dist/datalyr.esm.js.map +1 -1
- package/dist/datalyr.esm.min.js +1 -1
- package/dist/datalyr.esm.min.js.map +1 -1
- package/dist/datalyr.js +712 -210
- package/dist/datalyr.js.map +1 -1
- package/dist/datalyr.min.js +1 -1
- package/dist/datalyr.min.js.map +1 -1
- package/dist/index.d.ts +20 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/queue.d.ts +32 -0
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.test.d.ts +8 -0
- package/dist/queue.test.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/queue.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export declare class EventQueue {
|
|
|
15
15
|
private OFFLINE_QUEUE_KEY;
|
|
16
16
|
private flushLock;
|
|
17
17
|
private offlineQueueLock;
|
|
18
|
+
private offlineProcessing;
|
|
19
|
+
private inFlight;
|
|
20
|
+
private enabled;
|
|
21
|
+
private rateLimitedUntil;
|
|
18
22
|
constructor(config: any);
|
|
19
23
|
/**
|
|
20
24
|
* Add event to queue
|
|
@@ -90,14 +94,42 @@ export declare class EventQueue {
|
|
|
90
94
|
* Get network status
|
|
91
95
|
*/
|
|
92
96
|
getNetworkStatus(): NetworkStatus;
|
|
97
|
+
/**
|
|
98
|
+
* Build a batch payload from a set of events.
|
|
99
|
+
*/
|
|
100
|
+
private buildBatch;
|
|
93
101
|
/**
|
|
94
102
|
* Force flush (for page unload)
|
|
103
|
+
* FIXED (WEB-3): include the offline queue, chunk under sendBeacon's ~64KB cap,
|
|
104
|
+
* and persist any chunk the browser refuses so it survives to the next page load.
|
|
105
|
+
* Previously this beaconed the live queue as one blob — ignoring the offline queue
|
|
106
|
+
* entirely and silently failing (returning false) whenever the payload exceeded 64KB.
|
|
107
|
+
*
|
|
108
|
+
* Two follow-up review fixes:
|
|
109
|
+
* - HIGH-1: exclude any batch currently in-flight in _flush(). That batch is being
|
|
110
|
+
* sent with a keepalive fetch that already survives unload; re-beaconing it would
|
|
111
|
+
* double-send. (`inFlight` is the front `inFlight.length` events of this.queue.)
|
|
112
|
+
* - HIGH-2: handleUnload is wired to visibilitychange+pagehide+beforeunload, so this
|
|
113
|
+
* runs multiple times per lifecycle. Detach what we beacon SYNCHRONOUSLY (clear the
|
|
114
|
+
* in-memory queues, persist a refused remainder straight to storage rather than back
|
|
115
|
+
* into this.offlineQueue) so a repeat call finds nothing to re-send.
|
|
95
116
|
*/
|
|
96
117
|
forceFlush(): Promise<void>;
|
|
97
118
|
/**
|
|
98
119
|
* Clear queue
|
|
99
120
|
*/
|
|
100
121
|
clear(): void;
|
|
122
|
+
/**
|
|
123
|
+
* Enable/disable all sending. Used by opt-out / withdrawn analytics consent so that
|
|
124
|
+
* events persisted BEFORE opt-out aren't drained afterwards (the periodic drain and
|
|
125
|
+
* the on-load drain both honor this).
|
|
126
|
+
*/
|
|
127
|
+
setEnabled(enabled: boolean): void;
|
|
128
|
+
/**
|
|
129
|
+
* Clear the offline queue and its persisted copy (used by opt-out to purge any
|
|
130
|
+
* PII-bearing events that were parked before the user opted out).
|
|
131
|
+
*/
|
|
132
|
+
clearOffline(): void;
|
|
101
133
|
/**
|
|
102
134
|
* Debug logging
|
|
103
135
|
*/
|
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAsB,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAsB,aAAa,EAAE,MAAM,SAAS,CAAC;AAarF,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,qBAAqB,CAA+C;IAC5E,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAYZ;IACF,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,oBAAoB,CAAQ;IACpC,OAAO,CAAC,iBAAiB,CAAsB;IAC/C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,MAAM,EAAE,GAAG;IAyCvB;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAuCxC;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B;;;OAGG;YACW,MAAM;IAkDpB;;OAEG;YACW,SAAS;IAoEvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;YACW,mBAAmB;IAwCjC;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;;;;;;;;;;;;OAeG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6EjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;OAGG;IACH,YAAY,IAAI,IAAI;IAKpB;;OAEG;IACH,OAAO,CAAC,GAAG;IAMX;;OAEG;IACH,OAAO,IAAI,IAAI;CAWhB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regression tests for the queue data-loss / double-send paths fixed in 1.7.1
|
|
3
|
+
* (WEB-1/2/3/8) and the two follow-up review findings (HIGH-1 in-flight race,
|
|
4
|
+
* HIGH-2 multi-fire unload). queue.ts had ZERO coverage before this — these pin
|
|
5
|
+
* the exact behaviors so they can't silently regress.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=queue.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.test.d.ts","sourceRoot":"","sources":["../src/queue.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|