@featurevisor/sdk
Version:
Featurevisor SDK for Node.js and the browser
1 lines • 104 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","mappings":"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","sources":["webpack://@featurevisor/sdk/webpack/bootstrap","webpack://@featurevisor/sdk/webpack/runtime/define property getters","webpack://@featurevisor/sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@featurevisor/sdk/./src/compareVersions.ts","webpack://@featurevisor/sdk/./src/conditions.ts","webpack://@featurevisor/sdk/./src/murmurhash.ts","webpack://@featurevisor/sdk/./src/bucketer.ts","webpack://@featurevisor/sdk/./src/logger.ts","webpack://@featurevisor/sdk/./src/hooks.ts","webpack://@featurevisor/sdk/./src/emitter.ts","webpack://@featurevisor/sdk/./src/datafileReader.ts","webpack://@featurevisor/sdk/./src/evaluate.ts","webpack://@featurevisor/sdk/./src/events.ts","webpack://@featurevisor/sdk/./src/child.ts","webpack://@featurevisor/sdk/./src/helpers.ts","webpack://@featurevisor/sdk/./src/instance.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// taken from: https://github.com/omichelsen/compare-versions\n// this is done to avoid loading the whole package\n\n/*\nThe MIT License (MIT)\n\nCopyright (c) 2015-2021 Ole Michelsen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n */\n\nexport const semver =\n /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nexport const validateAndParse = (version: string) => {\n if (typeof version !== \"string\") {\n throw new TypeError(\"Invalid argument expected string\");\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\n\nconst isWildcard = (s: string) => s === \"*\" || s === \"x\" || s === \"X\";\n\nconst forceType = (a: string | number, b: string | number) =>\n typeof a !== typeof b ? [String(a), String(b)] : [a, b];\n\nconst tryParse = (v: string) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nconst compareStrings = (a: string, b: string) => {\n if (isWildcard(a) || isWildcard(b)) return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nexport const compareSegments = (\n a: string | string[] | RegExpMatchArray,\n b: string | string[] | RegExpMatchArray,\n) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || \"0\", b[i] || \"0\");\n if (r !== 0) return r;\n }\n return 0;\n};\n\nexport const compareVersions = (v1: string, v2: string) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0) return r;\n\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split(\".\"), p2.split(\".\"));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n};\n","import type { Context, PlainCondition, AttributeValue } from \"@featurevisor/types\";\n\nimport { GetRegex } from \"./datafileReader\";\nimport { compareVersions } from \"./compareVersions\";\n\nexport function getValueFromContext(obj, path): AttributeValue {\n if (path.indexOf(\".\") === -1) {\n return obj[path];\n }\n\n return path.split(\".\").reduce((o, i) => (o ? o[i] : undefined), obj);\n}\n\nexport function conditionIsMatched(\n condition: PlainCondition,\n context: Context,\n getRegex: GetRegex,\n): boolean {\n const { attribute, operator, value, regexFlags } = condition;\n const contextValueFromPath = getValueFromContext(context, attribute) as AttributeValue;\n\n if (operator === \"equals\") {\n return contextValueFromPath === value;\n } else if (operator === \"notEquals\") {\n return contextValueFromPath !== value;\n } else if (operator === \"before\" || operator === \"after\") {\n // date comparisons\n const valueInContext = contextValueFromPath as string | Date;\n\n const dateInContext =\n valueInContext instanceof Date ? valueInContext : new Date(valueInContext);\n const dateInCondition = value instanceof Date ? value : new Date(value as string);\n\n return operator === \"before\"\n ? dateInContext < dateInCondition\n : dateInContext > dateInCondition;\n } else if (\n Array.isArray(value) &&\n ([\"string\", \"number\"].indexOf(typeof contextValueFromPath) !== -1 ||\n contextValueFromPath === null)\n ) {\n // in / notIn (where condition value is an array)\n const valueInContext = contextValueFromPath as string;\n\n if (operator === \"in\") {\n return value.indexOf(valueInContext) !== -1;\n } else if (operator === \"notIn\") {\n return value.indexOf(valueInContext) === -1;\n }\n } else if (typeof contextValueFromPath === \"string\" && typeof value === \"string\") {\n // string\n const valueInContext = contextValueFromPath as string;\n\n if (operator === \"contains\") {\n return valueInContext.indexOf(value) !== -1;\n } else if (operator === \"notContains\") {\n return valueInContext.indexOf(value) === -1;\n } else if (operator === \"startsWith\") {\n return valueInContext.startsWith(value);\n } else if (operator === \"endsWith\") {\n return valueInContext.endsWith(value);\n } else if (operator === \"semverEquals\") {\n return compareVersions(valueInContext, value) === 0;\n } else if (operator === \"semverNotEquals\") {\n return compareVersions(valueInContext, value) !== 0;\n } else if (operator === \"semverGreaterThan\") {\n return compareVersions(valueInContext, value) === 1;\n } else if (operator === \"semverGreaterThanOrEquals\") {\n return compareVersions(valueInContext, value) >= 0;\n } else if (operator === \"semverLessThan\") {\n return compareVersions(valueInContext, value) === -1;\n } else if (operator === \"semverLessThanOrEquals\") {\n return compareVersions(valueInContext, value) <= 0;\n } else if (operator === \"matches\") {\n const regex = getRegex(value, regexFlags || \"\");\n return regex.test(valueInContext);\n } else if (operator === \"notMatches\") {\n const regex = getRegex(value, regexFlags || \"\");\n return !regex.test(valueInContext);\n }\n } else if (typeof contextValueFromPath === \"number\" && typeof value === \"number\") {\n // numeric\n const valueInContext = contextValueFromPath as number;\n\n if (operator === \"greaterThan\") {\n return valueInContext > value;\n } else if (operator === \"greaterThanOrEquals\") {\n return valueInContext >= value;\n } else if (operator === \"lessThan\") {\n return valueInContext < value;\n } else if (operator === \"lessThanOrEquals\") {\n return valueInContext <= value;\n }\n } else if (operator === \"exists\") {\n return typeof contextValueFromPath !== \"undefined\";\n } else if (operator === \"notExists\") {\n return typeof contextValueFromPath === \"undefined\";\n } else if (Array.isArray(contextValueFromPath) && typeof value === \"string\") {\n // includes / notIncludes (where context value is an array)\n const valueInContext = contextValueFromPath as string[];\n\n if (operator === \"includes\") {\n return valueInContext.indexOf(value) > -1;\n } else if (operator === \"notIncludes\") {\n return valueInContext.indexOf(value) === -1;\n }\n }\n\n return false;\n}\n","// v3 function taken from: https://github.com/perezd/node-murmurhash\n// this has been done to avoid loading v2 function which is not used in the SDK\n\n/**\n * Copyright (c) 2020 Gary Court, Derek Perez\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\nconst createBuffer = (val) => new TextEncoder().encode(val);\n\nexport function MurmurHashV3(key, seed) {\n if (typeof key === \"string\") key = createBuffer(key);\n\n let remainder, bytes, h1, h1b, c1, c2, k1, i;\n\n remainder = key.length & 3; // key.length % 4\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 0xcc9e2d51;\n c2 = 0x1b873593;\n i = 0;\n\n while (i < bytes) {\n k1 =\n (key[i] & 0xff) |\n ((key[++i] & 0xff) << 8) |\n ((key[++i] & 0xff) << 16) |\n ((key[++i] & 0xff) << 24);\n ++i;\n\n k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1b = ((h1 & 0xffff) * 5 + ((((h1 >>> 16) * 5) & 0xffff) << 16)) & 0xffffffff;\n h1 = (h1b & 0xffff) + 0x6b64 + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16);\n }\n\n k1 = 0;\n\n switch (remainder) {\n case 3:\n k1 ^= (key[i + 2] & 0xff) << 16;\n case 2:\n k1 ^= (key[i + 1] & 0xff) << 8;\n case 1:\n k1 ^= key[i] & 0xff;\n\n k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= key.length;\n\n h1 ^= h1 >>> 16;\n h1 = ((h1 & 0xffff) * 0x85ebca6b + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = ((h1 & 0xffff) * 0xc2b2ae35 + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n}\n","import type { Context, AttributeValue, FeatureKey, BucketBy } from \"@featurevisor/types\";\n\nimport { Logger } from \"./logger\";\nimport { getValueFromContext } from \"./conditions\";\nimport { MurmurHashV3 } from \"./murmurhash\";\n\nexport type BucketKey = string;\nexport type BucketValue = number; // 0 to 100,000 (100% * 1000 to include three decimal places in same integer)\n\n/**\n * Generic hashing\n */\nconst HASH_SEED = 1;\nconst MAX_HASH_VALUE = Math.pow(2, 32);\n\nexport const MAX_BUCKETED_NUMBER = 100000; // 100% * 1000 to include three decimal places in the same integer value\n\nexport function getBucketedNumber(bucketKey: string): BucketValue {\n const hashValue = MurmurHashV3(bucketKey, HASH_SEED);\n const ratio = hashValue / MAX_HASH_VALUE;\n\n return Math.floor(ratio * MAX_BUCKETED_NUMBER);\n}\n\n/**\n * Bucket key\n */\nconst DEFAULT_BUCKET_KEY_SEPARATOR = \".\";\n\nexport interface GetBucketKeyOptions {\n featureKey: FeatureKey;\n bucketBy: BucketBy;\n context: Context;\n\n logger: Logger;\n}\n\nexport function getBucketKey(options: GetBucketKeyOptions): BucketKey {\n const {\n featureKey,\n bucketBy,\n context,\n\n logger,\n } = options;\n\n let type;\n let attributeKeys;\n\n if (typeof bucketBy === \"string\") {\n type = \"plain\";\n attributeKeys = [bucketBy];\n } else if (Array.isArray(bucketBy)) {\n type = \"and\";\n attributeKeys = bucketBy;\n } else if (typeof bucketBy === \"object\" && Array.isArray(bucketBy.or)) {\n type = \"or\";\n attributeKeys = bucketBy.or;\n } else {\n logger.error(\"invalid bucketBy\", { featureKey, bucketBy });\n\n throw new Error(\"invalid bucketBy\");\n }\n\n const bucketKey: AttributeValue[] = [];\n\n attributeKeys.forEach((attributeKey) => {\n const attributeValue = getValueFromContext(context, attributeKey);\n\n if (typeof attributeValue === \"undefined\") {\n return;\n }\n\n if (type === \"plain\" || type === \"and\") {\n bucketKey.push(attributeValue);\n } else {\n // or\n if (bucketKey.length === 0) {\n bucketKey.push(attributeValue);\n }\n }\n });\n\n bucketKey.push(featureKey);\n\n return bucketKey.join(DEFAULT_BUCKET_KEY_SEPARATOR);\n}\n","export type LogLevel = \"fatal\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nexport type LogMessage = string;\n\nexport interface LogDetails {\n [key: string]: any;\n}\n\nexport type LogHandler = (level: LogLevel, message: LogMessage, details?: LogDetails) => void;\n\nexport interface CreateLoggerOptions {\n level?: LogLevel;\n handler?: LogHandler;\n}\n\nexport const loggerPrefix = \"[Featurevisor]\";\n\nexport const defaultLogHandler: LogHandler = function defaultLogHandler(\n level,\n message,\n details = {},\n) {\n let method = \"log\";\n\n if (level === \"info\") {\n method = \"info\";\n } else if (level === \"warn\") {\n method = \"warn\";\n } else if (level === \"error\") {\n method = \"error\";\n }\n\n console[method](loggerPrefix, message, details);\n};\n\nexport class Logger {\n static allLevels: LogLevel[] = [\n \"fatal\",\n \"error\",\n \"warn\",\n \"info\",\n\n // not enabled by default\n \"debug\",\n ];\n\n static defaultLevel: LogLevel = \"info\";\n\n private level: LogLevel;\n private handle: LogHandler;\n\n constructor(options: CreateLoggerOptions) {\n this.level = options.level || Logger.defaultLevel;\n this.handle = options.handler || defaultLogHandler;\n }\n\n setLevel(level: LogLevel) {\n this.level = level;\n }\n\n log(level: LogLevel, message: LogMessage, details?: LogDetails) {\n const shouldHandle = Logger.allLevels.indexOf(this.level) >= Logger.allLevels.indexOf(level);\n\n if (!shouldHandle) {\n return;\n }\n\n this.handle(level, message, details);\n }\n\n debug(message: LogMessage, details?: LogDetails) {\n this.log(\"debug\", message, details);\n }\n\n info(message: LogMessage, details?: LogDetails) {\n this.log(\"info\", message, details);\n }\n\n warn(message: LogMessage, details?: LogDetails) {\n this.log(\"warn\", message, details);\n }\n\n error(message: LogMessage, details?: LogDetails) {\n this.log(\"error\", message, details);\n }\n}\n\nexport function createLogger(options: CreateLoggerOptions = {}): Logger {\n return new Logger(options);\n}\n","import type { BucketBy, Context, FeatureKey } from \"@featurevisor/types\";\n\nimport type { EvaluateOptions, Evaluation } from \"./evaluate\";\nimport type { Logger } from \"./logger\";\nimport type { BucketKey, BucketValue } from \"./bucketer\";\n\n/**\n * bucketKey\n */\nexport interface ConfigureBucketKeyOptions {\n featureKey: FeatureKey;\n context: Context;\n bucketBy: BucketBy;\n bucketKey: string; // the initial bucket key, which can be modified by hooks\n}\n\nexport type ConfigureBucketKey = (options: ConfigureBucketKeyOptions) => BucketKey;\n\n/**\n * bucketValue\n */\nexport interface ConfigureBucketValueOptions {\n featureKey: FeatureKey;\n bucketKey: string;\n context: Context;\n bucketValue: number; // the initial bucket value, which can be modified by hooks\n}\n\nexport type ConfigureBucketValue = (options: ConfigureBucketValueOptions) => BucketValue;\n\n/**\n * Hooks\n */\nexport interface Hook {\n name: string;\n\n before?: (options: EvaluateOptions) => EvaluateOptions;\n\n bucketKey?: ConfigureBucketKey;\n\n bucketValue?: ConfigureBucketValue;\n\n after?: (evaluation: Evaluation, options: EvaluateOptions) => Evaluation;\n}\n\nexport interface HooksManagerOptions {\n hooks?: Hook[];\n logger: Logger;\n}\n\nexport class HooksManager {\n private hooks: Hook[] = [];\n private logger: Logger;\n\n constructor(options: HooksManagerOptions) {\n this.logger = options.logger;\n\n if (options.hooks) {\n options.hooks.forEach((hook) => {\n this.add(hook);\n });\n }\n }\n\n add(hook: Hook): (() => void) | undefined {\n if (this.hooks.some((existingHook) => existingHook.name === hook.name)) {\n this.logger.error(`Hook with name \"${hook.name}\" already exists.`, {\n name: hook.name,\n hook: hook,\n });\n\n return;\n }\n\n this.hooks.push(hook);\n\n return () => {\n this.remove(hook.name);\n };\n }\n\n remove(name: string): void {\n this.hooks = this.hooks.filter((hook) => hook.name !== name);\n }\n\n getAll(): Hook[] {\n return this.hooks;\n }\n}\n","export type EventName = \"datafile_set\" | \"context_set\" | \"sticky_set\";\n\nexport type EventDetails = Record<string, unknown>;\n\nexport type EventCallback = (details: EventDetails) => void;\n\nexport type Listeners = Record<EventName, EventCallback[]> | {}; // eslint-disable-line\n\nexport class Emitter {\n listeners: Listeners;\n\n constructor() {\n this.listeners = {};\n }\n\n on(eventName: EventName, callback: EventCallback) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n\n const listeners = this.listeners[eventName];\n listeners.push(callback);\n\n let isActive = true;\n\n return function unsubscribe() {\n if (!isActive) {\n return;\n }\n\n isActive = false;\n\n const index = listeners.indexOf(callback);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n };\n }\n\n trigger(eventName: EventName, details: EventDetails = {}) {\n const listeners = this.listeners[eventName];\n\n if (!listeners) {\n return;\n }\n\n listeners.forEach(function (listener) {\n try {\n listener(details);\n } catch (err) {\n console.error(err);\n }\n });\n }\n\n clearAll() {\n this.listeners = {};\n }\n}\n","import type {\n Feature,\n Segment,\n DatafileContent,\n SegmentKey,\n FeatureKey,\n Context,\n Traffic,\n Allocation,\n GroupSegment,\n Condition,\n Force,\n} from \"@featurevisor/types\";\n\nimport { conditionIsMatched } from \"./conditions\";\nimport { Logger } from \"./logger\";\n\nexport type GetRegex = (regexString: string, regexFlags: string) => RegExp;\n\nexport interface DatafileReaderOptions {\n datafile: DatafileContent;\n logger: Logger;\n}\n\nexport interface ForceResult {\n force?: Force;\n forceIndex?: number;\n}\n\nexport class DatafileReader {\n private schemaVersion: string;\n private revision: string;\n\n private segments: Record<SegmentKey, Segment>;\n private features: Record<FeatureKey, Feature>;\n\n private logger: Logger;\n\n // done to avoid creating new RegExp objects for the same regex string and flags.\n // kept here to avoid memory leaks.\n // if datafile is reset, this cache will be cleared.\n private regexCache: Record<string, RegExp>;\n\n constructor(options: DatafileReaderOptions) {\n const { datafile, logger } = options;\n\n this.logger = logger;\n\n this.schemaVersion = datafile.schemaVersion;\n this.revision = datafile.revision;\n\n this.segments = datafile.segments;\n this.features = datafile.features;\n\n this.regexCache = {};\n }\n\n getRevision(): string {\n return this.revision;\n }\n\n getSchemaVersion(): string {\n return this.schemaVersion;\n }\n\n getSegment(segmentKey: SegmentKey): Segment | undefined {\n const segment = this.segments[segmentKey];\n\n if (!segment) {\n return undefined;\n }\n\n segment.conditions = this.parseConditionsIfStringified(segment.conditions);\n\n return segment;\n }\n\n getFeatureKeys(): string[] {\n return Object.keys(this.features);\n }\n\n getFeature(featureKey: FeatureKey): Feature | undefined {\n return this.features[featureKey];\n }\n\n getVariableKeys(featureKey: FeatureKey): string[] {\n const feature = this.getFeature(featureKey);\n\n if (!feature) {\n return [];\n }\n\n return Object.keys(feature.variablesSchema || {});\n }\n\n hasVariations(featureKey: FeatureKey): boolean {\n const feature = this.getFeature(featureKey);\n\n if (!feature) {\n return false;\n }\n\n return Array.isArray(feature.variations) && feature.variations.length > 0;\n }\n\n getRegex(regexString: string, regexFlags?: string): RegExp {\n const flags = regexFlags || \"\";\n const cacheKey = `${regexString}-${flags}`;\n\n if (this.regexCache[cacheKey]) {\n return this.regexCache[cacheKey];\n }\n\n const regex = new RegExp(regexString, flags);\n this.regexCache[cacheKey] = regex;\n\n return regex;\n }\n\n allConditionsAreMatched(conditions: Condition[] | Condition, context: Context): boolean {\n if (typeof conditions === \"string\") {\n if (conditions === \"*\") {\n return true;\n }\n\n return false;\n }\n\n const getRegex = (regexString: string, regexFlags: string) =>\n this.getRegex(regexString, regexFlags);\n\n if (\"attribute\" in conditi