@posthog/core 1.46.3 → 1.46.4
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/dist/logs/index.d.ts.map +1 -1
- package/dist/logs/index.js +4 -17
- package/dist/logs/index.mjs +5 -18
- package/dist/posthog-core-stateless.d.ts.map +1 -1
- package/dist/posthog-core-stateless.js +5 -15
- package/dist/posthog-core-stateless.mjs +6 -16
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +32 -0
- package/dist/utils/index.mjs +21 -1
- package/package.json +1 -1
- package/src/logs/index.spec.ts +37 -0
- package/src/logs/index.ts +7 -18
- package/src/posthog-core-stateless.ts +6 -15
- package/src/utils/index.ts +26 -0
package/dist/logs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logs/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAA4B,MAAM,UAAU,CAAA;AAE3D,OAAO,KAAK,EAAoB,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKtH,qBAAa,WAAW;IAgCpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAMzB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA7C9B,OAAO,CAAC,cAAc,CAAQ;IAG9B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,gBAAgB,CAAQ;IAIhC,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,WAAW,CAAC,CAAmC;IAGvD,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,oBAAoB,CAAI;IAGhC,OAAO,CAAC,yBAAyB,CAAI;IAMrC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,mBAAmB,CAAC,CAAQ;IACpC,OAAO,CAAC,oBAAoB,CAAI;IAChC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,cAAc,CAAQ;gBAGX,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,aAAa,EAChC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,EAMlC,sBAAsB,GAAE,MAAM,OAAO,CAAC,IAAI,CAA2B,EAIrE,UAAU,CAAC,EAAE,MAAM,YAAA;IAYtC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAcb,WAAW,IAAI,IAAI;IAKnB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAqC5C;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAad,WAAW;YAuEX,oBAAoB;IAYlC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,iBAAiB;IAKzB;;;;;;;;;OASG;IACG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logs/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAA4B,MAAM,UAAU,CAAA;AAE3D,OAAO,KAAK,EAAoB,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKtH,qBAAa,WAAW;IAgCpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAMzB,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAIvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA7C9B,OAAO,CAAC,cAAc,CAAQ;IAG9B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,gBAAgB,CAAQ;IAIhC,OAAO,CAAC,uBAAuB,CAAQ;IACvC,OAAO,CAAC,WAAW,CAAC,CAAmC;IAGvD,OAAO,CAAC,aAAa,CAA6B;IAGlD,OAAO,CAAC,oBAAoB,CAAI;IAGhC,OAAO,CAAC,yBAAyB,CAAI;IAMrC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,mBAAmB,CAAC,CAAQ;IACpC,OAAO,CAAC,oBAAoB,CAAI;IAChC,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,cAAc,CAAQ;gBAGX,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,yBAAyB,EAClC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,aAAa,EAChC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,EAMlC,sBAAsB,GAAE,MAAM,OAAO,CAAC,IAAI,CAA2B,EAIrE,UAAU,CAAC,EAAE,MAAM,YAAA;IAYtC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAcb,WAAW,IAAI,IAAI;IAKnB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAqC5C;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuBtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAad,WAAW;YAuEX,oBAAoB;IAYlC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,QAAQ;IA+BhB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,iBAAiB;IAKzB;;;;;;;;;OASG;IACG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcjD;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,gBAAgB;CAMzB"}
|
package/dist/logs/index.js
CHANGED
|
@@ -196,26 +196,13 @@ class PostHogLogs {
|
|
|
196
196
|
this._clearFlushTimer();
|
|
197
197
|
const flushPromise = this.flush().catch(()=>{});
|
|
198
198
|
if (void 0 === timeoutMs) return void await flushPromise;
|
|
199
|
-
await
|
|
200
|
-
flushPromise,
|
|
201
|
-
new Promise((resolve)=>(0, index_js_namespaceObject.safeSetTimeout)(resolve, timeoutMs))
|
|
202
|
-
]);
|
|
199
|
+
await (0, index_js_namespaceObject.raceWithTimeout)(flushPromise, timeoutMs);
|
|
203
200
|
}
|
|
204
201
|
async flushWithTimeout(timeoutMs) {
|
|
205
|
-
let timedOut = false;
|
|
206
202
|
const flushPromise = this.flush();
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
}, timeoutMs));
|
|
211
|
-
try {
|
|
212
|
-
await Promise.race([
|
|
213
|
-
flushPromise,
|
|
214
|
-
timerPromise
|
|
215
|
-
]);
|
|
216
|
-
} finally{
|
|
217
|
-
if (timedOut) flushPromise.catch(()=>{});
|
|
218
|
-
}
|
|
203
|
+
await (0, index_js_namespaceObject.raceWithTimeout)(flushPromise, timeoutMs, ()=>{
|
|
204
|
+
flushPromise.catch(()=>{});
|
|
205
|
+
});
|
|
219
206
|
}
|
|
220
207
|
_flushInBackground() {
|
|
221
208
|
this.flush().then(()=>{
|
package/dist/logs/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes } from "./logs-utils.mjs";
|
|
2
2
|
import { PostHogPersistedProperty } from "../types.mjs";
|
|
3
|
-
import { isArray, safeSetTimeout } from "../utils/index.mjs";
|
|
3
|
+
import { isArray, raceWithTimeout, safeSetTimeout } from "../utils/index.mjs";
|
|
4
4
|
const MAX_FLUSH_BACKOFF_EXPONENT = 6;
|
|
5
5
|
class PostHogLogs {
|
|
6
6
|
constructor(_instance, _config, _logger, _getContext, _onReady, _waitForStoragePersist = ()=>Promise.resolve(), _scopeName){
|
|
@@ -168,26 +168,13 @@ class PostHogLogs {
|
|
|
168
168
|
this._clearFlushTimer();
|
|
169
169
|
const flushPromise = this.flush().catch(()=>{});
|
|
170
170
|
if (void 0 === timeoutMs) return void await flushPromise;
|
|
171
|
-
await
|
|
172
|
-
flushPromise,
|
|
173
|
-
new Promise((resolve)=>safeSetTimeout(resolve, timeoutMs))
|
|
174
|
-
]);
|
|
171
|
+
await raceWithTimeout(flushPromise, timeoutMs);
|
|
175
172
|
}
|
|
176
173
|
async flushWithTimeout(timeoutMs) {
|
|
177
|
-
let timedOut = false;
|
|
178
174
|
const flushPromise = this.flush();
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}, timeoutMs));
|
|
183
|
-
try {
|
|
184
|
-
await Promise.race([
|
|
185
|
-
flushPromise,
|
|
186
|
-
timerPromise
|
|
187
|
-
]);
|
|
188
|
-
} finally{
|
|
189
|
-
if (timedOut) flushPromise.catch(()=>{});
|
|
190
|
-
}
|
|
175
|
+
await raceWithTimeout(flushPromise, timeoutMs, ()=>{
|
|
176
|
+
flushPromise.catch(()=>{});
|
|
177
|
+
});
|
|
191
178
|
}
|
|
192
179
|
_flushInBackground() {
|
|
193
180
|
this.flush().then(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-core-stateless.d.ts","sourceRoot":"","sources":["../src/posthog-core-stateless.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAGhB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAExB,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,EAML,gBAAgB,
|
|
1
|
+
{"version":3,"file":"posthog-core-stateless.d.ts","sourceRoot":"","sources":["../src/posthog-core-stateless.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAGnD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAGhB,yBAAyB,EACzB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAExB,MAAM,EACN,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,EAML,gBAAgB,EAOjB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,sBAAsB,EAMvB,MAAM,kBAAkB,CAAA;AAyBzB,cAAM,wBAAyB,SAAQ,KAAK;IAGvB,KAAK,EAAE,OAAO;IAFjC,IAAI,SAA6B;gBAEd,KAAK,EAAE,OAAO;CAKlC;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,OAAO,QAAQ,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAC9C,CAAA;AAG7C,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,sBAAsB,EAC9B,kBAAkB,sBAAsB,KACvC,IAMF,CAAA;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3D;AAMD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,wBAAwB,CAExF;AAiCD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAErC,oBAAY,mBAAmB;IAC7B,YAAY,kBAAkB;IAC9B,UAAU,eAAe;CAC1B;AASD,8BAAsB,oBAAoB;IAExC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,eAAe,CAA6B;IACpD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAA;IAChC,OAAO,CAAC,4BAA4B,CAAQ;IAC5C,OAAO,CAAC,6BAA6B,CAAQ;IAC7C,OAAO,CAAC,4BAA4B,CAAQ;IAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAY;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,SAAS,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAmB;IAC9C,SAAS,CAAC,QAAQ,UAAA;IAClB,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAA;IAErC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAmC;IAGvD,SAAS,CAAC,OAAO,qBAA2B;IAC5C,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,CAAA;IAC3B,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAAA;IACzC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAQ;IACzC,SAAS,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAA;IACjF,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,uBAAuB,CAAC,CAAwB;IAExD;;;;;OAKG;IACH,yBAAyB,IAAI,sBAAsB;IAOnD;;;;;;;OAOG;IACH,SAAS,CAAC,4BAA4B,IAAI,sBAAsB;IAQhE,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IACxF,QAAQ,CAAC,YAAY,IAAI,MAAM;IAC/B,QAAQ,CAAC,iBAAiB,IAAI,MAAM;IACpC,QAAQ,CAAC,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAG5C,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,wBAAwB,GAAG,CAAC,GAAG,SAAS;IAC9E,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBAE1E,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IA8C5D,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAM7C,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAcpC,SAAS,CAAC,wBAAwB,IAAI,sBAAsB;IAO5D,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAI3D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,OAAO,GAAE,OAAc,GAAG,IAAI;IAYpC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,OAAO,CAAC,YAAY;IA2BpB;;;;OAIG;IACH,SAAS,CAAC,gCAAgC,IAAI,OAAO;IAIrD;;OAEG;IACI,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI5D;;SAEK;IACL,SAAS,CAAC,iBAAiB,CACzB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI;cAiBS,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAYhB,SAAS,CAAC,gBAAgB,CACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI;cAOS,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAKhB,SAAS,CAAC,cAAc,CACtB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,IAAI;cAgBS,uBAAuB,CACrC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,sBAAsB,EACnC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,IAAI,CAAC;IAchB;;SAEK;IACL,SAAS,CAAC,sBAAsB,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,qBAAqB,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,sBAAsB,GACvC,IAAI;cAiBS,+BAA+B,CAC7C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,eAAe,CAAC,EAAE,sBAAsB,EACxC,OAAO,CAAC,EAAE,qBAAqB,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,sBAAsB,GACvC,OAAO,CAAC,IAAI,CAAC;cAeA,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA0B3E;;SAEK;cAEW,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,EAC5C,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACtC,WAAW,GAAE,OAAe,GAC3B,OAAO,CAAC,cAAc,CAAC;IAgD1B,OAAO,CAAC,sBAAsB;cAiBd,uBAAuB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACnC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC;QACT,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAA;QACtC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAC9B,CAAC;cAkCc,6BAA6B,CAC3C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACnC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CACN;QACE,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAA;QACvC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,GACD,SAAS,CACZ;cA2Be,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACnC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;cA0BhB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACnC,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC;cAiBnD,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,EAC5C,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC;QACT,KAAK,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,SAAS,CAAA;QACvD,QAAQ,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAA;QACjE,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;KACzD,CAAC;cAac,mCAAmC,CACjD,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,EAC5C,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC;QACT,KAAK,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,SAAS,CAAA;QACvD,QAAQ,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAA;QACjE,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,GAAG,SAAS,CAAA;KACzD,CAAC;cA2Bc,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAM,EAC5C,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC7C,eAAe,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EAC5D,YAAY,CAAC,EAAE,OAAO,EACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC;IA0CjD;;SAEK;IAEQ,mBAAmB,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IA+CtE;;SAEK;IACL,OAAO,CAAC,MAAM,CAAoC;IAElD,SAAS,KAAK,KAAK,IAAI,sBAAsB,CAK5C;IAED,SAAS,KAAK,KAAK,CAAC,GAAG,EAAE,sBAAsB,GAAG,SAAS,EAE1D;IAEK,QAAQ,CAAC,UAAU,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;SAEK;IAEL;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,sBAAsB,GAAG,IAAI;IAI9F;;;;;;;OAOG;cACa,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7C;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM;IAIpE;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB;IAI7E;;;OAGG;IACH,SAAS,CAAC,oBAAoB,IAAI,MAAM,EAAE;IAI1C,OAAO,CAAC,aAAa;IAIrB,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;cAwCrE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B1G,OAAO,CAAC,gBAAgB;IAyBxB,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,sBAAsB;IAuBhG,OAAO,CAAC,eAAe;IAOvB;;;OAGG;IACH,OAAO,CAAC,eAAe;YAST,sBAAsB;IAsBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAS,CAAC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAInD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,OAAO,CAAC,aAAa;IAmDrB,SAAS,CAAC,gBAAgB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAavD;;;;;;;;;;;OAWG;cACa,SAAS,CACvB,aAAa,EAAE,CAAC,sBAAsB,GAAG,SAAS,CAAC,EAAE,EACrD,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACxC,MAAM,GAAE,MAA4B,GACnC,OAAO,CAAC,IAAI,CAAC;YAiCF,MAAM;YAmCN,WAAW;IAsFzB;;;;;;;;;OASG;IACG,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwC7E;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC;YA2CxE,cAAc;IAsDtB,SAAS,CAAC,iBAAiB,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDjE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,QAAQ,CAAC,iBAAiB,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAYjE"}
|
|
@@ -918,21 +918,11 @@ class PostHogCoreStateless {
|
|
|
918
918
|
await logFlushError(e);
|
|
919
919
|
}
|
|
920
920
|
};
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
this._logger.error('Timed out while shutting down PostHog');
|
|
927
|
-
hasTimedOut = true;
|
|
928
|
-
reject('Timeout while shutting down PostHog. Some events may not have been sent.');
|
|
929
|
-
}, shutdownTimeoutMs);
|
|
930
|
-
}),
|
|
931
|
-
doShutdown()
|
|
932
|
-
]);
|
|
933
|
-
} finally{
|
|
934
|
-
clearTimeout(timeoutHandle);
|
|
935
|
-
}
|
|
921
|
+
return (0, index_js_namespaceObject.raceWithTimeout)(doShutdown(), shutdownTimeoutMs, ()=>{
|
|
922
|
+
this._logger.error('Timed out while shutting down PostHog');
|
|
923
|
+
hasTimedOut = true;
|
|
924
|
+
throw 'Timeout while shutting down PostHog. Some events may not have been sent.';
|
|
925
|
+
});
|
|
936
926
|
}
|
|
937
927
|
async shutdown(shutdownTimeoutMs = 30000) {
|
|
938
928
|
if (this.shutdownPromise) this._logger.warn('shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup');
|
|
@@ -2,7 +2,7 @@ import { SimpleEventEmitter } from "./eventemitter.mjs";
|
|
|
2
2
|
import { getFeatureFlagValue, minimizeFlagCalledEventProperties, normalizeFlagsResponse } from "./featureFlagUtils.mjs";
|
|
3
3
|
import { gzipCompress, isGzipSupported } from "./gzip.mjs";
|
|
4
4
|
import { PostHogPersistedProperty } from "./types.mjs";
|
|
5
|
-
import { PromiseQueue, STRING_FORMAT, allSettled, createLogger, currentISOTime, getEventUuid, removeTrailingSlash, retriable, safeJsonStringify, safeSetTimeout } from "./utils/index.mjs";
|
|
5
|
+
import { PromiseQueue, STRING_FORMAT, allSettled, createLogger, currentISOTime, getEventUuid, raceWithTimeout, removeTrailingSlash, retriable, safeJsonStringify, safeSetTimeout } from "./utils/index.mjs";
|
|
6
6
|
import { uuidv7 } from "./vendor/uuidv7.mjs";
|
|
7
7
|
import { ErrorCoercer, ErrorPropertiesBuilder, ObjectCoercer, PrimitiveCoercer, StringCoercer, createDefaultStackParser } from "./error-tracking/index.mjs";
|
|
8
8
|
class PostHogFetchHttpError extends Error {
|
|
@@ -885,21 +885,11 @@ class PostHogCoreStateless {
|
|
|
885
885
|
await logFlushError(e);
|
|
886
886
|
}
|
|
887
887
|
};
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
this._logger.error('Timed out while shutting down PostHog');
|
|
894
|
-
hasTimedOut = true;
|
|
895
|
-
reject('Timeout while shutting down PostHog. Some events may not have been sent.');
|
|
896
|
-
}, shutdownTimeoutMs);
|
|
897
|
-
}),
|
|
898
|
-
doShutdown()
|
|
899
|
-
]);
|
|
900
|
-
} finally{
|
|
901
|
-
clearTimeout(timeoutHandle);
|
|
902
|
-
}
|
|
888
|
+
return raceWithTimeout(doShutdown(), shutdownTimeoutMs, ()=>{
|
|
889
|
+
this._logger.error('Timed out while shutting down PostHog');
|
|
890
|
+
hasTimedOut = true;
|
|
891
|
+
throw 'Timeout while shutting down PostHog. Some events may not have been sent.';
|
|
892
|
+
});
|
|
903
893
|
}
|
|
904
894
|
async shutdown(shutdownTimeoutMs = 30000) {
|
|
905
895
|
if (this.shutdownPromise) this._logger.warn('shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup');
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare function retriable<T>(fn: () => Promise<T>, props: RetriableOptio
|
|
|
24
24
|
export declare function currentTimestamp(): number;
|
|
25
25
|
export declare function currentISOTime(): string;
|
|
26
26
|
export declare function safeSetTimeout(fn: () => void, timeout: number): any;
|
|
27
|
+
export declare function raceWithTimeout<T>(promise: Promise<T>, timeoutMs: number, onTimeout?: () => void): Promise<T | void>;
|
|
27
28
|
export declare const isPromise: (obj: any) => obj is Promise<any>;
|
|
28
29
|
export declare const isError: (x: unknown) => x is Error;
|
|
29
30
|
export declare function getFetch(): FetchLike | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAoE,CAAA;AAE3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AASD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,CAMxG;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;CACtC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAOnE;AAGD,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAEtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAEzC,CAAA;AAED,wBAAgB,QAAQ,IAAI,SAAS,GAAG,SAAS,CAEhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC1C,OAAO,CAAC,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,CAAC,CAStF"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,aAAa,SAAS,CAAA;AAEnC,eAAO,MAAM,UAAU,QAAoE,CAAA;AAE3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI9D;AASD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,CAMxG;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAA;CACtC;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAqB5F;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAOnE;AAED,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAoBnB;AAGD,eAAO,MAAM,SAAS,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAEtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,KAEzC,CAAA;AAED,wBAAgB,QAAQ,IAAI,SAAS,GAAG,SAAS,CAEhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAC1C,OAAO,CAAC,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,EAAE,CAAC,CAStF"}
|
package/dist/utils/index.js
CHANGED
|
@@ -83,6 +83,7 @@ var __webpack_exports__ = {};
|
|
|
83
83
|
isError: ()=>isError,
|
|
84
84
|
isPromise: ()=>isPromise,
|
|
85
85
|
isValidUUID: ()=>isValidUUID,
|
|
86
|
+
raceWithTimeout: ()=>raceWithTimeout,
|
|
86
87
|
removeTrailingSlash: ()=>removeTrailingSlash,
|
|
87
88
|
retriable: ()=>retriable,
|
|
88
89
|
safeSetTimeout: ()=>safeSetTimeout,
|
|
@@ -104,6 +105,7 @@ var __webpack_exports__ = {};
|
|
|
104
105
|
"stripUrlHash",
|
|
105
106
|
"STRING_FORMAT",
|
|
106
107
|
"currentTimestamp",
|
|
108
|
+
"raceWithTimeout",
|
|
107
109
|
"getFetch",
|
|
108
110
|
"getEventUuid",
|
|
109
111
|
"isPromise"
|
|
@@ -127,6 +129,7 @@ var __webpack_exports__ = {};
|
|
|
127
129
|
"stripUrlHash",
|
|
128
130
|
"STRING_FORMAT",
|
|
129
131
|
"currentTimestamp",
|
|
132
|
+
"raceWithTimeout",
|
|
130
133
|
"getFetch",
|
|
131
134
|
"getEventUuid",
|
|
132
135
|
"isPromise"
|
|
@@ -150,6 +153,7 @@ var __webpack_exports__ = {};
|
|
|
150
153
|
"stripUrlHash",
|
|
151
154
|
"STRING_FORMAT",
|
|
152
155
|
"currentTimestamp",
|
|
156
|
+
"raceWithTimeout",
|
|
153
157
|
"getFetch",
|
|
154
158
|
"getEventUuid",
|
|
155
159
|
"isPromise"
|
|
@@ -173,6 +177,7 @@ var __webpack_exports__ = {};
|
|
|
173
177
|
"stripUrlHash",
|
|
174
178
|
"STRING_FORMAT",
|
|
175
179
|
"currentTimestamp",
|
|
180
|
+
"raceWithTimeout",
|
|
176
181
|
"getFetch",
|
|
177
182
|
"getEventUuid",
|
|
178
183
|
"isPromise"
|
|
@@ -196,6 +201,7 @@ var __webpack_exports__ = {};
|
|
|
196
201
|
"stripUrlHash",
|
|
197
202
|
"STRING_FORMAT",
|
|
198
203
|
"currentTimestamp",
|
|
204
|
+
"raceWithTimeout",
|
|
199
205
|
"getFetch",
|
|
200
206
|
"getEventUuid",
|
|
201
207
|
"isPromise"
|
|
@@ -219,6 +225,7 @@ var __webpack_exports__ = {};
|
|
|
219
225
|
"stripUrlHash",
|
|
220
226
|
"STRING_FORMAT",
|
|
221
227
|
"currentTimestamp",
|
|
228
|
+
"raceWithTimeout",
|
|
222
229
|
"getFetch",
|
|
223
230
|
"getEventUuid",
|
|
224
231
|
"isPromise"
|
|
@@ -242,6 +249,7 @@ var __webpack_exports__ = {};
|
|
|
242
249
|
"stripUrlHash",
|
|
243
250
|
"STRING_FORMAT",
|
|
244
251
|
"currentTimestamp",
|
|
252
|
+
"raceWithTimeout",
|
|
245
253
|
"getFetch",
|
|
246
254
|
"getEventUuid",
|
|
247
255
|
"isPromise"
|
|
@@ -265,6 +273,7 @@ var __webpack_exports__ = {};
|
|
|
265
273
|
"stripUrlHash",
|
|
266
274
|
"STRING_FORMAT",
|
|
267
275
|
"currentTimestamp",
|
|
276
|
+
"raceWithTimeout",
|
|
268
277
|
"getFetch",
|
|
269
278
|
"getEventUuid",
|
|
270
279
|
"isPromise"
|
|
@@ -288,6 +297,7 @@ var __webpack_exports__ = {};
|
|
|
288
297
|
"stripUrlHash",
|
|
289
298
|
"STRING_FORMAT",
|
|
290
299
|
"currentTimestamp",
|
|
300
|
+
"raceWithTimeout",
|
|
291
301
|
"getFetch",
|
|
292
302
|
"getEventUuid",
|
|
293
303
|
"isPromise"
|
|
@@ -342,6 +352,26 @@ var __webpack_exports__ = {};
|
|
|
342
352
|
t?.unref && t?.unref();
|
|
343
353
|
return t;
|
|
344
354
|
}
|
|
355
|
+
async function raceWithTimeout(promise, timeoutMs, onTimeout) {
|
|
356
|
+
let timeoutHandle;
|
|
357
|
+
try {
|
|
358
|
+
return await Promise.race([
|
|
359
|
+
promise,
|
|
360
|
+
new Promise((resolve, reject)=>{
|
|
361
|
+
timeoutHandle = safeSetTimeout(()=>{
|
|
362
|
+
try {
|
|
363
|
+
onTimeout?.();
|
|
364
|
+
resolve();
|
|
365
|
+
} catch (error) {
|
|
366
|
+
reject(error);
|
|
367
|
+
}
|
|
368
|
+
}, timeoutMs);
|
|
369
|
+
})
|
|
370
|
+
]);
|
|
371
|
+
} finally{
|
|
372
|
+
clearTimeout(timeoutHandle);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
345
375
|
const isPromise = (obj)=>obj && 'function' == typeof obj.then;
|
|
346
376
|
const isError = (x)=>x instanceof Error;
|
|
347
377
|
function getFetch() {
|
|
@@ -368,6 +398,7 @@ exports.getFetch = __webpack_exports__.getFetch;
|
|
|
368
398
|
exports.isError = __webpack_exports__.isError;
|
|
369
399
|
exports.isPromise = __webpack_exports__.isPromise;
|
|
370
400
|
exports.isValidUUID = __webpack_exports__.isValidUUID;
|
|
401
|
+
exports.raceWithTimeout = __webpack_exports__.raceWithTimeout;
|
|
371
402
|
exports.removeTrailingSlash = __webpack_exports__.removeTrailingSlash;
|
|
372
403
|
exports.retriable = __webpack_exports__.retriable;
|
|
373
404
|
exports.safeSetTimeout = __webpack_exports__.safeSetTimeout;
|
|
@@ -384,6 +415,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
384
415
|
"isError",
|
|
385
416
|
"isPromise",
|
|
386
417
|
"isValidUUID",
|
|
418
|
+
"raceWithTimeout",
|
|
387
419
|
"removeTrailingSlash",
|
|
388
420
|
"retriable",
|
|
389
421
|
"safeSetTimeout",
|
package/dist/utils/index.mjs
CHANGED
|
@@ -54,6 +54,26 @@ function safeSetTimeout(fn, timeout) {
|
|
|
54
54
|
t?.unref && t?.unref();
|
|
55
55
|
return t;
|
|
56
56
|
}
|
|
57
|
+
async function raceWithTimeout(promise, timeoutMs, onTimeout) {
|
|
58
|
+
let timeoutHandle;
|
|
59
|
+
try {
|
|
60
|
+
return await Promise.race([
|
|
61
|
+
promise,
|
|
62
|
+
new Promise((resolve, reject)=>{
|
|
63
|
+
timeoutHandle = safeSetTimeout(()=>{
|
|
64
|
+
try {
|
|
65
|
+
onTimeout?.();
|
|
66
|
+
resolve();
|
|
67
|
+
} catch (error) {
|
|
68
|
+
reject(error);
|
|
69
|
+
}
|
|
70
|
+
}, timeoutMs);
|
|
71
|
+
})
|
|
72
|
+
]);
|
|
73
|
+
} finally{
|
|
74
|
+
clearTimeout(timeoutHandle);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
57
77
|
const isPromise = (obj)=>obj && 'function' == typeof obj.then;
|
|
58
78
|
const isError = (x)=>x instanceof Error;
|
|
59
79
|
function getFetch() {
|
|
@@ -68,4 +88,4 @@ function allSettled(promises) {
|
|
|
68
88
|
reason
|
|
69
89
|
}))));
|
|
70
90
|
}
|
|
71
|
-
export { STRING_FORMAT, UUID_REGEX, allSettled, assert, currentISOTime, currentTimestamp, getEventUuid, getFetch, isError, isPromise, isValidUUID, removeTrailingSlash, retriable, safeSetTimeout, stripUrlHash };
|
|
91
|
+
export { STRING_FORMAT, UUID_REGEX, allSettled, assert, currentISOTime, currentTimestamp, getEventUuid, getFetch, isError, isPromise, isValidUUID, raceWithTimeout, removeTrailingSlash, retriable, safeSetTimeout, stripUrlHash };
|
package/package.json
CHANGED
package/src/logs/index.spec.ts
CHANGED
|
@@ -1013,6 +1013,28 @@ describe('PostHogLogs', () => {
|
|
|
1013
1013
|
})
|
|
1014
1014
|
})
|
|
1015
1015
|
|
|
1016
|
+
describe('flushWithTimeout', () => {
|
|
1017
|
+
beforeEach(() => jest.useFakeTimers())
|
|
1018
|
+
afterEach(() => jest.useRealTimers())
|
|
1019
|
+
|
|
1020
|
+
it('clears the timeout timer when the flush finishes first', async () => {
|
|
1021
|
+
const logs = new PostHogLogs(
|
|
1022
|
+
mockInstance,
|
|
1023
|
+
resolveForTest(),
|
|
1024
|
+
logger,
|
|
1025
|
+
getContextFor(mockInstance),
|
|
1026
|
+
immediateOnReady
|
|
1027
|
+
)
|
|
1028
|
+
mockInstance.setPersistedProperty(PostHogPersistedProperty.LogsQueue, [
|
|
1029
|
+
{ record: { body: { stringValue: 'a' } } },
|
|
1030
|
+
])
|
|
1031
|
+
|
|
1032
|
+
await logs.flushWithTimeout(5000)
|
|
1033
|
+
|
|
1034
|
+
expect(jest.getTimerCount()).toBe(0)
|
|
1035
|
+
})
|
|
1036
|
+
})
|
|
1037
|
+
|
|
1016
1038
|
describe('shutdown', () => {
|
|
1017
1039
|
beforeEach(() => jest.useFakeTimers())
|
|
1018
1040
|
afterEach(() => jest.useRealTimers())
|
|
@@ -1037,6 +1059,21 @@ describe('PostHogLogs', () => {
|
|
|
1037
1059
|
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
1038
1060
|
})
|
|
1039
1061
|
|
|
1062
|
+
it('clears the timeout timer when the final flush finishes first', async () => {
|
|
1063
|
+
const logs = new PostHogLogs(
|
|
1064
|
+
mockInstance,
|
|
1065
|
+
resolveForTest({ flushIntervalMs: 5000 }),
|
|
1066
|
+
logger,
|
|
1067
|
+
getContextFor(mockInstance),
|
|
1068
|
+
immediateOnReady
|
|
1069
|
+
)
|
|
1070
|
+
logs.captureLog({ body: 'a' })
|
|
1071
|
+
|
|
1072
|
+
await logs.shutdown(5000)
|
|
1073
|
+
|
|
1074
|
+
expect(jest.getTimerCount()).toBe(0)
|
|
1075
|
+
})
|
|
1076
|
+
|
|
1040
1077
|
it('swallows flush errors so shutdown can complete', async () => {
|
|
1041
1078
|
mockInstance._sendLogsBatch = jest.fn(() => Promise.resolve({ kind: 'fatal', error: new Error('boom') }))
|
|
1042
1079
|
const logs = new PostHogLogs(
|
package/src/logs/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LogAttributeValue } from '@posthog/types'
|
|
2
2
|
import { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes } from './logs-utils'
|
|
3
3
|
import { Logger, PostHogPersistedProperty } from '../types'
|
|
4
|
-
import { isArray, safeSetTimeout } from '../utils'
|
|
4
|
+
import { isArray, raceWithTimeout, safeSetTimeout } from '../utils'
|
|
5
5
|
import type { BufferedLogEntry, CaptureLogOptions, LogSdkContext, LogsHost, ResolvedPostHogLogsConfig } from './types'
|
|
6
6
|
|
|
7
7
|
// Caps the retry backoff at 2^6 = 64× the flush interval.
|
|
@@ -383,7 +383,7 @@ export class PostHogLogs {
|
|
|
383
383
|
await flushPromise
|
|
384
384
|
return
|
|
385
385
|
}
|
|
386
|
-
await
|
|
386
|
+
await raceWithTimeout(flushPromise, timeoutMs)
|
|
387
387
|
}
|
|
388
388
|
|
|
389
389
|
/**
|
|
@@ -399,23 +399,12 @@ export class PostHogLogs {
|
|
|
399
399
|
* unhandled-rejection logs — the next regular flush cycle will retry.
|
|
400
400
|
*/
|
|
401
401
|
async flushWithTimeout(timeoutMs: number): Promise<void> {
|
|
402
|
-
let timedOut = false
|
|
403
402
|
const flushPromise = this.flush()
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
)
|
|
410
|
-
try {
|
|
411
|
-
await Promise.race([flushPromise, timerPromise])
|
|
412
|
-
} finally {
|
|
413
|
-
if (timedOut) {
|
|
414
|
-
// Race lost — flush is still in flight. Attach a no-op rejection
|
|
415
|
-
// handler so a late failure isn't logged as unhandled.
|
|
416
|
-
void flushPromise.catch(() => {})
|
|
417
|
-
}
|
|
418
|
-
}
|
|
403
|
+
await raceWithTimeout(flushPromise, timeoutMs, () => {
|
|
404
|
+
// Race lost — flush is still in flight. Attach a no-op rejection
|
|
405
|
+
// handler so a late failure isn't logged as unhandled.
|
|
406
|
+
void flushPromise.catch(() => {})
|
|
407
|
+
})
|
|
419
408
|
}
|
|
420
409
|
|
|
421
410
|
private _flushInBackground(): void {
|
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
removeTrailingSlash,
|
|
32
32
|
retriable,
|
|
33
33
|
RetriableOptions,
|
|
34
|
+
raceWithTimeout,
|
|
34
35
|
safeSetTimeout,
|
|
35
36
|
STRING_FORMAT,
|
|
36
37
|
createLogger,
|
|
@@ -1724,21 +1725,11 @@ export abstract class PostHogCoreStateless {
|
|
|
1724
1725
|
}
|
|
1725
1726
|
}
|
|
1726
1727
|
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
this._logger.error('Timed out while shutting down PostHog')
|
|
1733
|
-
hasTimedOut = true
|
|
1734
|
-
reject('Timeout while shutting down PostHog. Some events may not have been sent.')
|
|
1735
|
-
}, shutdownTimeoutMs)
|
|
1736
|
-
}),
|
|
1737
|
-
doShutdown(),
|
|
1738
|
-
])
|
|
1739
|
-
} finally {
|
|
1740
|
-
clearTimeout(timeoutHandle)
|
|
1741
|
-
}
|
|
1728
|
+
return raceWithTimeout(doShutdown(), shutdownTimeoutMs, () => {
|
|
1729
|
+
this._logger.error('Timed out while shutting down PostHog')
|
|
1730
|
+
hasTimedOut = true
|
|
1731
|
+
throw 'Timeout while shutting down PostHog. Some events may not have been sent.'
|
|
1732
|
+
})
|
|
1742
1733
|
}
|
|
1743
1734
|
|
|
1744
1735
|
/**
|
package/src/utils/index.ts
CHANGED
|
@@ -93,6 +93,32 @@ export function safeSetTimeout(fn: () => void, timeout: number): any {
|
|
|
93
93
|
return t
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
export async function raceWithTimeout<T>(
|
|
97
|
+
promise: Promise<T>,
|
|
98
|
+
timeoutMs: number,
|
|
99
|
+
onTimeout?: () => void
|
|
100
|
+
): Promise<T | void> {
|
|
101
|
+
let timeoutHandle: ReturnType<typeof safeSetTimeout> | undefined
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
return await Promise.race([
|
|
105
|
+
promise,
|
|
106
|
+
new Promise<void>((resolve, reject) => {
|
|
107
|
+
timeoutHandle = safeSetTimeout(() => {
|
|
108
|
+
try {
|
|
109
|
+
onTimeout?.()
|
|
110
|
+
resolve()
|
|
111
|
+
} catch (error) {
|
|
112
|
+
reject(error)
|
|
113
|
+
}
|
|
114
|
+
}, timeoutMs)
|
|
115
|
+
}),
|
|
116
|
+
])
|
|
117
|
+
} finally {
|
|
118
|
+
clearTimeout(timeoutHandle)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
96
122
|
// NOTE: We opt for this slightly imperfect check as the global "Promise" object can get mutated in certain environments
|
|
97
123
|
export const isPromise = (obj: any): obj is Promise<any> => {
|
|
98
124
|
return obj && typeof obj.then === 'function'
|