@posthog/core 1.1.0 → 1.2.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/dist/error-tracking/chunk-ids.js +1 -1
- package/dist/error-tracking/chunk-ids.mjs +1 -1
- package/dist/error-tracking/coercers/error-event-coercer.js +4 -5
- package/dist/error-tracking/coercers/error-event-coercer.mjs +4 -5
- package/dist/error-tracking/coercers/event-coercer.js +1 -2
- package/dist/error-tracking/coercers/event-coercer.mjs +1 -2
- package/dist/error-tracking/coercers/object-coercer.js +1 -2
- package/dist/error-tracking/coercers/object-coercer.mjs +1 -2
- package/dist/error-tracking/coercers/primitive-coercer.js +1 -2
- package/dist/error-tracking/coercers/primitive-coercer.mjs +1 -2
- package/dist/error-tracking/coercers/promise-rejection-event.js +4 -5
- package/dist/error-tracking/coercers/promise-rejection-event.mjs +4 -5
- package/dist/error-tracking/coercers/string-coercer.js +3 -4
- package/dist/error-tracking/coercers/string-coercer.mjs +3 -4
- package/dist/error-tracking/coercers/utils.js +2 -4
- package/dist/error-tracking/coercers/utils.mjs +2 -4
- package/dist/error-tracking/error-properties-builder.d.ts +6 -6
- package/dist/error-tracking/error-properties-builder.d.ts.map +1 -1
- package/dist/error-tracking/error-properties-builder.js +17 -27
- package/dist/error-tracking/error-properties-builder.mjs +16 -26
- package/dist/error-tracking/parsers/index.js +2 -4
- package/dist/error-tracking/parsers/index.mjs +2 -4
- package/dist/error-tracking/parsers/node.js +3 -5
- package/dist/error-tracking/parsers/node.mjs +3 -5
- package/dist/error-tracking/utils.js +4 -4
- package/dist/error-tracking/utils.mjs +4 -4
- package/dist/eventemitter.js +4 -4
- package/dist/eventemitter.mjs +4 -4
- package/dist/featureFlagUtils.js +20 -45
- package/dist/featureFlagUtils.mjs +20 -45
- package/dist/gzip.js +1 -2
- package/dist/gzip.mjs +1 -2
- package/dist/index.d.ts +4 -366
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -1225
- package/dist/index.mjs +5 -1190
- package/dist/posthog-core-stateless.d.ts +204 -0
- package/dist/posthog-core-stateless.d.ts.map +1 -0
- package/dist/posthog-core-stateless.js +675 -0
- package/dist/posthog-core-stateless.mjs +632 -0
- package/dist/posthog-core.d.ts +171 -0
- package/dist/posthog-core.d.ts.map +1 -0
- package/dist/posthog-core.js +554 -0
- package/dist/posthog-core.mjs +520 -0
- package/dist/testing/PostHogCoreTestClient.d.ts +2 -1
- package/dist/testing/PostHogCoreTestClient.d.ts.map +1 -1
- package/dist/testing/PostHogCoreTestClient.js +9 -11
- package/dist/testing/PostHogCoreTestClient.mjs +8 -10
- package/dist/testing/test-utils.js +1 -1
- package/dist/testing/test-utils.mjs +1 -1
- package/dist/utils/bucketed-rate-limiter.js +8 -12
- package/dist/utils/bucketed-rate-limiter.mjs +8 -12
- package/dist/utils/index.js +3 -3
- package/dist/utils/index.mjs +3 -3
- package/dist/utils/type-utils.js +1 -1
- package/dist/utils/type-utils.mjs +1 -1
- package/dist/vendor/uuidv7.js +12 -16
- package/dist/vendor/uuidv7.mjs +12 -16
- package/package.json +3 -2
- package/src/__tests__/featureFlagUtils.spec.ts +427 -0
- package/src/__tests__/gzip.spec.ts +69 -0
- package/src/__tests__/posthog.ai.spec.ts +110 -0
- package/src/__tests__/posthog.capture.spec.ts +91 -0
- package/src/__tests__/posthog.core.spec.ts +135 -0
- package/src/__tests__/posthog.debug.spec.ts +36 -0
- package/src/__tests__/posthog.enqueue.spec.ts +93 -0
- package/src/__tests__/posthog.featureflags.spec.ts +1106 -0
- package/src/__tests__/posthog.featureflags.v1.spec.ts +922 -0
- package/src/__tests__/posthog.flush.spec.ts +237 -0
- package/src/__tests__/posthog.gdpr.spec.ts +50 -0
- package/src/__tests__/posthog.groups.spec.ts +96 -0
- package/src/__tests__/posthog.identify.spec.ts +194 -0
- package/src/__tests__/posthog.init.spec.ts +110 -0
- package/src/__tests__/posthog.listeners.spec.ts +51 -0
- package/src/__tests__/posthog.register.spec.ts +47 -0
- package/src/__tests__/posthog.reset.spec.ts +76 -0
- package/src/__tests__/posthog.sessions.spec.ts +63 -0
- package/src/__tests__/posthog.setProperties.spec.ts +102 -0
- package/src/__tests__/posthog.shutdown.spec.ts +88 -0
- package/src/__tests__/utils.spec.ts +36 -0
- package/src/error-tracking/chunk-ids.ts +58 -0
- package/src/error-tracking/coercers/dom-exception-coercer.ts +38 -0
- package/src/error-tracking/coercers/error-coercer.ts +36 -0
- package/src/error-tracking/coercers/error-event-coercer.ts +24 -0
- package/src/error-tracking/coercers/event-coercer.ts +19 -0
- package/src/error-tracking/coercers/index.ts +8 -0
- package/src/error-tracking/coercers/object-coercer.ts +76 -0
- package/src/error-tracking/coercers/primitive-coercer.ts +19 -0
- package/src/error-tracking/coercers/promise-rejection-event.spec.ts +77 -0
- package/src/error-tracking/coercers/promise-rejection-event.ts +53 -0
- package/src/error-tracking/coercers/string-coercer.spec.ts +26 -0
- package/src/error-tracking/coercers/string-coercer.ts +31 -0
- package/src/error-tracking/coercers/utils.ts +33 -0
- package/src/error-tracking/error-properties-builder.coerce.spec.ts +202 -0
- package/src/error-tracking/error-properties-builder.parse.spec.ts +30 -0
- package/src/error-tracking/error-properties-builder.ts +167 -0
- package/src/error-tracking/index.ts +5 -0
- package/src/error-tracking/parsers/base.ts +29 -0
- package/src/error-tracking/parsers/chrome.ts +53 -0
- package/src/error-tracking/parsers/gecko.ts +38 -0
- package/src/error-tracking/parsers/index.ts +104 -0
- package/src/error-tracking/parsers/node.ts +111 -0
- package/src/error-tracking/parsers/opera.ts +18 -0
- package/src/error-tracking/parsers/react-native.ts +0 -0
- package/src/error-tracking/parsers/safari.ts +33 -0
- package/src/error-tracking/parsers/winjs.ts +12 -0
- package/src/error-tracking/types.ts +107 -0
- package/src/error-tracking/utils.ts +39 -0
- package/src/eventemitter.ts +27 -0
- package/src/featureFlagUtils.ts +192 -0
- package/src/gzip.ts +29 -0
- package/src/index.ts +8 -0
- package/src/posthog-core-stateless.ts +1226 -0
- package/src/posthog-core.ts +958 -0
- package/src/testing/PostHogCoreTestClient.ts +91 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/test-utils.ts +47 -0
- package/src/types.ts +544 -0
- package/src/utils/bucketed-rate-limiter.spec.ts +33 -0
- package/src/utils/bucketed-rate-limiter.ts +85 -0
- package/src/utils/index.ts +98 -0
- package/src/utils/number-utils.spec.ts +89 -0
- package/src/utils/number-utils.ts +30 -0
- package/src/utils/promise-queue.spec.ts +55 -0
- package/src/utils/promise-queue.ts +30 -0
- package/src/utils/string-utils.ts +23 -0
- package/src/utils/type-utils.ts +134 -0
- package/src/vendor/uuidv7.ts +479 -0
package/dist/eventemitter.mjs
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
class SimpleEventEmitter {
|
|
2
|
+
constructor(){
|
|
3
|
+
this.events = {};
|
|
4
|
+
this.events = {};
|
|
5
|
+
}
|
|
2
6
|
on(event, listener) {
|
|
3
7
|
if (!this.events[event]) this.events[event] = [];
|
|
4
8
|
this.events[event].push(listener);
|
|
@@ -10,9 +14,5 @@ class SimpleEventEmitter {
|
|
|
10
14
|
for (const listener of this.events[event] || [])listener(payload);
|
|
11
15
|
for (const listener of this.events['*'] || [])listener(event, payload);
|
|
12
16
|
}
|
|
13
|
-
constructor(){
|
|
14
|
-
this.events = {};
|
|
15
|
-
this.events = {};
|
|
16
|
-
}
|
|
17
17
|
}
|
|
18
18
|
export { SimpleEventEmitter };
|
package/dist/featureFlagUtils.js
CHANGED
|
@@ -44,22 +44,15 @@ const normalizeFlagsResponse = (flagsResponse)=>{
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
{
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map((param)=>{
|
|
50
|
-
let [k, v] = param;
|
|
51
|
-
return [
|
|
47
|
+
const featureFlags = flagsResponse.featureFlags ?? {};
|
|
48
|
+
const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map(([k, v])=>[
|
|
52
49
|
k,
|
|
53
50
|
parsePayload(v)
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
const flags = Object.fromEntries(Object.entries(featureFlags).map((param)=>{
|
|
57
|
-
let [key, value] = param;
|
|
58
|
-
return [
|
|
51
|
+
]));
|
|
52
|
+
const flags = Object.fromEntries(Object.entries(featureFlags).map(([key, value])=>[
|
|
59
53
|
key,
|
|
60
54
|
getFlagDetailFromFlagAndPayload(key, value, featureFlagPayloads[key])
|
|
61
|
-
];
|
|
62
|
-
}));
|
|
55
|
+
]));
|
|
63
56
|
return {
|
|
64
57
|
...flagsResponse,
|
|
65
58
|
featureFlags,
|
|
@@ -82,24 +75,17 @@ function getFlagDetailFromFlagAndPayload(key, value, payload) {
|
|
|
82
75
|
}
|
|
83
76
|
};
|
|
84
77
|
}
|
|
85
|
-
const getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(
|
|
86
|
-
let [key, detail] = param;
|
|
87
|
-
return [
|
|
78
|
+
const getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(flags ?? {}).map(([key, detail])=>[
|
|
88
79
|
key,
|
|
89
80
|
getFeatureFlagValue(detail)
|
|
90
|
-
];
|
|
91
|
-
}).filter((param)=>{
|
|
92
|
-
let [, value] = param;
|
|
93
|
-
return void 0 !== value;
|
|
94
|
-
}));
|
|
81
|
+
]).filter(([, value])=>void 0 !== value));
|
|
95
82
|
const getPayloadsFromFlags = (flags)=>{
|
|
96
|
-
const safeFlags =
|
|
83
|
+
const safeFlags = flags ?? {};
|
|
97
84
|
return Object.fromEntries(Object.keys(safeFlags).filter((flag)=>{
|
|
98
85
|
const details = safeFlags[flag];
|
|
99
86
|
return details.enabled && details.metadata && void 0 !== details.metadata.payload;
|
|
100
87
|
}).map((flag)=>{
|
|
101
|
-
|
|
102
|
-
const payload = null == (_safeFlags_flag_metadata = safeFlags[flag].metadata) ? void 0 : _safeFlags_flag_metadata.payload;
|
|
88
|
+
const payload = safeFlags[flag].metadata?.payload;
|
|
103
89
|
return [
|
|
104
90
|
flag,
|
|
105
91
|
payload ? parsePayload(payload) : void 0
|
|
@@ -107,13 +93,9 @@ const getPayloadsFromFlags = (flags)=>{
|
|
|
107
93
|
}));
|
|
108
94
|
};
|
|
109
95
|
const getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
const payloads = null != (_flagsResponse_featureFlagPayloads = flagsResponse.featureFlagPayloads) ? _flagsResponse_featureFlagPayloads : {};
|
|
114
|
-
return Object.fromEntries(Object.entries(flags).map((param)=>{
|
|
115
|
-
let [key, value] = param;
|
|
116
|
-
return [
|
|
96
|
+
const flags = flagsResponse.featureFlags ?? {};
|
|
97
|
+
const payloads = flagsResponse.featureFlagPayloads ?? {};
|
|
98
|
+
return Object.fromEntries(Object.entries(flags).map(([key, value])=>[
|
|
117
99
|
key,
|
|
118
100
|
{
|
|
119
101
|
key: key,
|
|
@@ -123,39 +105,32 @@ const getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{
|
|
|
123
105
|
metadata: {
|
|
124
106
|
id: void 0,
|
|
125
107
|
version: void 0,
|
|
126
|
-
payload:
|
|
108
|
+
payload: payloads?.[key] ? JSON.stringify(payloads[key]) : void 0,
|
|
127
109
|
description: void 0
|
|
128
110
|
}
|
|
129
111
|
}
|
|
130
|
-
];
|
|
131
|
-
}));
|
|
132
|
-
};
|
|
133
|
-
const getFeatureFlagValue = (detail)=>{
|
|
134
|
-
var _detail_variant;
|
|
135
|
-
return void 0 === detail ? void 0 : null != (_detail_variant = detail.variant) ? _detail_variant : detail.enabled;
|
|
112
|
+
]));
|
|
136
113
|
};
|
|
114
|
+
const getFeatureFlagValue = (detail)=>void 0 === detail ? void 0 : detail.variant ?? detail.enabled;
|
|
137
115
|
const parsePayload = (response)=>{
|
|
138
116
|
if ('string' != typeof response) return response;
|
|
139
117
|
try {
|
|
140
118
|
return JSON.parse(response);
|
|
141
|
-
} catch
|
|
119
|
+
} catch {
|
|
142
120
|
return response;
|
|
143
121
|
}
|
|
144
122
|
};
|
|
145
123
|
const createFlagsResponseFromFlagsAndPayloads = (featureFlags, featureFlagPayloads)=>{
|
|
146
124
|
const allKeys = [
|
|
147
125
|
...new Set([
|
|
148
|
-
...Object.keys(
|
|
149
|
-
...Object.keys(
|
|
126
|
+
...Object.keys(featureFlags ?? {}),
|
|
127
|
+
...Object.keys(featureFlagPayloads ?? {})
|
|
150
128
|
])
|
|
151
129
|
];
|
|
152
|
-
const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>{
|
|
153
|
-
var _featureFlags_key;
|
|
154
|
-
return res[key] = null != (_featureFlags_key = featureFlags[key]) ? _featureFlags_key : true, res;
|
|
155
|
-
}, {});
|
|
130
|
+
const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>(res[key] = featureFlags[key] ?? true, res), {});
|
|
156
131
|
const flagDetails = {
|
|
157
132
|
featureFlags: enabledFlags,
|
|
158
|
-
featureFlagPayloads:
|
|
133
|
+
featureFlagPayloads: featureFlagPayloads ?? {}
|
|
159
134
|
};
|
|
160
135
|
return normalizeFlagsResponse(flagDetails);
|
|
161
136
|
};
|
|
@@ -9,22 +9,15 @@ const normalizeFlagsResponse = (flagsResponse)=>{
|
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
11
|
{
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map((param)=>{
|
|
15
|
-
let [k, v] = param;
|
|
16
|
-
return [
|
|
12
|
+
const featureFlags = flagsResponse.featureFlags ?? {};
|
|
13
|
+
const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map(([k, v])=>[
|
|
17
14
|
k,
|
|
18
15
|
parsePayload(v)
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
const flags = Object.fromEntries(Object.entries(featureFlags).map((param)=>{
|
|
22
|
-
let [key, value] = param;
|
|
23
|
-
return [
|
|
16
|
+
]));
|
|
17
|
+
const flags = Object.fromEntries(Object.entries(featureFlags).map(([key, value])=>[
|
|
24
18
|
key,
|
|
25
19
|
getFlagDetailFromFlagAndPayload(key, value, featureFlagPayloads[key])
|
|
26
|
-
];
|
|
27
|
-
}));
|
|
20
|
+
]));
|
|
28
21
|
return {
|
|
29
22
|
...flagsResponse,
|
|
30
23
|
featureFlags,
|
|
@@ -47,24 +40,17 @@ function getFlagDetailFromFlagAndPayload(key, value, payload) {
|
|
|
47
40
|
}
|
|
48
41
|
};
|
|
49
42
|
}
|
|
50
|
-
const getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(
|
|
51
|
-
let [key, detail] = param;
|
|
52
|
-
return [
|
|
43
|
+
const getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(flags ?? {}).map(([key, detail])=>[
|
|
53
44
|
key,
|
|
54
45
|
getFeatureFlagValue(detail)
|
|
55
|
-
];
|
|
56
|
-
}).filter((param)=>{
|
|
57
|
-
let [, value] = param;
|
|
58
|
-
return void 0 !== value;
|
|
59
|
-
}));
|
|
46
|
+
]).filter(([, value])=>void 0 !== value));
|
|
60
47
|
const getPayloadsFromFlags = (flags)=>{
|
|
61
|
-
const safeFlags =
|
|
48
|
+
const safeFlags = flags ?? {};
|
|
62
49
|
return Object.fromEntries(Object.keys(safeFlags).filter((flag)=>{
|
|
63
50
|
const details = safeFlags[flag];
|
|
64
51
|
return details.enabled && details.metadata && void 0 !== details.metadata.payload;
|
|
65
52
|
}).map((flag)=>{
|
|
66
|
-
|
|
67
|
-
const payload = null == (_safeFlags_flag_metadata = safeFlags[flag].metadata) ? void 0 : _safeFlags_flag_metadata.payload;
|
|
53
|
+
const payload = safeFlags[flag].metadata?.payload;
|
|
68
54
|
return [
|
|
69
55
|
flag,
|
|
70
56
|
payload ? parsePayload(payload) : void 0
|
|
@@ -72,13 +58,9 @@ const getPayloadsFromFlags = (flags)=>{
|
|
|
72
58
|
}));
|
|
73
59
|
};
|
|
74
60
|
const getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
const payloads = null != (_flagsResponse_featureFlagPayloads = flagsResponse.featureFlagPayloads) ? _flagsResponse_featureFlagPayloads : {};
|
|
79
|
-
return Object.fromEntries(Object.entries(flags).map((param)=>{
|
|
80
|
-
let [key, value] = param;
|
|
81
|
-
return [
|
|
61
|
+
const flags = flagsResponse.featureFlags ?? {};
|
|
62
|
+
const payloads = flagsResponse.featureFlagPayloads ?? {};
|
|
63
|
+
return Object.fromEntries(Object.entries(flags).map(([key, value])=>[
|
|
82
64
|
key,
|
|
83
65
|
{
|
|
84
66
|
key: key,
|
|
@@ -88,39 +70,32 @@ const getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{
|
|
|
88
70
|
metadata: {
|
|
89
71
|
id: void 0,
|
|
90
72
|
version: void 0,
|
|
91
|
-
payload:
|
|
73
|
+
payload: payloads?.[key] ? JSON.stringify(payloads[key]) : void 0,
|
|
92
74
|
description: void 0
|
|
93
75
|
}
|
|
94
76
|
}
|
|
95
|
-
];
|
|
96
|
-
}));
|
|
97
|
-
};
|
|
98
|
-
const getFeatureFlagValue = (detail)=>{
|
|
99
|
-
var _detail_variant;
|
|
100
|
-
return void 0 === detail ? void 0 : null != (_detail_variant = detail.variant) ? _detail_variant : detail.enabled;
|
|
77
|
+
]));
|
|
101
78
|
};
|
|
79
|
+
const getFeatureFlagValue = (detail)=>void 0 === detail ? void 0 : detail.variant ?? detail.enabled;
|
|
102
80
|
const parsePayload = (response)=>{
|
|
103
81
|
if ('string' != typeof response) return response;
|
|
104
82
|
try {
|
|
105
83
|
return JSON.parse(response);
|
|
106
|
-
} catch
|
|
84
|
+
} catch {
|
|
107
85
|
return response;
|
|
108
86
|
}
|
|
109
87
|
};
|
|
110
88
|
const createFlagsResponseFromFlagsAndPayloads = (featureFlags, featureFlagPayloads)=>{
|
|
111
89
|
const allKeys = [
|
|
112
90
|
...new Set([
|
|
113
|
-
...Object.keys(
|
|
114
|
-
...Object.keys(
|
|
91
|
+
...Object.keys(featureFlags ?? {}),
|
|
92
|
+
...Object.keys(featureFlagPayloads ?? {})
|
|
115
93
|
])
|
|
116
94
|
];
|
|
117
|
-
const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>{
|
|
118
|
-
var _featureFlags_key;
|
|
119
|
-
return res[key] = null != (_featureFlags_key = featureFlags[key]) ? _featureFlags_key : true, res;
|
|
120
|
-
}, {});
|
|
95
|
+
const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>(res[key] = featureFlags[key] ?? true, res), {});
|
|
121
96
|
const flagDetails = {
|
|
122
97
|
featureFlags: enabledFlags,
|
|
123
|
-
featureFlagPayloads:
|
|
98
|
+
featureFlagPayloads: featureFlagPayloads ?? {}
|
|
124
99
|
};
|
|
125
100
|
return normalizeFlagsResponse(flagDetails);
|
|
126
101
|
};
|
package/dist/gzip.js
CHANGED
|
@@ -30,8 +30,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
30
30
|
function isGzipSupported() {
|
|
31
31
|
return 'CompressionStream' in globalThis;
|
|
32
32
|
}
|
|
33
|
-
async function gzipCompress(input) {
|
|
34
|
-
let isDebug = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;
|
|
33
|
+
async function gzipCompress(input, isDebug = true) {
|
|
35
34
|
try {
|
|
36
35
|
const dataStream = new Blob([
|
|
37
36
|
input
|
package/dist/gzip.mjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
function isGzipSupported() {
|
|
2
2
|
return 'CompressionStream' in globalThis;
|
|
3
3
|
}
|
|
4
|
-
async function gzipCompress(input) {
|
|
5
|
-
let isDebug = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : true;
|
|
4
|
+
async function gzipCompress(input, isDebug = true) {
|
|
6
5
|
try {
|
|
7
6
|
const dataStream = new Blob([
|
|
8
7
|
input
|
package/dist/index.d.ts
CHANGED
|
@@ -1,371 +1,9 @@
|
|
|
1
|
-
import { PostHogFetchOptions, PostHogFetchResponse, PostHogAutocaptureElement, PostHogFlagsResponse, PostHogCoreOptions, PostHogEventProperties, PostHogPersistedProperty, PostHogCaptureOptions, JsonType, PostHogRemoteConfig, FeatureFlagValue, PostHogFeatureFlagDetails, FeatureFlagDetail, SurveyResponse, PostHogGroupProperties } from './types';
|
|
2
|
-
import { RetriableOptions } from './utils';
|
|
3
|
-
import { SimpleEventEmitter } from './eventemitter';
|
|
4
1
|
export { getFeatureFlagValue } from './featureFlagUtils';
|
|
5
2
|
export * from './utils';
|
|
6
3
|
export * as ErrorTracking from './error-tracking';
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
readonly host: string;
|
|
12
|
-
readonly flushAt: number;
|
|
13
|
-
readonly preloadFeatureFlags: boolean;
|
|
14
|
-
readonly disableSurveys: boolean;
|
|
15
|
-
private maxBatchSize;
|
|
16
|
-
private maxQueueSize;
|
|
17
|
-
private flushInterval;
|
|
18
|
-
private flushPromise;
|
|
19
|
-
private shutdownPromise;
|
|
20
|
-
private requestTimeout;
|
|
21
|
-
private featureFlagsRequestTimeoutMs;
|
|
22
|
-
private remoteConfigRequestTimeoutMs;
|
|
23
|
-
private removeDebugCallback?;
|
|
24
|
-
private disableGeoip;
|
|
25
|
-
private historicalMigration;
|
|
26
|
-
protected disabled: boolean;
|
|
27
|
-
protected disableCompression: boolean;
|
|
28
|
-
private defaultOptIn;
|
|
29
|
-
private promiseQueue;
|
|
30
|
-
protected _events: SimpleEventEmitter;
|
|
31
|
-
protected _flushTimer?: any;
|
|
32
|
-
protected _retryOptions: RetriableOptions;
|
|
33
|
-
protected _initPromise: Promise<void>;
|
|
34
|
-
protected _isInitialized: boolean;
|
|
35
|
-
protected _remoteConfigResponsePromise?: Promise<PostHogRemoteConfig | undefined>;
|
|
36
|
-
abstract fetch(url: string, options: PostHogFetchOptions): Promise<PostHogFetchResponse>;
|
|
37
|
-
abstract getLibraryId(): string;
|
|
38
|
-
abstract getLibraryVersion(): string;
|
|
39
|
-
abstract getCustomUserAgent(): string | void;
|
|
40
|
-
abstract getPersistedProperty<T>(key: PostHogPersistedProperty): T | undefined;
|
|
41
|
-
abstract setPersistedProperty<T>(key: PostHogPersistedProperty, value: T | null): void;
|
|
42
|
-
constructor(apiKey: string, options?: PostHogCoreOptions);
|
|
43
|
-
protected logMsgIfDebug(fn: () => void): void;
|
|
44
|
-
protected wrap(fn: () => void): void;
|
|
45
|
-
protected getCommonEventProperties(): PostHogEventProperties;
|
|
46
|
-
get optedOut(): boolean;
|
|
47
|
-
optIn(): Promise<void>;
|
|
48
|
-
optOut(): Promise<void>;
|
|
49
|
-
on(event: string, cb: (...args: any[]) => void): () => void;
|
|
50
|
-
/**
|
|
51
|
-
* Enables or disables debug mode for detailed logging.
|
|
52
|
-
*
|
|
53
|
-
* @remarks
|
|
54
|
-
* Debug mode logs all PostHog calls to the console for troubleshooting.
|
|
55
|
-
* This is useful during development to understand what data is being sent.
|
|
56
|
-
*
|
|
57
|
-
* {@label Initialization}
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```js
|
|
61
|
-
* // enable debug mode
|
|
62
|
-
* posthog.debug(true)
|
|
63
|
-
* ```
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```js
|
|
67
|
-
* // disable debug mode
|
|
68
|
-
* posthog.debug(false)
|
|
69
|
-
* ```
|
|
70
|
-
*
|
|
71
|
-
* @public
|
|
72
|
-
*
|
|
73
|
-
* @param {boolean} [debug] If true, will enable debug mode.
|
|
74
|
-
*/
|
|
75
|
-
debug(enabled?: boolean): void;
|
|
76
|
-
get isDebug(): boolean;
|
|
77
|
-
get isDisabled(): boolean;
|
|
78
|
-
private buildPayload;
|
|
79
|
-
addPendingPromise<T>(promise: Promise<T>): Promise<T>;
|
|
80
|
-
/***
|
|
81
|
-
*** TRACKING
|
|
82
|
-
***/
|
|
83
|
-
protected identifyStateless(distinctId: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
84
|
-
protected identifyStatelessImmediate(distinctId: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): Promise<void>;
|
|
85
|
-
protected captureStateless(distinctId: string, event: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
86
|
-
protected captureStatelessImmediate(distinctId: string, event: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): Promise<void>;
|
|
87
|
-
protected aliasStateless(alias: string, distinctId: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
88
|
-
protected aliasStatelessImmediate(alias: string, distinctId: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): Promise<void>;
|
|
89
|
-
/***
|
|
90
|
-
*** GROUPS
|
|
91
|
-
***/
|
|
92
|
-
protected groupIdentifyStateless(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties, options?: PostHogCaptureOptions, distinctId?: string, eventProperties?: PostHogEventProperties): void;
|
|
93
|
-
protected getRemoteConfig(): Promise<PostHogRemoteConfig | undefined>;
|
|
94
|
-
/***
|
|
95
|
-
*** FEATURE FLAGS
|
|
96
|
-
***/
|
|
97
|
-
protected getFlags(distinctId: string, groups?: Record<string, string | number>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, extraPayload?: Record<string, any>): Promise<PostHogFlagsResponse | undefined>;
|
|
98
|
-
protected getFeatureFlagStateless(key: string, distinctId: string, groups?: Record<string, string>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean): Promise<{
|
|
99
|
-
response: FeatureFlagValue | undefined;
|
|
100
|
-
requestId: string | undefined;
|
|
101
|
-
}>;
|
|
102
|
-
protected getFeatureFlagDetailStateless(key: string, distinctId: string, groups?: Record<string, string>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean): Promise<{
|
|
103
|
-
response: FeatureFlagDetail | undefined;
|
|
104
|
-
requestId: string | undefined;
|
|
105
|
-
} | undefined>;
|
|
106
|
-
protected getFeatureFlagPayloadStateless(key: string, distinctId: string, groups?: Record<string, string>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean): Promise<JsonType | undefined>;
|
|
107
|
-
protected getFeatureFlagPayloadsStateless(distinctId: string, groups?: Record<string, string>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean, flagKeysToEvaluate?: string[]): Promise<PostHogFlagsResponse['featureFlagPayloads'] | undefined>;
|
|
108
|
-
protected getFeatureFlagsStateless(distinctId: string, groups?: Record<string, string | number>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean, flagKeysToEvaluate?: string[]): Promise<{
|
|
109
|
-
flags: PostHogFlagsResponse['featureFlags'] | undefined;
|
|
110
|
-
payloads: PostHogFlagsResponse['featureFlagPayloads'] | undefined;
|
|
111
|
-
requestId: PostHogFlagsResponse['requestId'] | undefined;
|
|
112
|
-
}>;
|
|
113
|
-
protected getFeatureFlagsAndPayloadsStateless(distinctId: string, groups?: Record<string, string | number>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean, flagKeysToEvaluate?: string[]): Promise<{
|
|
114
|
-
flags: PostHogFlagsResponse['featureFlags'] | undefined;
|
|
115
|
-
payloads: PostHogFlagsResponse['featureFlagPayloads'] | undefined;
|
|
116
|
-
requestId: PostHogFlagsResponse['requestId'] | undefined;
|
|
117
|
-
}>;
|
|
118
|
-
protected getFeatureFlagDetailsStateless(distinctId: string, groups?: Record<string, string | number>, personProperties?: Record<string, string>, groupProperties?: Record<string, Record<string, string>>, disableGeoip?: boolean, flagKeysToEvaluate?: string[]): Promise<PostHogFeatureFlagDetails | undefined>;
|
|
119
|
-
/***
|
|
120
|
-
*** SURVEYS
|
|
121
|
-
***/
|
|
122
|
-
getSurveysStateless(): Promise<SurveyResponse['surveys']>;
|
|
123
|
-
/***
|
|
124
|
-
*** SUPER PROPERTIES
|
|
125
|
-
***/
|
|
126
|
-
private _props;
|
|
127
|
-
protected get props(): PostHogEventProperties;
|
|
128
|
-
protected set props(val: PostHogEventProperties | undefined);
|
|
129
|
-
register(properties: PostHogEventProperties): Promise<void>;
|
|
130
|
-
unregister(property: string): Promise<void>;
|
|
131
|
-
/***
|
|
132
|
-
*** QUEUEING AND FLUSHING
|
|
133
|
-
***/
|
|
134
|
-
protected enqueue(type: string, _message: any, options?: PostHogCaptureOptions): void;
|
|
135
|
-
protected sendImmediate(type: string, _message: any, options?: PostHogCaptureOptions): Promise<void>;
|
|
136
|
-
private prepareMessage;
|
|
137
|
-
private clearFlushTimer;
|
|
138
|
-
/**
|
|
139
|
-
* Helper for flushing the queue in the background
|
|
140
|
-
* Avoids unnecessary promise errors
|
|
141
|
-
*/
|
|
142
|
-
private flushBackground;
|
|
143
|
-
/**
|
|
144
|
-
* Flushes the queue of pending events.
|
|
145
|
-
*
|
|
146
|
-
* This function will return a promise that will resolve when the flush is complete,
|
|
147
|
-
* or reject if there was an error (for example if the server or network is down).
|
|
148
|
-
*
|
|
149
|
-
* If there is already a flush in progress, this function will wait for that flush to complete.
|
|
150
|
-
*
|
|
151
|
-
* It's recommended to do error handling in the callback of the promise.
|
|
152
|
-
*
|
|
153
|
-
* {@label Initialization}
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
* ```js
|
|
157
|
-
* // flush with error handling
|
|
158
|
-
* posthog.flush().then(() => {
|
|
159
|
-
* console.log('Flush complete')
|
|
160
|
-
* }).catch((err) => {
|
|
161
|
-
* console.error('Flush failed', err)
|
|
162
|
-
* })
|
|
163
|
-
* ```
|
|
164
|
-
*
|
|
165
|
-
* @public
|
|
166
|
-
*
|
|
167
|
-
* @throws PostHogFetchHttpError
|
|
168
|
-
* @throws PostHogFetchNetworkError
|
|
169
|
-
* @throws Error
|
|
170
|
-
*/
|
|
171
|
-
flush(): Promise<void>;
|
|
172
|
-
protected getCustomHeaders(): {
|
|
173
|
-
[key: string]: string;
|
|
174
|
-
};
|
|
175
|
-
private _flush;
|
|
176
|
-
private fetchWithRetry;
|
|
177
|
-
_shutdown(shutdownTimeoutMs?: number): Promise<void>;
|
|
178
|
-
/**
|
|
179
|
-
* Shuts down the PostHog instance and ensures all events are sent.
|
|
180
|
-
*
|
|
181
|
-
* Call shutdown() once before the process exits to ensure that all events have been sent and all promises
|
|
182
|
-
* have resolved. Do not use this function if you intend to keep using this PostHog instance after calling it.
|
|
183
|
-
* Use flush() for per-request cleanup instead.
|
|
184
|
-
*
|
|
185
|
-
* {@label Initialization}
|
|
186
|
-
*
|
|
187
|
-
* @example
|
|
188
|
-
* ```js
|
|
189
|
-
* // shutdown before process exit
|
|
190
|
-
* process.on('SIGINT', async () => {
|
|
191
|
-
* await posthog.shutdown()
|
|
192
|
-
* process.exit(0)
|
|
193
|
-
* })
|
|
194
|
-
* ```
|
|
195
|
-
*
|
|
196
|
-
* @public
|
|
197
|
-
*
|
|
198
|
-
* @param {number} [shutdownTimeoutMs=30000] Maximum time to wait for shutdown in milliseconds
|
|
199
|
-
* @returns {Promise<void>} A promise that resolves when shutdown is complete
|
|
200
|
-
*/
|
|
201
|
-
shutdown(shutdownTimeoutMs?: number): Promise<void>;
|
|
202
|
-
}
|
|
203
|
-
export declare abstract class PostHogCore extends PostHogCoreStateless {
|
|
204
|
-
private sendFeatureFlagEvent;
|
|
205
|
-
private flagCallReported;
|
|
206
|
-
protected _flagsResponsePromise?: Promise<PostHogFlagsResponse | undefined>;
|
|
207
|
-
protected _sessionExpirationTimeSeconds: number;
|
|
208
|
-
private _sessionMaxLengthSeconds;
|
|
209
|
-
protected sessionProps: PostHogEventProperties;
|
|
210
|
-
constructor(apiKey: string, options?: PostHogCoreOptions);
|
|
211
|
-
protected setupBootstrap(options?: Partial<PostHogCoreOptions>): void;
|
|
212
|
-
private clearProps;
|
|
213
|
-
on(event: string, cb: (...args: any[]) => void): () => void;
|
|
214
|
-
reset(propertiesToKeep?: PostHogPersistedProperty[]): void;
|
|
215
|
-
protected getCommonEventProperties(): PostHogEventProperties;
|
|
216
|
-
private enrichProperties;
|
|
217
|
-
/**
|
|
218
|
-
* Returns the current session_id.
|
|
219
|
-
*
|
|
220
|
-
* @remarks
|
|
221
|
-
* This should only be used for informative purposes.
|
|
222
|
-
* Any actual internal use case for the session_id should be handled by the sessionManager.
|
|
223
|
-
*
|
|
224
|
-
* @public
|
|
225
|
-
*
|
|
226
|
-
* @returns The stored session ID for the current session. This may be an empty string if the client is not yet fully initialized.
|
|
227
|
-
*/
|
|
228
|
-
getSessionId(): string;
|
|
229
|
-
resetSessionId(): void;
|
|
230
|
-
/**
|
|
231
|
-
* Returns the current anonymous ID.
|
|
232
|
-
*
|
|
233
|
-
* This is the ID assigned to users before they are identified. It's used to track
|
|
234
|
-
* anonymous users and link them to identified users when they sign up.
|
|
235
|
-
*
|
|
236
|
-
* {@label Identification}
|
|
237
|
-
*
|
|
238
|
-
* @example
|
|
239
|
-
* ```js
|
|
240
|
-
* // get the anonymous ID
|
|
241
|
-
* const anonId = posthog.getAnonymousId()
|
|
242
|
-
* console.log('Anonymous ID:', anonId)
|
|
243
|
-
* ```
|
|
244
|
-
*
|
|
245
|
-
* @public
|
|
246
|
-
*
|
|
247
|
-
* @returns {string} The stored anonymous ID. This may be an empty string if the client is not yet fully initialized.
|
|
248
|
-
*/
|
|
249
|
-
getAnonymousId(): string;
|
|
250
|
-
/**
|
|
251
|
-
* * @returns {string} The stored distinct ID. This may be an empty string if the client is not yet fully initialized.
|
|
252
|
-
*/
|
|
253
|
-
getDistinctId(): string;
|
|
254
|
-
registerForSession(properties: PostHogEventProperties): void;
|
|
255
|
-
unregisterForSession(property: string): void;
|
|
256
|
-
/***
|
|
257
|
-
*** TRACKING
|
|
258
|
-
***/
|
|
259
|
-
identify(distinctId?: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
260
|
-
capture(event: string, properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
261
|
-
alias(alias: string): void;
|
|
262
|
-
autocapture(eventType: string, elements: PostHogAutocaptureElement[], properties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
263
|
-
/***
|
|
264
|
-
*** GROUPS
|
|
265
|
-
***/
|
|
266
|
-
groups(groups: PostHogGroupProperties): void;
|
|
267
|
-
group(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
268
|
-
groupIdentify(groupType: string, groupKey: string | number, groupProperties?: PostHogEventProperties, options?: PostHogCaptureOptions): void;
|
|
269
|
-
/***
|
|
270
|
-
* PROPERTIES
|
|
271
|
-
***/
|
|
272
|
-
setPersonPropertiesForFlags(properties: {
|
|
273
|
-
[type: string]: string;
|
|
274
|
-
}): void;
|
|
275
|
-
resetPersonPropertiesForFlags(): void;
|
|
276
|
-
setGroupPropertiesForFlags(properties: {
|
|
277
|
-
[type: string]: Record<string, string>;
|
|
278
|
-
}): void;
|
|
279
|
-
resetGroupPropertiesForFlags(): void;
|
|
280
|
-
private remoteConfigAsync;
|
|
281
|
-
/***
|
|
282
|
-
*** FEATURE FLAGS
|
|
283
|
-
***/
|
|
284
|
-
private flagsAsync;
|
|
285
|
-
private cacheSessionReplay;
|
|
286
|
-
private _remoteConfigAsync;
|
|
287
|
-
private _flagsAsync;
|
|
288
|
-
private setKnownFeatureFlagDetails;
|
|
289
|
-
private getKnownFeatureFlagDetails;
|
|
290
|
-
protected getKnownFeatureFlags(): PostHogFlagsResponse['featureFlags'] | undefined;
|
|
291
|
-
private getKnownFeatureFlagPayloads;
|
|
292
|
-
private getBootstrappedFeatureFlagDetails;
|
|
293
|
-
private setBootstrappedFeatureFlagDetails;
|
|
294
|
-
private getBootstrappedFeatureFlags;
|
|
295
|
-
private getBootstrappedFeatureFlagPayloads;
|
|
296
|
-
getFeatureFlag(key: string): FeatureFlagValue | undefined;
|
|
297
|
-
getFeatureFlagPayload(key: string): JsonType | undefined;
|
|
298
|
-
getFeatureFlagPayloads(): PostHogFlagsResponse['featureFlagPayloads'] | undefined;
|
|
299
|
-
getFeatureFlags(): PostHogFlagsResponse['featureFlags'] | undefined;
|
|
300
|
-
getFeatureFlagDetails(): PostHogFeatureFlagDetails | undefined;
|
|
301
|
-
getFeatureFlagsAndPayloads(): {
|
|
302
|
-
flags: PostHogFlagsResponse['featureFlags'] | undefined;
|
|
303
|
-
payloads: PostHogFlagsResponse['featureFlagPayloads'] | undefined;
|
|
304
|
-
};
|
|
305
|
-
isFeatureEnabled(key: string): boolean | undefined;
|
|
306
|
-
reloadFeatureFlags(options?: {
|
|
307
|
-
cb?: (err?: Error, flags?: PostHogFlagsResponse['featureFlags']) => void;
|
|
308
|
-
}): void;
|
|
309
|
-
reloadRemoteConfigAsync(): Promise<PostHogRemoteConfig | undefined>;
|
|
310
|
-
reloadFeatureFlagsAsync(sendAnonDistinctId?: boolean): Promise<PostHogFlagsResponse['featureFlags'] | undefined>;
|
|
311
|
-
onFeatureFlags(cb: (flags: PostHogFlagsResponse['featureFlags']) => void): () => void;
|
|
312
|
-
onFeatureFlag(key: string, cb: (value: FeatureFlagValue) => void): () => void;
|
|
313
|
-
overrideFeatureFlag(flags: PostHogFlagsResponse['featureFlags'] | null): Promise<void>;
|
|
314
|
-
/**
|
|
315
|
-
* Capture a caught exception manually
|
|
316
|
-
*
|
|
317
|
-
* {@label Error tracking}
|
|
318
|
-
*
|
|
319
|
-
* @public
|
|
320
|
-
*
|
|
321
|
-
* @example
|
|
322
|
-
* ```js
|
|
323
|
-
* // Capture a caught exception
|
|
324
|
-
* try {
|
|
325
|
-
* // something that might throw
|
|
326
|
-
* } catch (error) {
|
|
327
|
-
* posthog.captureException(error)
|
|
328
|
-
* }
|
|
329
|
-
* ```
|
|
330
|
-
*
|
|
331
|
-
* @example
|
|
332
|
-
* ```js
|
|
333
|
-
* // With additional properties
|
|
334
|
-
* posthog.captureException(error, {
|
|
335
|
-
* customProperty: 'value',
|
|
336
|
-
* anotherProperty: ['I', 'can be a list'],
|
|
337
|
-
* ...
|
|
338
|
-
* })
|
|
339
|
-
* ```
|
|
340
|
-
*
|
|
341
|
-
* @param {Error} error The error to capture
|
|
342
|
-
* @param {Object} [additionalProperties] Any additional properties to add to the error event
|
|
343
|
-
* @returns {CaptureResult} The result of the capture
|
|
344
|
-
*/
|
|
345
|
-
captureException(error: unknown, additionalProperties?: PostHogEventProperties): void;
|
|
346
|
-
/**
|
|
347
|
-
* Capture written user feedback for a LLM trace. Numeric values are converted to strings.
|
|
348
|
-
*
|
|
349
|
-
* {@label LLM analytics}
|
|
350
|
-
*
|
|
351
|
-
* @public
|
|
352
|
-
*
|
|
353
|
-
* @param traceId The trace ID to capture feedback for.
|
|
354
|
-
* @param userFeedback The feedback to capture.
|
|
355
|
-
*/
|
|
356
|
-
captureTraceFeedback(traceId: string | number, userFeedback: string): void;
|
|
357
|
-
/**
|
|
358
|
-
* Capture a metric for a LLM trace. Numeric values are converted to strings.
|
|
359
|
-
*
|
|
360
|
-
* {@label LLM analytics}
|
|
361
|
-
*
|
|
362
|
-
* @public
|
|
363
|
-
*
|
|
364
|
-
* @param traceId The trace ID to capture the metric for.
|
|
365
|
-
* @param metricName The name of the metric to capture.
|
|
366
|
-
* @param metricValue The value of the metric to capture.
|
|
367
|
-
*/
|
|
368
|
-
captureTraceMetric(traceId: string | number, metricName: string, metricValue: string | number | boolean): void;
|
|
369
|
-
}
|
|
4
|
+
export { uuidv7 } from './vendor/uuidv7';
|
|
5
|
+
export * as testing from './testing';
|
|
6
|
+
export * from './posthog-core';
|
|
7
|
+
export * from './posthog-core-stateless';
|
|
370
8
|
export * from './types';
|
|
371
9
|
//# sourceMappingURL=index.d.ts.map
|