@rudderstack/integrations-lib 0.2.43 → 0.2.46
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/README.md +110 -1
- package/build/auth-types/index.d.ts +62 -0
- package/build/auth-types/index.d.ts.map +1 -0
- package/build/auth-types/index.js +3 -0
- package/build/feature-flags/core/config.d.ts +14 -0
- package/build/feature-flags/core/config.d.ts.map +1 -0
- package/build/feature-flags/core/config.js +111 -0
- package/build/feature-flags/core/index.d.ts +4 -0
- package/build/feature-flags/core/index.d.ts.map +1 -0
- package/build/feature-flags/core/index.js +10 -0
- package/build/feature-flags/core/service.d.ts +19 -0
- package/build/feature-flags/core/service.d.ts.map +1 -0
- package/build/feature-flags/core/service.js +106 -0
- package/build/feature-flags/core/utils.d.ts +8 -0
- package/build/feature-flags/core/utils.d.ts.map +1 -0
- package/build/feature-flags/core/utils.js +40 -0
- package/build/feature-flags/flags/defaults.d.ts +3 -0
- package/build/feature-flags/flags/defaults.d.ts.map +1 -0
- package/build/feature-flags/flags/defaults.js +24 -0
- package/build/feature-flags/flags/index.d.ts +5 -0
- package/build/feature-flags/flags/index.d.ts.map +1 -0
- package/build/feature-flags/flags/index.js +10 -0
- package/build/feature-flags/flags/interfaces.d.ts +12 -0
- package/build/feature-flags/flags/interfaces.d.ts.map +1 -0
- package/build/feature-flags/flags/interfaces.js +3 -0
- package/build/feature-flags/flags/loader.d.ts +14 -0
- package/build/feature-flags/flags/loader.d.ts.map +1 -0
- package/build/feature-flags/flags/loader.js +37 -0
- package/build/feature-flags/flags/registry.d.ts +12 -0
- package/build/feature-flags/flags/registry.d.ts.map +1 -0
- package/build/feature-flags/flags/registry.js +38 -0
- package/build/feature-flags/index.d.ts +9 -0
- package/build/feature-flags/index.d.ts.map +1 -0
- package/build/feature-flags/index.js +19 -0
- package/build/feature-flags/providers/factory.d.ts +7 -0
- package/build/feature-flags/providers/factory.d.ts.map +1 -0
- package/build/feature-flags/providers/factory.js +25 -0
- package/build/feature-flags/providers/flagsmith/index.d.ts +2 -0
- package/build/feature-flags/providers/flagsmith/index.d.ts.map +1 -0
- package/build/feature-flags/providers/flagsmith/index.js +6 -0
- package/build/feature-flags/providers/flagsmith/provider.d.ts +13 -0
- package/build/feature-flags/providers/flagsmith/provider.d.ts.map +1 -0
- package/build/feature-flags/providers/flagsmith/provider.js +73 -0
- package/build/feature-flags/providers/flagsmith/types.d.ts +1 -0
- package/build/feature-flags/providers/flagsmith/types.d.ts.map +1 -0
- package/build/feature-flags/providers/flagsmith/types.js +4 -0
- package/build/feature-flags/providers/index.d.ts +5 -0
- package/build/feature-flags/providers/index.d.ts.map +1 -0
- package/build/feature-flags/providers/index.js +10 -0
- package/build/feature-flags/providers/interfaces.d.ts +11 -0
- package/build/feature-flags/providers/interfaces.d.ts.map +1 -0
- package/build/feature-flags/providers/interfaces.js +3 -0
- package/build/feature-flags/providers/local/config.d.ts +4 -0
- package/build/feature-flags/providers/local/config.d.ts.map +1 -0
- package/build/feature-flags/providers/local/config.js +11 -0
- package/build/feature-flags/providers/local/index.d.ts +3 -0
- package/build/feature-flags/providers/local/index.d.ts.map +1 -0
- package/build/feature-flags/providers/local/index.js +6 -0
- package/build/feature-flags/providers/local/provider.d.ts +17 -0
- package/build/feature-flags/providers/local/provider.d.ts.map +1 -0
- package/build/feature-flags/providers/local/provider.js +105 -0
- package/build/feature-flags/providers/local/types.d.ts +4 -0
- package/build/feature-flags/providers/local/types.d.ts.map +1 -0
- package/build/feature-flags/providers/local/types.js +3 -0
- package/build/feature-flags/types.d.ts +96 -0
- package/build/feature-flags/types.d.ts.map +1 -0
- package/build/feature-flags/types.js +11 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -1
- package/package.json +3 -2
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FeatureFlagDefinition } from '../types';
|
|
2
|
+
export interface IFeatureFlagRegistry {
|
|
3
|
+
register(definition: FeatureFlagDefinition): void;
|
|
4
|
+
register(definitions: FeatureFlagDefinition[]): void;
|
|
5
|
+
get(key: string): FeatureFlagDefinition | undefined;
|
|
6
|
+
getAll(): FeatureFlagDefinition[];
|
|
7
|
+
getByCategory(category: string): FeatureFlagDefinition[];
|
|
8
|
+
getDefaultValue(key: string): boolean | string | number;
|
|
9
|
+
isRegistered(key: string): boolean;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/flags/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;IACrD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAC;IACpD,MAAM,IAAI,qBAAqB,EAAE,CAAC;IAClC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;IACzD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mZWF0dXJlLWZsYWdzL2ZsYWdzL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWdEZWZpbml0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGZWF0dXJlRmxhZ1JlZ2lzdHJ5IHtcbiAgcmVnaXN0ZXIoZGVmaW5pdGlvbjogRmVhdHVyZUZsYWdEZWZpbml0aW9uKTogdm9pZDtcbiAgcmVnaXN0ZXIoZGVmaW5pdGlvbnM6IEZlYXR1cmVGbGFnRGVmaW5pdGlvbltdKTogdm9pZDtcbiAgZ2V0KGtleTogc3RyaW5nKTogRmVhdHVyZUZsYWdEZWZpbml0aW9uIHwgdW5kZWZpbmVkO1xuICBnZXRBbGwoKTogRmVhdHVyZUZsYWdEZWZpbml0aW9uW107XG4gIGdldEJ5Q2F0ZWdvcnkoY2F0ZWdvcnk6IHN0cmluZyk6IEZlYXR1cmVGbGFnRGVmaW5pdGlvbltdO1xuICBnZXREZWZhdWx0VmFsdWUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBpc1JlZ2lzdGVyZWQoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuICBjbGVhcigpOiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FeatureFlagDefinition } from '../types';
|
|
2
|
+
export interface FeatureFlagConfig {
|
|
3
|
+
flags: FeatureFlagDefinition[];
|
|
4
|
+
defaults?: {
|
|
5
|
+
category?: string;
|
|
6
|
+
type?: 'boolean' | 'string' | 'number';
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export declare class FeatureFlagLoader {
|
|
10
|
+
static fromJSON(json: string): FeatureFlagDefinition[];
|
|
11
|
+
static fromObject(config: FeatureFlagConfig): FeatureFlagDefinition[];
|
|
12
|
+
static fromEnvironment(): FeatureFlagDefinition[];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/flags/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;KACxC,CAAC;CACH;AAED,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAStD,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,EAAE;IAOrE,MAAM,CAAC,eAAe,IAAI,qBAAqB,EAAE;CAelD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureFlagLoader = void 0;
|
|
4
|
+
class FeatureFlagLoader {
|
|
5
|
+
static fromJSON(json) {
|
|
6
|
+
try {
|
|
7
|
+
const config = JSON.parse(json);
|
|
8
|
+
return config.flags;
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
throw new Error(`Failed to parse flag configuration JSON: ${error}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static fromObject(config) {
|
|
15
|
+
if (!config.flags || !Array.isArray(config.flags)) {
|
|
16
|
+
throw new Error('Configuration must have a flags array');
|
|
17
|
+
}
|
|
18
|
+
return config.flags;
|
|
19
|
+
}
|
|
20
|
+
static fromEnvironment() {
|
|
21
|
+
const configPath = process.env.FEATURE_FLAGS_CONFIG_PATH;
|
|
22
|
+
if (!configPath) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
// eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
|
|
27
|
+
const fs = require('fs');
|
|
28
|
+
const configContent = fs.readFileSync(configPath, 'utf8');
|
|
29
|
+
return this.fromJSON(configContent);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
throw new Error(`Failed to load flag configuration from ${configPath}: ${error}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.FeatureFlagLoader = FeatureFlagLoader;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZlYXR1cmUtZmxhZ3MvZmxhZ3MvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBc0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUF5QjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUM7UUFDekQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksQ0FBQztZQUNILDhFQUE4RTtZQUM5RSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWhDRCw4Q0FnQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnRGVmaW5pdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlRmxhZ0NvbmZpZyB7XG4gIGZsYWdzOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXTtcbiAgZGVmYXVsdHM/OiB7XG4gICAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gICAgdHlwZT86ICdib29sZWFuJyB8ICdzdHJpbmcnIHwgJ251bWJlcic7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ0xvYWRlciB7XG4gIHN0YXRpYyBmcm9tSlNPTihqc29uOiBzdHJpbmcpOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZzogRmVhdHVyZUZsYWdDb25maWcgPSBKU09OLnBhcnNlKGpzb24pO1xuICAgICAgcmV0dXJuIGNvbmZpZy5mbGFncztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgZmxhZyBjb25maWd1cmF0aW9uIEpTT046ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3QoY29uZmlnOiBGZWF0dXJlRmxhZ0NvbmZpZyk6IEZlYXR1cmVGbGFnRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWNvbmZpZy5mbGFncyB8fCAhQXJyYXkuaXNBcnJheShjb25maWcuZmxhZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbmZpZ3VyYXRpb24gbXVzdCBoYXZlIGEgZmxhZ3MgYXJyYXknKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZy5mbGFncztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRW52aXJvbm1lbnQoKTogRmVhdHVyZUZsYWdEZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBwcm9jZXNzLmVudi5GRUFUVVJFX0ZMQUdTX0NPTkZJR19QQVRIO1xuICAgIGlmICghY29uZmlnUGF0aCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2xvYmFsLXJlcXVpcmUsIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICAgIGNvbnN0IGNvbmZpZ0NvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0ZjgnKTtcbiAgICAgIHJldHVybiB0aGlzLmZyb21KU09OKGNvbmZpZ0NvbnRlbnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIGZsYWcgY29uZmlndXJhdGlvbiBmcm9tICR7Y29uZmlnUGF0aH06ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FeatureFlagDefinition, IFeatureFlagRegistry } from '../types';
|
|
2
|
+
export declare class FeatureFlagRegistry implements IFeatureFlagRegistry {
|
|
3
|
+
private flags;
|
|
4
|
+
register(definitionOrDefinitions: FeatureFlagDefinition | FeatureFlagDefinition[]): void;
|
|
5
|
+
get(key: string): FeatureFlagDefinition | undefined;
|
|
6
|
+
getAll(): FeatureFlagDefinition[];
|
|
7
|
+
getByCategory(category: string): FeatureFlagDefinition[];
|
|
8
|
+
getDefaultValue(key: string): boolean | string | number;
|
|
9
|
+
isRegistered(key: string): boolean;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/flags/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG5E,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,KAAK,CAA4C;IAEzD,QAAQ,CAAC,uBAAuB,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,IAAI;IAWxF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAInD,MAAM,IAAI,qBAAqB,EAAE;IAIjC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAIxD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;IAIvD,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIlC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureFlagRegistry = void 0;
|
|
4
|
+
const utils_1 = require("../core/utils");
|
|
5
|
+
class FeatureFlagRegistry {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.flags = new Map();
|
|
8
|
+
}
|
|
9
|
+
register(definitionOrDefinitions) {
|
|
10
|
+
const definitions = Array.isArray(definitionOrDefinitions)
|
|
11
|
+
? definitionOrDefinitions
|
|
12
|
+
: [definitionOrDefinitions];
|
|
13
|
+
definitions.forEach((def) => {
|
|
14
|
+
utils_1.FeatureFlagUtils.validateDefinition(def);
|
|
15
|
+
this.flags.set(def.key, def);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
get(key) {
|
|
19
|
+
return this.flags.get(key);
|
|
20
|
+
}
|
|
21
|
+
getAll() {
|
|
22
|
+
return Array.from(this.flags.values());
|
|
23
|
+
}
|
|
24
|
+
getByCategory(category) {
|
|
25
|
+
return this.getAll().filter((flag) => flag.category === category);
|
|
26
|
+
}
|
|
27
|
+
getDefaultValue(key) {
|
|
28
|
+
return this.flags.get(key)?.defaultValue ?? false;
|
|
29
|
+
}
|
|
30
|
+
isRegistered(key) {
|
|
31
|
+
return this.flags.has(key);
|
|
32
|
+
}
|
|
33
|
+
clear() {
|
|
34
|
+
this.flags.clear();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.FeatureFlagRegistry = FeatureFlagRegistry;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9mbGFncy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBaUQ7QUFFakQsTUFBYSxtQkFBbUI7SUFBaEM7UUFDVSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7SUFvQzNELENBQUM7SUFsQ0MsUUFBUSxDQUFDLHVCQUF3RTtRQUMvRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO1lBQ3hELENBQUMsQ0FBQyx1QkFBdUI7WUFDekIsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUU5QixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDMUIsd0JBQWdCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksSUFBSSxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXJDRCxrREFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnRGVmaW5pdGlvbiwgSUZlYXR1cmVGbGFnUmVnaXN0cnkgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1V0aWxzIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1JlZ2lzdHJ5IGltcGxlbWVudHMgSUZlYXR1cmVGbGFnUmVnaXN0cnkge1xuICBwcml2YXRlIGZsYWdzID0gbmV3IE1hcDxzdHJpbmcsIEZlYXR1cmVGbGFnRGVmaW5pdGlvbj4oKTtcblxuICByZWdpc3RlcihkZWZpbml0aW9uT3JEZWZpbml0aW9uczogRmVhdHVyZUZsYWdEZWZpbml0aW9uIHwgRmVhdHVyZUZsYWdEZWZpbml0aW9uW10pOiB2b2lkIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbk9yRGVmaW5pdGlvbnMpXG4gICAgICA/IGRlZmluaXRpb25PckRlZmluaXRpb25zXG4gICAgICA6IFtkZWZpbml0aW9uT3JEZWZpbml0aW9uc107XG5cbiAgICBkZWZpbml0aW9ucy5mb3JFYWNoKChkZWYpID0+IHtcbiAgICAgIEZlYXR1cmVGbGFnVXRpbHMudmFsaWRhdGVEZWZpbml0aW9uKGRlZik7XG4gICAgICB0aGlzLmZsYWdzLnNldChkZWYua2V5LCBkZWYpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0KGtleTogc3RyaW5nKTogRmVhdHVyZUZsYWdEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbCgpOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mbGFncy52YWx1ZXMoKSk7XG4gIH1cblxuICBnZXRCeUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsKCkuZmlsdGVyKChmbGFnKSA9PiBmbGFnLmNhdGVnb3J5ID09PSBjYXRlZ29yeSk7XG4gIH1cblxuICBnZXREZWZhdWx0VmFsdWUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncy5nZXQoa2V5KT8uZGVmYXVsdFZhbHVlID8/IGZhbHNlO1xuICB9XG5cbiAgaXNSZWdpc3RlcmVkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3MuaGFzKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FeatureFlagService } from './core/service';
|
|
2
|
+
export { FeatureFlagService } from './core/service';
|
|
3
|
+
export { FeatureFlagRegistry } from './flags/registry';
|
|
4
|
+
export { FeatureFlagLoader } from './flags/loader';
|
|
5
|
+
export type { IFeatureFlagService, IFeatureFlagRegistry, IFeatureFlagProvider, FeatureFlagUser, FeatureFlagConfig, FeatureFlagResponse, FeatureFlagDefinition, FeatureFlagProvider, FeatureValue, ErrorBehaviour, } from './types';
|
|
6
|
+
export { TRAIT_KEYS } from '@rudderstack/featureflag-sdk-node';
|
|
7
|
+
export { DEFAULT_FLAGS } from './flags/defaults';
|
|
8
|
+
export declare const featureFlagService: FeatureFlagService;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/feature-flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.featureFlagService = exports.DEFAULT_FLAGS = exports.TRAIT_KEYS = exports.FeatureFlagLoader = exports.FeatureFlagRegistry = exports.FeatureFlagService = void 0;
|
|
4
|
+
const service_1 = require("./core/service");
|
|
5
|
+
// Clean public API exports
|
|
6
|
+
var service_2 = require("./core/service");
|
|
7
|
+
Object.defineProperty(exports, "FeatureFlagService", { enumerable: true, get: function () { return service_2.FeatureFlagService; } });
|
|
8
|
+
var registry_1 = require("./flags/registry");
|
|
9
|
+
Object.defineProperty(exports, "FeatureFlagRegistry", { enumerable: true, get: function () { return registry_1.FeatureFlagRegistry; } });
|
|
10
|
+
var loader_1 = require("./flags/loader");
|
|
11
|
+
Object.defineProperty(exports, "FeatureFlagLoader", { enumerable: true, get: function () { return loader_1.FeatureFlagLoader; } });
|
|
12
|
+
// Export constants
|
|
13
|
+
var featureflag_sdk_node_1 = require("@rudderstack/featureflag-sdk-node");
|
|
14
|
+
Object.defineProperty(exports, "TRAIT_KEYS", { enumerable: true, get: function () { return featureflag_sdk_node_1.TRAIT_KEYS; } });
|
|
15
|
+
var defaults_1 = require("./flags/defaults");
|
|
16
|
+
Object.defineProperty(exports, "DEFAULT_FLAGS", { enumerable: true, get: function () { return defaults_1.DEFAULT_FLAGS; } });
|
|
17
|
+
// Create and export singleton instance
|
|
18
|
+
exports.featureFlagService = new service_1.FeatureFlagService();
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBb0Q7QUFFcEQsMkJBQTJCO0FBQzNCLDBDQUFvRDtBQUEzQyw2R0FBQSxrQkFBa0IsT0FBQTtBQUMzQiw2Q0FBdUQ7QUFBOUMsK0dBQUEsbUJBQW1CLE9BQUE7QUFDNUIseUNBQW1EO0FBQTFDLDJHQUFBLGlCQUFpQixPQUFBO0FBZ0IxQixtQkFBbUI7QUFDbkIsMEVBQStEO0FBQXRELGtIQUFBLFVBQVUsT0FBQTtBQUNuQiw2Q0FBaUQ7QUFBeEMseUdBQUEsYUFBYSxPQUFBO0FBRXRCLHVDQUF1QztBQUMxQixRQUFBLGtCQUFrQixHQUFHLElBQUksNEJBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVGbGFnU2VydmljZSB9IGZyb20gJy4vY29yZS9zZXJ2aWNlJztcblxuLy8gQ2xlYW4gcHVibGljIEFQSSBleHBvcnRzXG5leHBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuL2NvcmUvc2VydmljZSc7XG5leHBvcnQgeyBGZWF0dXJlRmxhZ1JlZ2lzdHJ5IH0gZnJvbSAnLi9mbGFncy9yZWdpc3RyeSc7XG5leHBvcnQgeyBGZWF0dXJlRmxhZ0xvYWRlciB9IGZyb20gJy4vZmxhZ3MvbG9hZGVyJztcblxuLy8gRXhwb3J0IGludGVyZmFjZXNcbmV4cG9ydCB0eXBlIHtcbiAgSUZlYXR1cmVGbGFnU2VydmljZSxcbiAgSUZlYXR1cmVGbGFnUmVnaXN0cnksXG4gIElGZWF0dXJlRmxhZ1Byb3ZpZGVyLFxuICBGZWF0dXJlRmxhZ1VzZXIsXG4gIEZlYXR1cmVGbGFnQ29uZmlnLFxuICBGZWF0dXJlRmxhZ1Jlc3BvbnNlLFxuICBGZWF0dXJlRmxhZ0RlZmluaXRpb24sXG4gIEZlYXR1cmVGbGFnUHJvdmlkZXIsXG4gIEZlYXR1cmVWYWx1ZSxcbiAgRXJyb3JCZWhhdmlvdXIsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBFeHBvcnQgY29uc3RhbnRzXG5leHBvcnQgeyBUUkFJVF9LRVlTIH0gZnJvbSAnQHJ1ZGRlcnN0YWNrL2ZlYXR1cmVmbGFnLXNkay1ub2RlJztcbmV4cG9ydCB7IERFRkFVTFRfRkxBR1MgfSBmcm9tICcuL2ZsYWdzL2RlZmF1bHRzJztcblxuLy8gQ3JlYXRlIGFuZCBleHBvcnQgc2luZ2xldG9uIGluc3RhbmNlXG5leHBvcnQgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gbmV3IEZlYXR1cmVGbGFnU2VydmljZSgpO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ResolvedFeatureFlagConfig, IFeatureFlagRegistry, IFeatureFlagProvider } from '../types';
|
|
2
|
+
export declare class FeatureFlagProviderFactory {
|
|
3
|
+
private registry;
|
|
4
|
+
constructor(registry: IFeatureFlagRegistry);
|
|
5
|
+
create(config: ResolvedFeatureFlagConfig): IFeatureFlagProvider;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/providers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAKlB,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,oBAAoB;IAElD,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,oBAAoB;CAYhE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FeatureFlagProviderFactory = void 0;
|
|
4
|
+
const local_1 = require("./local");
|
|
5
|
+
const flagsmith_1 = require("./flagsmith");
|
|
6
|
+
const config_1 = require("../core/config");
|
|
7
|
+
class FeatureFlagProviderFactory {
|
|
8
|
+
constructor(registry) {
|
|
9
|
+
this.registry = registry;
|
|
10
|
+
}
|
|
11
|
+
create(config) {
|
|
12
|
+
switch (config.provider) {
|
|
13
|
+
case 'local':
|
|
14
|
+
return new local_1.LocalFeatureFlagProvider(this.registry);
|
|
15
|
+
case 'flagsmith':
|
|
16
|
+
// Initialize Flagsmith SDK before creating provider
|
|
17
|
+
config_1.ConfigResolver.initializeFlagsmithSDK(config);
|
|
18
|
+
return new flagsmith_1.FlagsmithFeatureFlagProvider(this.registry);
|
|
19
|
+
default:
|
|
20
|
+
throw new Error(`Unsupported provider: ${config.provider}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.FeatureFlagProviderFactory = FeatureFlagProviderFactory;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mZWF0dXJlLWZsYWdzL3Byb3ZpZGVycy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLG1DQUFtRDtBQUNuRCwyQ0FBMkQ7QUFDM0QsMkNBQWdEO0FBRWhELE1BQWEsMEJBQTBCO0lBQ3JDLFlBQW9CLFFBQThCO1FBQTlCLGFBQVEsR0FBUixRQUFRLENBQXNCO0lBQUcsQ0FBQztJQUV0RCxNQUFNLENBQUMsTUFBaUM7UUFDdEMsUUFBUSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsS0FBSyxPQUFPO2dCQUNWLE9BQU8sSUFBSSxnQ0FBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsS0FBSyxXQUFXO2dCQUNkLG9EQUFvRDtnQkFDcEQsdUJBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxJQUFJLHdDQUE0QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBZkQsZ0VBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFJlc29sdmVkRmVhdHVyZUZsYWdDb25maWcsXG4gIElGZWF0dXJlRmxhZ1JlZ2lzdHJ5LFxuICBJRmVhdHVyZUZsYWdQcm92aWRlcixcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgTG9jYWxGZWF0dXJlRmxhZ1Byb3ZpZGVyIH0gZnJvbSAnLi9sb2NhbCc7XG5pbXBvcnQgeyBGbGFnc21pdGhGZWF0dXJlRmxhZ1Byb3ZpZGVyIH0gZnJvbSAnLi9mbGFnc21pdGgnO1xuaW1wb3J0IHsgQ29uZmlnUmVzb2x2ZXIgfSBmcm9tICcuLi9jb3JlL2NvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1Byb3ZpZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVnaXN0cnk6IElGZWF0dXJlRmxhZ1JlZ2lzdHJ5KSB7fVxuXG4gIGNyZWF0ZShjb25maWc6IFJlc29sdmVkRmVhdHVyZUZsYWdDb25maWcpOiBJRmVhdHVyZUZsYWdQcm92aWRlciB7XG4gICAgc3dpdGNoIChjb25maWcucHJvdmlkZXIpIHtcbiAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgcmV0dXJuIG5ldyBMb2NhbEZlYXR1cmVGbGFnUHJvdmlkZXIodGhpcy5yZWdpc3RyeSk7XG4gICAgICBjYXNlICdmbGFnc21pdGgnOlxuICAgICAgICAvLyBJbml0aWFsaXplIEZsYWdzbWl0aCBTREsgYmVmb3JlIGNyZWF0aW5nIHByb3ZpZGVyXG4gICAgICAgIENvbmZpZ1Jlc29sdmVyLmluaXRpYWxpemVGbGFnc21pdGhTREsoY29uZmlnKTtcbiAgICAgICAgcmV0dXJuIG5ldyBGbGFnc21pdGhGZWF0dXJlRmxhZ1Byb3ZpZGVyKHRoaXMucmVnaXN0cnkpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwcm92aWRlcjogJHtjb25maWcucHJvdmlkZXJ9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/flagsmith/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlagsmithFeatureFlagProvider = void 0;
|
|
4
|
+
var provider_1 = require("./provider");
|
|
5
|
+
Object.defineProperty(exports, "FlagsmithFeatureFlagProvider", { enumerable: true, get: function () { return provider_1.FlagsmithFeatureFlagProvider; } });
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvZmxhZ3NtaXRoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUEwRDtBQUFqRCx3SEFBQSw0QkFBNEIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZsYWdzbWl0aEZlYXR1cmVGbGFnUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyJztcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FeatureFlagUser, IFeatureFlagRegistry, IFeatureFlagProvider, ProviderInfo, FeatureValue } from '../../types';
|
|
2
|
+
export declare class FlagsmithFeatureFlagProvider implements IFeatureFlagProvider {
|
|
3
|
+
private registry;
|
|
4
|
+
constructor(registry: IFeatureFlagRegistry);
|
|
5
|
+
initialize(): Promise<void>;
|
|
6
|
+
isFeatureEnabled(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
7
|
+
isFeatureEnabledLatest(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
8
|
+
getFeatureValue(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
9
|
+
getFeatureValueLatest(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
10
|
+
private createErrorFeatureValue;
|
|
11
|
+
getProviderInfo(): ProviderInfo;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/flagsmith/provider.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAErB,qBAAa,4BAA6B,YAAW,oBAAoB;IAC3D,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,oBAAoB;IAGlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhF,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhF,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAe/E,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAe3F,OAAO,CAAC,uBAAuB;IAW/B,eAAe,IAAI,YAAY;CAQhC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlagsmithFeatureFlagProvider = void 0;
|
|
4
|
+
const featureflag_sdk_node_1 = require("@rudderstack/featureflag-sdk-node");
|
|
5
|
+
class FlagsmithFeatureFlagProvider {
|
|
6
|
+
constructor(registry) {
|
|
7
|
+
this.registry = registry;
|
|
8
|
+
}
|
|
9
|
+
// eslint-disable-next-line class-methods-use-this
|
|
10
|
+
initialize() {
|
|
11
|
+
// SDK initialization is handled in core/config.ts
|
|
12
|
+
// This provider is just a thin wrapper
|
|
13
|
+
return Promise.resolve();
|
|
14
|
+
}
|
|
15
|
+
isFeatureEnabled(user, flagName) {
|
|
16
|
+
// Use getFeatureValue internally for consistency
|
|
17
|
+
return this.getFeatureValue(user, flagName);
|
|
18
|
+
}
|
|
19
|
+
isFeatureEnabledLatest(user, flagName) {
|
|
20
|
+
// Use getFeatureValueLatest internally for consistency
|
|
21
|
+
return this.getFeatureValueLatest(user, flagName);
|
|
22
|
+
}
|
|
23
|
+
async getFeatureValue(user, flagName) {
|
|
24
|
+
try {
|
|
25
|
+
// Let SDK handle provider errors gracefully - it returns rich FeatureValue with error property
|
|
26
|
+
const result = await (0, featureflag_sdk_node_1.getFeatureValue)(user.workspaceId, flagName, user.traits);
|
|
27
|
+
// Convert SDK FeatureValue to our FeatureValue type (they're structurally compatible)
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
// Handle FeatureFlagSDKError by creating rich error response
|
|
32
|
+
if (error instanceof featureflag_sdk_node_1.FeatureFlagSDKError) {
|
|
33
|
+
return this.createErrorFeatureValue(flagName, error);
|
|
34
|
+
}
|
|
35
|
+
throw error; // Re-throw unexpected errors
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async getFeatureValueLatest(user, flagName) {
|
|
39
|
+
try {
|
|
40
|
+
// Let SDK handle provider errors gracefully - it returns rich FeatureValue with error property
|
|
41
|
+
const result = await (0, featureflag_sdk_node_1.getFeatureValueLatest)(user.workspaceId, flagName, user.traits);
|
|
42
|
+
// Convert SDK FeatureValue to our FeatureValue type (they're structurally compatible)
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// Handle FeatureFlagSDKError by creating rich error response
|
|
47
|
+
if (error instanceof featureflag_sdk_node_1.FeatureFlagSDKError) {
|
|
48
|
+
return this.createErrorFeatureValue(flagName, error);
|
|
49
|
+
}
|
|
50
|
+
throw error; // Re-throw unexpected errors
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
createErrorFeatureValue(flagName, error) {
|
|
54
|
+
const defaultValue = this.registry.getDefaultValue(flagName);
|
|
55
|
+
return {
|
|
56
|
+
name: flagName,
|
|
57
|
+
enabled: typeof defaultValue === 'boolean' ? defaultValue : false,
|
|
58
|
+
value: defaultValue,
|
|
59
|
+
error,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// eslint-disable-next-line class-methods-use-this
|
|
63
|
+
getProviderInfo() {
|
|
64
|
+
return {
|
|
65
|
+
name: 'flagsmith',
|
|
66
|
+
version: '1.0.0',
|
|
67
|
+
supportsCache: true,
|
|
68
|
+
supportsRealTime: true,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.FlagsmithFeatureFlagProvider = FlagsmithFeatureFlagProvider;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvZmxhZ3NtaXRoL3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRFQUkyQztBQVMzQyxNQUFhLDRCQUE0QjtJQUN2QyxZQUFvQixRQUE4QjtRQUE5QixhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUFHLENBQUM7SUFFdEQsa0RBQWtEO0lBQ2xELFVBQVU7UUFDUixrREFBa0Q7UUFDbEQsdUNBQXVDO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQ3RELGlEQUFpRDtRQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQzVELHVEQUF1RDtRQUN2RCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBcUIsRUFBRSxRQUFnQjtRQUMzRCxJQUFJLENBQUM7WUFDSCwrRkFBK0Y7WUFDL0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLHNDQUFzQixFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRixzRkFBc0Y7WUFDdEYsT0FBTyxNQUFzQixDQUFDO1FBQ2hDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsNkRBQTZEO1lBQzdELElBQUksS0FBSyxZQUFZLDBDQUFtQixFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUMsQ0FBQyw2QkFBNkI7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCLENBQUMsSUFBcUIsRUFBRSxRQUFnQjtRQUNqRSxJQUFJLENBQUM7WUFDSCwrRkFBK0Y7WUFDL0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFBLDRDQUE0QixFQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzRixzRkFBc0Y7WUFDdEYsT0FBTyxNQUFzQixDQUFDO1FBQ2hDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsNkRBQTZEO1lBQzdELElBQUksS0FBSyxZQUFZLDBDQUFtQixFQUFFLENBQUM7Z0JBQ3pDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUMsQ0FBQyw2QkFBNkI7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLEtBQVk7UUFDNUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLE9BQU8sWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pFLEtBQUssRUFBRSxZQUFZO1lBQ25CLEtBQUs7U0FDTixDQUFDO0lBQ0osQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxlQUFlO1FBQ2IsT0FBTztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJFRCxvRUFxRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRGZWF0dXJlVmFsdWUgYXMgZ2V0RmVhdHVyZVZhbHVlRnJvbVNESyxcbiAgZ2V0RmVhdHVyZVZhbHVlTGF0ZXN0IGFzIGdldEZlYXR1cmVWYWx1ZUxhdGVzdEZyb21TREssXG4gIEZlYXR1cmVGbGFnU0RLRXJyb3IsXG59IGZyb20gJ0BydWRkZXJzdGFjay9mZWF0dXJlZmxhZy1zZGstbm9kZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEZlYXR1cmVGbGFnVXNlcixcbiAgSUZlYXR1cmVGbGFnUmVnaXN0cnksXG4gIElGZWF0dXJlRmxhZ1Byb3ZpZGVyLFxuICBQcm92aWRlckluZm8sXG4gIEZlYXR1cmVWYWx1ZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgRmxhZ3NtaXRoRmVhdHVyZUZsYWdQcm92aWRlciBpbXBsZW1lbnRzIElGZWF0dXJlRmxhZ1Byb3ZpZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWdpc3RyeTogSUZlYXR1cmVGbGFnUmVnaXN0cnkpIHt9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBTREsgaW5pdGlhbGl6YXRpb24gaXMgaGFuZGxlZCBpbiBjb3JlL2NvbmZpZy50c1xuICAgIC8vIFRoaXMgcHJvdmlkZXIgaXMganVzdCBhIHRoaW4gd3JhcHBlclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGlzRmVhdHVyZUVuYWJsZWQodXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxGZWF0dXJlVmFsdWU+IHtcbiAgICAvLyBVc2UgZ2V0RmVhdHVyZVZhbHVlIGludGVybmFsbHkgZm9yIGNvbnNpc3RlbmN5XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmVhdHVyZVZhbHVlKHVzZXIsIGZsYWdOYW1lKTtcbiAgfVxuXG4gIGlzRmVhdHVyZUVuYWJsZWRMYXRlc3QodXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxGZWF0dXJlVmFsdWU+IHtcbiAgICAvLyBVc2UgZ2V0RmVhdHVyZVZhbHVlTGF0ZXN0IGludGVybmFsbHkgZm9yIGNvbnNpc3RlbmN5XG4gICAgcmV0dXJuIHRoaXMuZ2V0RmVhdHVyZVZhbHVlTGF0ZXN0KHVzZXIsIGZsYWdOYW1lKTtcbiAgfVxuXG4gIGFzeW5jIGdldEZlYXR1cmVWYWx1ZSh1c2VyOiBGZWF0dXJlRmxhZ1VzZXIsIGZsYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZlYXR1cmVWYWx1ZT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBMZXQgU0RLIGhhbmRsZSBwcm92aWRlciBlcnJvcnMgZ3JhY2VmdWxseSAtIGl0IHJldHVybnMgcmljaCBGZWF0dXJlVmFsdWUgd2l0aCBlcnJvciBwcm9wZXJ0eVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0RmVhdHVyZVZhbHVlRnJvbVNESyh1c2VyLndvcmtzcGFjZUlkLCBmbGFnTmFtZSwgdXNlci50cmFpdHMpO1xuICAgICAgLy8gQ29udmVydCBTREsgRmVhdHVyZVZhbHVlIHRvIG91ciBGZWF0dXJlVmFsdWUgdHlwZSAodGhleSdyZSBzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSlcbiAgICAgIHJldHVybiByZXN1bHQgYXMgRmVhdHVyZVZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBIYW5kbGUgRmVhdHVyZUZsYWdTREtFcnJvciBieSBjcmVhdGluZyByaWNoIGVycm9yIHJlc3BvbnNlXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBGZWF0dXJlRmxhZ1NES0Vycm9yKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUVycm9yRmVhdHVyZVZhbHVlKGZsYWdOYW1lLCBlcnJvcik7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjsgLy8gUmUtdGhyb3cgdW5leHBlY3RlZCBlcnJvcnNcbiAgICB9XG4gIH1cblxuICBhc3luYyBnZXRGZWF0dXJlVmFsdWVMYXRlc3QodXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxGZWF0dXJlVmFsdWU+IHtcbiAgICB0cnkge1xuICAgICAgLy8gTGV0IFNESyBoYW5kbGUgcHJvdmlkZXIgZXJyb3JzIGdyYWNlZnVsbHkgLSBpdCByZXR1cm5zIHJpY2ggRmVhdHVyZVZhbHVlIHdpdGggZXJyb3IgcHJvcGVydHlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldEZlYXR1cmVWYWx1ZUxhdGVzdEZyb21TREsodXNlci53b3Jrc3BhY2VJZCwgZmxhZ05hbWUsIHVzZXIudHJhaXRzKTtcbiAgICAgIC8vIENvbnZlcnQgU0RLIEZlYXR1cmVWYWx1ZSB0byBvdXIgRmVhdHVyZVZhbHVlIHR5cGUgKHRoZXkncmUgc3RydWN0dXJhbGx5IGNvbXBhdGlibGUpXG4gICAgICByZXR1cm4gcmVzdWx0IGFzIEZlYXR1cmVWYWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSGFuZGxlIEZlYXR1cmVGbGFnU0RLRXJyb3IgYnkgY3JlYXRpbmcgcmljaCBlcnJvciByZXNwb25zZVxuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRmVhdHVyZUZsYWdTREtFcnJvcikge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVFcnJvckZlYXR1cmVWYWx1ZShmbGFnTmFtZSwgZXJyb3IpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7IC8vIFJlLXRocm93IHVuZXhwZWN0ZWQgZXJyb3JzXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFcnJvckZlYXR1cmVWYWx1ZShmbGFnTmFtZTogc3RyaW5nLCBlcnJvcjogRXJyb3IpOiBGZWF0dXJlVmFsdWUge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucmVnaXN0cnkuZ2V0RGVmYXVsdFZhbHVlKGZsYWdOYW1lKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZmxhZ05hbWUsXG4gICAgICBlbmFibGVkOiB0eXBlb2YgZGVmYXVsdFZhbHVlID09PSAnYm9vbGVhbicgPyBkZWZhdWx0VmFsdWUgOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBkZWZhdWx0VmFsdWUsXG4gICAgICBlcnJvcixcbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgZ2V0UHJvdmlkZXJJbmZvKCk6IFByb3ZpZGVySW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICdmbGFnc21pdGgnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIHN1cHBvcnRzQ2FjaGU6IHRydWUsXG4gICAgICBzdXBwb3J0c1JlYWxUaW1lOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/flagsmith/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Flagsmith provider specific types
|
|
3
|
+
// Currently no specific types needed as we use the SDK directly
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvZmxhZ3NtaXRoL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQ0FBb0M7QUFDcEMsZ0VBQWdFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRmxhZ3NtaXRoIHByb3ZpZGVyIHNwZWNpZmljIHR5cGVzXG4vLyBDdXJyZW50bHkgbm8gc3BlY2lmaWMgdHlwZXMgbmVlZGVkIGFzIHdlIHVzZSB0aGUgU0RLIGRpcmVjdGx5XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlagsmithFeatureFlagProvider = exports.LocalFeatureFlagProvider = exports.FeatureFlagProviderFactory = void 0;
|
|
4
|
+
var factory_1 = require("./factory");
|
|
5
|
+
Object.defineProperty(exports, "FeatureFlagProviderFactory", { enumerable: true, get: function () { return factory_1.FeatureFlagProviderFactory; } });
|
|
6
|
+
var local_1 = require("./local");
|
|
7
|
+
Object.defineProperty(exports, "LocalFeatureFlagProvider", { enumerable: true, get: function () { return local_1.LocalFeatureFlagProvider; } });
|
|
8
|
+
var flagsmith_1 = require("./flagsmith");
|
|
9
|
+
Object.defineProperty(exports, "FlagsmithFeatureFlagProvider", { enumerable: true, get: function () { return flagsmith_1.FlagsmithFeatureFlagProvider; } });
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQXVEO0FBQTlDLHFIQUFBLDBCQUEwQixPQUFBO0FBRW5DLGlDQUFtRDtBQUExQyxpSEFBQSx3QkFBd0IsT0FBQTtBQUNqQyx5Q0FBMkQ7QUFBbEQseUhBQUEsNEJBQTRCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBGZWF0dXJlRmxhZ1Byb3ZpZGVyRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yeSc7XG5leHBvcnQgdHlwZSB7IElGZWF0dXJlRmxhZ1Byb3ZpZGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCB7IExvY2FsRmVhdHVyZUZsYWdQcm92aWRlciB9IGZyb20gJy4vbG9jYWwnO1xuZXhwb3J0IHsgRmxhZ3NtaXRoRmVhdHVyZUZsYWdQcm92aWRlciB9IGZyb20gJy4vZmxhZ3NtaXRoJztcbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FeatureFlagUser, ProviderInfo } from '../types';
|
|
2
|
+
export interface IFeatureFlagProvider {
|
|
3
|
+
initialize(): Promise<void>;
|
|
4
|
+
destroy?(): Promise<void>;
|
|
5
|
+
isFeatureEnabled(user: FeatureFlagUser, flagName: string): Promise<boolean>;
|
|
6
|
+
getFeatureValue<T>(user: FeatureFlagUser, flagName: string): Promise<T>;
|
|
7
|
+
isFeatureEnabledLatest(user: FeatureFlagUser, flagName: string): Promise<boolean>;
|
|
8
|
+
getFeatureValueLatest<T>(user: FeatureFlagUser, flagName: string): Promise<T>;
|
|
9
|
+
getProviderInfo(): ProviderInfo;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/feature-flags/providers/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IAEnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1B,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAGxE,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClF,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAG9E,eAAe,IAAI,YAAY,CAAC;CACjC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9mZWF0dXJlLWZsYWdzL3Byb3ZpZGVycy9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnVXNlciwgUHJvdmlkZXJJbmZvIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGZWF0dXJlRmxhZ1Byb3ZpZGVyIHtcbiAgLy8gTGlmZWN5Y2xlIG1ldGhvZHNcbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+O1xuICBkZXN0cm95PygpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8vIENhY2hlZCBldmFsdWF0aW9uIG1ldGhvZHNcbiAgaXNGZWF0dXJlRW5hYmxlZCh1c2VyOiBGZWF0dXJlRmxhZ1VzZXIsIGZsYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBnZXRGZWF0dXJlVmFsdWU8VD4odXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxUPjtcblxuICAvLyBMYXRlc3QgZXZhbHVhdGlvbiBtZXRob2RzIChieXBhc3MgY2FjaGUpXG4gIGlzRmVhdHVyZUVuYWJsZWRMYXRlc3QodXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgZ2V0RmVhdHVyZVZhbHVlTGF0ZXN0PFQ+KHVzZXI6IEZlYXR1cmVGbGFnVXNlciwgZmxhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8VD47XG5cbiAgLy8gUHJvdmlkZXIgbWV0YWRhdGFcbiAgZ2V0UHJvdmlkZXJJbmZvKCk6IFByb3ZpZGVySW5mbztcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/local/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,oBAAoB,EAAE,mBAElC,CAAC;AAEF,wBAAgB,sBAAsB,IAAI,mBAAmB,CAE5D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_LOCAL_CONFIG = void 0;
|
|
4
|
+
exports.getLocalProviderConfig = getLocalProviderConfig;
|
|
5
|
+
exports.DEFAULT_LOCAL_CONFIG = {
|
|
6
|
+
flags: {},
|
|
7
|
+
};
|
|
8
|
+
function getLocalProviderConfig() {
|
|
9
|
+
return { ...exports.DEFAULT_LOCAL_CONFIG };
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ZlYXR1cmUtZmxhZ3MvcHJvdmlkZXJzL2xvY2FsL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSx3REFFQztBQU5ZLFFBQUEsb0JBQW9CLEdBQXdCO0lBQ3ZELEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQztBQUVGLFNBQWdCLHNCQUFzQjtJQUNwQyxPQUFPLEVBQUUsR0FBRyw0QkFBb0IsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvY2FsUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTE9DQUxfQ09ORklHOiBMb2NhbFByb3ZpZGVyQ29uZmlnID0ge1xuICBmbGFnczoge30sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxQcm92aWRlckNvbmZpZygpOiBMb2NhbFByb3ZpZGVyQ29uZmlnIHtcbiAgcmV0dXJuIHsgLi4uREVGQVVMVF9MT0NBTF9DT05GSUcgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalFeatureFlagProvider = void 0;
|
|
4
|
+
var provider_1 = require("./provider");
|
|
5
|
+
Object.defineProperty(exports, "LocalFeatureFlagProvider", { enumerable: true, get: function () { return provider_1.LocalFeatureFlagProvider; } });
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvbG9jYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXNEO0FBQTdDLG9IQUFBLHdCQUF3QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTG9jYWxGZWF0dXJlRmxhZ1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcic7XG5leHBvcnQgdHlwZSB7IExvY2FsUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FeatureFlagUser, IFeatureFlagRegistry, IFeatureFlagProvider, ProviderInfo, FeatureValue } from '../../types';
|
|
2
|
+
export declare class LocalFeatureFlagProvider implements IFeatureFlagProvider {
|
|
3
|
+
private registry;
|
|
4
|
+
private flags;
|
|
5
|
+
constructor(registry: IFeatureFlagRegistry);
|
|
6
|
+
initialize(): Promise<void>;
|
|
7
|
+
isFeatureEnabled(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
8
|
+
isFeatureEnabledLatest(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
9
|
+
getFeatureValue(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
10
|
+
getFeatureValueLatest(user: FeatureFlagUser, flagName: string): Promise<FeatureValue>;
|
|
11
|
+
getProviderInfo(): ProviderInfo;
|
|
12
|
+
private loadLocalFlags;
|
|
13
|
+
private resolveFlagValue;
|
|
14
|
+
private parseEnvValue;
|
|
15
|
+
private createErrorFeatureValue;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/local/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,qBAAa,wBAAyB,YAAW,oBAAoB;IAGvD,OAAO,CAAC,QAAQ;IAF5B,OAAO,CAAC,KAAK,CAAiD;gBAE1C,QAAQ,EAAE,oBAAoB;IAElD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKhF,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKtF,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAc/E,qBAAqB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrF,eAAe,IAAI,YAAY;IAS/B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,uBAAuB;CAShC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalFeatureFlagProvider = void 0;
|
|
4
|
+
const utils_1 = require("../../core/utils");
|
|
5
|
+
class LocalFeatureFlagProvider {
|
|
6
|
+
constructor(registry) {
|
|
7
|
+
this.registry = registry;
|
|
8
|
+
this.flags = {};
|
|
9
|
+
}
|
|
10
|
+
initialize() {
|
|
11
|
+
// Load flags from registry and config
|
|
12
|
+
this.flags = this.loadLocalFlags();
|
|
13
|
+
return Promise.resolve();
|
|
14
|
+
}
|
|
15
|
+
isFeatureEnabled(user, flagName) {
|
|
16
|
+
// Use getFeatureValue internally for consistency
|
|
17
|
+
return this.getFeatureValue(user, flagName);
|
|
18
|
+
}
|
|
19
|
+
isFeatureEnabledLatest(user, flagName) {
|
|
20
|
+
// For local provider, latest = cached (no difference)
|
|
21
|
+
return this.getFeatureValueLatest(user, flagName);
|
|
22
|
+
}
|
|
23
|
+
getFeatureValue(user, flagName) {
|
|
24
|
+
try {
|
|
25
|
+
const resolvedValue = this.resolveFlagValue(user, flagName);
|
|
26
|
+
return Promise.resolve({
|
|
27
|
+
name: flagName,
|
|
28
|
+
enabled: typeof resolvedValue === 'boolean' ? resolvedValue : Boolean(resolvedValue),
|
|
29
|
+
value: resolvedValue,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return Promise.resolve(this.createErrorFeatureValue(flagName, error));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
getFeatureValueLatest(user, flagName) {
|
|
37
|
+
// For local provider, latest = cached (no difference)
|
|
38
|
+
return this.getFeatureValue(user, flagName);
|
|
39
|
+
}
|
|
40
|
+
// eslint-disable-next-line class-methods-use-this
|
|
41
|
+
getProviderInfo() {
|
|
42
|
+
return {
|
|
43
|
+
name: 'local',
|
|
44
|
+
version: '1.0.0',
|
|
45
|
+
supportsCache: false,
|
|
46
|
+
supportsRealTime: false,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
loadLocalFlags() {
|
|
50
|
+
const flags = {};
|
|
51
|
+
// Load from registry defaults
|
|
52
|
+
this.registry.getAll().forEach((flag) => {
|
|
53
|
+
flags[flag.key] = flag.defaultValue;
|
|
54
|
+
});
|
|
55
|
+
return flags;
|
|
56
|
+
}
|
|
57
|
+
resolveFlagValue(user, flagName) {
|
|
58
|
+
// Priority: workspace-specific env > global env > config > registry default
|
|
59
|
+
// 1. Check workspace-specific environment variable
|
|
60
|
+
const workspaceEnvKey = utils_1.FeatureFlagUtils.createWorkspaceEnvKey(flagName, user.workspaceId);
|
|
61
|
+
const workspaceEnvValue = process.env[workspaceEnvKey];
|
|
62
|
+
if (workspaceEnvValue !== undefined) {
|
|
63
|
+
return this.parseEnvValue(workspaceEnvValue);
|
|
64
|
+
}
|
|
65
|
+
// 2. Check global environment variable
|
|
66
|
+
const globalEnvKey = utils_1.FeatureFlagUtils.createGlobalEnvKey(flagName);
|
|
67
|
+
const globalEnvValue = process.env[globalEnvKey];
|
|
68
|
+
if (globalEnvValue !== undefined) {
|
|
69
|
+
return this.parseEnvValue(globalEnvValue);
|
|
70
|
+
}
|
|
71
|
+
// 3. Check configured flags
|
|
72
|
+
const configValue = this.flags[flagName];
|
|
73
|
+
if (configValue !== undefined) {
|
|
74
|
+
return configValue;
|
|
75
|
+
}
|
|
76
|
+
// 4. Return registry default
|
|
77
|
+
return this.registry.getDefaultValue(flagName);
|
|
78
|
+
}
|
|
79
|
+
// eslint-disable-next-line class-methods-use-this
|
|
80
|
+
parseEnvValue(envValue) {
|
|
81
|
+
// Try to parse as boolean
|
|
82
|
+
const lowerValue = envValue.toLowerCase();
|
|
83
|
+
if (lowerValue === 'true' || lowerValue === '1')
|
|
84
|
+
return true;
|
|
85
|
+
if (lowerValue === 'false' || lowerValue === '0')
|
|
86
|
+
return false;
|
|
87
|
+
// Try to parse as number
|
|
88
|
+
const numValue = Number(envValue);
|
|
89
|
+
if (!Number.isNaN(numValue) && envValue.trim() !== '')
|
|
90
|
+
return numValue;
|
|
91
|
+
// Return as string
|
|
92
|
+
return envValue;
|
|
93
|
+
}
|
|
94
|
+
createErrorFeatureValue(flagName, error) {
|
|
95
|
+
const defaultValue = this.registry.getDefaultValue(flagName);
|
|
96
|
+
return {
|
|
97
|
+
name: flagName,
|
|
98
|
+
enabled: typeof defaultValue === 'boolean' ? defaultValue : false,
|
|
99
|
+
value: defaultValue,
|
|
100
|
+
error,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.LocalFeatureFlagProvider = LocalFeatureFlagProvider;
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9wcm92aWRlcnMvbG9jYWwvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsNENBQW9EO0FBRXBELE1BQWEsd0JBQXdCO0lBR25DLFlBQW9CLFFBQThCO1FBQTlCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBRjFDLFVBQUssR0FBOEMsRUFBRSxDQUFDO0lBRVQsQ0FBQztJQUV0RCxVQUFVO1FBQ1Isc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQ3RELGlEQUFpRDtRQUNqRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQzVELHNEQUFzRDtRQUN0RCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQ3JELElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDO2dCQUNyQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxPQUFPLEVBQUUsT0FBTyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQ3BGLEtBQUssRUFBRSxhQUFhO2FBQ3JCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsS0FBYyxDQUFDLENBQUMsQ0FBQztRQUNqRixDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQXFCLEVBQUUsUUFBZ0I7UUFDM0Qsc0RBQXNEO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxlQUFlO1FBQ2IsT0FBTztZQUNMLElBQUksRUFBRSxPQUFPO1lBQ2IsT0FBTyxFQUFFLE9BQU87WUFDaEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztTQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxLQUFLLEdBQThDLEVBQUUsQ0FBQztRQUU1RCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFxQixFQUFFLFFBQWdCO1FBQzlELDRFQUE0RTtRQUU1RSxtREFBbUQ7UUFDbkQsTUFBTSxlQUFlLEdBQUcsd0JBQWdCLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRixNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdkQsSUFBSSxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLHdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBRUQsNkJBQTZCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxhQUFhLENBQUMsUUFBZ0I7UUFDcEMsMEJBQTBCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM3RCxJQUFJLFVBQVUsS0FBSyxPQUFPLElBQUksVUFBVSxLQUFLLEdBQUc7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUvRCx5QkFBeUI7UUFDekIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFdkUsbUJBQW1CO1FBQ25CLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLEtBQVk7UUFDNUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0QsT0FBTztZQUNMLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLE9BQU8sWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQ2pFLEtBQUssRUFBRSxZQUFZO1lBQ25CLEtBQUs7U0FDTixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaEhELDREQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRmVhdHVyZUZsYWdVc2VyLFxuICBJRmVhdHVyZUZsYWdSZWdpc3RyeSxcbiAgSUZlYXR1cmVGbGFnUHJvdmlkZXIsXG4gIFByb3ZpZGVySW5mbyxcbiAgRmVhdHVyZVZhbHVlLFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1V0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbEZlYXR1cmVGbGFnUHJvdmlkZXIgaW1wbGVtZW50cyBJRmVhdHVyZUZsYWdQcm92aWRlciB7XG4gIHByaXZhdGUgZmxhZ3M6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXI+ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWdpc3RyeTogSUZlYXR1cmVGbGFnUmVnaXN0cnkpIHt9XG5cbiAgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBMb2FkIGZsYWdzIGZyb20gcmVnaXN0cnkgYW5kIGNvbmZpZ1xuICAgIHRoaXMuZmxhZ3MgPSB0aGlzLmxvYWRMb2NhbEZsYWdzKCk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgaXNGZWF0dXJlRW5hYmxlZCh1c2VyOiBGZWF0dXJlRmxhZ1VzZXIsIGZsYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZlYXR1cmVWYWx1ZT4ge1xuICAgIC8vIFVzZSBnZXRGZWF0dXJlVmFsdWUgaW50ZXJuYWxseSBmb3IgY29uc2lzdGVuY3lcbiAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlVmFsdWUodXNlciwgZmxhZ05hbWUpO1xuICB9XG5cbiAgaXNGZWF0dXJlRW5hYmxlZExhdGVzdCh1c2VyOiBGZWF0dXJlRmxhZ1VzZXIsIGZsYWdOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZlYXR1cmVWYWx1ZT4ge1xuICAgIC8vIEZvciBsb2NhbCBwcm92aWRlciwgbGF0ZXN0ID0gY2FjaGVkIChubyBkaWZmZXJlbmNlKVxuICAgIHJldHVybiB0aGlzLmdldEZlYXR1cmVWYWx1ZUxhdGVzdCh1c2VyLCBmbGFnTmFtZSk7XG4gIH1cblxuICBnZXRGZWF0dXJlVmFsdWUodXNlcjogRmVhdHVyZUZsYWdVc2VyLCBmbGFnTmFtZTogc3RyaW5nKTogUHJvbWlzZTxGZWF0dXJlVmFsdWU+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZSA9IHRoaXMucmVzb2x2ZUZsYWdWYWx1ZSh1c2VyLCBmbGFnTmFtZSk7XG5cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBuYW1lOiBmbGFnTmFtZSxcbiAgICAgICAgZW5hYmxlZDogdHlwZW9mIHJlc29sdmVkVmFsdWUgPT09ICdib29sZWFuJyA/IHJlc29sdmVkVmFsdWUgOiBCb29sZWFuKHJlc29sdmVkVmFsdWUpLFxuICAgICAgICB2YWx1ZTogcmVzb2x2ZWRWYWx1ZSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY3JlYXRlRXJyb3JGZWF0dXJlVmFsdWUoZmxhZ05hbWUsIGVycm9yIGFzIEVycm9yKSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RmVhdHVyZVZhbHVlTGF0ZXN0KHVzZXI6IEZlYXR1cmVGbGFnVXNlciwgZmxhZ05hbWU6IHN0cmluZyk6IFByb21pc2U8RmVhdHVyZVZhbHVlPiB7XG4gICAgLy8gRm9yIGxvY2FsIHByb3ZpZGVyLCBsYXRlc3QgPSBjYWNoZWQgKG5vIGRpZmZlcmVuY2UpXG4gICAgcmV0dXJuIHRoaXMuZ2V0RmVhdHVyZVZhbHVlKHVzZXIsIGZsYWdOYW1lKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIGdldFByb3ZpZGVySW5mbygpOiBQcm92aWRlckluZm8ge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnbG9jYWwnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIHN1cHBvcnRzQ2FjaGU6IGZhbHNlLFxuICAgICAgc3VwcG9ydHNSZWFsVGltZTogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZExvY2FsRmxhZ3MoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlcj4ge1xuICAgIGNvbnN0IGZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyPiA9IHt9O1xuXG4gICAgLy8gTG9hZCBmcm9tIHJlZ2lzdHJ5IGRlZmF1bHRzXG4gICAgdGhpcy5yZWdpc3RyeS5nZXRBbGwoKS5mb3JFYWNoKChmbGFnKSA9PiB7XG4gICAgICBmbGFnc1tmbGFnLmtleV0gPSBmbGFnLmRlZmF1bHRWYWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmbGFncztcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUZsYWdWYWx1ZSh1c2VyOiBGZWF0dXJlRmxhZ1VzZXIsIGZsYWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHtcbiAgICAvLyBQcmlvcml0eTogd29ya3NwYWNlLXNwZWNpZmljIGVudiA+IGdsb2JhbCBlbnYgPiBjb25maWcgPiByZWdpc3RyeSBkZWZhdWx0XG5cbiAgICAvLyAxLiBDaGVjayB3b3Jrc3BhY2Utc3BlY2lmaWMgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICBjb25zdCB3b3Jrc3BhY2VFbnZLZXkgPSBGZWF0dXJlRmxhZ1V0aWxzLmNyZWF0ZVdvcmtzcGFjZUVudktleShmbGFnTmFtZSwgdXNlci53b3Jrc3BhY2VJZCk7XG4gICAgY29uc3Qgd29ya3NwYWNlRW52VmFsdWUgPSBwcm9jZXNzLmVudlt3b3Jrc3BhY2VFbnZLZXldO1xuICAgIGlmICh3b3Jrc3BhY2VFbnZWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUVudlZhbHVlKHdvcmtzcGFjZUVudlZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAyLiBDaGVjayBnbG9iYWwgZW52aXJvbm1lbnQgdmFyaWFibGVcbiAgICBjb25zdCBnbG9iYWxFbnZLZXkgPSBGZWF0dXJlRmxhZ1V0aWxzLmNyZWF0ZUdsb2JhbEVudktleShmbGFnTmFtZSk7XG4gICAgY29uc3QgZ2xvYmFsRW52VmFsdWUgPSBwcm9jZXNzLmVudltnbG9iYWxFbnZLZXldO1xuICAgIGlmIChnbG9iYWxFbnZWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZUVudlZhbHVlKGdsb2JhbEVudlZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyAzLiBDaGVjayBjb25maWd1cmVkIGZsYWdzXG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSB0aGlzLmZsYWdzW2ZsYWdOYW1lXTtcbiAgICBpZiAoY29uZmlnVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ1ZhbHVlO1xuICAgIH1cblxuICAgIC8vIDQuIFJldHVybiByZWdpc3RyeSBkZWZhdWx0XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0RGVmYXVsdFZhbHVlKGZsYWdOYW1lKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gIHByaXZhdGUgcGFyc2VFbnZWYWx1ZShlbnZWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB8IHN0cmluZyB8IG51bWJlciB7XG4gICAgLy8gVHJ5IHRvIHBhcnNlIGFzIGJvb2xlYW5cbiAgICBjb25zdCBsb3dlclZhbHVlID0gZW52VmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobG93ZXJWYWx1ZSA9PT0gJ3RydWUnIHx8IGxvd2VyVmFsdWUgPT09ICcxJykgcmV0dXJuIHRydWU7XG4gICAgaWYgKGxvd2VyVmFsdWUgPT09ICdmYWxzZScgfHwgbG93ZXJWYWx1ZSA9PT0gJzAnKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBUcnkgdG8gcGFyc2UgYXMgbnVtYmVyXG4gICAgY29uc3QgbnVtVmFsdWUgPSBOdW1iZXIoZW52VmFsdWUpO1xuICAgIGlmICghTnVtYmVyLmlzTmFOKG51bVZhbHVlKSAmJiBlbnZWYWx1ZS50cmltKCkgIT09ICcnKSByZXR1cm4gbnVtVmFsdWU7XG5cbiAgICAvLyBSZXR1cm4gYXMgc3RyaW5nXG4gICAgcmV0dXJuIGVudlZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFcnJvckZlYXR1cmVWYWx1ZShmbGFnTmFtZTogc3RyaW5nLCBlcnJvcjogRXJyb3IpOiBGZWF0dXJlVmFsdWUge1xuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucmVnaXN0cnkuZ2V0RGVmYXVsdFZhbHVlKGZsYWdOYW1lKTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogZmxhZ05hbWUsXG4gICAgICBlbmFibGVkOiB0eXBlb2YgZGVmYXVsdFZhbHVlID09PSAnYm9vbGVhbicgPyBkZWZhdWx0VmFsdWUgOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBkZWZhdWx0VmFsdWUsXG4gICAgICBlcnJvcixcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/feature-flags/providers/local/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;CAClD"}
|