@zuplo/cli 7.4.4 → 7.4.5
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/common/settings.d.ts +1 -0
- package/dist/common/settings.d.ts.map +1 -1
- package/dist/common/settings.js +3 -0
- package/dist/common/settings.js.map +1 -1
- package/dist/deploy/classify-build-probe.d.ts +14 -0
- package/dist/deploy/classify-build-probe.d.ts.map +1 -0
- package/dist/deploy/classify-build-probe.js +35 -0
- package/dist/deploy/classify-build-probe.js.map +1 -0
- package/dist/deploy/classify-build-probe.test.d.ts +2 -0
- package/dist/deploy/classify-build-probe.test.d.ts.map +1 -0
- package/dist/deploy/classify-build-probe.test.js +51 -0
- package/dist/deploy/classify-build-probe.test.js.map +1 -0
- package/dist/deploy/handler.js +20 -5
- package/dist/deploy/handler.js.map +1 -1
- package/dist/deploy/poll-deployment.d.ts +8 -4
- package/dist/deploy/poll-deployment.d.ts.map +1 -1
- package/dist/deploy/poll-deployment.js +32 -4
- package/dist/deploy/poll-deployment.js.map +1 -1
- package/dist/deploy/poll-deployment.test.d.ts +2 -0
- package/dist/deploy/poll-deployment.test.d.ts.map +1 -0
- package/dist/deploy/poll-deployment.test.js +158 -0
- package/dist/deploy/poll-deployment.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@posthog/core/dist/logs/index.js +1 -1
- package/node_modules/@posthog/core/dist/logs/index.mjs +1 -1
- package/node_modules/@posthog/core/dist/logs/logs-utils.d.ts +4 -13
- package/node_modules/@posthog/core/dist/logs/logs-utils.d.ts.map +1 -1
- package/node_modules/@posthog/core/dist/logs/logs-utils.js +160 -26
- package/node_modules/@posthog/core/dist/logs/logs-utils.mjs +160 -26
- package/node_modules/@posthog/core/dist/metrics/index.js +1 -1
- package/node_modules/@posthog/core/dist/metrics/index.mjs +1 -1
- package/node_modules/@posthog/core/dist/posthog-core.d.ts.map +1 -1
- package/node_modules/@posthog/core/dist/posthog-core.js +12 -7
- package/node_modules/@posthog/core/dist/posthog-core.mjs +12 -7
- package/node_modules/@posthog/core/dist/utils/index.d.ts +1 -1
- package/node_modules/@posthog/core/dist/utils/index.d.ts.map +1 -1
- package/node_modules/@posthog/core/dist/utils/index.js +14 -24
- package/node_modules/@posthog/core/dist/utils/index.mjs +2 -2
- package/node_modules/@posthog/core/dist/utils/json-utils.d.ts +15 -0
- package/node_modules/@posthog/core/dist/utils/json-utils.d.ts.map +1 -1
- package/node_modules/@posthog/core/dist/utils/json-utils.js +24 -0
- package/node_modules/@posthog/core/dist/utils/json-utils.mjs +1 -1
- package/node_modules/@posthog/core/package.json +2 -2
- package/node_modules/@posthog/core/src/logs/index.ts +1 -1
- package/node_modules/@posthog/core/src/logs/logs-utils.spec.ts +314 -9
- package/node_modules/@posthog/core/src/logs/logs-utils.ts +215 -27
- package/node_modules/@posthog/core/src/metrics/index.spec.ts +15 -1
- package/node_modules/@posthog/core/src/metrics/index.ts +1 -1
- package/node_modules/@posthog/core/src/posthog-core.ts +19 -12
- package/node_modules/@posthog/core/src/utils/index.ts +3 -1
- package/node_modules/@posthog/core/src/utils/json-utils.ts +15 -8
- package/node_modules/@posthog/types/dist/capture-log.d.ts +10 -1
- package/node_modules/@posthog/types/dist/capture-log.d.ts.map +1 -1
- package/node_modules/@posthog/types/package.json +1 -1
- package/node_modules/@posthog/types/src/capture-log.ts +8 -1
- package/node_modules/@zuplo/core/package.json +1 -1
- package/node_modules/@zuplo/graphql/package.json +1 -1
- package/node_modules/@zuplo/openapi-tools/package.json +1 -1
- package/node_modules/@zuplo/otel/package.json +1 -1
- package/node_modules/@zuplo/runtime/package.json +1 -1
- package/package.json +11 -11
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isArray, isBoolean, isNull, isNullish, isUndefined } from "../utils/index.mjs";
|
|
2
|
+
import { CIRCULAR_VALUE, FUNCTION_VALUE, MAX_JSON_SAFE_VALUE_DEPTH, MAX_JSON_SAFE_VALUE_ITEMS, MAX_JSON_SAFE_VALUE_NODES, TRUNCATED_VALUE, UNSERIALIZABLE_VALUE, sanitizeString } from "../utils/json-utils.mjs";
|
|
2
3
|
const OTLP_SEVERITY_MAP = {
|
|
3
4
|
trace: {
|
|
4
5
|
text: 'TRACE',
|
|
@@ -32,7 +33,35 @@ function getOtlpSeverityText(level) {
|
|
|
32
33
|
function getOtlpSeverityNumber(level) {
|
|
33
34
|
return (OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY).number;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
const INT64_RANGE_LIMIT = 9223372036854775808;
|
|
37
|
+
const propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
|
|
38
|
+
function newState() {
|
|
39
|
+
return {
|
|
40
|
+
ancestors: new WeakSet(),
|
|
41
|
+
remainingNodes: MAX_JSON_SAFE_VALUE_NODES
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function toOtlpAnyValue(value, logger) {
|
|
45
|
+
try {
|
|
46
|
+
return encodeAnyValue(value, logger, newState(), 0);
|
|
47
|
+
} catch {
|
|
48
|
+
return {
|
|
49
|
+
stringValue: UNSERIALIZABLE_VALUE
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function toOtlpKeyValueList(attrs, logger) {
|
|
54
|
+
try {
|
|
55
|
+
return encodeKeyValueList(attrs, logger, newState(), 0);
|
|
56
|
+
} catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function encodeAnyValue(value, logger, state, depth) {
|
|
61
|
+
if (state.remainingNodes <= 0) return {
|
|
62
|
+
stringValue: TRUNCATED_VALUE
|
|
63
|
+
};
|
|
64
|
+
state.remainingNodes--;
|
|
36
65
|
if (isBoolean(value)) return {
|
|
37
66
|
boolValue: value
|
|
38
67
|
};
|
|
@@ -40,46 +69,129 @@ function toOtlpAnyValue(value) {
|
|
|
40
69
|
if (!Number.isFinite(value)) return {
|
|
41
70
|
stringValue: String(value)
|
|
42
71
|
};
|
|
43
|
-
if (Number.isInteger(value))
|
|
44
|
-
|
|
45
|
-
|
|
72
|
+
if (Number.isInteger(value)) {
|
|
73
|
+
if (Number.isSafeInteger(value)) return {
|
|
74
|
+
intValue: String(value)
|
|
75
|
+
};
|
|
76
|
+
if ('undefined' == typeof BigInt) return {
|
|
77
|
+
stringValue: String(value)
|
|
78
|
+
};
|
|
79
|
+
const decimal = BigInt(value).toString();
|
|
80
|
+
if (value >= INT64_RANGE_LIMIT || value < -INT64_RANGE_LIMIT) {
|
|
81
|
+
logger?.debug(`Attribute ${decimal} is outside the int64 range; encoding it as a string`);
|
|
82
|
+
return {
|
|
83
|
+
stringValue: decimal
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
intValue: decimal
|
|
88
|
+
};
|
|
89
|
+
}
|
|
46
90
|
return {
|
|
47
91
|
doubleValue: value
|
|
48
92
|
};
|
|
49
93
|
}
|
|
50
94
|
if ('string' == typeof value) return {
|
|
51
|
-
stringValue: value
|
|
95
|
+
stringValue: sanitizeString(value)
|
|
52
96
|
};
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
values: value.map((v)=>toOtlpAnyValue(v))
|
|
56
|
-
}
|
|
97
|
+
if ('function' == typeof value) return {
|
|
98
|
+
stringValue: FUNCTION_VALUE
|
|
57
99
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
100
|
+
if ('symbol' == typeof value) return {
|
|
101
|
+
stringValue: String(value)
|
|
102
|
+
};
|
|
103
|
+
if ('object' == typeof value && null !== value) {
|
|
104
|
+
if (state.ancestors.has(value)) return {
|
|
105
|
+
stringValue: CIRCULAR_VALUE
|
|
61
106
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
stringValue: String(value)
|
|
107
|
+
if (depth >= MAX_JSON_SAFE_VALUE_DEPTH) return {
|
|
108
|
+
stringValue: TRUNCATED_VALUE
|
|
65
109
|
};
|
|
110
|
+
if (value instanceof Date) {
|
|
111
|
+
const time = value.getTime();
|
|
112
|
+
const iso = Number.isFinite(time) ? value.toISOString() : String(value);
|
|
113
|
+
return {
|
|
114
|
+
stringValue: 'string' == typeof iso ? sanitizeString(iso) : String(iso)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
state.ancestors.add(value);
|
|
118
|
+
try {
|
|
119
|
+
try {
|
|
120
|
+
const toJSON = value.toJSON;
|
|
121
|
+
if ('function' == typeof toJSON) return encodeAnyValue(toJSON.call(value), logger, state, depth + 1);
|
|
122
|
+
} catch {}
|
|
123
|
+
if (isArray(value)) return {
|
|
124
|
+
arrayValue: {
|
|
125
|
+
values: encodeArrayValues(value, logger, state, depth + 1)
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
kvlistValue: {
|
|
130
|
+
values: encodeKeyValueList(value, logger, state, depth + 1)
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
} finally{
|
|
134
|
+
state.ancestors.delete(value);
|
|
135
|
+
}
|
|
66
136
|
}
|
|
137
|
+
return {
|
|
138
|
+
stringValue: sanitizeString(String(value))
|
|
139
|
+
};
|
|
67
140
|
}
|
|
68
|
-
function
|
|
141
|
+
function encodeArrayValues(values, logger, state, depth) {
|
|
69
142
|
const result = [];
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
143
|
+
const itemCount = Math.min(values.length, MAX_JSON_SAFE_VALUE_ITEMS);
|
|
144
|
+
let index = 0;
|
|
145
|
+
for(; index < itemCount && state.remainingNodes > 0; index++)try {
|
|
146
|
+
const element = index in values ? values[index] : void 0;
|
|
147
|
+
if (isNullish(element)) continue;
|
|
148
|
+
result.push(encodeAnyValue(element, logger, state, depth));
|
|
149
|
+
} catch {
|
|
150
|
+
result.push({
|
|
151
|
+
stringValue: UNSERIALIZABLE_VALUE
|
|
75
152
|
});
|
|
76
153
|
}
|
|
154
|
+
if (values.length > index) result.push({
|
|
155
|
+
stringValue: TRUNCATED_VALUE
|
|
156
|
+
});
|
|
157
|
+
return result;
|
|
158
|
+
}
|
|
159
|
+
function encodeKeyValueList(attrs, logger, state, depth) {
|
|
160
|
+
const result = [];
|
|
161
|
+
for(const key in attrs)if (propertyIsEnumerable.call(attrs, key)) {
|
|
162
|
+
if (result.length >= MAX_JSON_SAFE_VALUE_ITEMS || state.remainingNodes <= 0) {
|
|
163
|
+
logger?.debug('Attributes truncated: the value exceeds the OTLP encoder budget');
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
const value = attrs[key];
|
|
168
|
+
if (isNull(value) || isUndefined(value)) continue;
|
|
169
|
+
result.push({
|
|
170
|
+
key: sanitizeString(key),
|
|
171
|
+
value: encodeAnyValue(value, logger, state, depth)
|
|
172
|
+
});
|
|
173
|
+
} catch {
|
|
174
|
+
result.push({
|
|
175
|
+
key: sanitizeString(key),
|
|
176
|
+
value: {
|
|
177
|
+
stringValue: UNSERIALIZABLE_VALUE
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
77
182
|
return result;
|
|
78
183
|
}
|
|
79
184
|
function timestampToUnixNano() {
|
|
80
185
|
return String(Date.now()) + '000000';
|
|
81
186
|
}
|
|
82
|
-
function
|
|
187
|
+
function encodeBody(body) {
|
|
188
|
+
try {
|
|
189
|
+
return sanitizeString(String(body));
|
|
190
|
+
} catch {
|
|
191
|
+
return UNSERIALIZABLE_VALUE;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function buildOtlpLogRecord(options, sdkContext, logger) {
|
|
83
195
|
const level = options.level || 'info';
|
|
84
196
|
const { text: severityText, number: severityNumber } = OTLP_SEVERITY_MAP[level] || DEFAULT_OTLP_SEVERITY;
|
|
85
197
|
const now = timestampToUnixNano();
|
|
@@ -94,18 +206,40 @@ function buildOtlpLogRecord(options, sdkContext) {
|
|
|
94
206
|
if (sdkContext.appState) autoAttributes['app.state'] = sdkContext.appState;
|
|
95
207
|
if (sdkContext.activeFeatureFlags && sdkContext.activeFeatureFlags.length > 0) autoAttributes.feature_flags = sdkContext.activeFeatureFlags;
|
|
96
208
|
const mergedAttributes = {
|
|
97
|
-
...autoAttributes
|
|
98
|
-
...options.attributes || {}
|
|
209
|
+
...autoAttributes
|
|
99
210
|
};
|
|
211
|
+
const userAttributes = options.attributes;
|
|
212
|
+
if (userAttributes) {
|
|
213
|
+
let keys = [];
|
|
214
|
+
try {
|
|
215
|
+
keys = Object.keys(userAttributes);
|
|
216
|
+
} catch {
|
|
217
|
+
keys = [];
|
|
218
|
+
}
|
|
219
|
+
for (const key of keys){
|
|
220
|
+
let value;
|
|
221
|
+
try {
|
|
222
|
+
value = userAttributes[key];
|
|
223
|
+
} catch {
|
|
224
|
+
value = UNSERIALIZABLE_VALUE;
|
|
225
|
+
}
|
|
226
|
+
Object.defineProperty(mergedAttributes, key, {
|
|
227
|
+
value,
|
|
228
|
+
enumerable: true,
|
|
229
|
+
writable: true,
|
|
230
|
+
configurable: true
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
100
234
|
const record = {
|
|
101
235
|
timeUnixNano: now,
|
|
102
236
|
observedTimeUnixNano: now,
|
|
103
237
|
severityNumber,
|
|
104
238
|
severityText,
|
|
105
239
|
body: {
|
|
106
|
-
stringValue: options.body
|
|
240
|
+
stringValue: encodeBody(options.body)
|
|
107
241
|
},
|
|
108
|
-
attributes: toOtlpKeyValueList(mergedAttributes)
|
|
242
|
+
attributes: toOtlpKeyValueList(mergedAttributes, logger)
|
|
109
243
|
};
|
|
110
244
|
if (options.trace_id) record.traceId = options.trace_id;
|
|
111
245
|
if (options.span_id) record.spanId = options.span_id;
|
|
@@ -268,7 +268,7 @@ class PostHogMetrics {
|
|
|
268
268
|
};
|
|
269
269
|
byMetric.set(metricKey, metric);
|
|
270
270
|
}
|
|
271
|
-
const attributes = (0, logs_utils_js_namespaceObject.toOtlpKeyValueList)(state.attributes ?? {});
|
|
271
|
+
const attributes = (0, logs_utils_js_namespaceObject.toOtlpKeyValueList)(state.attributes ?? {}, this._logger);
|
|
272
272
|
const startNano = (0, external_metrics_utils_js_namespaceObject.msToUnixNano)(state.windowStartMs);
|
|
273
273
|
if ('count' === state.type) {
|
|
274
274
|
const dp = {
|
|
@@ -236,7 +236,7 @@ class PostHogMetrics {
|
|
|
236
236
|
};
|
|
237
237
|
byMetric.set(metricKey, metric);
|
|
238
238
|
}
|
|
239
|
-
const attributes = toOtlpKeyValueList(state.attributes ?? {});
|
|
239
|
+
const attributes = toOtlpKeyValueList(state.attributes ?? {}, this._logger);
|
|
240
240
|
const startNano = msToUnixNano(state.windowStartMs);
|
|
241
241
|
if ('count' === state.type) {
|
|
242
242
|
const dp = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EAGvB,yBAAyB,EAKzB,sBAAsB,EAGvB,MAAM,SAAS,CAAA;AAahB,OAAO,EAAiC,wBAAwB,EAAE,MAAM,SAAS,CAAA;AACjF,OAAO,EAGL,oBAAoB,EAErB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C,UAAU,iBAAiB;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;
|
|
1
|
+
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -349,14 +349,19 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
349
349
|
if (this.disableRemoteFeatureFlags && !fetchConfig) return void this._logger.info('Feature flags are disabled (disableRemoteFeatureFlags), skipping reload.');
|
|
350
350
|
if (this._flagsResponsePromise) {
|
|
351
351
|
this._logger.info('Feature flags are being loaded already, queuing reload.');
|
|
352
|
-
|
|
352
|
+
const pending = this._pendingFlagsRequest;
|
|
353
353
|
return new Promise((resolve, reject)=>{
|
|
354
354
|
this._pendingFlagsRequest = {
|
|
355
|
-
sendAnonDistinctId,
|
|
356
|
-
fetchConfig,
|
|
357
|
-
triggerOnRemoteConfig,
|
|
358
|
-
|
|
359
|
-
|
|
355
|
+
sendAnonDistinctId: sendAnonDistinctId || !!pending?.sendAnonDistinctId,
|
|
356
|
+
fetchConfig: fetchConfig || !!pending?.fetchConfig,
|
|
357
|
+
triggerOnRemoteConfig: triggerOnRemoteConfig || !!pending?.triggerOnRemoteConfig,
|
|
358
|
+
waiters: [
|
|
359
|
+
...pending?.waiters ?? [],
|
|
360
|
+
{
|
|
361
|
+
resolve,
|
|
362
|
+
reject
|
|
363
|
+
}
|
|
364
|
+
]
|
|
360
365
|
};
|
|
361
366
|
});
|
|
362
367
|
}
|
|
@@ -513,7 +518,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
513
518
|
sendAnonDistinctId: pendingRequest.sendAnonDistinctId,
|
|
514
519
|
fetchConfig: pendingRequest.fetchConfig,
|
|
515
520
|
triggerOnRemoteConfig: pendingRequest.triggerOnRemoteConfig
|
|
516
|
-
}).then(pendingRequest.resolve).catch(pendingRequest.reject);
|
|
521
|
+
}).then((res)=>pendingRequest.waiters.forEach((w)=>w.resolve(res))).catch((e)=>pendingRequest.waiters.forEach((w)=>w.reject(e)));
|
|
517
522
|
}
|
|
518
523
|
});
|
|
519
524
|
return this._flagsResponsePromise;
|
|
@@ -321,14 +321,19 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
321
321
|
if (this.disableRemoteFeatureFlags && !fetchConfig) return void this._logger.info('Feature flags are disabled (disableRemoteFeatureFlags), skipping reload.');
|
|
322
322
|
if (this._flagsResponsePromise) {
|
|
323
323
|
this._logger.info('Feature flags are being loaded already, queuing reload.');
|
|
324
|
-
|
|
324
|
+
const pending = this._pendingFlagsRequest;
|
|
325
325
|
return new Promise((resolve, reject)=>{
|
|
326
326
|
this._pendingFlagsRequest = {
|
|
327
|
-
sendAnonDistinctId,
|
|
328
|
-
fetchConfig,
|
|
329
|
-
triggerOnRemoteConfig,
|
|
330
|
-
|
|
331
|
-
|
|
327
|
+
sendAnonDistinctId: sendAnonDistinctId || !!pending?.sendAnonDistinctId,
|
|
328
|
+
fetchConfig: fetchConfig || !!pending?.fetchConfig,
|
|
329
|
+
triggerOnRemoteConfig: triggerOnRemoteConfig || !!pending?.triggerOnRemoteConfig,
|
|
330
|
+
waiters: [
|
|
331
|
+
...pending?.waiters ?? [],
|
|
332
|
+
{
|
|
333
|
+
resolve,
|
|
334
|
+
reject
|
|
335
|
+
}
|
|
336
|
+
]
|
|
332
337
|
};
|
|
333
338
|
});
|
|
334
339
|
}
|
|
@@ -485,7 +490,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
485
490
|
sendAnonDistinctId: pendingRequest.sendAnonDistinctId,
|
|
486
491
|
fetchConfig: pendingRequest.fetchConfig,
|
|
487
492
|
triggerOnRemoteConfig: pendingRequest.triggerOnRemoteConfig
|
|
488
|
-
}).then(pendingRequest.resolve).catch(pendingRequest.reject);
|
|
493
|
+
}).then((res)=>pendingRequest.waiters.forEach((w)=>w.resolve(res))).catch((e)=>pendingRequest.waiters.forEach((w)=>w.reject(e)));
|
|
489
494
|
}
|
|
490
495
|
});
|
|
491
496
|
return this._flagsResponsePromise;
|
|
@@ -2,7 +2,7 @@ import { FetchLike } from '../types';
|
|
|
2
2
|
export * from './bot-detection';
|
|
3
3
|
export * from './browser-utils';
|
|
4
4
|
export * from './bucketed-rate-limiter';
|
|
5
|
-
export
|
|
5
|
+
export { toJsonSafeValue } from './json-utils';
|
|
6
6
|
export * from './number-utils';
|
|
7
7
|
export * from './string-utils';
|
|
8
8
|
export * from './type-utils';
|
|
@@ -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;
|
|
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;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,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,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"}
|
|
@@ -89,13 +89,15 @@ var __webpack_exports__ = {};
|
|
|
89
89
|
removeTrailingSlash: ()=>removeTrailingSlash,
|
|
90
90
|
retriable: ()=>retriable,
|
|
91
91
|
safeSetTimeout: ()=>safeSetTimeout,
|
|
92
|
-
stripUrlHash: ()=>stripUrlHash
|
|
92
|
+
stripUrlHash: ()=>stripUrlHash,
|
|
93
|
+
toJsonSafeValue: ()=>_json_utils__WEBPACK_IMPORTED_MODULE_3__.toJsonSafeValue
|
|
93
94
|
});
|
|
94
95
|
var _bot_detection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./bot-detection");
|
|
95
96
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
96
97
|
for(var __WEBPACK_IMPORT_KEY__ in _bot_detection__WEBPACK_IMPORTED_MODULE_0__)if ([
|
|
97
98
|
"removeTrailingSlash",
|
|
98
99
|
"isValidUUID",
|
|
100
|
+
"toJsonSafeValue",
|
|
99
101
|
"currentISOTime",
|
|
100
102
|
"safeSetTimeout",
|
|
101
103
|
"UUID_REGEX",
|
|
@@ -119,6 +121,7 @@ var __webpack_exports__ = {};
|
|
|
119
121
|
for(var __WEBPACK_IMPORT_KEY__ in _browser_utils__WEBPACK_IMPORTED_MODULE_1__)if ([
|
|
120
122
|
"removeTrailingSlash",
|
|
121
123
|
"isValidUUID",
|
|
124
|
+
"toJsonSafeValue",
|
|
122
125
|
"currentISOTime",
|
|
123
126
|
"safeSetTimeout",
|
|
124
127
|
"UUID_REGEX",
|
|
@@ -142,6 +145,7 @@ var __webpack_exports__ = {};
|
|
|
142
145
|
for(var __WEBPACK_IMPORT_KEY__ in _bucketed_rate_limiter__WEBPACK_IMPORTED_MODULE_2__)if ([
|
|
143
146
|
"removeTrailingSlash",
|
|
144
147
|
"isValidUUID",
|
|
148
|
+
"toJsonSafeValue",
|
|
145
149
|
"currentISOTime",
|
|
146
150
|
"safeSetTimeout",
|
|
147
151
|
"UUID_REGEX",
|
|
@@ -161,33 +165,12 @@ var __webpack_exports__ = {};
|
|
|
161
165
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
162
166
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
163
167
|
var _json_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./json-utils");
|
|
164
|
-
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
165
|
-
for(var __WEBPACK_IMPORT_KEY__ in _json_utils__WEBPACK_IMPORTED_MODULE_3__)if ([
|
|
166
|
-
"removeTrailingSlash",
|
|
167
|
-
"isValidUUID",
|
|
168
|
-
"currentISOTime",
|
|
169
|
-
"safeSetTimeout",
|
|
170
|
-
"UUID_REGEX",
|
|
171
|
-
"assert",
|
|
172
|
-
"allSettled",
|
|
173
|
-
"retriable",
|
|
174
|
-
"default",
|
|
175
|
-
"stripUrlHash",
|
|
176
|
-
"STRING_FORMAT",
|
|
177
|
-
"currentTimestamp",
|
|
178
|
-
"raceWithTimeout",
|
|
179
|
-
"getFetch",
|
|
180
|
-
"getEventUuid",
|
|
181
|
-
"isPromise"
|
|
182
|
-
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
183
|
-
return _json_utils__WEBPACK_IMPORTED_MODULE_3__[key];
|
|
184
|
-
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
185
|
-
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
186
168
|
var _number_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./number-utils");
|
|
187
169
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
188
170
|
for(var __WEBPACK_IMPORT_KEY__ in _number_utils__WEBPACK_IMPORTED_MODULE_4__)if ([
|
|
189
171
|
"removeTrailingSlash",
|
|
190
172
|
"isValidUUID",
|
|
173
|
+
"toJsonSafeValue",
|
|
191
174
|
"currentISOTime",
|
|
192
175
|
"safeSetTimeout",
|
|
193
176
|
"UUID_REGEX",
|
|
@@ -211,6 +194,7 @@ var __webpack_exports__ = {};
|
|
|
211
194
|
for(var __WEBPACK_IMPORT_KEY__ in _string_utils__WEBPACK_IMPORTED_MODULE_5__)if ([
|
|
212
195
|
"removeTrailingSlash",
|
|
213
196
|
"isValidUUID",
|
|
197
|
+
"toJsonSafeValue",
|
|
214
198
|
"currentISOTime",
|
|
215
199
|
"safeSetTimeout",
|
|
216
200
|
"UUID_REGEX",
|
|
@@ -234,6 +218,7 @@ var __webpack_exports__ = {};
|
|
|
234
218
|
for(var __WEBPACK_IMPORT_KEY__ in _type_utils__WEBPACK_IMPORTED_MODULE_6__)if ([
|
|
235
219
|
"removeTrailingSlash",
|
|
236
220
|
"isValidUUID",
|
|
221
|
+
"toJsonSafeValue",
|
|
237
222
|
"currentISOTime",
|
|
238
223
|
"safeSetTimeout",
|
|
239
224
|
"UUID_REGEX",
|
|
@@ -257,6 +242,7 @@ var __webpack_exports__ = {};
|
|
|
257
242
|
for(var __WEBPACK_IMPORT_KEY__ in _promise_queue__WEBPACK_IMPORTED_MODULE_7__)if ([
|
|
258
243
|
"removeTrailingSlash",
|
|
259
244
|
"isValidUUID",
|
|
245
|
+
"toJsonSafeValue",
|
|
260
246
|
"currentISOTime",
|
|
261
247
|
"safeSetTimeout",
|
|
262
248
|
"UUID_REGEX",
|
|
@@ -280,6 +266,7 @@ var __webpack_exports__ = {};
|
|
|
280
266
|
for(var __WEBPACK_IMPORT_KEY__ in _logger__WEBPACK_IMPORTED_MODULE_8__)if ([
|
|
281
267
|
"removeTrailingSlash",
|
|
282
268
|
"isValidUUID",
|
|
269
|
+
"toJsonSafeValue",
|
|
283
270
|
"currentISOTime",
|
|
284
271
|
"safeSetTimeout",
|
|
285
272
|
"UUID_REGEX",
|
|
@@ -303,6 +290,7 @@ var __webpack_exports__ = {};
|
|
|
303
290
|
for(var __WEBPACK_IMPORT_KEY__ in _user_agent_utils__WEBPACK_IMPORTED_MODULE_9__)if ([
|
|
304
291
|
"removeTrailingSlash",
|
|
305
292
|
"isValidUUID",
|
|
293
|
+
"toJsonSafeValue",
|
|
306
294
|
"currentISOTime",
|
|
307
295
|
"safeSetTimeout",
|
|
308
296
|
"UUID_REGEX",
|
|
@@ -417,6 +405,7 @@ exports.removeTrailingSlash = __webpack_exports__.removeTrailingSlash;
|
|
|
417
405
|
exports.retriable = __webpack_exports__.retriable;
|
|
418
406
|
exports.safeSetTimeout = __webpack_exports__.safeSetTimeout;
|
|
419
407
|
exports.stripUrlHash = __webpack_exports__.stripUrlHash;
|
|
408
|
+
exports.toJsonSafeValue = __webpack_exports__.toJsonSafeValue;
|
|
420
409
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
421
410
|
"STRING_FORMAT",
|
|
422
411
|
"UUID_REGEX",
|
|
@@ -432,7 +421,8 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
432
421
|
"removeTrailingSlash",
|
|
433
422
|
"retriable",
|
|
434
423
|
"safeSetTimeout",
|
|
435
|
-
"stripUrlHash"
|
|
424
|
+
"stripUrlHash",
|
|
425
|
+
"toJsonSafeValue"
|
|
436
426
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
437
427
|
Object.defineProperty(exports, '__esModule', {
|
|
438
428
|
value: true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { toJsonSafeValue } from "./json-utils.mjs";
|
|
1
2
|
export * from "./bot-detection.mjs";
|
|
2
3
|
export * from "./browser-utils.mjs";
|
|
3
4
|
export * from "./bucketed-rate-limiter.mjs";
|
|
4
|
-
export * from "./json-utils.mjs";
|
|
5
5
|
export * from "./number-utils.mjs";
|
|
6
6
|
export * from "./string-utils.mjs";
|
|
7
7
|
export * from "./type-utils.mjs";
|
|
@@ -88,4 +88,4 @@ function allSettled(promises) {
|
|
|
88
88
|
reason
|
|
89
89
|
}))));
|
|
90
90
|
}
|
|
91
|
-
export { STRING_FORMAT, UUID_REGEX, allSettled, assert, currentISOTime, currentTimestamp, getEventUuid, getFetch, isPromise, isValidUUID, raceWithTimeout, removeTrailingSlash, retriable, safeSetTimeout, stripUrlHash };
|
|
91
|
+
export { STRING_FORMAT, UUID_REGEX, allSettled, assert, currentISOTime, currentTimestamp, getEventUuid, getFetch, isPromise, isValidUUID, raceWithTimeout, removeTrailingSlash, retriable, safeSetTimeout, stripUrlHash, toJsonSafeValue };
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/** Traversal budgets and markers, shared with the OTLP attribute encoder. Not
|
|
2
|
+
* public API — `utils/index.ts` re-exports `toJsonSafeValue` only. */
|
|
3
|
+
export declare const MAX_JSON_SAFE_VALUE_DEPTH = 20;
|
|
4
|
+
export declare const MAX_JSON_SAFE_VALUE_ITEMS = 1000;
|
|
5
|
+
export declare const MAX_JSON_SAFE_VALUE_NODES = 10000;
|
|
6
|
+
export declare const CIRCULAR_VALUE = "[Circular]";
|
|
7
|
+
export declare const TRUNCATED_VALUE = "[Truncated]";
|
|
8
|
+
export declare const UNSERIALIZABLE_VALUE = "[Unserializable]";
|
|
9
|
+
export declare const FUNCTION_VALUE = "[Function]";
|
|
10
|
+
/**
|
|
11
|
+
* Replaces unpaired surrogates with U+FFFD. A lone surrogate survives
|
|
12
|
+
* `JSON.stringify` as a `\uD800`-style escape, which strict JSON parsers
|
|
13
|
+
* reject — for OTLP that means the whole request is refused.
|
|
14
|
+
*/
|
|
15
|
+
export declare function sanitizeString(value: string): string;
|
|
1
16
|
/**
|
|
2
17
|
* Converts an arbitrary value, sanitizing `toJSON` results when available.
|
|
3
18
|
* The limits keep pathological values from causing unbounded recursion or traversal.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-utils.d.ts","sourceRoot":"","sources":["../../src/utils/json-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-utils.d.ts","sourceRoot":"","sources":["../../src/utils/json-utils.ts"],"names":[],"mappings":"AAAA;sEACsE;AACtE,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAC3C,eAAO,MAAM,yBAAyB,OAAQ,CAAA;AAC9C,eAAO,MAAM,yBAAyB,QAAS,CAAA;AAC/C,eAAO,MAAM,cAAc,eAAe,CAAA;AAC1C,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAC5C,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AACtD,eAAO,MAAM,cAAc,eAAe,CAAA;AAW1C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2GvD"}
|
|
@@ -24,6 +24,14 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
CIRCULAR_VALUE: ()=>CIRCULAR_VALUE,
|
|
28
|
+
FUNCTION_VALUE: ()=>FUNCTION_VALUE,
|
|
29
|
+
MAX_JSON_SAFE_VALUE_DEPTH: ()=>MAX_JSON_SAFE_VALUE_DEPTH,
|
|
30
|
+
MAX_JSON_SAFE_VALUE_ITEMS: ()=>MAX_JSON_SAFE_VALUE_ITEMS,
|
|
31
|
+
MAX_JSON_SAFE_VALUE_NODES: ()=>MAX_JSON_SAFE_VALUE_NODES,
|
|
32
|
+
TRUNCATED_VALUE: ()=>TRUNCATED_VALUE,
|
|
33
|
+
UNSERIALIZABLE_VALUE: ()=>UNSERIALIZABLE_VALUE,
|
|
34
|
+
sanitizeString: ()=>sanitizeString,
|
|
27
35
|
toJsonSafeValue: ()=>toJsonSafeValue
|
|
28
36
|
});
|
|
29
37
|
const MAX_JSON_SAFE_VALUE_DEPTH = 20;
|
|
@@ -119,8 +127,24 @@ function toJsonSafeValue(value) {
|
|
|
119
127
|
};
|
|
120
128
|
return convert(value, 0);
|
|
121
129
|
}
|
|
130
|
+
exports.CIRCULAR_VALUE = __webpack_exports__.CIRCULAR_VALUE;
|
|
131
|
+
exports.FUNCTION_VALUE = __webpack_exports__.FUNCTION_VALUE;
|
|
132
|
+
exports.MAX_JSON_SAFE_VALUE_DEPTH = __webpack_exports__.MAX_JSON_SAFE_VALUE_DEPTH;
|
|
133
|
+
exports.MAX_JSON_SAFE_VALUE_ITEMS = __webpack_exports__.MAX_JSON_SAFE_VALUE_ITEMS;
|
|
134
|
+
exports.MAX_JSON_SAFE_VALUE_NODES = __webpack_exports__.MAX_JSON_SAFE_VALUE_NODES;
|
|
135
|
+
exports.TRUNCATED_VALUE = __webpack_exports__.TRUNCATED_VALUE;
|
|
136
|
+
exports.UNSERIALIZABLE_VALUE = __webpack_exports__.UNSERIALIZABLE_VALUE;
|
|
137
|
+
exports.sanitizeString = __webpack_exports__.sanitizeString;
|
|
122
138
|
exports.toJsonSafeValue = __webpack_exports__.toJsonSafeValue;
|
|
123
139
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
140
|
+
"CIRCULAR_VALUE",
|
|
141
|
+
"FUNCTION_VALUE",
|
|
142
|
+
"MAX_JSON_SAFE_VALUE_DEPTH",
|
|
143
|
+
"MAX_JSON_SAFE_VALUE_ITEMS",
|
|
144
|
+
"MAX_JSON_SAFE_VALUE_NODES",
|
|
145
|
+
"TRUNCATED_VALUE",
|
|
146
|
+
"UNSERIALIZABLE_VALUE",
|
|
147
|
+
"sanitizeString",
|
|
124
148
|
"toJsonSafeValue"
|
|
125
149
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
126
150
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -91,4 +91,4 @@ function toJsonSafeValue(value) {
|
|
|
91
91
|
};
|
|
92
92
|
return convert(value, 0);
|
|
93
93
|
}
|
|
94
|
-
export { toJsonSafeValue };
|
|
94
|
+
export { CIRCULAR_VALUE, FUNCTION_VALUE, MAX_JSON_SAFE_VALUE_DEPTH, MAX_JSON_SAFE_VALUE_ITEMS, MAX_JSON_SAFE_VALUE_NODES, TRUNCATED_VALUE, UNSERIALIZABLE_VALUE, sanitizeString, toJsonSafeValue };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/core",
|
|
3
|
-
"version": "1.48.
|
|
3
|
+
"version": "1.48.8",
|
|
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.405.
|
|
73
|
+
"@posthog/types": "^1.405.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@rslib/core": "0.10.6",
|
|
@@ -119,7 +119,7 @@ export class PostHogLogs {
|
|
|
119
119
|
// Build before deferring so attributes reflect state at capture time, not
|
|
120
120
|
// at drain time (identity/session changes between capture and drain must
|
|
121
121
|
// not corrupt recorded attributes).
|
|
122
|
-
const record = buildOtlpLogRecord(filtered, this._getContext())
|
|
122
|
+
const record = buildOtlpLogRecord(filtered, this._getContext(), this._logger)
|
|
123
123
|
const entry: BufferedLogEntry = { record }
|
|
124
124
|
|
|
125
125
|
this._onReady(() => this._enqueue(entry))
|