@posthog/core 1.46.7 → 1.46.9
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/posthog-core-stateless.d.ts +5 -0
- package/dist/posthog-core-stateless.d.ts.map +1 -1
- package/dist/posthog-core-stateless.js +151 -34
- package/dist/posthog-core-stateless.mjs +151 -34
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.mjs +1 -0
- package/package.json +2 -2
- package/src/posthog-core-stateless.ts +247 -63
- package/src/types.ts +4 -0
|
@@ -287,6 +287,11 @@ export declare abstract class PostHogCoreStateless {
|
|
|
287
287
|
protected getCustomHeaders(): {
|
|
288
288
|
[key: string]: string;
|
|
289
289
|
};
|
|
290
|
+
/**
|
|
291
|
+
* Compresses an outgoing payload. Runtime-specific clients can override this
|
|
292
|
+
* to avoid using the Web Streams compression implementation.
|
|
293
|
+
*/
|
|
294
|
+
protected compressPayload(payload: string): Promise<Blob | null>;
|
|
290
295
|
/**
|
|
291
296
|
* Builds and sends one `/batch/` request for the given already-normalized
|
|
292
297
|
* messages, throwing on transport/HTTP error. Batch-size (413) shrinking,
|
|
@@ -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,EAOjB,MAAM,SAAS,CAAA;AAEhB,OAAO,EACL,sBAAsB,EAMvB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"posthog-core-stateless.d.ts","sourceRoot":"","sources":["../src/posthog-core-stateless.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,17 +39,56 @@ const index_js_namespaceObject = require("./utils/index.js");
|
|
|
39
39
|
const uuidv7_js_namespaceObject = require("./vendor/uuidv7.js");
|
|
40
40
|
const external_error_tracking_index_js_namespaceObject = require("./error-tracking/index.js");
|
|
41
41
|
class PostHogFetchHttpError extends Error {
|
|
42
|
-
constructor(response, reqByteLength){
|
|
43
|
-
super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.name = 'PostHogFetchHttpError';
|
|
42
|
+
constructor(response, reqByteLength, responseBodyDeadline, abortController){
|
|
43
|
+
super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.responseBodyDeadline = responseBodyDeadline, this.abortController = abortController, this.name = 'PostHogFetchHttpError', this._bodyReadTimedOut = false;
|
|
44
44
|
}
|
|
45
45
|
get status() {
|
|
46
46
|
return this.response.status;
|
|
47
47
|
}
|
|
48
|
+
get bodyReadTimedOut() {
|
|
49
|
+
return this._bodyReadTimedOut;
|
|
50
|
+
}
|
|
48
51
|
get text() {
|
|
49
|
-
|
|
52
|
+
if (!this.responseBodyTextPromise) if (Date.now() >= this.responseBodyDeadline) {
|
|
53
|
+
this._bodyReadTimedOut = true;
|
|
54
|
+
const timeoutError = new Error('Response body read timed out');
|
|
55
|
+
timeoutError.name = 'AbortError';
|
|
56
|
+
this.cancelResponseBody(timeoutError);
|
|
57
|
+
this.responseBodyTextPromise = Promise.reject(timeoutError);
|
|
58
|
+
} else {
|
|
59
|
+
const responseBodyTimeout = new Promise((_resolve, reject)=>{
|
|
60
|
+
this.responseBodyTimer = (0, index_js_namespaceObject.safeSetTimeout)(()=>{
|
|
61
|
+
this._bodyReadTimedOut = true;
|
|
62
|
+
const timeoutError = new Error('Response body read timed out');
|
|
63
|
+
timeoutError.name = 'AbortError';
|
|
64
|
+
reject(timeoutError);
|
|
65
|
+
this.cancelResponseBody(timeoutError);
|
|
66
|
+
}, this.responseBodyDeadline - Date.now());
|
|
67
|
+
});
|
|
68
|
+
let responseBodyText;
|
|
69
|
+
try {
|
|
70
|
+
responseBodyText = Promise.resolve(this.response.text());
|
|
71
|
+
} catch (error) {
|
|
72
|
+
responseBodyText = Promise.reject(error);
|
|
73
|
+
}
|
|
74
|
+
this.responseBodyTextPromise = Promise.race([
|
|
75
|
+
responseBodyText,
|
|
76
|
+
responseBodyTimeout
|
|
77
|
+
]).finally(()=>clearTimeout(this.responseBodyTimer));
|
|
78
|
+
}
|
|
79
|
+
return this.responseBodyTextPromise;
|
|
50
80
|
}
|
|
51
81
|
get json() {
|
|
52
|
-
return this.
|
|
82
|
+
return this.text.then((text)=>JSON.parse(text));
|
|
83
|
+
}
|
|
84
|
+
cancelResponseBody(reason) {
|
|
85
|
+
clearTimeout(this.responseBodyTimer);
|
|
86
|
+
if (!this.abortController.signal.aborted) this.abortController.abort(reason);
|
|
87
|
+
(async ()=>{
|
|
88
|
+
try {
|
|
89
|
+
await this.response.body?.cancel();
|
|
90
|
+
} catch {}
|
|
91
|
+
})();
|
|
53
92
|
}
|
|
54
93
|
}
|
|
55
94
|
class PostHogFetchNetworkError extends Error {
|
|
@@ -70,7 +109,9 @@ async function logFlushError(err) {
|
|
|
70
109
|
let text = '';
|
|
71
110
|
try {
|
|
72
111
|
text = await err.text;
|
|
73
|
-
} catch {
|
|
112
|
+
} catch {
|
|
113
|
+
if (err.bodyReadTimedOut) text = '<response body read timed out>';
|
|
114
|
+
}
|
|
74
115
|
console.error(`Error while flushing PostHog: message=${err.message}, response body=${text}`, err);
|
|
75
116
|
} else console.error('Error while flushing PostHog', err);
|
|
76
117
|
return Promise.resolve();
|
|
@@ -332,8 +373,11 @@ class PostHogCoreStateless {
|
|
|
332
373
|
}
|
|
333
374
|
};
|
|
334
375
|
return this.fetchWithRetry(url, fetchOptions, {
|
|
376
|
+
type: 'required',
|
|
377
|
+
consume: (response)=>response.json()
|
|
378
|
+
}, {
|
|
335
379
|
retryCount: 0
|
|
336
|
-
}, this.remoteConfigRequestTimeoutMs).
|
|
380
|
+
}, this.remoteConfigRequestTimeoutMs).catch((error)=>{
|
|
337
381
|
this._logger.error('Remote config could not be loaded', error);
|
|
338
382
|
this._events.emit('error', error);
|
|
339
383
|
});
|
|
@@ -362,9 +406,12 @@ class PostHogCoreStateless {
|
|
|
362
406
|
};
|
|
363
407
|
this._logger.info('Flags URL', url);
|
|
364
408
|
return this.fetchWithRetry(url, fetchOptions, {
|
|
409
|
+
type: 'required',
|
|
410
|
+
consume: (response)=>response.json()
|
|
411
|
+
}, {
|
|
365
412
|
retryCount: this.featureFlagsRequestMaxRetries,
|
|
366
413
|
retryCheck: isRetryableFlagsFetchError
|
|
367
|
-
}, this.featureFlagsRequestTimeoutMs).then((response)=>
|
|
414
|
+
}, this.featureFlagsRequestTimeoutMs).then((response)=>({
|
|
368
415
|
success: true,
|
|
369
416
|
response: (0, external_featureFlagUtils_js_namespaceObject.normalizeFlagsResponse)(response)
|
|
370
417
|
})).catch((error)=>{
|
|
@@ -491,15 +538,18 @@ class PostHogCoreStateless {
|
|
|
491
538
|
'Content-Type': 'application/json'
|
|
492
539
|
}
|
|
493
540
|
};
|
|
494
|
-
const response = await this.fetchWithRetry(url, fetchOptions
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
541
|
+
const response = await this.fetchWithRetry(url, fetchOptions, {
|
|
542
|
+
type: 'required',
|
|
543
|
+
consume: (response)=>{
|
|
544
|
+
if (200 !== response.status || !response.json) {
|
|
545
|
+
const msg = `Surveys API could not be loaded: ${response.status}`;
|
|
546
|
+
const error = new Error(msg);
|
|
547
|
+
this._logger.error(error);
|
|
548
|
+
this._events.emit('error', new Error(msg));
|
|
549
|
+
return Promise.resolve(void 0);
|
|
550
|
+
}
|
|
551
|
+
return response.json();
|
|
501
552
|
}
|
|
502
|
-
return response.json();
|
|
503
553
|
}).catch((error)=>{
|
|
504
554
|
this._logger.error('Surveys API could not be loaded', error);
|
|
505
555
|
this._events.emit('error', error);
|
|
@@ -685,6 +735,9 @@ class PostHogCoreStateless {
|
|
|
685
735
|
if (customUserAgent && '' !== customUserAgent) headers['User-Agent'] = customUserAgent;
|
|
686
736
|
return headers;
|
|
687
737
|
}
|
|
738
|
+
compressPayload(payload) {
|
|
739
|
+
return (0, external_gzip_js_namespaceObject.gzipCompress)(payload, this.isDebug);
|
|
740
|
+
}
|
|
688
741
|
async sendBatch(batchMessages, retryOptions, _route = DEFAULT_QUEUE_ROUTE) {
|
|
689
742
|
const data = {
|
|
690
743
|
api_key: this.apiKey,
|
|
@@ -694,7 +747,7 @@ class PostHogCoreStateless {
|
|
|
694
747
|
if (this.historicalMigration) data.historical_migration = true;
|
|
695
748
|
const payload = (0, index_js_namespaceObject.safeJsonStringify)(data);
|
|
696
749
|
const url = `${this.host}/batch/`;
|
|
697
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
750
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(payload);
|
|
698
751
|
const fetchOptions = {
|
|
699
752
|
method: 'POST',
|
|
700
753
|
headers: {
|
|
@@ -706,8 +759,9 @@ class PostHogCoreStateless {
|
|
|
706
759
|
},
|
|
707
760
|
body: gzippedPayload || payload
|
|
708
761
|
};
|
|
709
|
-
|
|
710
|
-
|
|
762
|
+
await this.fetchWithRetry(url, fetchOptions, {
|
|
763
|
+
type: 'successful-write'
|
|
764
|
+
}, retryOptions);
|
|
711
765
|
}
|
|
712
766
|
async _flush() {
|
|
713
767
|
this.clearFlushTimer();
|
|
@@ -780,7 +834,7 @@ class PostHogCoreStateless {
|
|
|
780
834
|
};
|
|
781
835
|
const serialized = JSON.stringify(payload);
|
|
782
836
|
const url = `${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`;
|
|
783
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
837
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(serialized);
|
|
784
838
|
const fetchOptions = {
|
|
785
839
|
method: 'POST',
|
|
786
840
|
headers: {
|
|
@@ -794,6 +848,8 @@ class PostHogCoreStateless {
|
|
|
794
848
|
};
|
|
795
849
|
try {
|
|
796
850
|
await this.fetchWithRetry(url, fetchOptions, {
|
|
851
|
+
type: 'successful-write'
|
|
852
|
+
}, {
|
|
797
853
|
retryCheck: (err)=>{
|
|
798
854
|
if (isPostHogFetchContentTooLargeError(err)) return false;
|
|
799
855
|
return isPostHogFetchRetryableError(err);
|
|
@@ -823,7 +879,7 @@ class PostHogCoreStateless {
|
|
|
823
879
|
};
|
|
824
880
|
const serialized = JSON.stringify(payload);
|
|
825
881
|
const url = `${this.host}/i/v1/metrics?token=${encodeURIComponent(this.apiKey)}`;
|
|
826
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
882
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(serialized);
|
|
827
883
|
const fetchOptions = {
|
|
828
884
|
method: 'POST',
|
|
829
885
|
headers: {
|
|
@@ -837,6 +893,8 @@ class PostHogCoreStateless {
|
|
|
837
893
|
};
|
|
838
894
|
try {
|
|
839
895
|
await this.fetchWithRetry(url, fetchOptions, {
|
|
896
|
+
type: 'successful-write'
|
|
897
|
+
}, {
|
|
840
898
|
retryCheck: (err)=>{
|
|
841
899
|
if (isPostHogFetchContentTooLargeError(err)) return false;
|
|
842
900
|
return isPostHogFetchRetryableError(err);
|
|
@@ -859,7 +917,7 @@ class PostHogCoreStateless {
|
|
|
859
917
|
};
|
|
860
918
|
}
|
|
861
919
|
}
|
|
862
|
-
async fetchWithRetry(url, options, retryOptions, requestTimeout) {
|
|
920
|
+
async fetchWithRetry(url, options, responseHandling, retryOptions, requestTimeout) {
|
|
863
921
|
const body = options.body ? options.body : '';
|
|
864
922
|
let reqByteLength = -1;
|
|
865
923
|
try {
|
|
@@ -871,27 +929,86 @@ class PostHogCoreStateless {
|
|
|
871
929
|
reqByteLength = encoded.length;
|
|
872
930
|
}
|
|
873
931
|
}
|
|
932
|
+
const retriableOptions = {
|
|
933
|
+
...this._retryOptions,
|
|
934
|
+
...retryOptions
|
|
935
|
+
};
|
|
936
|
+
let attempt = 0;
|
|
874
937
|
return await (0, index_js_namespaceObject.retriable)(async ()=>{
|
|
938
|
+
attempt++;
|
|
875
939
|
const ctrl = new AbortController();
|
|
876
940
|
const timeoutMs = requestTimeout ?? this.requestTimeout;
|
|
877
|
-
const
|
|
878
|
-
let
|
|
941
|
+
const requestDeadline = Date.now() + timeoutMs;
|
|
942
|
+
let timer;
|
|
943
|
+
const deadline = new Promise((_resolve, reject)=>{
|
|
944
|
+
timer = (0, index_js_namespaceObject.safeSetTimeout)(()=>{
|
|
945
|
+
const timeoutError = new Error(`Request timed out after ${timeoutMs}ms`);
|
|
946
|
+
timeoutError.name = 'AbortError';
|
|
947
|
+
reject(timeoutError);
|
|
948
|
+
ctrl.abort(timeoutError);
|
|
949
|
+
}, timeoutMs);
|
|
950
|
+
});
|
|
951
|
+
let res;
|
|
952
|
+
let responseAccepted = false;
|
|
953
|
+
let cancellation;
|
|
954
|
+
const cancelBody = ()=>cancellation ??= (async ()=>{
|
|
955
|
+
try {
|
|
956
|
+
await res?.body?.cancel();
|
|
957
|
+
} catch {}
|
|
958
|
+
})();
|
|
879
959
|
try {
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
960
|
+
let fetchPromise;
|
|
961
|
+
try {
|
|
962
|
+
fetchPromise = this.fetch(url, {
|
|
963
|
+
signal: ctrl.signal,
|
|
964
|
+
...options
|
|
965
|
+
});
|
|
966
|
+
} catch (e) {
|
|
967
|
+
throw new PostHogFetchNetworkError(e);
|
|
968
|
+
}
|
|
969
|
+
fetchPromise.then((lateResponse)=>{
|
|
970
|
+
if (ctrl.signal.aborted && !responseAccepted) Promise.resolve(lateResponse.body?.cancel()).catch(()=>{});
|
|
971
|
+
}).catch(()=>{});
|
|
972
|
+
try {
|
|
973
|
+
res = await Promise.race([
|
|
974
|
+
fetchPromise,
|
|
975
|
+
deadline
|
|
976
|
+
]);
|
|
977
|
+
responseAccepted = true;
|
|
978
|
+
} catch (e) {
|
|
979
|
+
throw new PostHogFetchNetworkError(e);
|
|
980
|
+
}
|
|
981
|
+
const isNoCors = 'no-cors' === options.mode;
|
|
982
|
+
if (!isNoCors && (res.status < 200 || res.status >= 400)) throw new PostHogFetchHttpError(res, reqByteLength, requestDeadline, ctrl);
|
|
983
|
+
if ('successful-write' === responseHandling.type) {
|
|
984
|
+
try {
|
|
985
|
+
await Promise.race([
|
|
986
|
+
cancelBody(),
|
|
987
|
+
deadline
|
|
988
|
+
]);
|
|
989
|
+
} catch {}
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
try {
|
|
993
|
+
return await Promise.race([
|
|
994
|
+
responseHandling.consume(res),
|
|
995
|
+
deadline
|
|
996
|
+
]);
|
|
997
|
+
} catch (e) {
|
|
998
|
+
if (ctrl.signal.aborted) throw new PostHogFetchNetworkError(e);
|
|
999
|
+
throw e;
|
|
1000
|
+
}
|
|
886
1001
|
} finally{
|
|
887
1002
|
clearTimeout(timer);
|
|
1003
|
+
if (ctrl.signal.aborted && res) cancelBody();
|
|
888
1004
|
}
|
|
889
|
-
const isNoCors = 'no-cors' === options.mode;
|
|
890
|
-
if (!isNoCors && (res.status < 200 || res.status >= 400)) throw new PostHogFetchHttpError(res, reqByteLength);
|
|
891
|
-
return res;
|
|
892
1005
|
}, {
|
|
893
|
-
...
|
|
894
|
-
|
|
1006
|
+
...retriableOptions,
|
|
1007
|
+
retryCheck: (error)=>{
|
|
1008
|
+
const shouldRetry = retriableOptions.retryCheck(error);
|
|
1009
|
+
if (shouldRetry && attempt <= retriableOptions.retryCount && error instanceof PostHogFetchHttpError) error.cancelResponseBody();
|
|
1010
|
+
return shouldRetry;
|
|
1011
|
+
}
|
|
895
1012
|
});
|
|
896
1013
|
}
|
|
897
1014
|
async _shutdown(shutdownTimeoutMs = 30000) {
|
|
@@ -6,17 +6,56 @@ import { PromiseQueue, STRING_FORMAT, allSettled, createLogger, currentISOTime,
|
|
|
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 {
|
|
9
|
-
constructor(response, reqByteLength){
|
|
10
|
-
super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.name = 'PostHogFetchHttpError';
|
|
9
|
+
constructor(response, reqByteLength, responseBodyDeadline, abortController){
|
|
10
|
+
super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.responseBodyDeadline = responseBodyDeadline, this.abortController = abortController, this.name = 'PostHogFetchHttpError', this._bodyReadTimedOut = false;
|
|
11
11
|
}
|
|
12
12
|
get status() {
|
|
13
13
|
return this.response.status;
|
|
14
14
|
}
|
|
15
|
+
get bodyReadTimedOut() {
|
|
16
|
+
return this._bodyReadTimedOut;
|
|
17
|
+
}
|
|
15
18
|
get text() {
|
|
16
|
-
|
|
19
|
+
if (!this.responseBodyTextPromise) if (Date.now() >= this.responseBodyDeadline) {
|
|
20
|
+
this._bodyReadTimedOut = true;
|
|
21
|
+
const timeoutError = new Error('Response body read timed out');
|
|
22
|
+
timeoutError.name = 'AbortError';
|
|
23
|
+
this.cancelResponseBody(timeoutError);
|
|
24
|
+
this.responseBodyTextPromise = Promise.reject(timeoutError);
|
|
25
|
+
} else {
|
|
26
|
+
const responseBodyTimeout = new Promise((_resolve, reject)=>{
|
|
27
|
+
this.responseBodyTimer = safeSetTimeout(()=>{
|
|
28
|
+
this._bodyReadTimedOut = true;
|
|
29
|
+
const timeoutError = new Error('Response body read timed out');
|
|
30
|
+
timeoutError.name = 'AbortError';
|
|
31
|
+
reject(timeoutError);
|
|
32
|
+
this.cancelResponseBody(timeoutError);
|
|
33
|
+
}, this.responseBodyDeadline - Date.now());
|
|
34
|
+
});
|
|
35
|
+
let responseBodyText;
|
|
36
|
+
try {
|
|
37
|
+
responseBodyText = Promise.resolve(this.response.text());
|
|
38
|
+
} catch (error) {
|
|
39
|
+
responseBodyText = Promise.reject(error);
|
|
40
|
+
}
|
|
41
|
+
this.responseBodyTextPromise = Promise.race([
|
|
42
|
+
responseBodyText,
|
|
43
|
+
responseBodyTimeout
|
|
44
|
+
]).finally(()=>clearTimeout(this.responseBodyTimer));
|
|
45
|
+
}
|
|
46
|
+
return this.responseBodyTextPromise;
|
|
17
47
|
}
|
|
18
48
|
get json() {
|
|
19
|
-
return this.
|
|
49
|
+
return this.text.then((text)=>JSON.parse(text));
|
|
50
|
+
}
|
|
51
|
+
cancelResponseBody(reason) {
|
|
52
|
+
clearTimeout(this.responseBodyTimer);
|
|
53
|
+
if (!this.abortController.signal.aborted) this.abortController.abort(reason);
|
|
54
|
+
(async ()=>{
|
|
55
|
+
try {
|
|
56
|
+
await this.response.body?.cancel();
|
|
57
|
+
} catch {}
|
|
58
|
+
})();
|
|
20
59
|
}
|
|
21
60
|
}
|
|
22
61
|
class PostHogFetchNetworkError extends Error {
|
|
@@ -37,7 +76,9 @@ async function logFlushError(err) {
|
|
|
37
76
|
let text = '';
|
|
38
77
|
try {
|
|
39
78
|
text = await err.text;
|
|
40
|
-
} catch {
|
|
79
|
+
} catch {
|
|
80
|
+
if (err.bodyReadTimedOut) text = '<response body read timed out>';
|
|
81
|
+
}
|
|
41
82
|
console.error(`Error while flushing PostHog: message=${err.message}, response body=${text}`, err);
|
|
42
83
|
} else console.error('Error while flushing PostHog', err);
|
|
43
84
|
return Promise.resolve();
|
|
@@ -299,8 +340,11 @@ class PostHogCoreStateless {
|
|
|
299
340
|
}
|
|
300
341
|
};
|
|
301
342
|
return this.fetchWithRetry(url, fetchOptions, {
|
|
343
|
+
type: 'required',
|
|
344
|
+
consume: (response)=>response.json()
|
|
345
|
+
}, {
|
|
302
346
|
retryCount: 0
|
|
303
|
-
}, this.remoteConfigRequestTimeoutMs).
|
|
347
|
+
}, this.remoteConfigRequestTimeoutMs).catch((error)=>{
|
|
304
348
|
this._logger.error('Remote config could not be loaded', error);
|
|
305
349
|
this._events.emit('error', error);
|
|
306
350
|
});
|
|
@@ -329,9 +373,12 @@ class PostHogCoreStateless {
|
|
|
329
373
|
};
|
|
330
374
|
this._logger.info('Flags URL', url);
|
|
331
375
|
return this.fetchWithRetry(url, fetchOptions, {
|
|
376
|
+
type: 'required',
|
|
377
|
+
consume: (response)=>response.json()
|
|
378
|
+
}, {
|
|
332
379
|
retryCount: this.featureFlagsRequestMaxRetries,
|
|
333
380
|
retryCheck: isRetryableFlagsFetchError
|
|
334
|
-
}, this.featureFlagsRequestTimeoutMs).then((response)=>
|
|
381
|
+
}, this.featureFlagsRequestTimeoutMs).then((response)=>({
|
|
335
382
|
success: true,
|
|
336
383
|
response: normalizeFlagsResponse(response)
|
|
337
384
|
})).catch((error)=>{
|
|
@@ -458,15 +505,18 @@ class PostHogCoreStateless {
|
|
|
458
505
|
'Content-Type': 'application/json'
|
|
459
506
|
}
|
|
460
507
|
};
|
|
461
|
-
const response = await this.fetchWithRetry(url, fetchOptions
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
508
|
+
const response = await this.fetchWithRetry(url, fetchOptions, {
|
|
509
|
+
type: 'required',
|
|
510
|
+
consume: (response)=>{
|
|
511
|
+
if (200 !== response.status || !response.json) {
|
|
512
|
+
const msg = `Surveys API could not be loaded: ${response.status}`;
|
|
513
|
+
const error = new Error(msg);
|
|
514
|
+
this._logger.error(error);
|
|
515
|
+
this._events.emit('error', new Error(msg));
|
|
516
|
+
return Promise.resolve(void 0);
|
|
517
|
+
}
|
|
518
|
+
return response.json();
|
|
468
519
|
}
|
|
469
|
-
return response.json();
|
|
470
520
|
}).catch((error)=>{
|
|
471
521
|
this._logger.error('Surveys API could not be loaded', error);
|
|
472
522
|
this._events.emit('error', error);
|
|
@@ -652,6 +702,9 @@ class PostHogCoreStateless {
|
|
|
652
702
|
if (customUserAgent && '' !== customUserAgent) headers['User-Agent'] = customUserAgent;
|
|
653
703
|
return headers;
|
|
654
704
|
}
|
|
705
|
+
compressPayload(payload) {
|
|
706
|
+
return gzipCompress(payload, this.isDebug);
|
|
707
|
+
}
|
|
655
708
|
async sendBatch(batchMessages, retryOptions, _route = DEFAULT_QUEUE_ROUTE) {
|
|
656
709
|
const data = {
|
|
657
710
|
api_key: this.apiKey,
|
|
@@ -661,7 +714,7 @@ class PostHogCoreStateless {
|
|
|
661
714
|
if (this.historicalMigration) data.historical_migration = true;
|
|
662
715
|
const payload = safeJsonStringify(data);
|
|
663
716
|
const url = `${this.host}/batch/`;
|
|
664
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
717
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(payload);
|
|
665
718
|
const fetchOptions = {
|
|
666
719
|
method: 'POST',
|
|
667
720
|
headers: {
|
|
@@ -673,8 +726,9 @@ class PostHogCoreStateless {
|
|
|
673
726
|
},
|
|
674
727
|
body: gzippedPayload || payload
|
|
675
728
|
};
|
|
676
|
-
|
|
677
|
-
|
|
729
|
+
await this.fetchWithRetry(url, fetchOptions, {
|
|
730
|
+
type: 'successful-write'
|
|
731
|
+
}, retryOptions);
|
|
678
732
|
}
|
|
679
733
|
async _flush() {
|
|
680
734
|
this.clearFlushTimer();
|
|
@@ -747,7 +801,7 @@ class PostHogCoreStateless {
|
|
|
747
801
|
};
|
|
748
802
|
const serialized = JSON.stringify(payload);
|
|
749
803
|
const url = `${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`;
|
|
750
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
804
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(serialized);
|
|
751
805
|
const fetchOptions = {
|
|
752
806
|
method: 'POST',
|
|
753
807
|
headers: {
|
|
@@ -761,6 +815,8 @@ class PostHogCoreStateless {
|
|
|
761
815
|
};
|
|
762
816
|
try {
|
|
763
817
|
await this.fetchWithRetry(url, fetchOptions, {
|
|
818
|
+
type: 'successful-write'
|
|
819
|
+
}, {
|
|
764
820
|
retryCheck: (err)=>{
|
|
765
821
|
if (isPostHogFetchContentTooLargeError(err)) return false;
|
|
766
822
|
return isPostHogFetchRetryableError(err);
|
|
@@ -790,7 +846,7 @@ class PostHogCoreStateless {
|
|
|
790
846
|
};
|
|
791
847
|
const serialized = JSON.stringify(payload);
|
|
792
848
|
const url = `${this.host}/i/v1/metrics?token=${encodeURIComponent(this.apiKey)}`;
|
|
793
|
-
const gzippedPayload = this.disableCompression ? null : await
|
|
849
|
+
const gzippedPayload = this.disableCompression ? null : await this.compressPayload(serialized);
|
|
794
850
|
const fetchOptions = {
|
|
795
851
|
method: 'POST',
|
|
796
852
|
headers: {
|
|
@@ -804,6 +860,8 @@ class PostHogCoreStateless {
|
|
|
804
860
|
};
|
|
805
861
|
try {
|
|
806
862
|
await this.fetchWithRetry(url, fetchOptions, {
|
|
863
|
+
type: 'successful-write'
|
|
864
|
+
}, {
|
|
807
865
|
retryCheck: (err)=>{
|
|
808
866
|
if (isPostHogFetchContentTooLargeError(err)) return false;
|
|
809
867
|
return isPostHogFetchRetryableError(err);
|
|
@@ -826,7 +884,7 @@ class PostHogCoreStateless {
|
|
|
826
884
|
};
|
|
827
885
|
}
|
|
828
886
|
}
|
|
829
|
-
async fetchWithRetry(url, options, retryOptions, requestTimeout) {
|
|
887
|
+
async fetchWithRetry(url, options, responseHandling, retryOptions, requestTimeout) {
|
|
830
888
|
const body = options.body ? options.body : '';
|
|
831
889
|
let reqByteLength = -1;
|
|
832
890
|
try {
|
|
@@ -838,27 +896,86 @@ class PostHogCoreStateless {
|
|
|
838
896
|
reqByteLength = encoded.length;
|
|
839
897
|
}
|
|
840
898
|
}
|
|
899
|
+
const retriableOptions = {
|
|
900
|
+
...this._retryOptions,
|
|
901
|
+
...retryOptions
|
|
902
|
+
};
|
|
903
|
+
let attempt = 0;
|
|
841
904
|
return await retriable(async ()=>{
|
|
905
|
+
attempt++;
|
|
842
906
|
const ctrl = new AbortController();
|
|
843
907
|
const timeoutMs = requestTimeout ?? this.requestTimeout;
|
|
844
|
-
const
|
|
845
|
-
let
|
|
908
|
+
const requestDeadline = Date.now() + timeoutMs;
|
|
909
|
+
let timer;
|
|
910
|
+
const deadline = new Promise((_resolve, reject)=>{
|
|
911
|
+
timer = safeSetTimeout(()=>{
|
|
912
|
+
const timeoutError = new Error(`Request timed out after ${timeoutMs}ms`);
|
|
913
|
+
timeoutError.name = 'AbortError';
|
|
914
|
+
reject(timeoutError);
|
|
915
|
+
ctrl.abort(timeoutError);
|
|
916
|
+
}, timeoutMs);
|
|
917
|
+
});
|
|
918
|
+
let res;
|
|
919
|
+
let responseAccepted = false;
|
|
920
|
+
let cancellation;
|
|
921
|
+
const cancelBody = ()=>cancellation ??= (async ()=>{
|
|
922
|
+
try {
|
|
923
|
+
await res?.body?.cancel();
|
|
924
|
+
} catch {}
|
|
925
|
+
})();
|
|
846
926
|
try {
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
927
|
+
let fetchPromise;
|
|
928
|
+
try {
|
|
929
|
+
fetchPromise = this.fetch(url, {
|
|
930
|
+
signal: ctrl.signal,
|
|
931
|
+
...options
|
|
932
|
+
});
|
|
933
|
+
} catch (e) {
|
|
934
|
+
throw new PostHogFetchNetworkError(e);
|
|
935
|
+
}
|
|
936
|
+
fetchPromise.then((lateResponse)=>{
|
|
937
|
+
if (ctrl.signal.aborted && !responseAccepted) Promise.resolve(lateResponse.body?.cancel()).catch(()=>{});
|
|
938
|
+
}).catch(()=>{});
|
|
939
|
+
try {
|
|
940
|
+
res = await Promise.race([
|
|
941
|
+
fetchPromise,
|
|
942
|
+
deadline
|
|
943
|
+
]);
|
|
944
|
+
responseAccepted = true;
|
|
945
|
+
} catch (e) {
|
|
946
|
+
throw new PostHogFetchNetworkError(e);
|
|
947
|
+
}
|
|
948
|
+
const isNoCors = 'no-cors' === options.mode;
|
|
949
|
+
if (!isNoCors && (res.status < 200 || res.status >= 400)) throw new PostHogFetchHttpError(res, reqByteLength, requestDeadline, ctrl);
|
|
950
|
+
if ('successful-write' === responseHandling.type) {
|
|
951
|
+
try {
|
|
952
|
+
await Promise.race([
|
|
953
|
+
cancelBody(),
|
|
954
|
+
deadline
|
|
955
|
+
]);
|
|
956
|
+
} catch {}
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
try {
|
|
960
|
+
return await Promise.race([
|
|
961
|
+
responseHandling.consume(res),
|
|
962
|
+
deadline
|
|
963
|
+
]);
|
|
964
|
+
} catch (e) {
|
|
965
|
+
if (ctrl.signal.aborted) throw new PostHogFetchNetworkError(e);
|
|
966
|
+
throw e;
|
|
967
|
+
}
|
|
853
968
|
} finally{
|
|
854
969
|
clearTimeout(timer);
|
|
970
|
+
if (ctrl.signal.aborted && res) cancelBody();
|
|
855
971
|
}
|
|
856
|
-
const isNoCors = 'no-cors' === options.mode;
|
|
857
|
-
if (!isNoCors && (res.status < 200 || res.status >= 400)) throw new PostHogFetchHttpError(res, reqByteLength);
|
|
858
|
-
return res;
|
|
859
972
|
}, {
|
|
860
|
-
...
|
|
861
|
-
|
|
973
|
+
...retriableOptions,
|
|
974
|
+
retryCheck: (error)=>{
|
|
975
|
+
const shouldRetry = retriableOptions.retryCheck(error);
|
|
976
|
+
if (shouldRetry && attempt <= retriableOptions.retryCount && error instanceof PostHogFetchHttpError) error.cancelResponseBody();
|
|
977
|
+
return shouldRetry;
|
|
978
|
+
}
|
|
862
979
|
});
|
|
863
980
|
}
|
|
864
981
|
async _shutdown(shutdownTimeoutMs = 30000) {
|
package/dist/types.d.ts
CHANGED
|
@@ -274,6 +274,7 @@ export declare enum PostHogPersistedProperty {
|
|
|
274
274
|
InstalledAppBuild = "installed_app_build",// only used by posthog-react-native
|
|
275
275
|
InstalledAppVersion = "installed_app_version",// only used by posthog-react-native
|
|
276
276
|
SessionReplay = "session_replay",// only used by posthog-react-native
|
|
277
|
+
PushRegistered = "push_registered",
|
|
277
278
|
SessionReplayEventTriggerActivatedSession = "session_replay_event_trigger_activated_session",
|
|
278
279
|
SurveyLastSeenDate = "survey_last_seen_date",// only used by posthog-react-native
|
|
279
280
|
SurveysSeen = "surveys_seen",// only used by posthog-react-native
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -66,6 +66,7 @@ var PostHogPersistedProperty = /*#__PURE__*/ function(PostHogPersistedProperty)
|
|
|
66
66
|
PostHogPersistedProperty["InstalledAppBuild"] = "installed_app_build";
|
|
67
67
|
PostHogPersistedProperty["InstalledAppVersion"] = "installed_app_version";
|
|
68
68
|
PostHogPersistedProperty["SessionReplay"] = "session_replay";
|
|
69
|
+
PostHogPersistedProperty["PushRegistered"] = "push_registered";
|
|
69
70
|
PostHogPersistedProperty["SessionReplayEventTriggerActivatedSession"] = "session_replay_event_trigger_activated_session";
|
|
70
71
|
PostHogPersistedProperty["SurveyLastSeenDate"] = "survey_last_seen_date";
|
|
71
72
|
PostHogPersistedProperty["SurveysSeen"] = "surveys_seen";
|
package/dist/types.mjs
CHANGED
|
@@ -23,6 +23,7 @@ var types_PostHogPersistedProperty = /*#__PURE__*/ function(PostHogPersistedProp
|
|
|
23
23
|
PostHogPersistedProperty["InstalledAppBuild"] = "installed_app_build";
|
|
24
24
|
PostHogPersistedProperty["InstalledAppVersion"] = "installed_app_version";
|
|
25
25
|
PostHogPersistedProperty["SessionReplay"] = "session_replay";
|
|
26
|
+
PostHogPersistedProperty["PushRegistered"] = "push_registered";
|
|
26
27
|
PostHogPersistedProperty["SessionReplayEventTriggerActivatedSession"] = "session_replay_event_trigger_activated_session";
|
|
27
28
|
PostHogPersistedProperty["SurveyLastSeenDate"] = "survey_last_seen_date";
|
|
28
29
|
PostHogPersistedProperty["SurveysSeen"] = "surveys_seen";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/core",
|
|
3
|
-
"version": "1.46.
|
|
3
|
+
"version": "1.46.9",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@posthog/types": "^1.
|
|
73
|
+
"@posthog/types": "^1.402.2"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@rslib/core": "0.10.6",
|
|
@@ -50,10 +50,15 @@ import {
|
|
|
50
50
|
|
|
51
51
|
class PostHogFetchHttpError extends Error {
|
|
52
52
|
name = 'PostHogFetchHttpError'
|
|
53
|
+
private responseBodyTextPromise?: Promise<string>
|
|
54
|
+
private responseBodyTimer?: ReturnType<typeof safeSetTimeout>
|
|
55
|
+
private _bodyReadTimedOut = false
|
|
53
56
|
|
|
54
57
|
constructor(
|
|
55
58
|
public response: PostHogFetchResponse,
|
|
56
|
-
public reqByteLength: number
|
|
59
|
+
public reqByteLength: number,
|
|
60
|
+
private responseBodyDeadline: number,
|
|
61
|
+
private abortController: AbortController
|
|
57
62
|
) {
|
|
58
63
|
super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength)
|
|
59
64
|
}
|
|
@@ -62,12 +67,57 @@ class PostHogFetchHttpError extends Error {
|
|
|
62
67
|
return this.response.status
|
|
63
68
|
}
|
|
64
69
|
|
|
70
|
+
get bodyReadTimedOut(): boolean {
|
|
71
|
+
return this._bodyReadTimedOut
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
get text(): Promise<string> {
|
|
66
|
-
|
|
75
|
+
if (!this.responseBodyTextPromise) {
|
|
76
|
+
if (Date.now() >= this.responseBodyDeadline) {
|
|
77
|
+
this._bodyReadTimedOut = true
|
|
78
|
+
const timeoutError = new Error('Response body read timed out')
|
|
79
|
+
timeoutError.name = 'AbortError'
|
|
80
|
+
this.cancelResponseBody(timeoutError)
|
|
81
|
+
this.responseBodyTextPromise = Promise.reject(timeoutError)
|
|
82
|
+
} else {
|
|
83
|
+
const responseBodyTimeout = new Promise<never>((_resolve, reject) => {
|
|
84
|
+
this.responseBodyTimer = safeSetTimeout(() => {
|
|
85
|
+
this._bodyReadTimedOut = true
|
|
86
|
+
const timeoutError = new Error('Response body read timed out')
|
|
87
|
+
timeoutError.name = 'AbortError'
|
|
88
|
+
// Reject first so the timeout remains the diagnostic if abort rejects the body read synchronously.
|
|
89
|
+
reject(timeoutError)
|
|
90
|
+
this.cancelResponseBody(timeoutError)
|
|
91
|
+
}, this.responseBodyDeadline - Date.now())
|
|
92
|
+
})
|
|
93
|
+
let responseBodyText: Promise<string>
|
|
94
|
+
try {
|
|
95
|
+
responseBodyText = Promise.resolve(this.response.text())
|
|
96
|
+
} catch (error) {
|
|
97
|
+
responseBodyText = Promise.reject(error)
|
|
98
|
+
}
|
|
99
|
+
this.responseBodyTextPromise = Promise.race([responseBodyText, responseBodyTimeout]).finally(() =>
|
|
100
|
+
clearTimeout(this.responseBodyTimer)
|
|
101
|
+
)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return this.responseBodyTextPromise
|
|
67
105
|
}
|
|
68
106
|
|
|
69
107
|
get json(): Promise<any> {
|
|
70
|
-
return this.
|
|
108
|
+
return this.text.then((text) => JSON.parse(text))
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
cancelResponseBody(reason?: unknown): void {
|
|
112
|
+
clearTimeout(this.responseBodyTimer)
|
|
113
|
+
if (!this.abortController.signal.aborted) {
|
|
114
|
+
this.abortController.abort(reason)
|
|
115
|
+
}
|
|
116
|
+
void (async () => {
|
|
117
|
+
try {
|
|
118
|
+
await this.response.body?.cancel()
|
|
119
|
+
} catch {}
|
|
120
|
+
})()
|
|
71
121
|
}
|
|
72
122
|
}
|
|
73
123
|
|
|
@@ -81,6 +131,15 @@ class PostHogFetchNetworkError extends Error {
|
|
|
81
131
|
}
|
|
82
132
|
}
|
|
83
133
|
|
|
134
|
+
type RequiredResponseHandling<T> = {
|
|
135
|
+
type: 'required'
|
|
136
|
+
consume: (response: PostHogFetchResponse) => Promise<T>
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
type SuccessfulWriteResponseHandling = {
|
|
140
|
+
type: 'successful-write'
|
|
141
|
+
}
|
|
142
|
+
|
|
84
143
|
export const maybeAdd = (key: string, value: JsonType | undefined): Record<string, JsonType> =>
|
|
85
144
|
value !== undefined ? { [key]: value } : {}
|
|
86
145
|
|
|
@@ -101,7 +160,11 @@ export async function logFlushError(err: any): Promise<void> {
|
|
|
101
160
|
let text = ''
|
|
102
161
|
try {
|
|
103
162
|
text = await err.text
|
|
104
|
-
} catch {
|
|
163
|
+
} catch {
|
|
164
|
+
if (err.bodyReadTimedOut) {
|
|
165
|
+
text = '<response body read timed out>'
|
|
166
|
+
}
|
|
167
|
+
}
|
|
105
168
|
|
|
106
169
|
console.error(`Error while flushing PostHog: message=${err.message}, response body=${text}`, err)
|
|
107
170
|
} else {
|
|
@@ -612,13 +675,17 @@ export abstract class PostHogCoreStateless {
|
|
|
612
675
|
headers: { ...this.getCustomHeaders(), 'Content-Type': 'application/json' },
|
|
613
676
|
}
|
|
614
677
|
// Don't retry remote config API calls
|
|
615
|
-
return this.fetchWithRetry(
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
678
|
+
return this.fetchWithRetry(
|
|
679
|
+
url,
|
|
680
|
+
fetchOptions,
|
|
681
|
+
{ type: 'required', consume: (response) => response.json() as Promise<PostHogRemoteConfig> },
|
|
682
|
+
{ retryCount: 0 },
|
|
683
|
+
this.remoteConfigRequestTimeoutMs
|
|
684
|
+
).catch((error) => {
|
|
685
|
+
this._logger.error('Remote config could not be loaded', error)
|
|
686
|
+
this._events.emit('error', error)
|
|
687
|
+
return undefined
|
|
688
|
+
})
|
|
622
689
|
}
|
|
623
690
|
|
|
624
691
|
/***
|
|
@@ -669,10 +736,13 @@ export abstract class PostHogCoreStateless {
|
|
|
669
736
|
return this.fetchWithRetry(
|
|
670
737
|
url,
|
|
671
738
|
fetchOptions,
|
|
739
|
+
{
|
|
740
|
+
type: 'required',
|
|
741
|
+
consume: (response) => response.json() as Promise<PostHogV1FlagsResponse | PostHogV2FlagsResponse>,
|
|
742
|
+
},
|
|
672
743
|
{ retryCount: this.featureFlagsRequestMaxRetries, retryCheck: isRetryableFlagsFetchError },
|
|
673
744
|
this.featureFlagsRequestTimeoutMs
|
|
674
745
|
)
|
|
675
|
-
.then((response) => response.json() as Promise<PostHogV1FlagsResponse | PostHogV2FlagsResponse>)
|
|
676
746
|
.then((response) => ({ success: true as const, response: normalizeFlagsResponse(response) }))
|
|
677
747
|
.catch((error): GetFlagsResult => {
|
|
678
748
|
this._events.emit('error', error)
|
|
@@ -972,25 +1042,26 @@ export abstract class PostHogCoreStateless {
|
|
|
972
1042
|
headers: { ...this.getCustomHeaders(), 'Content-Type': 'application/json' },
|
|
973
1043
|
}
|
|
974
1044
|
|
|
975
|
-
const response = await this.fetchWithRetry(url, fetchOptions
|
|
976
|
-
|
|
1045
|
+
const response = await this.fetchWithRetry(url, fetchOptions, {
|
|
1046
|
+
type: 'required',
|
|
1047
|
+
consume: (response) => {
|
|
977
1048
|
if (response.status !== 200 || !response.json) {
|
|
978
1049
|
const msg = `Surveys API could not be loaded: ${response.status}`
|
|
979
1050
|
const error = new Error(msg)
|
|
980
1051
|
this._logger.error(error)
|
|
981
1052
|
|
|
982
1053
|
this._events.emit('error', new Error(msg))
|
|
983
|
-
return undefined
|
|
1054
|
+
return Promise.resolve(undefined)
|
|
984
1055
|
}
|
|
985
1056
|
|
|
986
1057
|
return response.json() as Promise<SurveyResponse>
|
|
987
|
-
}
|
|
988
|
-
|
|
989
|
-
|
|
1058
|
+
},
|
|
1059
|
+
}).catch((error) => {
|
|
1060
|
+
this._logger.error('Surveys API could not be loaded', error)
|
|
990
1061
|
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
1062
|
+
this._events.emit('error', error)
|
|
1063
|
+
return undefined
|
|
1064
|
+
})
|
|
994
1065
|
|
|
995
1066
|
const newSurveys = response?.surveys
|
|
996
1067
|
|
|
@@ -1352,6 +1423,14 @@ export abstract class PostHogCoreStateless {
|
|
|
1352
1423
|
return headers
|
|
1353
1424
|
}
|
|
1354
1425
|
|
|
1426
|
+
/**
|
|
1427
|
+
* Compresses an outgoing payload. Runtime-specific clients can override this
|
|
1428
|
+
* to avoid using the Web Streams compression implementation.
|
|
1429
|
+
*/
|
|
1430
|
+
protected compressPayload(payload: string): Promise<Blob | null> {
|
|
1431
|
+
return gzipCompress(payload, this.isDebug)
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1355
1434
|
/**
|
|
1356
1435
|
* Builds and sends one `/batch/` request for the given already-normalized
|
|
1357
1436
|
* messages, throwing on transport/HTTP error. Batch-size (413) shrinking,
|
|
@@ -1383,7 +1462,7 @@ export abstract class PostHogCoreStateless {
|
|
|
1383
1462
|
|
|
1384
1463
|
const url = `${this.host}/batch/`
|
|
1385
1464
|
|
|
1386
|
-
const gzippedPayload = !this.disableCompression ? await
|
|
1465
|
+
const gzippedPayload = !this.disableCompression ? await this.compressPayload(payload) : null
|
|
1387
1466
|
const fetchOptions: PostHogFetchOptions = {
|
|
1388
1467
|
method: 'POST',
|
|
1389
1468
|
headers: {
|
|
@@ -1394,11 +1473,10 @@ export abstract class PostHogCoreStateless {
|
|
|
1394
1473
|
body: gzippedPayload || payload,
|
|
1395
1474
|
}
|
|
1396
1475
|
|
|
1397
|
-
|
|
1398
|
-
//
|
|
1476
|
+
await this.fetchWithRetry(url, fetchOptions, { type: 'successful-write' }, retryOptions)
|
|
1477
|
+
// The response handler above cancels the body to prevent cross-request promise warnings
|
|
1399
1478
|
// in runtimes like Cloudflare Workers that enforce body consumption.
|
|
1400
1479
|
// See: https://github.com/PostHog/posthog-js/issues/3173
|
|
1401
|
-
await response.body?.cancel()?.catch(() => {})
|
|
1402
1480
|
}
|
|
1403
1481
|
|
|
1404
1482
|
private async _flush(): Promise<void> {
|
|
@@ -1540,7 +1618,7 @@ export abstract class PostHogCoreStateless {
|
|
|
1540
1618
|
const serialized = JSON.stringify(payload)
|
|
1541
1619
|
const url = `${this.host}/i/v1/logs?token=${encodeURIComponent(this.apiKey)}`
|
|
1542
1620
|
|
|
1543
|
-
const gzippedPayload = !this.disableCompression ? await
|
|
1621
|
+
const gzippedPayload = !this.disableCompression ? await this.compressPayload(serialized) : null
|
|
1544
1622
|
const fetchOptions: PostHogFetchOptions = {
|
|
1545
1623
|
method: 'POST',
|
|
1546
1624
|
headers: {
|
|
@@ -1552,14 +1630,19 @@ export abstract class PostHogCoreStateless {
|
|
|
1552
1630
|
}
|
|
1553
1631
|
|
|
1554
1632
|
try {
|
|
1555
|
-
await this.fetchWithRetry(
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1633
|
+
await this.fetchWithRetry(
|
|
1634
|
+
url,
|
|
1635
|
+
fetchOptions,
|
|
1636
|
+
{ type: 'successful-write' },
|
|
1637
|
+
{
|
|
1638
|
+
retryCheck: (err) => {
|
|
1639
|
+
if (isPostHogFetchContentTooLargeError(err)) {
|
|
1640
|
+
return false
|
|
1641
|
+
}
|
|
1642
|
+
return isPostHogFetchRetryableError(err)
|
|
1643
|
+
},
|
|
1644
|
+
}
|
|
1645
|
+
)
|
|
1563
1646
|
return { kind: 'ok' }
|
|
1564
1647
|
} catch (err) {
|
|
1565
1648
|
if (isPostHogFetchContentTooLargeError(err)) {
|
|
@@ -1586,7 +1669,7 @@ export abstract class PostHogCoreStateless {
|
|
|
1586
1669
|
const serialized = JSON.stringify(payload)
|
|
1587
1670
|
const url = `${this.host}/i/v1/metrics?token=${encodeURIComponent(this.apiKey)}`
|
|
1588
1671
|
|
|
1589
|
-
const gzippedPayload = !this.disableCompression ? await
|
|
1672
|
+
const gzippedPayload = !this.disableCompression ? await this.compressPayload(serialized) : null
|
|
1590
1673
|
const fetchOptions: PostHogFetchOptions = {
|
|
1591
1674
|
method: 'POST',
|
|
1592
1675
|
headers: {
|
|
@@ -1598,14 +1681,19 @@ export abstract class PostHogCoreStateless {
|
|
|
1598
1681
|
}
|
|
1599
1682
|
|
|
1600
1683
|
try {
|
|
1601
|
-
await this.fetchWithRetry(
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1684
|
+
await this.fetchWithRetry(
|
|
1685
|
+
url,
|
|
1686
|
+
fetchOptions,
|
|
1687
|
+
{ type: 'successful-write' },
|
|
1688
|
+
{
|
|
1689
|
+
retryCheck: (err) => {
|
|
1690
|
+
if (isPostHogFetchContentTooLargeError(err)) {
|
|
1691
|
+
return false
|
|
1692
|
+
}
|
|
1693
|
+
return isPostHogFetchRetryableError(err)
|
|
1694
|
+
},
|
|
1695
|
+
}
|
|
1696
|
+
)
|
|
1609
1697
|
return { kind: 'ok' }
|
|
1610
1698
|
} catch (err) {
|
|
1611
1699
|
if (isPostHogFetchContentTooLargeError(err)) {
|
|
@@ -1621,12 +1709,27 @@ export abstract class PostHogCoreStateless {
|
|
|
1621
1709
|
}
|
|
1622
1710
|
}
|
|
1623
1711
|
|
|
1624
|
-
private
|
|
1712
|
+
private fetchWithRetry<T>(
|
|
1625
1713
|
url: string,
|
|
1626
1714
|
options: PostHogFetchOptions,
|
|
1715
|
+
responseHandling: RequiredResponseHandling<T>,
|
|
1627
1716
|
retryOptions?: Partial<RetriableOptions>,
|
|
1628
1717
|
requestTimeout?: number
|
|
1629
|
-
): Promise<
|
|
1718
|
+
): Promise<T>
|
|
1719
|
+
private fetchWithRetry(
|
|
1720
|
+
url: string,
|
|
1721
|
+
options: PostHogFetchOptions,
|
|
1722
|
+
responseHandling: SuccessfulWriteResponseHandling,
|
|
1723
|
+
retryOptions?: Partial<RetriableOptions>,
|
|
1724
|
+
requestTimeout?: number
|
|
1725
|
+
): Promise<void>
|
|
1726
|
+
private async fetchWithRetry<T>(
|
|
1727
|
+
url: string,
|
|
1728
|
+
options: PostHogFetchOptions,
|
|
1729
|
+
responseHandling: RequiredResponseHandling<T> | SuccessfulWriteResponseHandling,
|
|
1730
|
+
retryOptions?: Partial<RetriableOptions>,
|
|
1731
|
+
requestTimeout?: number
|
|
1732
|
+
): Promise<T | void> {
|
|
1630
1733
|
const body = options.body ? options.body : ''
|
|
1631
1734
|
let reqByteLength = -1
|
|
1632
1735
|
try {
|
|
@@ -1644,34 +1747,115 @@ export abstract class PostHogCoreStateless {
|
|
|
1644
1747
|
}
|
|
1645
1748
|
}
|
|
1646
1749
|
|
|
1750
|
+
const retriableOptions = { ...this._retryOptions, ...retryOptions }
|
|
1751
|
+
let attempt = 0
|
|
1752
|
+
|
|
1647
1753
|
return await retriable(
|
|
1648
1754
|
async () => {
|
|
1755
|
+
attempt++
|
|
1649
1756
|
const ctrl = new AbortController()
|
|
1650
1757
|
const timeoutMs = requestTimeout ?? this.requestTimeout
|
|
1651
|
-
const
|
|
1758
|
+
const requestDeadline = Date.now() + timeoutMs
|
|
1759
|
+
let timer: ReturnType<typeof safeSetTimeout>
|
|
1760
|
+
// `fetch` is SDK-injectable, so it may ignore abort while resolving headers or
|
|
1761
|
+
// consuming the body. Race both phases against one request deadline rather than
|
|
1762
|
+
// relying only on standards-compliant AbortSignal behavior.
|
|
1763
|
+
const deadline = new Promise<never>((_resolve, reject) => {
|
|
1764
|
+
timer = safeSetTimeout(() => {
|
|
1765
|
+
const timeoutError = new Error(`Request timed out after ${timeoutMs}ms`)
|
|
1766
|
+
timeoutError.name = 'AbortError'
|
|
1767
|
+
// Reject first so this error wins if an abort-aware injected fetch rejects synchronously.
|
|
1768
|
+
reject(timeoutError)
|
|
1769
|
+
ctrl.abort(timeoutError)
|
|
1770
|
+
}, timeoutMs)
|
|
1771
|
+
})
|
|
1772
|
+
|
|
1773
|
+
let res: PostHogFetchResponse | undefined
|
|
1774
|
+
let responseAccepted = false
|
|
1775
|
+
let cancellation: Promise<void> | undefined
|
|
1776
|
+
const cancelBody = (): Promise<void> =>
|
|
1777
|
+
(cancellation ??= (async () => {
|
|
1778
|
+
try {
|
|
1779
|
+
await res?.body?.cancel()
|
|
1780
|
+
} catch {}
|
|
1781
|
+
})())
|
|
1652
1782
|
|
|
1653
|
-
let res: PostHogFetchResponse | null = null
|
|
1654
1783
|
try {
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1784
|
+
let fetchPromise: Promise<PostHogFetchResponse>
|
|
1785
|
+
try {
|
|
1786
|
+
fetchPromise = this.fetch(url, {
|
|
1787
|
+
signal: ctrl.signal,
|
|
1788
|
+
...options,
|
|
1789
|
+
})
|
|
1790
|
+
} catch (e) {
|
|
1791
|
+
throw new PostHogFetchNetworkError(e)
|
|
1792
|
+
}
|
|
1793
|
+
void fetchPromise
|
|
1794
|
+
.then((lateResponse) => {
|
|
1795
|
+
if (ctrl.signal.aborted && !responseAccepted) {
|
|
1796
|
+
// Release a late response from an injected fetch that ignored the header deadline.
|
|
1797
|
+
void Promise.resolve(lateResponse.body?.cancel()).catch(() => {})
|
|
1798
|
+
}
|
|
1799
|
+
})
|
|
1800
|
+
.catch(() => {})
|
|
1801
|
+
|
|
1802
|
+
try {
|
|
1803
|
+
res = await Promise.race([fetchPromise, deadline])
|
|
1804
|
+
responseAccepted = true
|
|
1805
|
+
} catch (e) {
|
|
1806
|
+
// Fetch only throws on network errors or timeouts. The explicit deadline also
|
|
1807
|
+
// reaches injected fetch implementations that ignore the abort signal.
|
|
1808
|
+
throw new PostHogFetchNetworkError(e)
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
// If we're in no-cors mode, we can't access the response status.
|
|
1812
|
+
// We only throw on HTTP errors if we're not in no-cors mode.
|
|
1813
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Request/mode#no-cors
|
|
1814
|
+
const isNoCors = options.mode === 'no-cors'
|
|
1815
|
+
if (!isNoCors && (res.status < 200 || res.status >= 400)) {
|
|
1816
|
+
// Read error bodies lazily so retryable statuses are retried immediately. The
|
|
1817
|
+
// getter still uses this attempt's deadline when diagnostics request the body.
|
|
1818
|
+
throw new PostHogFetchHttpError(res, reqByteLength, requestDeadline, ctrl)
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
if (responseHandling.type === 'successful-write') {
|
|
1822
|
+
try {
|
|
1823
|
+
await Promise.race([cancelBody(), deadline])
|
|
1824
|
+
} catch {
|
|
1825
|
+
// Once a write endpoint has returned success, a stalled body cancellation
|
|
1826
|
+
// must not retry the accepted payload. Cancellation was attempted for the
|
|
1827
|
+
// full remaining deadline and continues best-effort in `finally`.
|
|
1828
|
+
}
|
|
1829
|
+
return
|
|
1830
|
+
}
|
|
1831
|
+
|
|
1832
|
+
try {
|
|
1833
|
+
return await Promise.race([responseHandling.consume(res), deadline])
|
|
1834
|
+
} catch (e) {
|
|
1835
|
+
if (ctrl.signal.aborted) {
|
|
1836
|
+
throw new PostHogFetchNetworkError(e)
|
|
1837
|
+
}
|
|
1838
|
+
throw e
|
|
1839
|
+
}
|
|
1662
1840
|
} finally {
|
|
1663
1841
|
clearTimeout(timer)
|
|
1842
|
+
if (ctrl.signal.aborted && res) {
|
|
1843
|
+
// Do not await after the deadline: injected body cancellation may itself never settle.
|
|
1844
|
+
void cancelBody()
|
|
1845
|
+
}
|
|
1664
1846
|
}
|
|
1665
|
-
// If we're in no-cors mode, we can't access the response status
|
|
1666
|
-
// We only throw on HTTP errors if we're not in no-cors mode
|
|
1667
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Request/mode#no-cors
|
|
1668
|
-
const isNoCors = options.mode === 'no-cors'
|
|
1669
|
-
if (!isNoCors && (res.status < 200 || res.status >= 400)) {
|
|
1670
|
-
throw new PostHogFetchHttpError(res, reqByteLength)
|
|
1671
|
-
}
|
|
1672
|
-
return res
|
|
1673
1847
|
},
|
|
1674
|
-
{
|
|
1848
|
+
{
|
|
1849
|
+
...retriableOptions,
|
|
1850
|
+
retryCheck: (error) => {
|
|
1851
|
+
const shouldRetry = retriableOptions.retryCheck(error)
|
|
1852
|
+
if (shouldRetry && attempt <= retriableOptions.retryCount && error instanceof PostHogFetchHttpError) {
|
|
1853
|
+
// This response will not be surfaced, so release its body without delaying the retry.
|
|
1854
|
+
error.cancelResponseBody()
|
|
1855
|
+
}
|
|
1856
|
+
return shouldRetry
|
|
1857
|
+
},
|
|
1858
|
+
}
|
|
1675
1859
|
)
|
|
1676
1860
|
}
|
|
1677
1861
|
|
package/src/types.ts
CHANGED
|
@@ -284,6 +284,10 @@ export enum PostHogPersistedProperty {
|
|
|
284
284
|
InstalledAppBuild = 'installed_app_build', // only used by posthog-react-native
|
|
285
285
|
InstalledAppVersion = 'installed_app_version', // only used by posthog-react-native
|
|
286
286
|
SessionReplay = 'session_replay', // only used by posthog-react-native
|
|
287
|
+
// Set by a manual registerPushNotificationToken(): the native SDK persists the
|
|
288
|
+
// subscription across launches, so cleanup (unregister/reset) must boot native even in a
|
|
289
|
+
// process where nothing else initialized it. Only used by posthog-react-native.
|
|
290
|
+
PushRegistered = 'push_registered',
|
|
287
291
|
// Session id for which an event trigger has activated session replay. only used by posthog-react-native
|
|
288
292
|
SessionReplayEventTriggerActivatedSession = 'session_replay_event_trigger_activated_session',
|
|
289
293
|
SurveyLastSeenDate = 'survey_last_seen_date', // only used by posthog-react-native
|