@posthog/core 1.49.2 → 1.50.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/featureFlagLocalEvaluation.d.ts +1 -1
- package/dist/featureFlagLocalEvaluation.d.ts.map +1 -1
- package/dist/featureFlagLocalEvaluation.js +149 -10
- package/dist/featureFlagLocalEvaluation.mjs +149 -10
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -31
- package/dist/index.mjs +4 -2
- package/dist/logs/logs-utils.d.ts +1 -3
- package/dist/logs/logs-utils.d.ts.map +1 -1
- package/dist/logs/logs-utils.js +7 -170
- package/dist/logs/logs-utils.mjs +6 -163
- package/dist/metrics/index.js +2 -2
- package/dist/metrics/index.mjs +1 -1
- package/dist/metrics/metrics-utils.d.ts.map +1 -1
- package/dist/metrics/metrics-utils.js +4 -14
- package/dist/metrics/metrics-utils.mjs +3 -13
- package/dist/utils/otlp-any-value.d.ts +5 -0
- package/dist/utils/otlp-any-value.d.ts.map +1 -0
- package/dist/utils/otlp-any-value.js +203 -0
- package/dist/utils/otlp-any-value.mjs +166 -0
- package/dist/utils/otlp-resource.d.ts +38 -0
- package/dist/utils/otlp-resource.d.ts.map +1 -0
- package/dist/utils/otlp-resource.js +81 -0
- package/dist/utils/otlp-resource.mjs +41 -0
- package/dist/utils/user-agent-utils.d.ts +4 -4
- package/dist/utils/user-agent-utils.d.ts.map +1 -1
- package/dist/utils/user-agent-utils.js +16 -0
- package/dist/utils/user-agent-utils.mjs +16 -0
- package/package.json +1 -1
- package/src/featureFlagLocalEvaluation.ts +199 -12
- package/src/index.ts +2 -2
- package/src/logs/logs-utils.spec.ts +2 -350
- package/src/logs/logs-utils.ts +5 -215
- package/src/metrics/index.ts +1 -1
- package/src/metrics/metrics-utils.ts +3 -9
- package/src/utils/otlp-any-value.spec.ts +361 -0
- package/src/utils/otlp-any-value.ts +225 -0
- package/src/utils/otlp-resource.spec.ts +125 -0
- package/src/utils/otlp-resource.ts +89 -0
- package/src/utils/user-agent-utils.ts +22 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FeatureFlagValue, JsonType } from './types';
|
|
2
|
-
export type FeatureFlagPropertyValue =
|
|
2
|
+
export type FeatureFlagPropertyValue = JsonType;
|
|
3
3
|
export type FeatureFlagProperty = {
|
|
4
4
|
key: string;
|
|
5
5
|
value: FeatureFlagPropertyValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"featureFlagLocalEvaluation.d.ts","sourceRoot":"","sources":["../src/featureFlagLocalEvaluation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"featureFlagLocalEvaluation.d.ts","sourceRoot":"","sources":["../src/featureFlagLocalEvaluation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAA;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,wBAAwB,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,QAAQ,GAAG,mBAAmB,CAAA;AAE3E,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,mBAAmB,CAAC,EAAE,8BAA8B,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AASD,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAK5B;AAsLD,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAa3C,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,8BAAyC,GACvD,WAAW,CAeb;AAwED,wBAAgB,uCAAuC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAmBlF;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACnC,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CA+JT;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ5D;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhH;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,6BAA6B,EAAE,CASjC;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACtC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK7B;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3E,SAAS,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC7C,QAAQ,GAAG,IAAI,CAMjB"}
|
|
@@ -47,6 +47,130 @@ class InconclusiveMatchError extends Error {
|
|
|
47
47
|
Object.setPrototypeOf(this, InconclusiveMatchError.prototype);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
function isTruthyOrFalsyPropertyValue(value) {
|
|
51
|
+
if ('boolean' == typeof value) return true;
|
|
52
|
+
if ('string' == typeof value) {
|
|
53
|
+
const lowercaseValue = value.toLowerCase();
|
|
54
|
+
return 'true' === lowercaseValue || 'false' === lowercaseValue;
|
|
55
|
+
}
|
|
56
|
+
if (!Array.isArray(value)) return false;
|
|
57
|
+
for(let index = 0; index < value.length; index++)if (!isTruthyOrFalsyPropertyValue(index in value ? value[index] : null)) return false;
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
function isTruthyPropertyValue(value) {
|
|
61
|
+
if ('boolean' == typeof value) return value;
|
|
62
|
+
if ('string' == typeof value) return 'true' === value.toLowerCase();
|
|
63
|
+
if (!Array.isArray(value)) return false;
|
|
64
|
+
for(let index = 0; index < value.length; index++)if (!isTruthyPropertyValue(index in value ? value[index] : null)) return false;
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
function assertUnicodeScalarString(value) {
|
|
68
|
+
for(let index = 0; index < value.length; index++){
|
|
69
|
+
const unit = value.charCodeAt(index);
|
|
70
|
+
if (unit >= 0xd800 && unit <= 0xdbff) {
|
|
71
|
+
const next = value.charCodeAt(index + 1);
|
|
72
|
+
if (index + 1 >= value.length || next < 0xdc00 || next > 0xdfff) throw new InconclusiveMatchError('Cannot stringify an unpaired surrogate like the flags service');
|
|
73
|
+
index++;
|
|
74
|
+
} else if (unit >= 0xdc00 && unit <= 0xdfff) throw new InconclusiveMatchError('Cannot stringify an unpaired surrogate like the flags service');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function assertJsonRepresentable(value, seen = new Set()) {
|
|
78
|
+
if (null === value || 'boolean' == typeof value) return;
|
|
79
|
+
if ('string' == typeof value) return void assertUnicodeScalarString(value);
|
|
80
|
+
if ('number' == typeof value) {
|
|
81
|
+
if (!Number.isFinite(value)) throw new InconclusiveMatchError(`Cannot represent non-finite number ${value} like the flags service`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (Array.isArray(value)) {
|
|
85
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot represent a circular array during local evaluation');
|
|
86
|
+
seen.add(value);
|
|
87
|
+
try {
|
|
88
|
+
for(let index = 0; index < value.length; index++)if (index in value) assertJsonRepresentable(value[index], seen);
|
|
89
|
+
} finally{
|
|
90
|
+
seen.delete(value);
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if ('object' == typeof value) {
|
|
95
|
+
const prototype = Object.getPrototypeOf(value);
|
|
96
|
+
if (prototype !== Object.prototype && null !== prototype) throw new InconclusiveMatchError('Cannot represent a non-JSON object like the flags service');
|
|
97
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot represent a circular object during local evaluation');
|
|
98
|
+
seen.add(value);
|
|
99
|
+
try {
|
|
100
|
+
for (const key of Object.keys(value)){
|
|
101
|
+
assertUnicodeScalarString(key);
|
|
102
|
+
assertJsonRepresentable(value[key], seen);
|
|
103
|
+
}
|
|
104
|
+
} finally{
|
|
105
|
+
seen.delete(value);
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
throw new InconclusiveMatchError(`Cannot represent ${typeof value} like the flags service`);
|
|
110
|
+
}
|
|
111
|
+
function compareJsonObjectKeys(left, right) {
|
|
112
|
+
let leftIndex = 0;
|
|
113
|
+
let rightIndex = 0;
|
|
114
|
+
while(leftIndex < left.length && rightIndex < right.length){
|
|
115
|
+
const leftUnit = left.charCodeAt(leftIndex);
|
|
116
|
+
const rightUnit = right.charCodeAt(rightIndex);
|
|
117
|
+
const leftIsHighSurrogate = leftUnit >= 0xd800 && leftUnit <= 0xdbff;
|
|
118
|
+
const rightIsHighSurrogate = rightUnit >= 0xd800 && rightUnit <= 0xdbff;
|
|
119
|
+
const leftNext = leftIsHighSurrogate ? left.charCodeAt(leftIndex + 1) : 0;
|
|
120
|
+
const rightNext = rightIsHighSurrogate ? right.charCodeAt(rightIndex + 1) : 0;
|
|
121
|
+
const leftCodePoint = leftIsHighSurrogate ? (leftUnit - 0xd800) * 0x400 + leftNext - 0xdc00 + 0x10000 : leftUnit;
|
|
122
|
+
const rightCodePoint = rightIsHighSurrogate ? (rightUnit - 0xd800) * 0x400 + rightNext - 0xdc00 + 0x10000 : rightUnit;
|
|
123
|
+
if (leftCodePoint !== rightCodePoint) return leftCodePoint - rightCodePoint;
|
|
124
|
+
leftIndex += leftIsHighSurrogate ? 2 : 1;
|
|
125
|
+
rightIndex += rightIsHighSurrogate ? 2 : 1;
|
|
126
|
+
}
|
|
127
|
+
return left.length - right.length;
|
|
128
|
+
}
|
|
129
|
+
function serializeJsonValue(value, seen = new Set()) {
|
|
130
|
+
if (null === value) return 'null';
|
|
131
|
+
if ('string' == typeof value) {
|
|
132
|
+
assertUnicodeScalarString(value);
|
|
133
|
+
return JSON.stringify(value);
|
|
134
|
+
}
|
|
135
|
+
if ('boolean' == typeof value) return value ? 'true' : 'false';
|
|
136
|
+
if ('number' == typeof value) {
|
|
137
|
+
if (!Number.isFinite(value)) throw new InconclusiveMatchError(`Cannot stringify non-finite number ${value} like the flags service`);
|
|
138
|
+
if (Number.isInteger(value)) throw new InconclusiveMatchError(`Cannot distinguish integer ${value} from an integral JSON float during local evaluation`);
|
|
139
|
+
return String(value);
|
|
140
|
+
}
|
|
141
|
+
if (Array.isArray(value)) {
|
|
142
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot stringify a circular array during local evaluation');
|
|
143
|
+
seen.add(value);
|
|
144
|
+
try {
|
|
145
|
+
const items = [];
|
|
146
|
+
for(let index = 0; index < value.length; index++)items.push(index in value ? serializeJsonValue(value[index], seen) : 'null');
|
|
147
|
+
return `[${items.join(',')}]`;
|
|
148
|
+
} finally{
|
|
149
|
+
seen.delete(value);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if ('object' == typeof value) {
|
|
153
|
+
const prototype = Object.getPrototypeOf(value);
|
|
154
|
+
if (prototype !== Object.prototype && null !== prototype) throw new InconclusiveMatchError('Cannot stringify a non-JSON object like the flags service');
|
|
155
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot stringify a circular object during local evaluation');
|
|
156
|
+
seen.add(value);
|
|
157
|
+
try {
|
|
158
|
+
const keys = Object.keys(value);
|
|
159
|
+
keys.forEach(assertUnicodeScalarString);
|
|
160
|
+
return `{${keys.sort(compareJsonObjectKeys).map((key)=>`${JSON.stringify(key)}:${serializeJsonValue(value[key], seen)}`).join(',')}}`;
|
|
161
|
+
} finally{
|
|
162
|
+
seen.delete(value);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
throw new InconclusiveMatchError(`Cannot stringify ${typeof value} like the flags service`);
|
|
166
|
+
}
|
|
167
|
+
function exactMatchString(value) {
|
|
168
|
+
if ('string' == typeof value) {
|
|
169
|
+
assertUnicodeScalarString(value);
|
|
170
|
+
return value;
|
|
171
|
+
}
|
|
172
|
+
return serializeJsonValue(value);
|
|
173
|
+
}
|
|
50
174
|
function isValidRegex(regex) {
|
|
51
175
|
try {
|
|
52
176
|
new RegExp(regex);
|
|
@@ -55,6 +179,9 @@ function isValidRegex(regex) {
|
|
|
55
179
|
return false;
|
|
56
180
|
}
|
|
57
181
|
}
|
|
182
|
+
function asciiLowercase(value) {
|
|
183
|
+
return String(value).replace(/[A-Z]/g, (character)=>character.toLowerCase());
|
|
184
|
+
}
|
|
58
185
|
function parseSemverNumericIdentifier(part, raw, parsingPolicy) {
|
|
59
186
|
if (!/^\d+$/.test(part) || 'strict' === parsingPolicy && part.length > 1 && '0' === part[0]) throw new InconclusiveMatchError(`Invalid semver: ${raw}`);
|
|
60
187
|
return parseInt(part, 10);
|
|
@@ -198,15 +325,27 @@ function matchFeatureFlagProperty(property, propertyValues, options = {}) {
|
|
|
198
325
|
const hasProperty = Object.prototype.hasOwnProperty.call(propertyValues, key);
|
|
199
326
|
if (hasProperty) {
|
|
200
327
|
if ('is_not_set' === operator) return false;
|
|
328
|
+
else if ('is_set' === operator) return true;
|
|
201
329
|
} else throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`);
|
|
202
330
|
const overrideValue = propertyValues[key];
|
|
203
|
-
if (
|
|
204
|
-
options.warnFunction?.(`Property ${key} cannot have a value of
|
|
331
|
+
if (void 0 === overrideValue) {
|
|
332
|
+
options.warnFunction?.(`Property ${key} cannot have a value of undefined with the ${operator} operator`);
|
|
333
|
+
return 'is_not' === operator;
|
|
334
|
+
}
|
|
335
|
+
if (null === overrideValue && !NULL_VALUES_ALLOWED_OPERATORS.includes(operator) && 'exact' !== operator && 'is_not' !== operator) {
|
|
336
|
+
options.warnFunction?.(`Property ${key} cannot have a value of null with the ${operator} operator`);
|
|
205
337
|
return false;
|
|
206
338
|
}
|
|
207
339
|
const computeExactMatch = (target, actual)=>{
|
|
208
|
-
if (
|
|
209
|
-
|
|
340
|
+
if (isTruthyOrFalsyPropertyValue(target)) {
|
|
341
|
+
assertJsonRepresentable(actual);
|
|
342
|
+
return isTruthyPropertyValue(target) === isTruthyPropertyValue(actual);
|
|
343
|
+
}
|
|
344
|
+
if (Array.isArray(target)) {
|
|
345
|
+
const actualString = exactMatchString(actual).toLowerCase();
|
|
346
|
+
return target.some((item)=>exactMatchString(item).toLowerCase() === actualString);
|
|
347
|
+
}
|
|
348
|
+
return exactMatchString(target).toLowerCase() === exactMatchString(actual).toLowerCase();
|
|
210
349
|
};
|
|
211
350
|
const compare = (lhs, rhs, comparisonOperator)=>{
|
|
212
351
|
if ('gt' === comparisonOperator) return lhs > rhs;
|
|
@@ -223,17 +362,17 @@ function matchFeatureFlagProperty(property, propertyValues, options = {}) {
|
|
|
223
362
|
case 'is_set':
|
|
224
363
|
return true;
|
|
225
364
|
case 'icontains':
|
|
226
|
-
return
|
|
365
|
+
return asciiLowercase(overrideValue).includes(asciiLowercase(value));
|
|
227
366
|
case 'not_icontains':
|
|
228
|
-
return !
|
|
367
|
+
return !asciiLowercase(overrideValue).includes(asciiLowercase(value));
|
|
229
368
|
case 'starts_with':
|
|
230
|
-
return
|
|
369
|
+
return asciiLowercase(overrideValue).startsWith(asciiLowercase(value));
|
|
231
370
|
case 'not_starts_with':
|
|
232
|
-
return !
|
|
371
|
+
return !asciiLowercase(overrideValue).startsWith(asciiLowercase(value));
|
|
233
372
|
case 'ends_with':
|
|
234
|
-
return
|
|
373
|
+
return asciiLowercase(overrideValue).endsWith(asciiLowercase(value));
|
|
235
374
|
case 'not_ends_with':
|
|
236
|
-
return !
|
|
375
|
+
return !asciiLowercase(overrideValue).endsWith(asciiLowercase(value));
|
|
237
376
|
case 'regex':
|
|
238
377
|
return isValidRegex(String(value)) && null !== String(overrideValue).match(String(value));
|
|
239
378
|
case 'not_regex':
|
|
@@ -11,6 +11,130 @@ class InconclusiveMatchError extends Error {
|
|
|
11
11
|
Object.setPrototypeOf(this, InconclusiveMatchError.prototype);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
function isTruthyOrFalsyPropertyValue(value) {
|
|
15
|
+
if ('boolean' == typeof value) return true;
|
|
16
|
+
if ('string' == typeof value) {
|
|
17
|
+
const lowercaseValue = value.toLowerCase();
|
|
18
|
+
return 'true' === lowercaseValue || 'false' === lowercaseValue;
|
|
19
|
+
}
|
|
20
|
+
if (!Array.isArray(value)) return false;
|
|
21
|
+
for(let index = 0; index < value.length; index++)if (!isTruthyOrFalsyPropertyValue(index in value ? value[index] : null)) return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
function isTruthyPropertyValue(value) {
|
|
25
|
+
if ('boolean' == typeof value) return value;
|
|
26
|
+
if ('string' == typeof value) return 'true' === value.toLowerCase();
|
|
27
|
+
if (!Array.isArray(value)) return false;
|
|
28
|
+
for(let index = 0; index < value.length; index++)if (!isTruthyPropertyValue(index in value ? value[index] : null)) return false;
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
function assertUnicodeScalarString(value) {
|
|
32
|
+
for(let index = 0; index < value.length; index++){
|
|
33
|
+
const unit = value.charCodeAt(index);
|
|
34
|
+
if (unit >= 0xd800 && unit <= 0xdbff) {
|
|
35
|
+
const next = value.charCodeAt(index + 1);
|
|
36
|
+
if (index + 1 >= value.length || next < 0xdc00 || next > 0xdfff) throw new InconclusiveMatchError('Cannot stringify an unpaired surrogate like the flags service');
|
|
37
|
+
index++;
|
|
38
|
+
} else if (unit >= 0xdc00 && unit <= 0xdfff) throw new InconclusiveMatchError('Cannot stringify an unpaired surrogate like the flags service');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function assertJsonRepresentable(value, seen = new Set()) {
|
|
42
|
+
if (null === value || 'boolean' == typeof value) return;
|
|
43
|
+
if ('string' == typeof value) return void assertUnicodeScalarString(value);
|
|
44
|
+
if ('number' == typeof value) {
|
|
45
|
+
if (!Number.isFinite(value)) throw new InconclusiveMatchError(`Cannot represent non-finite number ${value} like the flags service`);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (Array.isArray(value)) {
|
|
49
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot represent a circular array during local evaluation');
|
|
50
|
+
seen.add(value);
|
|
51
|
+
try {
|
|
52
|
+
for(let index = 0; index < value.length; index++)if (index in value) assertJsonRepresentable(value[index], seen);
|
|
53
|
+
} finally{
|
|
54
|
+
seen.delete(value);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if ('object' == typeof value) {
|
|
59
|
+
const prototype = Object.getPrototypeOf(value);
|
|
60
|
+
if (prototype !== Object.prototype && null !== prototype) throw new InconclusiveMatchError('Cannot represent a non-JSON object like the flags service');
|
|
61
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot represent a circular object during local evaluation');
|
|
62
|
+
seen.add(value);
|
|
63
|
+
try {
|
|
64
|
+
for (const key of Object.keys(value)){
|
|
65
|
+
assertUnicodeScalarString(key);
|
|
66
|
+
assertJsonRepresentable(value[key], seen);
|
|
67
|
+
}
|
|
68
|
+
} finally{
|
|
69
|
+
seen.delete(value);
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
throw new InconclusiveMatchError(`Cannot represent ${typeof value} like the flags service`);
|
|
74
|
+
}
|
|
75
|
+
function compareJsonObjectKeys(left, right) {
|
|
76
|
+
let leftIndex = 0;
|
|
77
|
+
let rightIndex = 0;
|
|
78
|
+
while(leftIndex < left.length && rightIndex < right.length){
|
|
79
|
+
const leftUnit = left.charCodeAt(leftIndex);
|
|
80
|
+
const rightUnit = right.charCodeAt(rightIndex);
|
|
81
|
+
const leftIsHighSurrogate = leftUnit >= 0xd800 && leftUnit <= 0xdbff;
|
|
82
|
+
const rightIsHighSurrogate = rightUnit >= 0xd800 && rightUnit <= 0xdbff;
|
|
83
|
+
const leftNext = leftIsHighSurrogate ? left.charCodeAt(leftIndex + 1) : 0;
|
|
84
|
+
const rightNext = rightIsHighSurrogate ? right.charCodeAt(rightIndex + 1) : 0;
|
|
85
|
+
const leftCodePoint = leftIsHighSurrogate ? (leftUnit - 0xd800) * 0x400 + leftNext - 0xdc00 + 0x10000 : leftUnit;
|
|
86
|
+
const rightCodePoint = rightIsHighSurrogate ? (rightUnit - 0xd800) * 0x400 + rightNext - 0xdc00 + 0x10000 : rightUnit;
|
|
87
|
+
if (leftCodePoint !== rightCodePoint) return leftCodePoint - rightCodePoint;
|
|
88
|
+
leftIndex += leftIsHighSurrogate ? 2 : 1;
|
|
89
|
+
rightIndex += rightIsHighSurrogate ? 2 : 1;
|
|
90
|
+
}
|
|
91
|
+
return left.length - right.length;
|
|
92
|
+
}
|
|
93
|
+
function serializeJsonValue(value, seen = new Set()) {
|
|
94
|
+
if (null === value) return 'null';
|
|
95
|
+
if ('string' == typeof value) {
|
|
96
|
+
assertUnicodeScalarString(value);
|
|
97
|
+
return JSON.stringify(value);
|
|
98
|
+
}
|
|
99
|
+
if ('boolean' == typeof value) return value ? 'true' : 'false';
|
|
100
|
+
if ('number' == typeof value) {
|
|
101
|
+
if (!Number.isFinite(value)) throw new InconclusiveMatchError(`Cannot stringify non-finite number ${value} like the flags service`);
|
|
102
|
+
if (Number.isInteger(value)) throw new InconclusiveMatchError(`Cannot distinguish integer ${value} from an integral JSON float during local evaluation`);
|
|
103
|
+
return String(value);
|
|
104
|
+
}
|
|
105
|
+
if (Array.isArray(value)) {
|
|
106
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot stringify a circular array during local evaluation');
|
|
107
|
+
seen.add(value);
|
|
108
|
+
try {
|
|
109
|
+
const items = [];
|
|
110
|
+
for(let index = 0; index < value.length; index++)items.push(index in value ? serializeJsonValue(value[index], seen) : 'null');
|
|
111
|
+
return `[${items.join(',')}]`;
|
|
112
|
+
} finally{
|
|
113
|
+
seen.delete(value);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if ('object' == typeof value) {
|
|
117
|
+
const prototype = Object.getPrototypeOf(value);
|
|
118
|
+
if (prototype !== Object.prototype && null !== prototype) throw new InconclusiveMatchError('Cannot stringify a non-JSON object like the flags service');
|
|
119
|
+
if (seen.has(value)) throw new InconclusiveMatchError('Cannot stringify a circular object during local evaluation');
|
|
120
|
+
seen.add(value);
|
|
121
|
+
try {
|
|
122
|
+
const keys = Object.keys(value);
|
|
123
|
+
keys.forEach(assertUnicodeScalarString);
|
|
124
|
+
return `{${keys.sort(compareJsonObjectKeys).map((key)=>`${JSON.stringify(key)}:${serializeJsonValue(value[key], seen)}`).join(',')}}`;
|
|
125
|
+
} finally{
|
|
126
|
+
seen.delete(value);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
throw new InconclusiveMatchError(`Cannot stringify ${typeof value} like the flags service`);
|
|
130
|
+
}
|
|
131
|
+
function exactMatchString(value) {
|
|
132
|
+
if ('string' == typeof value) {
|
|
133
|
+
assertUnicodeScalarString(value);
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
return serializeJsonValue(value);
|
|
137
|
+
}
|
|
14
138
|
function isValidRegex(regex) {
|
|
15
139
|
try {
|
|
16
140
|
new RegExp(regex);
|
|
@@ -19,6 +143,9 @@ function isValidRegex(regex) {
|
|
|
19
143
|
return false;
|
|
20
144
|
}
|
|
21
145
|
}
|
|
146
|
+
function asciiLowercase(value) {
|
|
147
|
+
return String(value).replace(/[A-Z]/g, (character)=>character.toLowerCase());
|
|
148
|
+
}
|
|
22
149
|
function parseSemverNumericIdentifier(part, raw, parsingPolicy) {
|
|
23
150
|
if (!/^\d+$/.test(part) || 'strict' === parsingPolicy && part.length > 1 && '0' === part[0]) throw new InconclusiveMatchError(`Invalid semver: ${raw}`);
|
|
24
151
|
return parseInt(part, 10);
|
|
@@ -162,15 +289,27 @@ function matchFeatureFlagProperty(property, propertyValues, options = {}) {
|
|
|
162
289
|
const hasProperty = Object.prototype.hasOwnProperty.call(propertyValues, key);
|
|
163
290
|
if (hasProperty) {
|
|
164
291
|
if ('is_not_set' === operator) return false;
|
|
292
|
+
else if ('is_set' === operator) return true;
|
|
165
293
|
} else throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`);
|
|
166
294
|
const overrideValue = propertyValues[key];
|
|
167
|
-
if (
|
|
168
|
-
options.warnFunction?.(`Property ${key} cannot have a value of
|
|
295
|
+
if (void 0 === overrideValue) {
|
|
296
|
+
options.warnFunction?.(`Property ${key} cannot have a value of undefined with the ${operator} operator`);
|
|
297
|
+
return 'is_not' === operator;
|
|
298
|
+
}
|
|
299
|
+
if (null === overrideValue && !NULL_VALUES_ALLOWED_OPERATORS.includes(operator) && 'exact' !== operator && 'is_not' !== operator) {
|
|
300
|
+
options.warnFunction?.(`Property ${key} cannot have a value of null with the ${operator} operator`);
|
|
169
301
|
return false;
|
|
170
302
|
}
|
|
171
303
|
const computeExactMatch = (target, actual)=>{
|
|
172
|
-
if (
|
|
173
|
-
|
|
304
|
+
if (isTruthyOrFalsyPropertyValue(target)) {
|
|
305
|
+
assertJsonRepresentable(actual);
|
|
306
|
+
return isTruthyPropertyValue(target) === isTruthyPropertyValue(actual);
|
|
307
|
+
}
|
|
308
|
+
if (Array.isArray(target)) {
|
|
309
|
+
const actualString = exactMatchString(actual).toLowerCase();
|
|
310
|
+
return target.some((item)=>exactMatchString(item).toLowerCase() === actualString);
|
|
311
|
+
}
|
|
312
|
+
return exactMatchString(target).toLowerCase() === exactMatchString(actual).toLowerCase();
|
|
174
313
|
};
|
|
175
314
|
const compare = (lhs, rhs, comparisonOperator)=>{
|
|
176
315
|
if ('gt' === comparisonOperator) return lhs > rhs;
|
|
@@ -187,17 +326,17 @@ function matchFeatureFlagProperty(property, propertyValues, options = {}) {
|
|
|
187
326
|
case 'is_set':
|
|
188
327
|
return true;
|
|
189
328
|
case 'icontains':
|
|
190
|
-
return
|
|
329
|
+
return asciiLowercase(overrideValue).includes(asciiLowercase(value));
|
|
191
330
|
case 'not_icontains':
|
|
192
|
-
return !
|
|
331
|
+
return !asciiLowercase(overrideValue).includes(asciiLowercase(value));
|
|
193
332
|
case 'starts_with':
|
|
194
|
-
return
|
|
333
|
+
return asciiLowercase(overrideValue).startsWith(asciiLowercase(value));
|
|
195
334
|
case 'not_starts_with':
|
|
196
|
-
return !
|
|
335
|
+
return !asciiLowercase(overrideValue).startsWith(asciiLowercase(value));
|
|
197
336
|
case 'ends_with':
|
|
198
|
-
return
|
|
337
|
+
return asciiLowercase(overrideValue).endsWith(asciiLowercase(value));
|
|
199
338
|
case 'not_ends_with':
|
|
200
|
-
return !
|
|
339
|
+
return !asciiLowercase(overrideValue).endsWith(asciiLowercase(value));
|
|
201
340
|
case 'regex':
|
|
202
341
|
return isValidRegex(String(value)) && null !== String(overrideValue).match(String(value));
|
|
203
342
|
case 'not_regex':
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ export type { FeatureFlagProperty, FeatureFlagPropertyValue, FeatureFlagSemverPa
|
|
|
4
4
|
export { gzipCompress, isGzipData, isGzipRequest, isGzipSupported, isNativeAsyncGzipError, isNativeAsyncGzipReadError, } from './gzip';
|
|
5
5
|
export * from './utils';
|
|
6
6
|
export * as ErrorTracking from './error-tracking';
|
|
7
|
-
export { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getOtlpSeverityNumber, getOtlpSeverityText,
|
|
7
|
+
export { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes, getOtlpSeverityNumber, getOtlpSeverityText, } from './logs/logs-utils';
|
|
8
|
+
export { toOtlpAnyValue, toOtlpKeyValueList } from './utils/otlp-any-value';
|
|
9
|
+
export { osResourceAttributes } from './utils/otlp-resource';
|
|
8
10
|
export { PostHogLogs } from './logs';
|
|
9
11
|
export type { BeforeSendLogFn, BufferedLogEntry, CaptureLogger, LogSdkContext, PostHogLogsConfig, ResolvedPostHogLogsConfig, } from './logs/types';
|
|
10
12
|
export type { CaptureLogOptions, LogAttributeValue, LogAttributes, LogSeverityLevel } from './logs/types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6CAA6C,EAC7C,iCAAiC,GAClC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,6CAA6C,EAC7C,iCAAiC,GAClC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,QAAQ,EACR,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,uCAAuC,EACvC,yBAAyB,GAC1B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,QAAQ,CAAA;AACf,cAAc,SAAS,CAAA;AACvB,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AAIrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGzG,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAGhE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,OAAO,EACP,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -42,6 +42,12 @@ var __webpack_modules__ = {
|
|
|
42
42
|
"./utils?637c": function(module) {
|
|
43
43
|
module.exports = require("./utils/index.js");
|
|
44
44
|
},
|
|
45
|
+
"./utils/otlp-any-value": function(module) {
|
|
46
|
+
module.exports = require("./utils/otlp-any-value.js");
|
|
47
|
+
},
|
|
48
|
+
"./utils/otlp-resource": function(module) {
|
|
49
|
+
module.exports = require("./utils/otlp-resource.js");
|
|
50
|
+
},
|
|
45
51
|
"./vendor/uuidv7": function(module) {
|
|
46
52
|
module.exports = require("./vendor/uuidv7.js");
|
|
47
53
|
}
|
|
@@ -90,16 +96,16 @@ var __webpack_exports__ = {};
|
|
|
90
96
|
(()=>{
|
|
91
97
|
__webpack_require__.r(__webpack_exports__);
|
|
92
98
|
__webpack_require__.d(__webpack_exports__, {
|
|
93
|
-
DEFAULT_HISTOGRAM_BOUNDS: ()=>
|
|
99
|
+
DEFAULT_HISTOGRAM_BOUNDS: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.DEFAULT_HISTOGRAM_BOUNDS,
|
|
94
100
|
ErrorTracking: ()=>_error_tracking__WEBPACK_IMPORTED_MODULE_4__,
|
|
95
101
|
InconclusiveMatchError: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.InconclusiveMatchError,
|
|
96
102
|
MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES,
|
|
97
|
-
PostHogLogs: ()=>
|
|
98
|
-
PostHogMetrics: ()=>
|
|
99
|
-
buildMetricsResourceAttributes: ()=>
|
|
103
|
+
PostHogLogs: ()=>_logs__WEBPACK_IMPORTED_MODULE_8__.PostHogLogs,
|
|
104
|
+
PostHogMetrics: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.PostHogMetrics,
|
|
105
|
+
buildMetricsResourceAttributes: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.buildMetricsResourceAttributes,
|
|
100
106
|
buildOtlpLogRecord: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildOtlpLogRecord,
|
|
101
107
|
buildOtlpLogsPayload: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildOtlpLogsPayload,
|
|
102
|
-
buildOtlpMetricsPayload: ()=>
|
|
108
|
+
buildOtlpMetricsPayload: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.buildOtlpMetricsPayload,
|
|
103
109
|
buildResourceAttributes: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.buildResourceAttributes,
|
|
104
110
|
flagDetailsToResults: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.flagDetailsToResults,
|
|
105
111
|
getEnabledFromValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getEnabledFromValue,
|
|
@@ -107,11 +113,11 @@ var __webpack_exports__ = {};
|
|
|
107
113
|
getFeatureFlagValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getFeatureFlagValue,
|
|
108
114
|
getFeatureFlagVariant: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.getFeatureFlagVariant,
|
|
109
115
|
getFeatureFlagVariantLookupTable: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.getFeatureFlagVariantLookupTable,
|
|
110
|
-
getLengthFromRules: ()=>
|
|
116
|
+
getLengthFromRules: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getLengthFromRules,
|
|
111
117
|
getOtlpSeverityNumber: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.getOtlpSeverityNumber,
|
|
112
118
|
getOtlpSeverityText: ()=>_logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__.getOtlpSeverityText,
|
|
113
|
-
getRequirementsHint: ()=>
|
|
114
|
-
getValidationError: ()=>
|
|
119
|
+
getRequirementsHint: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getRequirementsHint,
|
|
120
|
+
getValidationError: ()=>_surveys_validation__WEBPACK_IMPORTED_MODULE_16__.getValidationError,
|
|
115
121
|
getVariantFromValue: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.getVariantFromValue,
|
|
116
122
|
gzipCompress: ()=>_gzip__WEBPACK_IMPORTED_MODULE_2__.gzipCompress,
|
|
117
123
|
hashSHA1: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.hashSHA1,
|
|
@@ -122,14 +128,15 @@ var __webpack_exports__ = {};
|
|
|
122
128
|
isNativeAsyncGzipReadError: ()=>_gzip__WEBPACK_IMPORTED_MODULE_2__.isNativeAsyncGzipReadError,
|
|
123
129
|
matchFeatureFlagProperty: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.matchFeatureFlagProperty,
|
|
124
130
|
minimizeFlagCalledEventProperties: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.minimizeFlagCalledEventProperties,
|
|
131
|
+
osResourceAttributes: ()=>_utils_otlp_resource__WEBPACK_IMPORTED_MODULE_7__.osResourceAttributes,
|
|
125
132
|
parseFeatureFlagSemver: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.parseFeatureFlagSemver,
|
|
126
133
|
parsePayload: ()=>_featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__.parsePayload,
|
|
127
134
|
relativeDateParseForFeatureFlagMatching: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.relativeDateParseForFeatureFlagMatching,
|
|
128
135
|
resolveFeatureFlagPayload: ()=>_featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__.resolveFeatureFlagPayload,
|
|
129
|
-
resolveMetricsConfig: ()=>
|
|
130
|
-
toOtlpAnyValue: ()=>
|
|
131
|
-
toOtlpKeyValueList: ()=>
|
|
132
|
-
uuidv7: ()=>
|
|
136
|
+
resolveMetricsConfig: ()=>_metrics__WEBPACK_IMPORTED_MODULE_9__.resolveMetricsConfig,
|
|
137
|
+
toOtlpAnyValue: ()=>_utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__.toOtlpAnyValue,
|
|
138
|
+
toOtlpKeyValueList: ()=>_utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__.toOtlpKeyValueList,
|
|
139
|
+
uuidv7: ()=>_vendor_uuidv7__WEBPACK_IMPORTED_MODULE_10__.uuidv7
|
|
133
140
|
});
|
|
134
141
|
var _featureFlagUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./featureFlagUtils");
|
|
135
142
|
var _featureFlagLocalEvaluation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./featureFlagLocalEvaluation");
|
|
@@ -138,6 +145,7 @@ var __webpack_exports__ = {};
|
|
|
138
145
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
139
146
|
for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_3__)if ([
|
|
140
147
|
"toOtlpKeyValueList",
|
|
148
|
+
"osResourceAttributes",
|
|
141
149
|
"relativeDateParseForFeatureFlagMatching",
|
|
142
150
|
"isNativeAsyncGzipError",
|
|
143
151
|
"getOtlpSeverityText",
|
|
@@ -184,13 +192,16 @@ var __webpack_exports__ = {};
|
|
|
184
192
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
185
193
|
var _error_tracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./error-tracking");
|
|
186
194
|
var _logs_logs_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./logs/logs-utils");
|
|
187
|
-
var
|
|
188
|
-
var
|
|
189
|
-
var
|
|
190
|
-
var
|
|
195
|
+
var _utils_otlp_any_value__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("./utils/otlp-any-value");
|
|
196
|
+
var _utils_otlp_resource__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("./utils/otlp-resource");
|
|
197
|
+
var _logs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("./logs");
|
|
198
|
+
var _metrics__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("./metrics");
|
|
199
|
+
var _vendor_uuidv7__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("./vendor/uuidv7");
|
|
200
|
+
var _cookie__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__("./cookie");
|
|
191
201
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
192
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
202
|
+
for(var __WEBPACK_IMPORT_KEY__ in _cookie__WEBPACK_IMPORTED_MODULE_11__)if ([
|
|
193
203
|
"toOtlpKeyValueList",
|
|
204
|
+
"osResourceAttributes",
|
|
194
205
|
"relativeDateParseForFeatureFlagMatching",
|
|
195
206
|
"isNativeAsyncGzipError",
|
|
196
207
|
"getOtlpSeverityText",
|
|
@@ -232,13 +243,14 @@ var __webpack_exports__ = {};
|
|
|
232
243
|
"buildOtlpLogRecord",
|
|
233
244
|
"getFeatureFlagVariant"
|
|
234
245
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
235
|
-
return
|
|
246
|
+
return _cookie__WEBPACK_IMPORTED_MODULE_11__[key];
|
|
236
247
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
237
248
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
238
|
-
var
|
|
249
|
+
var _posthog_core__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__("./posthog-core");
|
|
239
250
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
240
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
251
|
+
for(var __WEBPACK_IMPORT_KEY__ in _posthog_core__WEBPACK_IMPORTED_MODULE_12__)if ([
|
|
241
252
|
"toOtlpKeyValueList",
|
|
253
|
+
"osResourceAttributes",
|
|
242
254
|
"relativeDateParseForFeatureFlagMatching",
|
|
243
255
|
"isNativeAsyncGzipError",
|
|
244
256
|
"getOtlpSeverityText",
|
|
@@ -280,13 +292,14 @@ var __webpack_exports__ = {};
|
|
|
280
292
|
"buildOtlpLogRecord",
|
|
281
293
|
"getFeatureFlagVariant"
|
|
282
294
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
283
|
-
return
|
|
295
|
+
return _posthog_core__WEBPACK_IMPORTED_MODULE_12__[key];
|
|
284
296
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
285
297
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
286
|
-
var
|
|
298
|
+
var _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__("./posthog-core-stateless");
|
|
287
299
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
288
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
300
|
+
for(var __WEBPACK_IMPORT_KEY__ in _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__)if ([
|
|
289
301
|
"toOtlpKeyValueList",
|
|
302
|
+
"osResourceAttributes",
|
|
290
303
|
"relativeDateParseForFeatureFlagMatching",
|
|
291
304
|
"isNativeAsyncGzipError",
|
|
292
305
|
"getOtlpSeverityText",
|
|
@@ -328,13 +341,14 @@ var __webpack_exports__ = {};
|
|
|
328
341
|
"buildOtlpLogRecord",
|
|
329
342
|
"getFeatureFlagVariant"
|
|
330
343
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
331
|
-
return
|
|
344
|
+
return _posthog_core_stateless__WEBPACK_IMPORTED_MODULE_13__[key];
|
|
332
345
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
333
346
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
334
|
-
var
|
|
347
|
+
var _tracing_headers__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__("./tracing-headers");
|
|
335
348
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
336
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
349
|
+
for(var __WEBPACK_IMPORT_KEY__ in _tracing_headers__WEBPACK_IMPORTED_MODULE_14__)if ([
|
|
337
350
|
"toOtlpKeyValueList",
|
|
351
|
+
"osResourceAttributes",
|
|
338
352
|
"relativeDateParseForFeatureFlagMatching",
|
|
339
353
|
"isNativeAsyncGzipError",
|
|
340
354
|
"getOtlpSeverityText",
|
|
@@ -376,13 +390,14 @@ var __webpack_exports__ = {};
|
|
|
376
390
|
"buildOtlpLogRecord",
|
|
377
391
|
"getFeatureFlagVariant"
|
|
378
392
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
379
|
-
return
|
|
393
|
+
return _tracing_headers__WEBPACK_IMPORTED_MODULE_14__[key];
|
|
380
394
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
381
395
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
382
|
-
var
|
|
396
|
+
var _types__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__("./types");
|
|
383
397
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
384
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
398
|
+
for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_15__)if ([
|
|
385
399
|
"toOtlpKeyValueList",
|
|
400
|
+
"osResourceAttributes",
|
|
386
401
|
"relativeDateParseForFeatureFlagMatching",
|
|
387
402
|
"isNativeAsyncGzipError",
|
|
388
403
|
"getOtlpSeverityText",
|
|
@@ -424,10 +439,10 @@ var __webpack_exports__ = {};
|
|
|
424
439
|
"buildOtlpLogRecord",
|
|
425
440
|
"getFeatureFlagVariant"
|
|
426
441
|
].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
|
|
427
|
-
return
|
|
442
|
+
return _types__WEBPACK_IMPORTED_MODULE_15__[key];
|
|
428
443
|
}).bind(0, __WEBPACK_IMPORT_KEY__);
|
|
429
444
|
__webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
430
|
-
var
|
|
445
|
+
var _surveys_validation__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__("./surveys/validation");
|
|
431
446
|
})();
|
|
432
447
|
exports.DEFAULT_HISTOGRAM_BOUNDS = __webpack_exports__.DEFAULT_HISTOGRAM_BOUNDS;
|
|
433
448
|
exports.ErrorTracking = __webpack_exports__.ErrorTracking;
|
|
@@ -461,6 +476,7 @@ exports.isNativeAsyncGzipError = __webpack_exports__.isNativeAsyncGzipError;
|
|
|
461
476
|
exports.isNativeAsyncGzipReadError = __webpack_exports__.isNativeAsyncGzipReadError;
|
|
462
477
|
exports.matchFeatureFlagProperty = __webpack_exports__.matchFeatureFlagProperty;
|
|
463
478
|
exports.minimizeFlagCalledEventProperties = __webpack_exports__.minimizeFlagCalledEventProperties;
|
|
479
|
+
exports.osResourceAttributes = __webpack_exports__.osResourceAttributes;
|
|
464
480
|
exports.parseFeatureFlagSemver = __webpack_exports__.parseFeatureFlagSemver;
|
|
465
481
|
exports.parsePayload = __webpack_exports__.parsePayload;
|
|
466
482
|
exports.relativeDateParseForFeatureFlagMatching = __webpack_exports__.relativeDateParseForFeatureFlagMatching;
|
|
@@ -502,6 +518,7 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
|
502
518
|
"isNativeAsyncGzipReadError",
|
|
503
519
|
"matchFeatureFlagProperty",
|
|
504
520
|
"minimizeFlagCalledEventProperties",
|
|
521
|
+
"osResourceAttributes",
|
|
505
522
|
"parseFeatureFlagSemver",
|
|
506
523
|
"parsePayload",
|
|
507
524
|
"relativeDateParseForFeatureFlagMatching",
|