@posthog/core 1.48.10 → 1.48.11

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.
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ isMatchingRegex: ()=>isMatchingRegex,
28
+ isValidRegex: ()=>isValidRegex,
29
+ matchPropertyFilters: ()=>matchPropertyFilters,
30
+ propertyComparisons: ()=>propertyComparisons
31
+ });
32
+ const isValidRegex = (pattern)=>{
33
+ try {
34
+ new RegExp(pattern);
35
+ } catch {
36
+ return false;
37
+ }
38
+ return true;
39
+ };
40
+ const isMatchingRegex = (value, pattern)=>{
41
+ if (!isValidRegex(pattern)) return false;
42
+ try {
43
+ return new RegExp(pattern).test(value);
44
+ } catch {
45
+ return false;
46
+ }
47
+ };
48
+ const toLowerCase = (value)=>value.toLowerCase();
49
+ const propertyComparisons = {
50
+ exact: (targets, values)=>values.some((value)=>targets.some((target)=>value === target)),
51
+ is_not: (targets, values)=>values.every((value)=>targets.every((target)=>value !== target)),
52
+ regex: (targets, values)=>values.some((value)=>targets.some((target)=>isMatchingRegex(value, target))),
53
+ not_regex: (targets, values)=>values.every((value)=>targets.every((target)=>!isMatchingRegex(value, target))),
54
+ icontains: (targets, values)=>values.map(toLowerCase).some((value)=>targets.map(toLowerCase).some((target)=>value.includes(target))),
55
+ not_icontains: (targets, values)=>values.map(toLowerCase).every((value)=>targets.map(toLowerCase).every((target)=>!value.includes(target))),
56
+ gt: (targets, values)=>values.some((value)=>{
57
+ const numValue = parseFloat(value);
58
+ return !isNaN(numValue) && targets.some((target)=>numValue > parseFloat(target));
59
+ }),
60
+ lt: (targets, values)=>values.some((value)=>{
61
+ const numValue = parseFloat(value);
62
+ return !isNaN(numValue) && targets.some((target)=>numValue < parseFloat(target));
63
+ })
64
+ };
65
+ function matchPropertyFilters(propertyFilters, eventProperties) {
66
+ if (!propertyFilters) return true;
67
+ return Object.entries(propertyFilters).every(([propertyName, filter])=>{
68
+ const eventPropertyValue = eventProperties?.[propertyName];
69
+ if (null == eventPropertyValue) return false;
70
+ const comparisonFunction = propertyComparisons[filter.operator];
71
+ if (!comparisonFunction) return false;
72
+ return comparisonFunction(filter.values, [
73
+ String(eventPropertyValue)
74
+ ]);
75
+ });
76
+ }
77
+ exports.isMatchingRegex = __webpack_exports__.isMatchingRegex;
78
+ exports.isValidRegex = __webpack_exports__.isValidRegex;
79
+ exports.matchPropertyFilters = __webpack_exports__.matchPropertyFilters;
80
+ exports.propertyComparisons = __webpack_exports__.propertyComparisons;
81
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
82
+ "isMatchingRegex",
83
+ "isValidRegex",
84
+ "matchPropertyFilters",
85
+ "propertyComparisons"
86
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
87
+ Object.defineProperty(exports, '__esModule', {
88
+ value: true
89
+ });
@@ -0,0 +1,46 @@
1
+ const isValidRegex = (pattern)=>{
2
+ try {
3
+ new RegExp(pattern);
4
+ } catch {
5
+ return false;
6
+ }
7
+ return true;
8
+ };
9
+ const isMatchingRegex = (value, pattern)=>{
10
+ if (!isValidRegex(pattern)) return false;
11
+ try {
12
+ return new RegExp(pattern).test(value);
13
+ } catch {
14
+ return false;
15
+ }
16
+ };
17
+ const toLowerCase = (value)=>value.toLowerCase();
18
+ const propertyComparisons = {
19
+ exact: (targets, values)=>values.some((value)=>targets.some((target)=>value === target)),
20
+ is_not: (targets, values)=>values.every((value)=>targets.every((target)=>value !== target)),
21
+ regex: (targets, values)=>values.some((value)=>targets.some((target)=>isMatchingRegex(value, target))),
22
+ not_regex: (targets, values)=>values.every((value)=>targets.every((target)=>!isMatchingRegex(value, target))),
23
+ icontains: (targets, values)=>values.map(toLowerCase).some((value)=>targets.map(toLowerCase).some((target)=>value.includes(target))),
24
+ not_icontains: (targets, values)=>values.map(toLowerCase).every((value)=>targets.map(toLowerCase).every((target)=>!value.includes(target))),
25
+ gt: (targets, values)=>values.some((value)=>{
26
+ const numValue = parseFloat(value);
27
+ return !isNaN(numValue) && targets.some((target)=>numValue > parseFloat(target));
28
+ }),
29
+ lt: (targets, values)=>values.some((value)=>{
30
+ const numValue = parseFloat(value);
31
+ return !isNaN(numValue) && targets.some((target)=>numValue < parseFloat(target));
32
+ })
33
+ };
34
+ function matchPropertyFilters(propertyFilters, eventProperties) {
35
+ if (!propertyFilters) return true;
36
+ return Object.entries(propertyFilters).every(([propertyName, filter])=>{
37
+ const eventPropertyValue = eventProperties?.[propertyName];
38
+ if (null == eventPropertyValue) return false;
39
+ const comparisonFunction = propertyComparisons[filter.operator];
40
+ if (!comparisonFunction) return false;
41
+ return comparisonFunction(filter.values, [
42
+ String(eventPropertyValue)
43
+ ]);
44
+ });
45
+ }
46
+ export { isMatchingRegex, isValidRegex, matchPropertyFilters, propertyComparisons };
package/dist/types.d.ts CHANGED
@@ -724,6 +724,16 @@ export declare const SurveyMatchType: {
724
724
  readonly NotIcontains: "not_icontains";
725
725
  };
726
726
  export type SurveyMatchType = (typeof SurveyMatchType)[keyof typeof SurveyMatchType];
727
+ export type PropertyMatchType = SurveyMatchType;
728
+ export type PropertyOperator = PropertyMatchType | 'gt' | 'lt';
729
+ export type PropertyFilters = Record<string, {
730
+ values: string[];
731
+ operator: PropertyOperator;
732
+ }>;
733
+ export interface SurveyEventWithFilters {
734
+ name: string;
735
+ propertyFilters?: PropertyFilters;
736
+ }
727
737
  export declare const SurveySchedule: {
728
738
  readonly Once: "once";
729
739
  readonly Recurring: "recurring";
@@ -770,9 +780,7 @@ export type Survey = {
770
780
  urlMatchType?: SurveyMatchType;
771
781
  events?: {
772
782
  repeatedActivation?: boolean;
773
- values?: {
774
- name: string;
775
- }[];
783
+ values?: SurveyEventWithFilters[];
776
784
  };
777
785
  actions?: {
778
786
  values: SurveyActionType[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posthog/core",
3
- "version": "1.48.10",
3
+ "version": "1.48.11",
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.2"
73
+ "@posthog/types": "^1.405.3"
74
74
  },
75
75
  "devDependencies": {
76
76
  "@rslib/core": "0.10.6",
@@ -0,0 +1,375 @@
1
+ import { parsePayload } from './featureFlagUtils'
2
+ import type { FeatureFlagValue, JsonType } from './types'
3
+
4
+ export type FeatureFlagPropertyValue = string | number | (string | number)[] | boolean
5
+
6
+ export type FeatureFlagProperty = {
7
+ key: string
8
+ value: FeatureFlagPropertyValue
9
+ operator?: string
10
+ }
11
+
12
+ export type FeatureFlagSemverParsingPolicy = 'strict' | 'legacy-permissive'
13
+
14
+ export type MatchFeatureFlagPropertyOptions = {
15
+ warnFunction?: (message: string) => void
16
+ semverParsingPolicy?: FeatureFlagSemverParsingPolicy
17
+ }
18
+
19
+ export type FeatureFlagVariant = {
20
+ key: string
21
+ rollout_percentage: number
22
+ }
23
+
24
+ export type FeatureFlagVariantLookupEntry = {
25
+ valueMin: number
26
+ valueMax: number
27
+ key: string
28
+ }
29
+
30
+ const NULL_VALUES_ALLOWED_OPERATORS = ['is_not', 'is_set']
31
+
32
+ // This value is intentionally larger than Number.MAX_SAFE_INTEGER. Changing its rounding changes
33
+ // existing rollout and variant assignments.
34
+ // eslint-disable-next-line no-loss-of-precision
35
+ const LONG_SCALE = 0xfffffffffffffff
36
+
37
+ export class InconclusiveMatchError extends Error {
38
+ constructor(message: string) {
39
+ super(message)
40
+ this.name = this.constructor.name
41
+ Object.setPrototypeOf(this, InconclusiveMatchError.prototype)
42
+ }
43
+ }
44
+
45
+ function isValidRegex(regex: string): boolean {
46
+ try {
47
+ new RegExp(regex)
48
+ return true
49
+ } catch {
50
+ return false
51
+ }
52
+ }
53
+
54
+ type SemverTuple = [number, number, number]
55
+
56
+ function parseSemverNumericIdentifier(
57
+ part: string,
58
+ raw: string,
59
+ parsingPolicy: FeatureFlagSemverParsingPolicy
60
+ ): number {
61
+ if (!/^\d+$/.test(part) || (parsingPolicy === 'strict' && part.length > 1 && part[0] === '0')) {
62
+ throw new InconclusiveMatchError(`Invalid semver: ${raw}`)
63
+ }
64
+ return parseInt(part, 10)
65
+ }
66
+
67
+ export function parseFeatureFlagSemver(
68
+ value: string,
69
+ parsingPolicy: FeatureFlagSemverParsingPolicy = 'strict'
70
+ ): SemverTuple {
71
+ const text = String(value).trim().replace(/^[vV]/, '')
72
+ const baseVersion = text.split('-')[0].split('+')[0]
73
+
74
+ if (!baseVersion || baseVersion.startsWith('.')) {
75
+ throw new InconclusiveMatchError(`Invalid semver: ${value}`)
76
+ }
77
+
78
+ const parts = baseVersion.split('.')
79
+ const parsePart = (part: string | undefined): number => {
80
+ if (part === undefined || part === '') return 0
81
+ return parseSemverNumericIdentifier(part, value, parsingPolicy)
82
+ }
83
+
84
+ return [parsePart(parts[0]), parsePart(parts[1]), parsePart(parts[2])]
85
+ }
86
+
87
+ function compareSemverTuples(a: SemverTuple, b: SemverTuple): number {
88
+ for (let i = 0; i < 3; i++) {
89
+ if (a[i] < b[i]) return -1
90
+ if (a[i] > b[i]) return 1
91
+ }
92
+ return 0
93
+ }
94
+
95
+ function computeTildeBounds(
96
+ value: string,
97
+ parsingPolicy: FeatureFlagSemverParsingPolicy
98
+ ): { lower: SemverTuple; upper: SemverTuple } {
99
+ const parsed = parseFeatureFlagSemver(value, parsingPolicy)
100
+ return { lower: [parsed[0], parsed[1], parsed[2]], upper: [parsed[0], parsed[1] + 1, 0] }
101
+ }
102
+
103
+ function computeCaretBounds(
104
+ value: string,
105
+ parsingPolicy: FeatureFlagSemverParsingPolicy
106
+ ): { lower: SemverTuple; upper: SemverTuple } {
107
+ const [major, minor, patch] = parseFeatureFlagSemver(value, parsingPolicy)
108
+ const lower: SemverTuple = [major, minor, patch]
109
+ let upper: SemverTuple
110
+ if (major > 0) upper = [major + 1, 0, 0]
111
+ else if (minor > 0) upper = [0, minor + 1, 0]
112
+ else upper = [0, 0, patch + 1]
113
+ return { lower, upper }
114
+ }
115
+
116
+ function computeWildcardBounds(
117
+ value: string,
118
+ parsingPolicy: FeatureFlagSemverParsingPolicy
119
+ ): { lower: SemverTuple; upper: SemverTuple } {
120
+ const text = String(value).trim().replace(/^[vV]/, '')
121
+ const cleanedText = text.replace(/\.\*$/, '').replace(/\*$/, '')
122
+ if (!cleanedText) throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`)
123
+
124
+ const parts = cleanedText.split('.')
125
+ const parseWildcardPart = (part: string): number => {
126
+ if (parsingPolicy === 'legacy-permissive') {
127
+ const parsed = parseInt(part, 10)
128
+ if (!isNaN(parsed)) return parsed
129
+ } else {
130
+ try {
131
+ return parseSemverNumericIdentifier(part, value, parsingPolicy)
132
+ } catch {
133
+ // Normalize wildcard parsing failures to the historical wildcard-specific error.
134
+ }
135
+ }
136
+ throw new InconclusiveMatchError(`Invalid wildcard semver: ${value}`)
137
+ }
138
+
139
+ const major = parseWildcardPart(parts[0])
140
+ if (parts.length === 1) {
141
+ return { lower: [major, 0, 0], upper: [major + 1, 0, 0] }
142
+ }
143
+ const minor = parseWildcardPart(parts[1])
144
+ return { lower: [major, minor, 0], upper: [major, minor + 1, 0] }
145
+ }
146
+
147
+ function convertToDateTime(value: FeatureFlagPropertyValue | Date): Date {
148
+ if (value instanceof Date) return value
149
+ if (typeof value === 'string' || typeof value === 'number') {
150
+ const date = new Date(value)
151
+ if (!isNaN(date.valueOf())) return date
152
+ throw new InconclusiveMatchError(`${value} is in an invalid date format`)
153
+ }
154
+ throw new InconclusiveMatchError(`The date provided ${value} must be a string, number, or date object`)
155
+ }
156
+
157
+ export function relativeDateParseForFeatureFlagMatching(value: string): Date | null {
158
+ const regex = /^-?(?<number>[0-9]+)(?<interval>[a-z])$/
159
+ const match = value.match(regex)
160
+ const parsedDt = new Date(new Date().toISOString())
161
+
162
+ if (!match || !match.groups) return null
163
+
164
+ const number = parseInt(match.groups['number'])
165
+ if (number >= 10000) return null
166
+
167
+ const interval = match.groups['interval']
168
+ if (interval === 'h') parsedDt.setUTCHours(parsedDt.getUTCHours() - number)
169
+ else if (interval === 'd') parsedDt.setUTCDate(parsedDt.getUTCDate() - number)
170
+ else if (interval === 'w') parsedDt.setUTCDate(parsedDt.getUTCDate() - number * 7)
171
+ else if (interval === 'm') parsedDt.setUTCMonth(parsedDt.getUTCMonth() - number)
172
+ else if (interval === 'y') parsedDt.setUTCFullYear(parsedDt.getUTCFullYear() - number)
173
+ else return null
174
+
175
+ return parsedDt
176
+ }
177
+
178
+ export function matchFeatureFlagProperty(
179
+ property: FeatureFlagProperty,
180
+ propertyValues: Record<string, any>,
181
+ options: MatchFeatureFlagPropertyOptions = {}
182
+ ): boolean {
183
+ const key = property.key
184
+ const value = property.value
185
+ const operator = property.operator || 'exact'
186
+ const parsingPolicy = options.semverParsingPolicy ?? 'strict'
187
+
188
+ if (!(key in propertyValues)) {
189
+ if (operator === 'is_not_set') return true
190
+ throw new InconclusiveMatchError(`Property ${key} not found in propertyValues`)
191
+ } else if (operator === 'is_not_set') {
192
+ return false
193
+ }
194
+
195
+ const overrideValue = propertyValues[key]
196
+ if (overrideValue == null && !NULL_VALUES_ALLOWED_OPERATORS.includes(operator)) {
197
+ options.warnFunction?.(`Property ${key} cannot have a value of null/undefined with the ${operator} operator`)
198
+ return false
199
+ }
200
+
201
+ const computeExactMatch = (target: any, actual: any): boolean => {
202
+ if (Array.isArray(target)) {
203
+ return target.map((item) => String(item).toLowerCase()).includes(String(actual).toLowerCase())
204
+ }
205
+ return String(target).toLowerCase() === String(actual).toLowerCase()
206
+ }
207
+
208
+ const compare = (lhs: any, rhs: any, comparisonOperator: string): boolean => {
209
+ if (comparisonOperator === 'gt') return lhs > rhs
210
+ if (comparisonOperator === 'gte') return lhs >= rhs
211
+ if (comparisonOperator === 'lt') return lhs < rhs
212
+ if (comparisonOperator === 'lte') return lhs <= rhs
213
+ throw new Error(`Invalid operator: ${comparisonOperator}`)
214
+ }
215
+
216
+ switch (operator) {
217
+ case 'exact':
218
+ return computeExactMatch(value, overrideValue)
219
+ case 'is_not':
220
+ return !computeExactMatch(value, overrideValue)
221
+ case 'is_set':
222
+ return key in propertyValues
223
+ case 'icontains':
224
+ return String(overrideValue).toLowerCase().includes(String(value).toLowerCase())
225
+ case 'not_icontains':
226
+ return !String(overrideValue).toLowerCase().includes(String(value).toLowerCase())
227
+ case 'starts_with':
228
+ return String(overrideValue).toLowerCase().startsWith(String(value).toLowerCase())
229
+ case 'not_starts_with':
230
+ return !String(overrideValue).toLowerCase().startsWith(String(value).toLowerCase())
231
+ case 'ends_with':
232
+ return String(overrideValue).toLowerCase().endsWith(String(value).toLowerCase())
233
+ case 'not_ends_with':
234
+ return !String(overrideValue).toLowerCase().endsWith(String(value).toLowerCase())
235
+ case 'regex':
236
+ return isValidRegex(String(value)) && String(overrideValue).match(String(value)) !== null
237
+ case 'not_regex':
238
+ return isValidRegex(String(value)) && String(overrideValue).match(String(value)) === null
239
+ case 'gt':
240
+ case 'gte':
241
+ case 'lt':
242
+ case 'lte': {
243
+ const parsedValue = typeof value === 'number' ? value : parseFloat(String(value))
244
+ const parsedOverride =
245
+ typeof overrideValue === 'number'
246
+ ? overrideValue
247
+ : overrideValue != null
248
+ ? parseFloat(String(overrideValue))
249
+ : NaN
250
+ if (Number.isFinite(parsedValue) && Number.isFinite(parsedOverride)) {
251
+ return compare(parsedOverride, parsedValue, operator)
252
+ }
253
+ return compare(String(overrideValue), String(value), operator)
254
+ }
255
+ case 'is_date_after':
256
+ case 'is_date_before': {
257
+ if (typeof value === 'boolean') {
258
+ throw new InconclusiveMatchError('Date operations cannot be performed on boolean values')
259
+ }
260
+ let parsedDate = relativeDateParseForFeatureFlagMatching(String(value))
261
+ if (parsedDate == null) parsedDate = convertToDateTime(value)
262
+ const overrideDate = convertToDateTime(overrideValue)
263
+ return operator === 'is_date_before' ? overrideDate < parsedDate : overrideDate > parsedDate
264
+ }
265
+ case 'semver_eq':
266
+ return (
267
+ compareSemverTuples(
268
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
269
+ parseFeatureFlagSemver(String(value), parsingPolicy)
270
+ ) === 0
271
+ )
272
+ case 'semver_neq':
273
+ return (
274
+ compareSemverTuples(
275
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
276
+ parseFeatureFlagSemver(String(value), parsingPolicy)
277
+ ) !== 0
278
+ )
279
+ case 'semver_gt':
280
+ return (
281
+ compareSemverTuples(
282
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
283
+ parseFeatureFlagSemver(String(value), parsingPolicy)
284
+ ) > 0
285
+ )
286
+ case 'semver_gte':
287
+ return (
288
+ compareSemverTuples(
289
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
290
+ parseFeatureFlagSemver(String(value), parsingPolicy)
291
+ ) >= 0
292
+ )
293
+ case 'semver_lt':
294
+ return (
295
+ compareSemverTuples(
296
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
297
+ parseFeatureFlagSemver(String(value), parsingPolicy)
298
+ ) < 0
299
+ )
300
+ case 'semver_lte':
301
+ return (
302
+ compareSemverTuples(
303
+ parseFeatureFlagSemver(String(overrideValue), parsingPolicy),
304
+ parseFeatureFlagSemver(String(value), parsingPolicy)
305
+ ) <= 0
306
+ )
307
+ case 'semver_tilde': {
308
+ const overrideParsed = parseFeatureFlagSemver(String(overrideValue), parsingPolicy)
309
+ const { lower, upper } = computeTildeBounds(String(value), parsingPolicy)
310
+ return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
311
+ }
312
+ case 'semver_caret': {
313
+ const overrideParsed = parseFeatureFlagSemver(String(overrideValue), parsingPolicy)
314
+ const { lower, upper } = computeCaretBounds(String(value), parsingPolicy)
315
+ return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
316
+ }
317
+ case 'semver_wildcard': {
318
+ const overrideParsed = parseFeatureFlagSemver(String(overrideValue), parsingPolicy)
319
+ const { lower, upper } = computeWildcardBounds(String(value), parsingPolicy)
320
+ return compareSemverTuples(overrideParsed, lower) >= 0 && compareSemverTuples(overrideParsed, upper) < 0
321
+ }
322
+ default:
323
+ throw new InconclusiveMatchError(`Unknown operator: ${operator}`)
324
+ }
325
+ }
326
+
327
+ export async function hashSHA1(text: string): Promise<string> {
328
+ const subtle = globalThis.crypto?.subtle
329
+ if (!subtle) throw new Error('SubtleCrypto API not available')
330
+
331
+ const hashBuffer = await subtle.digest('SHA-1', new TextEncoder().encode(text))
332
+ return Array.from(new Uint8Array(hashBuffer))
333
+ .map((byte) => byte.toString(16).padStart(2, '0'))
334
+ .join('')
335
+ }
336
+
337
+ export async function getFeatureFlagHash(key: string, bucketingValue: string, salt: string = ''): Promise<number> {
338
+ const hashString = await hashSHA1(`${key}.${bucketingValue}${salt}`)
339
+ return parseInt(hashString.slice(0, 15), 16) / LONG_SCALE
340
+ }
341
+
342
+ export function getFeatureFlagVariantLookupTable(
343
+ variants: readonly FeatureFlagVariant[]
344
+ ): FeatureFlagVariantLookupEntry[] {
345
+ const table: FeatureFlagVariantLookupEntry[] = []
346
+ let valueMin = 0
347
+ for (const variant of variants) {
348
+ const valueMax = valueMin + variant.rollout_percentage / 100.0
349
+ table.push({ valueMin, valueMax, key: variant.key })
350
+ valueMin = valueMax
351
+ }
352
+ return table
353
+ }
354
+
355
+ export async function getFeatureFlagVariant(
356
+ key: string,
357
+ bucketingValue: string,
358
+ variants: readonly FeatureFlagVariant[]
359
+ ): Promise<string | undefined> {
360
+ const hashValue = await getFeatureFlagHash(key, bucketingValue, 'variant')
361
+ return getFeatureFlagVariantLookupTable(variants).find(
362
+ (variant) => hashValue >= variant.valueMin && hashValue < variant.valueMax
363
+ )?.key
364
+ }
365
+
366
+ export function resolveFeatureFlagPayload(
367
+ payloads: Readonly<Record<string, JsonType | undefined>> | null | undefined,
368
+ flagValue: FeatureFlagValue | null | undefined
369
+ ): JsonType | null {
370
+ if (flagValue === false || flagValue === null || flagValue === undefined || !payloads) return null
371
+
372
+ const payloadKey = typeof flagValue === 'boolean' ? flagValue.toString() : flagValue
373
+ const payload = payloads[payloadKey] || null
374
+ return payload == null ? null : (parsePayload(payload) as JsonType)
375
+ }
package/src/index.ts CHANGED
@@ -7,6 +7,25 @@ export {
7
7
  MINIMAL_FLAG_CALLED_EVENT_CAMPAIGN_PROPERTIES,
8
8
  minimizeFlagCalledEventProperties,
9
9
  } from './featureFlagUtils'
10
+ export {
11
+ getFeatureFlagHash,
12
+ getFeatureFlagVariant,
13
+ getFeatureFlagVariantLookupTable,
14
+ hashSHA1,
15
+ InconclusiveMatchError,
16
+ matchFeatureFlagProperty,
17
+ parseFeatureFlagSemver,
18
+ relativeDateParseForFeatureFlagMatching,
19
+ resolveFeatureFlagPayload,
20
+ } from './featureFlagLocalEvaluation'
21
+ export type {
22
+ FeatureFlagProperty,
23
+ FeatureFlagPropertyValue,
24
+ FeatureFlagSemverParsingPolicy,
25
+ FeatureFlagVariant,
26
+ FeatureFlagVariantLookupEntry,
27
+ MatchFeatureFlagPropertyOptions,
28
+ } from './featureFlagLocalEvaluation'
10
29
  export {
11
30
  gzipCompress,
12
31
  isGzipData,
@@ -18,3 +18,4 @@ export {
18
18
  } from './translations'
19
19
  export { canSurveyActivateRepeatedly, doesSurveyActivateByEvent, isSurveyIterationBased } from './activation'
20
20
  export { getSurveyIterationKey, isSurveyKeyForSurvey, type SurveyWithIteration } from './keys'
21
+ export { isMatchingRegex, isValidRegex, matchPropertyFilters, propertyComparisons } from './property-matching'