@metamask-previews/snap-networks-utils 0.0.0-preview-a0892371 → 0.0.0-preview-e3b05f64
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/CHANGELOG.md +1 -1
- package/dist/index.cjs +4 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/providers/{remote-feature-flag/RemoteFeatureFlagProvider.cjs → remote-feature-flags/RemoteFeatureFlagsProvider.cjs} +12 -12
- package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.cjs.map +1 -0
- package/dist/providers/{remote-feature-flag/RemoteFeatureFlagProvider.d.mts → remote-feature-flags/RemoteFeatureFlagsProvider.d.cts} +9 -9
- package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.d.cts.map +1 -0
- package/dist/providers/{remote-feature-flag/RemoteFeatureFlagProvider.d.cts → remote-feature-flags/RemoteFeatureFlagsProvider.d.mts} +9 -9
- package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.d.mts.map +1 -0
- package/dist/providers/{remote-feature-flag/RemoteFeatureFlagProvider.mjs → remote-feature-flags/RemoteFeatureFlagsProvider.mjs} +10 -10
- package/dist/providers/remote-feature-flags/RemoteFeatureFlagsProvider.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/providers/remote-feature-flag/RemoteFeatureFlagProvider.cjs.map +0 -1
- package/dist/providers/remote-feature-flag/RemoteFeatureFlagProvider.d.cts.map +0 -1
- package/dist/providers/remote-feature-flag/RemoteFeatureFlagProvider.d.mts.map +0 -1
- package/dist/providers/remote-feature-flag/RemoteFeatureFlagProvider.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Added
|
|
11
11
|
|
|
12
|
-
- Initial package release ([#99](https://github.com/MetaMask/internal-snaps/pull/99), [#82](https://github.com/MetaMask/internal-snaps/pull/82), [#79](https://github.com/MetaMask/internal-snaps/pull/79))
|
|
12
|
+
- Initial package release ([#104](https://github.com/MetaMask/internal-snaps/pull/104), [#102](https://github.com/MetaMask/internal-snaps/pull/102), [#99](https://github.com/MetaMask/internal-snaps/pull/99), [#82](https://github.com/MetaMask/internal-snaps/pull/82), [#79](https://github.com/MetaMask/internal-snaps/pull/79))
|
|
13
13
|
|
|
14
14
|
[Unreleased]: https://github.com/MetaMask/internal-snaps/
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AssetsProvider = exports.ASSETS_PROVIDER_NAME = exports.noOpLogger = exports.logger = exports.createPrefixedLogger = void 0;
|
|
3
|
+
exports.RemoteFeatureFlagsProvider = exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME = exports.AssetsProvider = exports.ASSETS_PROVIDER_NAME = exports.noOpLogger = exports.logger = exports.createPrefixedLogger = void 0;
|
|
4
4
|
var logger_1 = require("./logger.cjs");
|
|
5
5
|
Object.defineProperty(exports, "createPrefixedLogger", { enumerable: true, get: function () { return logger_1.createPrefixedLogger; } });
|
|
6
6
|
Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
|
|
@@ -8,4 +8,7 @@ Object.defineProperty(exports, "noOpLogger", { enumerable: true, get: function (
|
|
|
8
8
|
var AssetsProvider_1 = require("./providers/assets/AssetsProvider.cjs");
|
|
9
9
|
Object.defineProperty(exports, "ASSETS_PROVIDER_NAME", { enumerable: true, get: function () { return AssetsProvider_1.ASSETS_PROVIDER_NAME; } });
|
|
10
10
|
Object.defineProperty(exports, "AssetsProvider", { enumerable: true, get: function () { return AssetsProvider_1.AssetsProvider; } });
|
|
11
|
+
var RemoteFeatureFlagsProvider_1 = require("./providers/remote-feature-flags/RemoteFeatureFlagsProvider.cjs");
|
|
12
|
+
Object.defineProperty(exports, "REMOTE_FEATURE_FLAGS_PROVIDER_NAME", { enumerable: true, get: function () { return RemoteFeatureFlagsProvider_1.REMOTE_FEATURE_FLAGS_PROVIDER_NAME; } });
|
|
13
|
+
Object.defineProperty(exports, "RemoteFeatureFlagsProvider", { enumerable: true, get: function () { return RemoteFeatureFlagsProvider_1.RemoteFeatureFlagsProvider; } });
|
|
11
14
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,uCAAoE;AAA3D,8GAAA,oBAAoB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,oGAAA,UAAU,OAAA;AACjD,wEAI2C;AAHzC,sHAAA,oBAAoB,OAAA;AACpB,gHAAA,cAAc,OAAA","sourcesContent":["export type { Logger } from './logger';\nexport { createPrefixedLogger, logger, noOpLogger } from './logger';\nexport {\n ASSETS_PROVIDER_NAME,\n AssetsProvider,\n type AssetsProviderMessenger,\n} from './providers/assets/AssetsProvider';\n"]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,uCAAoE;AAA3D,8GAAA,oBAAoB,OAAA;AAAE,gGAAA,MAAM,OAAA;AAAE,oGAAA,UAAU,OAAA;AACjD,wEAI2C;AAHzC,sHAAA,oBAAoB,OAAA;AACpB,gHAAA,cAAc,OAAA;AAGhB,8GAIqE;AAHnE,gJAAA,kCAAkC,OAAA;AAClC,wIAAA,0BAA0B,OAAA","sourcesContent":["export type { Logger } from './logger';\nexport { createPrefixedLogger, logger, noOpLogger } from './logger';\nexport {\n ASSETS_PROVIDER_NAME,\n AssetsProvider,\n type AssetsProviderMessenger,\n} from './providers/assets/AssetsProvider';\nexport {\n REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProvider,\n type RemoteFeatureFlagsProviderMessenger,\n} from './providers/remote-feature-flags/RemoteFeatureFlagsProvider';\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { Logger } from "./logger.cjs";
|
|
2
2
|
export { createPrefixedLogger, logger, noOpLogger } from "./logger.cjs";
|
|
3
3
|
export { ASSETS_PROVIDER_NAME, AssetsProvider, type AssetsProviderMessenger, } from "./providers/assets/AssetsProvider.cjs";
|
|
4
|
+
export { REMOTE_FEATURE_FLAGS_PROVIDER_NAME, RemoteFeatureFlagsProvider, type RemoteFeatureFlagsProviderMessenger, } from "./providers/remote-feature-flags/RemoteFeatureFlagsProvider.cjs";
|
|
4
5
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,qBAAiB;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,GAC7B,8CAA0C"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,qBAAiB;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,GAC7B,8CAA0C;AAC3C,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,mCAAmC,GACzC,wEAAoE"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export type { Logger } from "./logger.mjs";
|
|
2
2
|
export { createPrefixedLogger, logger, noOpLogger } from "./logger.mjs";
|
|
3
3
|
export { ASSETS_PROVIDER_NAME, AssetsProvider, type AssetsProviderMessenger, } from "./providers/assets/AssetsProvider.mjs";
|
|
4
|
+
export { REMOTE_FEATURE_FLAGS_PROVIDER_NAME, RemoteFeatureFlagsProvider, type RemoteFeatureFlagsProviderMessenger, } from "./providers/remote-feature-flags/RemoteFeatureFlagsProvider.mjs";
|
|
4
5
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,qBAAiB;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,GAC7B,8CAA0C"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,qBAAiB;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,KAAK,uBAAuB,GAC7B,8CAA0C;AAC3C,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAC1B,KAAK,mCAAmC,GACzC,wEAAoE"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { createPrefixedLogger, logger, noOpLogger } from "./logger.mjs";
|
|
2
2
|
export { ASSETS_PROVIDER_NAME, AssetsProvider } from "./providers/assets/AssetsProvider.mjs";
|
|
3
|
+
export { REMOTE_FEATURE_FLAGS_PROVIDER_NAME, RemoteFeatureFlagsProvider } from "./providers/remote-feature-flags/RemoteFeatureFlagsProvider.mjs";
|
|
3
4
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EAEf,8CAA0C","sourcesContent":["export type { Logger } from './logger';\nexport { createPrefixedLogger, logger, noOpLogger } from './logger';\nexport {\n ASSETS_PROVIDER_NAME,\n AssetsProvider,\n type AssetsProviderMessenger,\n} from './providers/assets/AssetsProvider';\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,EAAE,qBAAiB;AACpE,OAAO,EACL,oBAAoB,EACpB,cAAc,EAEf,8CAA0C;AAC3C,OAAO,EACL,kCAAkC,EAClC,0BAA0B,EAE3B,wEAAoE","sourcesContent":["export type { Logger } from './logger';\nexport { createPrefixedLogger, logger, noOpLogger } from './logger';\nexport {\n ASSETS_PROVIDER_NAME,\n AssetsProvider,\n type AssetsProviderMessenger,\n} from './providers/assets/AssetsProvider';\nexport {\n REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProvider,\n type RemoteFeatureFlagsProviderMessenger,\n} from './providers/remote-feature-flags/RemoteFeatureFlagsProvider';\n"]}
|
|
@@ -10,17 +10,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var
|
|
13
|
+
var _RemoteFeatureFlagsProvider_messenger;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.RemoteFeatureFlagsProvider = exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME = void 0;
|
|
16
16
|
/**
|
|
17
|
-
* Namespace for the {@link
|
|
17
|
+
* Namespace for the {@link RemoteFeatureFlagsProvider} messenger.
|
|
18
18
|
*/
|
|
19
|
-
exports.
|
|
20
|
-
class
|
|
19
|
+
exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME = 'RemoteFeatureFlagsProvider';
|
|
20
|
+
class RemoteFeatureFlagsProvider {
|
|
21
21
|
constructor({ messenger, }) {
|
|
22
|
-
|
|
23
|
-
__classPrivateFieldSet(this,
|
|
22
|
+
_RemoteFeatureFlagsProvider_messenger.set(this, void 0);
|
|
23
|
+
__classPrivateFieldSet(this, _RemoteFeatureFlagsProvider_messenger, messenger, "f");
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Returns a single remote feature flag value, or `undefined` if missing.
|
|
@@ -29,7 +29,7 @@ class RemoteFeatureFlagProvider {
|
|
|
29
29
|
* @returns Flag value, or `undefined`.
|
|
30
30
|
*/
|
|
31
31
|
async getFeatureFlag(flagKey) {
|
|
32
|
-
const { remoteFeatureFlags } = await __classPrivateFieldGet(this,
|
|
32
|
+
const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
|
|
33
33
|
return remoteFeatureFlags[flagKey];
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
@@ -40,13 +40,13 @@ class RemoteFeatureFlagProvider {
|
|
|
40
40
|
* @returns Map of flag key → value.
|
|
41
41
|
*/
|
|
42
42
|
async getFeatureFlags(flagKeys) {
|
|
43
|
-
const { remoteFeatureFlags } = await __classPrivateFieldGet(this,
|
|
43
|
+
const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
|
|
44
44
|
return flagKeys.reduce((acc, flagKey) => {
|
|
45
45
|
acc[flagKey] = remoteFeatureFlags[flagKey];
|
|
46
46
|
return acc;
|
|
47
47
|
}, {});
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
exports.
|
|
51
|
-
|
|
52
|
-
//# sourceMappingURL=
|
|
50
|
+
exports.RemoteFeatureFlagsProvider = RemoteFeatureFlagsProvider;
|
|
51
|
+
_RemoteFeatureFlagsProvider_messenger = new WeakMap();
|
|
52
|
+
//# sourceMappingURL=RemoteFeatureFlagsProvider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteFeatureFlagsProvider.cjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA;;GAEG;AACU,QAAA,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAa,0BAA0B;IAGrC,YAAY,EACV,SAAS,GAGV;QANQ,wDAAgD;QAOvD,uBAAA,IAAI,yCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF;AA5CD,gEA4CC","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
|
|
@@ -3,21 +3,21 @@ import type { RemoteFeatureFlagControllerGetStateAction } from "@metamask/remote
|
|
|
3
3
|
import { AsyncMessenger } from "@metamask/snaps-sdk";
|
|
4
4
|
import type { Json } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
|
-
* Namespace for the {@link
|
|
6
|
+
* Namespace for the {@link RemoteFeatureFlagsProvider} messenger.
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const REMOTE_FEATURE_FLAGS_PROVIDER_NAME: "RemoteFeatureFlagsProvider";
|
|
9
9
|
/**
|
|
10
|
-
* Actions from other messengers that {@link
|
|
10
|
+
* Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.
|
|
11
11
|
*/
|
|
12
|
-
export type
|
|
12
|
+
export type RemoteFeatureFlagsProviderAllowedActions = RemoteFeatureFlagControllerGetStateAction;
|
|
13
13
|
/**
|
|
14
|
-
* Messenger restricted to actions consumed by {@link
|
|
14
|
+
* Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.
|
|
15
15
|
*/
|
|
16
|
-
export type
|
|
17
|
-
export declare class
|
|
16
|
+
export type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<Messenger<typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME, RemoteFeatureFlagsProviderAllowedActions>>;
|
|
17
|
+
export declare class RemoteFeatureFlagsProvider {
|
|
18
18
|
#private;
|
|
19
19
|
constructor({ messenger, }: {
|
|
20
|
-
messenger:
|
|
20
|
+
messenger: RemoteFeatureFlagsProviderMessenger;
|
|
21
21
|
});
|
|
22
22
|
/**
|
|
23
23
|
* Returns a single remote feature flag value, or `undefined` if missing.
|
|
@@ -35,4 +35,4 @@ export declare class RemoteFeatureFlagProvider {
|
|
|
35
35
|
*/
|
|
36
36
|
getFeatureFlags(flagKeys: string[]): Promise<Record<string, Json | undefined>>;
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=RemoteFeatureFlagsProvider.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteFeatureFlagsProvider.d.cts","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,yCAAyC,EAAE,iDAAiD;AAC1G,OAAO,EAAE,cAAc,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAC7C,4BAAqC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAClD,yCAAyC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG,cAAc,CAC9D,SAAS,CACP,OAAO,kCAAkC,EACzC,wCAAwC,CACzC,CACF,CAAC;AAEF,qBAAa,0BAA0B;;gBAGzB,EACV,SAAS,GACV,EAAE;QACD,SAAS,EAAE,mCAAmC,CAAC;KAChD;IAID;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQhE;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;CAU7C"}
|
|
@@ -3,21 +3,21 @@ import type { RemoteFeatureFlagControllerGetStateAction } from "@metamask/remote
|
|
|
3
3
|
import { AsyncMessenger } from "@metamask/snaps-sdk";
|
|
4
4
|
import type { Json } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
|
-
* Namespace for the {@link
|
|
6
|
+
* Namespace for the {@link RemoteFeatureFlagsProvider} messenger.
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const REMOTE_FEATURE_FLAGS_PROVIDER_NAME: "RemoteFeatureFlagsProvider";
|
|
9
9
|
/**
|
|
10
|
-
* Actions from other messengers that {@link
|
|
10
|
+
* Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.
|
|
11
11
|
*/
|
|
12
|
-
export type
|
|
12
|
+
export type RemoteFeatureFlagsProviderAllowedActions = RemoteFeatureFlagControllerGetStateAction;
|
|
13
13
|
/**
|
|
14
|
-
* Messenger restricted to actions consumed by {@link
|
|
14
|
+
* Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.
|
|
15
15
|
*/
|
|
16
|
-
export type
|
|
17
|
-
export declare class
|
|
16
|
+
export type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<Messenger<typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME, RemoteFeatureFlagsProviderAllowedActions>>;
|
|
17
|
+
export declare class RemoteFeatureFlagsProvider {
|
|
18
18
|
#private;
|
|
19
19
|
constructor({ messenger, }: {
|
|
20
|
-
messenger:
|
|
20
|
+
messenger: RemoteFeatureFlagsProviderMessenger;
|
|
21
21
|
});
|
|
22
22
|
/**
|
|
23
23
|
* Returns a single remote feature flag value, or `undefined` if missing.
|
|
@@ -35,4 +35,4 @@ export declare class RemoteFeatureFlagProvider {
|
|
|
35
35
|
*/
|
|
36
36
|
getFeatureFlags(flagKeys: string[]): Promise<Record<string, Json | undefined>>;
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=RemoteFeatureFlagsProvider.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteFeatureFlagsProvider.d.mts","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,yCAAyC,EAAE,iDAAiD;AAC1G,OAAO,EAAE,cAAc,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,eAAO,MAAM,kCAAkC,EAC7C,4BAAqC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAClD,yCAAyC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,mCAAmC,GAAG,cAAc,CAC9D,SAAS,CACP,OAAO,kCAAkC,EACzC,wCAAwC,CACzC,CACF,CAAC;AAEF,qBAAa,0BAA0B;;gBAGzB,EACV,SAAS,GACV,EAAE;QACD,SAAS,EAAE,mCAAmC,CAAC;KAChD;IAID;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQhE;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;CAU7C"}
|
|
@@ -9,15 +9,15 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var
|
|
12
|
+
var _RemoteFeatureFlagsProvider_messenger;
|
|
13
13
|
/**
|
|
14
|
-
* Namespace for the {@link
|
|
14
|
+
* Namespace for the {@link RemoteFeatureFlagsProvider} messenger.
|
|
15
15
|
*/
|
|
16
|
-
export const
|
|
17
|
-
export class
|
|
16
|
+
export const REMOTE_FEATURE_FLAGS_PROVIDER_NAME = 'RemoteFeatureFlagsProvider';
|
|
17
|
+
export class RemoteFeatureFlagsProvider {
|
|
18
18
|
constructor({ messenger, }) {
|
|
19
|
-
|
|
20
|
-
__classPrivateFieldSet(this,
|
|
19
|
+
_RemoteFeatureFlagsProvider_messenger.set(this, void 0);
|
|
20
|
+
__classPrivateFieldSet(this, _RemoteFeatureFlagsProvider_messenger, messenger, "f");
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Returns a single remote feature flag value, or `undefined` if missing.
|
|
@@ -26,7 +26,7 @@ export class RemoteFeatureFlagProvider {
|
|
|
26
26
|
* @returns Flag value, or `undefined`.
|
|
27
27
|
*/
|
|
28
28
|
async getFeatureFlag(flagKey) {
|
|
29
|
-
const { remoteFeatureFlags } = await __classPrivateFieldGet(this,
|
|
29
|
+
const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
|
|
30
30
|
return remoteFeatureFlags[flagKey];
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
@@ -37,12 +37,12 @@ export class RemoteFeatureFlagProvider {
|
|
|
37
37
|
* @returns Map of flag key → value.
|
|
38
38
|
*/
|
|
39
39
|
async getFeatureFlags(flagKeys) {
|
|
40
|
-
const { remoteFeatureFlags } = await __classPrivateFieldGet(this,
|
|
40
|
+
const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
|
|
41
41
|
return flagKeys.reduce((acc, flagKey) => {
|
|
42
42
|
acc[flagKey] = remoteFeatureFlags[flagKey];
|
|
43
43
|
return acc;
|
|
44
44
|
}, {});
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
|
|
48
|
-
//# sourceMappingURL=
|
|
47
|
+
_RemoteFeatureFlagsProvider_messenger = new WeakMap();
|
|
48
|
+
//# sourceMappingURL=RemoteFeatureFlagsProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RemoteFeatureFlagsProvider.mjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAM,OAAO,0BAA0B;IAGrC,YAAY,EACV,SAAS,GAGV;QANQ,wDAAgD;QAOvD,uBAAA,IAAI,yCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteFeatureFlagProvider.cjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flag/RemoteFeatureFlagProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA;;GAEG;AACU,QAAA,iCAAiC,GAC5C,2BAAoC,CAAC;AAkBvC,MAAa,yBAAyB;IAGpC,YAAY,EACV,SAAS,GAGV;QANQ,uDAA+C;QAOtD,uBAAA,IAAI,wCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,4CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,4CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF;AA5CD,8DA4CC","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAG_PROVIDER_NAME =\n 'RemoteFeatureFlagProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagProvider} calls.\n */\nexport type RemoteFeatureFlagProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagProvider}.\n */\nexport type RemoteFeatureFlagProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAG_PROVIDER_NAME,\n RemoteFeatureFlagProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagProvider {\n readonly #messenger: RemoteFeatureFlagProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteFeatureFlagProvider.d.cts","sourceRoot":"","sources":["../../../src/providers/remote-feature-flag/RemoteFeatureFlagProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,yCAAyC,EAAE,iDAAiD;AAC1G,OAAO,EAAE,cAAc,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAC5C,2BAAoC,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,uCAAuC,GACjD,yCAAyC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,cAAc,CAC7D,SAAS,CACP,OAAO,iCAAiC,EACxC,uCAAuC,CACxC,CACF,CAAC;AAEF,qBAAa,yBAAyB;;gBAGxB,EACV,SAAS,GACV,EAAE;QACD,SAAS,EAAE,kCAAkC,CAAC;KAC/C;IAID;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQhE;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;CAU7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteFeatureFlagProvider.d.mts","sourceRoot":"","sources":["../../../src/providers/remote-feature-flag/RemoteFeatureFlagProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,yCAAyC,EAAE,iDAAiD;AAC1G,OAAO,EAAE,cAAc,EAAE,4BAA4B;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C;;GAEG;AACH,eAAO,MAAM,iCAAiC,EAC5C,2BAAoC,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,uCAAuC,GACjD,yCAAyC,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,kCAAkC,GAAG,cAAc,CAC7D,SAAS,CACP,OAAO,iCAAiC,EACxC,uCAAuC,CACxC,CACF,CAAC;AAEF,qBAAa,yBAAyB;;gBAGxB,EACV,SAAS,GACV,EAAE;QACD,SAAS,EAAE,kCAAkC,CAAC;KAC/C;IAID;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAQhE;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC,CAAC;CAU7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteFeatureFlagProvider.mjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flag/RemoteFeatureFlagProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAC5C,2BAAoC,CAAC;AAkBvC,MAAM,OAAO,yBAAyB;IAGpC,YAAY,EACV,SAAS,GAGV;QANQ,uDAA+C;QAOtD,uBAAA,IAAI,wCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,4CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,4CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAG_PROVIDER_NAME =\n 'RemoteFeatureFlagProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagProvider} calls.\n */\nexport type RemoteFeatureFlagProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagProvider}.\n */\nexport type RemoteFeatureFlagProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAG_PROVIDER_NAME,\n RemoteFeatureFlagProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagProvider {\n readonly #messenger: RemoteFeatureFlagProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
|