@posthog/core 1.23.1 → 1.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/posthog-core-stateless.d.ts +3 -0
- package/dist/posthog-core-stateless.d.ts.map +1 -1
- package/dist/utils/number-utils.d.ts +29 -1
- package/dist/utils/number-utils.d.ts.map +1 -1
- package/dist/utils/number-utils.js +34 -2
- package/dist/utils/number-utils.mjs +24 -1
- package/package.json +1 -1
- package/src/posthog-core-stateless.ts +3 -0
- package/src/utils/number-utils.spec.ts +64 -1
- package/src/utils/number-utils.ts +68 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-core-stateless.d.ts","sourceRoot":"","sources":["../src/posthog-core-stateless.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"posthog-core-stateless.d.ts","sourceRoot":"","sources":["../src/posthog-core-stateless.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger } from '../types';
|
|
1
|
+
import { JsonType, Logger } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Clamps a value to a range.
|
|
4
4
|
* @param value the value to clamp
|
|
@@ -8,4 +8,32 @@ import { Logger } from '../types';
|
|
|
8
8
|
* @param fallbackValue if provided then returns this value if the value is not a valid number
|
|
9
9
|
*/
|
|
10
10
|
export declare function clampToRange(value: unknown, min: number, max: number, logger: Logger, fallbackValue?: number): number;
|
|
11
|
+
/**
|
|
12
|
+
* Reads a boolean value from a remote config field.
|
|
13
|
+
*
|
|
14
|
+
* Remote config fields follow a pattern: they are either a boolean (false = disabled),
|
|
15
|
+
* an object with specific keys, or absent/undefined.
|
|
16
|
+
*
|
|
17
|
+
* @param field The remote config field (e.g., `response.errorTracking`, `response.capturePerformance`)
|
|
18
|
+
* @param key The key to read from the object form (e.g., `'autocaptureExceptions'`, `'network_timing'`)
|
|
19
|
+
* @param defaultValue Value to return when the field is absent/undefined (defaults to `true` — don't block locally enabled capture)
|
|
20
|
+
*/
|
|
21
|
+
export declare function getRemoteConfigBool(field: boolean | {
|
|
22
|
+
[key: string]: JsonType;
|
|
23
|
+
} | undefined, key: string, defaultValue?: boolean): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Reads a numeric value from a remote config object field.
|
|
26
|
+
*
|
|
27
|
+
* Remote config values may be either numbers or numeric strings.
|
|
28
|
+
*
|
|
29
|
+
* @param field The remote config field (e.g. `response.sessionRecording`)
|
|
30
|
+
* @param key The key to read (e.g. `'sampleRate'`)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getRemoteConfigNumber(field: boolean | {
|
|
33
|
+
[key: string]: JsonType;
|
|
34
|
+
} | undefined, key: string): number | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Checks whether a value is a valid session replay sample rate in the inclusive range [0, 1].
|
|
37
|
+
*/
|
|
38
|
+
export declare function isValidSampleRate(value: unknown): value is number;
|
|
11
39
|
//# sourceMappingURL=number-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-utils.d.ts","sourceRoot":"","sources":["../../src/utils/number-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"number-utils.d.ts","sourceRoot":"","sources":["../../src/utils/number-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAG3C;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBrH;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EACxD,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,OAAc,GAC3B,OAAO,CAYT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,SAAS,EACxD,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAmBpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE"}
|
|
@@ -24,7 +24,10 @@ var __webpack_require__ = {};
|
|
|
24
24
|
var __webpack_exports__ = {};
|
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
|
|
27
|
+
getRemoteConfigBool: ()=>getRemoteConfigBool,
|
|
28
|
+
clampToRange: ()=>clampToRange,
|
|
29
|
+
getRemoteConfigNumber: ()=>getRemoteConfigNumber,
|
|
30
|
+
isValidSampleRate: ()=>isValidSampleRate
|
|
28
31
|
});
|
|
29
32
|
const external_type_utils_js_namespaceObject = require("./type-utils.js");
|
|
30
33
|
function clampToRange(value, min, max, logger, fallbackValue) {
|
|
@@ -43,9 +46,38 @@ function clampToRange(value, min, max, logger, fallbackValue) {
|
|
|
43
46
|
logger.warn(' must be a number. using max or fallback. max: ' + max + ', fallback: ' + fallbackValue);
|
|
44
47
|
return clampToRange(fallbackValue || max, min, max, logger);
|
|
45
48
|
}
|
|
49
|
+
function getRemoteConfigBool(field, key, defaultValue = true) {
|
|
50
|
+
if (null == field) return defaultValue;
|
|
51
|
+
if ('boolean' == typeof field) return field;
|
|
52
|
+
if ('object' == typeof field) {
|
|
53
|
+
const value = field[key];
|
|
54
|
+
return 'boolean' == typeof value ? value : defaultValue;
|
|
55
|
+
}
|
|
56
|
+
return defaultValue;
|
|
57
|
+
}
|
|
58
|
+
function getRemoteConfigNumber(field, key) {
|
|
59
|
+
if (null == field || 'object' != typeof field) return;
|
|
60
|
+
const value = field[key];
|
|
61
|
+
if ('number' == typeof value && Number.isFinite(value)) return value;
|
|
62
|
+
if ('string' == typeof value) {
|
|
63
|
+
const trimmed = value.trim();
|
|
64
|
+
if ('' === trimmed) return;
|
|
65
|
+
const parsed = Number(trimmed);
|
|
66
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function isValidSampleRate(value) {
|
|
70
|
+
return 'number' == typeof value && Number.isFinite(value) && value >= 0 && value <= 1;
|
|
71
|
+
}
|
|
46
72
|
exports.clampToRange = __webpack_exports__.clampToRange;
|
|
73
|
+
exports.getRemoteConfigBool = __webpack_exports__.getRemoteConfigBool;
|
|
74
|
+
exports.getRemoteConfigNumber = __webpack_exports__.getRemoteConfigNumber;
|
|
75
|
+
exports.isValidSampleRate = __webpack_exports__.isValidSampleRate;
|
|
47
76
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
48
|
-
"clampToRange"
|
|
77
|
+
"clampToRange",
|
|
78
|
+
"getRemoteConfigBool",
|
|
79
|
+
"getRemoteConfigNumber",
|
|
80
|
+
"isValidSampleRate"
|
|
49
81
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
50
82
|
Object.defineProperty(exports, '__esModule', {
|
|
51
83
|
value: true
|
|
@@ -15,4 +15,27 @@ function clampToRange(value, min, max, logger, fallbackValue) {
|
|
|
15
15
|
logger.warn(' must be a number. using max or fallback. max: ' + max + ', fallback: ' + fallbackValue);
|
|
16
16
|
return clampToRange(fallbackValue || max, min, max, logger);
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
function getRemoteConfigBool(field, key, defaultValue = true) {
|
|
19
|
+
if (null == field) return defaultValue;
|
|
20
|
+
if ('boolean' == typeof field) return field;
|
|
21
|
+
if ('object' == typeof field) {
|
|
22
|
+
const value = field[key];
|
|
23
|
+
return 'boolean' == typeof value ? value : defaultValue;
|
|
24
|
+
}
|
|
25
|
+
return defaultValue;
|
|
26
|
+
}
|
|
27
|
+
function getRemoteConfigNumber(field, key) {
|
|
28
|
+
if (null == field || 'object' != typeof field) return;
|
|
29
|
+
const value = field[key];
|
|
30
|
+
if ('number' == typeof value && Number.isFinite(value)) return value;
|
|
31
|
+
if ('string' == typeof value) {
|
|
32
|
+
const trimmed = value.trim();
|
|
33
|
+
if ('' === trimmed) return;
|
|
34
|
+
const parsed = Number(trimmed);
|
|
35
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function isValidSampleRate(value) {
|
|
39
|
+
return 'number' == typeof value && Number.isFinite(value) && value >= 0 && value <= 1;
|
|
40
|
+
}
|
|
41
|
+
export { clampToRange, getRemoteConfigBool, getRemoteConfigNumber, isValidSampleRate };
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createMockLogger } from '@/testing'
|
|
2
|
-
import { clampToRange } from './number-utils'
|
|
2
|
+
import { clampToRange, getRemoteConfigBool, getRemoteConfigNumber, isValidSampleRate } from './number-utils'
|
|
3
3
|
|
|
4
4
|
describe('number-utils', () => {
|
|
5
5
|
const mockLogger = createMockLogger()
|
|
@@ -86,4 +86,67 @@ describe('number-utils', () => {
|
|
|
86
86
|
expect(mockLogger.warn).toHaveBeenCalledWith('min cannot be greater than max.')
|
|
87
87
|
})
|
|
88
88
|
})
|
|
89
|
+
|
|
90
|
+
describe('getRemoteConfigBool', () => {
|
|
91
|
+
it('returns default value when field is undefined or null', () => {
|
|
92
|
+
expect(getRemoteConfigBool(undefined, 'key')).toBe(true)
|
|
93
|
+
expect(getRemoteConfigBool(undefined, 'key', false)).toBe(false)
|
|
94
|
+
expect(getRemoteConfigBool(null as any, 'key')).toBe(true)
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
it('returns the boolean directly when field is boolean', () => {
|
|
98
|
+
expect(getRemoteConfigBool(true, 'key')).toBe(true)
|
|
99
|
+
expect(getRemoteConfigBool(false, 'key')).toBe(false)
|
|
100
|
+
expect(getRemoteConfigBool(false, 'key', true)).toBe(false)
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
it('returns the key value when field is an object with a boolean key', () => {
|
|
104
|
+
expect(getRemoteConfigBool({ autocaptureExceptions: true }, 'autocaptureExceptions')).toBe(true)
|
|
105
|
+
expect(getRemoteConfigBool({ autocaptureExceptions: false }, 'autocaptureExceptions')).toBe(false)
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
it('returns default value when key is missing or non-boolean', () => {
|
|
109
|
+
expect(getRemoteConfigBool({ otherKey: 'value' }, 'autocaptureExceptions')).toBe(true)
|
|
110
|
+
expect(getRemoteConfigBool({ otherKey: 'value' }, 'autocaptureExceptions', false)).toBe(false)
|
|
111
|
+
expect(getRemoteConfigBool({ autocaptureExceptions: 'yes' }, 'autocaptureExceptions')).toBe(true)
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
it('returns default true for empty object', () => {
|
|
115
|
+
expect(getRemoteConfigBool({}, 'key')).toBe(true)
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
describe('getRemoteConfigNumber', () => {
|
|
120
|
+
it('returns undefined for missing/invalid fields', () => {
|
|
121
|
+
expect(getRemoteConfigNumber(undefined, 'sampleRate')).toBeUndefined()
|
|
122
|
+
expect(getRemoteConfigNumber(false, 'sampleRate')).toBeUndefined()
|
|
123
|
+
expect(getRemoteConfigNumber({}, 'sampleRate')).toBeUndefined()
|
|
124
|
+
expect(getRemoteConfigNumber({ sampleRate: 'abc' }, 'sampleRate')).toBeUndefined()
|
|
125
|
+
expect(getRemoteConfigNumber({ sampleRate: '' }, 'sampleRate')).toBeUndefined()
|
|
126
|
+
expect(getRemoteConfigNumber({ sampleRate: ' ' }, 'sampleRate')).toBeUndefined()
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
it('returns numeric value from number', () => {
|
|
130
|
+
expect(getRemoteConfigNumber({ sampleRate: 0.5 }, 'sampleRate')).toBe(0.5)
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
it('returns numeric value from numeric string', () => {
|
|
134
|
+
expect(getRemoteConfigNumber({ sampleRate: '0.5' }, 'sampleRate')).toBe(0.5)
|
|
135
|
+
})
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
describe('isValidSampleRate', () => {
|
|
139
|
+
it('returns true only for finite values in [0, 1]', () => {
|
|
140
|
+
expect(isValidSampleRate(0)).toBe(true)
|
|
141
|
+
expect(isValidSampleRate(0.5)).toBe(true)
|
|
142
|
+
expect(isValidSampleRate(1)).toBe(true)
|
|
143
|
+
|
|
144
|
+
expect(isValidSampleRate(-0.1)).toBe(false)
|
|
145
|
+
expect(isValidSampleRate(1.1)).toBe(false)
|
|
146
|
+
expect(isValidSampleRate(Number.POSITIVE_INFINITY)).toBe(false)
|
|
147
|
+
expect(isValidSampleRate(Number.NaN)).toBe(false)
|
|
148
|
+
expect(isValidSampleRate('0.5')).toBe(false)
|
|
149
|
+
expect(isValidSampleRate(null)).toBe(false)
|
|
150
|
+
})
|
|
151
|
+
})
|
|
89
152
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger } from '../types'
|
|
1
|
+
import { JsonType, Logger } from '../types'
|
|
2
2
|
import { isNumber } from './type-utils'
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -28,3 +28,70 @@ export function clampToRange(value: unknown, min: number, max: number, logger: L
|
|
|
28
28
|
return value
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Reads a boolean value from a remote config field.
|
|
34
|
+
*
|
|
35
|
+
* Remote config fields follow a pattern: they are either a boolean (false = disabled),
|
|
36
|
+
* an object with specific keys, or absent/undefined.
|
|
37
|
+
*
|
|
38
|
+
* @param field The remote config field (e.g., `response.errorTracking`, `response.capturePerformance`)
|
|
39
|
+
* @param key The key to read from the object form (e.g., `'autocaptureExceptions'`, `'network_timing'`)
|
|
40
|
+
* @param defaultValue Value to return when the field is absent/undefined (defaults to `true` — don't block locally enabled capture)
|
|
41
|
+
*/
|
|
42
|
+
export function getRemoteConfigBool(
|
|
43
|
+
field: boolean | { [key: string]: JsonType } | undefined,
|
|
44
|
+
key: string,
|
|
45
|
+
defaultValue: boolean = true
|
|
46
|
+
): boolean {
|
|
47
|
+
if (field == null) {
|
|
48
|
+
return defaultValue
|
|
49
|
+
}
|
|
50
|
+
if (typeof field === 'boolean') {
|
|
51
|
+
return field
|
|
52
|
+
}
|
|
53
|
+
if (typeof field === 'object') {
|
|
54
|
+
const value = field[key]
|
|
55
|
+
return typeof value === 'boolean' ? value : defaultValue
|
|
56
|
+
}
|
|
57
|
+
return defaultValue
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Reads a numeric value from a remote config object field.
|
|
62
|
+
*
|
|
63
|
+
* Remote config values may be either numbers or numeric strings.
|
|
64
|
+
*
|
|
65
|
+
* @param field The remote config field (e.g. `response.sessionRecording`)
|
|
66
|
+
* @param key The key to read (e.g. `'sampleRate'`)
|
|
67
|
+
*/
|
|
68
|
+
export function getRemoteConfigNumber(
|
|
69
|
+
field: boolean | { [key: string]: JsonType } | undefined,
|
|
70
|
+
key: string
|
|
71
|
+
): number | undefined {
|
|
72
|
+
if (field == null || typeof field !== 'object') {
|
|
73
|
+
return undefined
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const value = field[key]
|
|
77
|
+
if (typeof value === 'number' && Number.isFinite(value)) {
|
|
78
|
+
return value
|
|
79
|
+
}
|
|
80
|
+
if (typeof value === 'string') {
|
|
81
|
+
const trimmed = value.trim()
|
|
82
|
+
if (trimmed === '') {
|
|
83
|
+
return undefined
|
|
84
|
+
}
|
|
85
|
+
const parsed = Number(trimmed)
|
|
86
|
+
return Number.isFinite(parsed) ? parsed : undefined
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return undefined
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Checks whether a value is a valid session replay sample rate in the inclusive range [0, 1].
|
|
94
|
+
*/
|
|
95
|
+
export function isValidSampleRate(value: unknown): value is number {
|
|
96
|
+
return typeof value === 'number' && Number.isFinite(value) && value >= 0 && value <= 1
|
|
97
|
+
}
|