@metamask-previews/wallet 2.0.0-preview-a3b313179 → 2.0.0-preview-e4acb70

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/initialization/instances/index.cjs +3 -1
  3. package/dist/initialization/instances/index.cjs.map +1 -1
  4. package/dist/initialization/instances/index.d.cts +1 -0
  5. package/dist/initialization/instances/index.d.cts.map +1 -1
  6. package/dist/initialization/instances/index.d.mts +1 -0
  7. package/dist/initialization/instances/index.d.mts.map +1 -1
  8. package/dist/initialization/instances/index.mjs +1 -0
  9. package/dist/initialization/instances/index.mjs.map +1 -1
  10. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.cjs +23 -0
  11. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.cjs.map +1 -0
  12. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.cts +4 -0
  13. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.cts.map +1 -0
  14. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.mts +4 -0
  15. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.d.mts.map +1 -0
  16. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.mjs +20 -0
  17. package/dist/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.mjs.map +1 -0
  18. package/dist/initialization/instances/remote-feature-flag-controller/types.cjs +3 -0
  19. package/dist/initialization/instances/remote-feature-flag-controller/types.cjs.map +1 -0
  20. package/dist/initialization/instances/remote-feature-flag-controller/types.d.cts +43 -0
  21. package/dist/initialization/instances/remote-feature-flag-controller/types.d.cts.map +1 -0
  22. package/dist/initialization/instances/remote-feature-flag-controller/types.d.mts +43 -0
  23. package/dist/initialization/instances/remote-feature-flag-controller/types.d.mts.map +1 -0
  24. package/dist/initialization/instances/remote-feature-flag-controller/types.mjs +2 -0
  25. package/dist/initialization/instances/remote-feature-flag-controller/types.mjs.map +1 -0
  26. package/dist/types.cjs.map +1 -1
  27. package/dist/types.d.cts +2 -0
  28. package/dist/types.d.cts.map +1 -1
  29. package/dist/types.d.mts +2 -0
  30. package/dist/types.d.mts.map +1 -1
  31. package/dist/types.mjs.map +1 -1
  32. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
12
12
  - **BREAKING:** Wire `ApprovalController` into the default wallet initialization ([#8953](https://github.com/MetaMask/core/pull/8953))
13
13
  - The default `Wallet` now constructs an `ApprovalController` and registers its `ApprovalController:*` messenger actions. Consumers that pass their own `messenger` and already wire an `ApprovalController` must remove their own before upgrading, or the duplicate registration will collide.
14
14
  - Adds an `approvalController` slot to `instanceOptions` with `showApprovalRequest` (the callback that surfaces pending approval requests to the user; defaults to a no-op) and `typesExcludedFromRateLimiting` (the approval types exempt from per-origin rate limiting; defaults to a baseline of EVM approval types). Both let consumers (extension, mobile, wallet-cli) inject their platform-specific values.
15
+ - **BREAKING:** Wire `RemoteFeatureFlagController` into the default wallet initialization ([#8969](https://github.com/MetaMask/core/pull/8969))
16
+ - The default `Wallet` now constructs a `RemoteFeatureFlagController` and registers its `RemoteFeatureFlagController:*` messenger actions. Consumers that pass their own `messenger` and already wire a `RemoteFeatureFlagController` must remove their own before upgrading, or the duplicate registration will collide.
17
+ - Adds a required `remoteFeatureFlagController` slot to `instanceOptions`. `clientConfigApiService` is required (each client injects a `ClientConfigApiService` configured for its own client type, distribution, and environment); `getMetaMetricsId`, `clientVersion`, `prevClientVersion`, `fetchInterval`, and `disabled` are optional. `prevClientVersion` lets consumers trigger feature-flag cache invalidation when the client version changes between sessions.
15
18
 
16
19
  ## [2.0.0]
17
20
 
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.storageService = exports.keyringController = exports.approvalController = void 0;
3
+ exports.storageService = exports.remoteFeatureFlagController = exports.keyringController = exports.approvalController = void 0;
4
4
  var approval_controller_1 = require("./approval-controller/approval-controller.cjs");
5
5
  Object.defineProperty(exports, "approvalController", { enumerable: true, get: function () { return approval_controller_1.approvalController; } });
6
6
  var keyring_controller_1 = require("./keyring-controller/keyring-controller.cjs");
7
7
  Object.defineProperty(exports, "keyringController", { enumerable: true, get: function () { return keyring_controller_1.keyringController; } });
8
+ var remote_feature_flag_controller_1 = require("./remote-feature-flag-controller/remote-feature-flag-controller.cjs");
9
+ Object.defineProperty(exports, "remoteFeatureFlagController", { enumerable: true, get: function () { return remote_feature_flag_controller_1.remoteFeatureFlagController; } });
8
10
  var storage_service_1 = require("./storage-service/storage-service.cjs");
9
11
  Object.defineProperty(exports, "storageService", { enumerable: true, get: function () { return storage_service_1.storageService; } });
10
12
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,yEAAmE;AAA1D,iHAAA,cAAc,OAAA","sourcesContent":["export { approvalController } from './approval-controller/approval-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,sHAA8G;AAArG,6IAAA,2BAA2B,OAAA;AACpC,yEAAmE;AAA1D,iHAAA,cAAc,OAAA","sourcesContent":["export { approvalController } from './approval-controller/approval-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
@@ -1,4 +1,5 @@
1
1
  export { approvalController } from "./approval-controller/approval-controller.cjs";
2
2
  export { keyringController } from "./keyring-controller/keyring-controller.cjs";
3
+ export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.cjs";
3
4
  export { storageService } from "./storage-service/storage-service.cjs";
4
5
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
@@ -1,4 +1,5 @@
1
1
  export { approvalController } from "./approval-controller/approval-controller.mjs";
2
2
  export { keyringController } from "./keyring-controller/keyring-controller.mjs";
3
+ export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.mjs";
3
4
  export { storageService } from "./storage-service/storage-service.mjs";
4
5
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
@@ -1,4 +1,5 @@
1
1
  export { approvalController } from "./approval-controller/approval-controller.mjs";
2
2
  export { keyringController } from "./keyring-controller/keyring-controller.mjs";
3
+ export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.mjs";
3
4
  export { storageService } from "./storage-service/storage-service.mjs";
4
5
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,cAAc,EAAE,8CAA0C","sourcesContent":["export { approvalController } from './approval-controller/approval-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C","sourcesContent":["export { approvalController } from './approval-controller/approval-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.remoteFeatureFlagController = void 0;
4
+ const messenger_1 = require("@metamask/messenger");
5
+ const remote_feature_flag_controller_1 = require("@metamask/remote-feature-flag-controller");
6
+ exports.remoteFeatureFlagController = {
7
+ name: 'RemoteFeatureFlagController',
8
+ init: ({ state, messenger, options }) => new remote_feature_flag_controller_1.RemoteFeatureFlagController({
9
+ state,
10
+ messenger,
11
+ clientConfigApiService: options.clientConfigApiService,
12
+ getMetaMetricsId: options.getMetaMetricsId ?? (() => ''),
13
+ clientVersion: options.clientVersion ?? '0.0.0',
14
+ prevClientVersion: options.prevClientVersion,
15
+ fetchInterval: options.fetchInterval,
16
+ disabled: options.disabled,
17
+ }),
18
+ getMessenger: (parent) => new messenger_1.Messenger({
19
+ namespace: 'RemoteFeatureFlagController',
20
+ parent,
21
+ }),
22
+ };
23
+ //# sourceMappingURL=remote-feature-flag-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-feature-flag-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,6FAGkD;AAIrC,QAAA,2BAA2B,GAGpC;IACF,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,4DAA2B,CAAC;QAC9B,KAAK;QACL,SAAS;QACT,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC,GAAW,EAAE,CAAC,EAAE,CAAC;QAChE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO;QAC/C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,6BAA6B;QACxC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n RemoteFeatureFlagController,\n RemoteFeatureFlagControllerMessenger,\n} from '@metamask/remote-feature-flag-controller';\n\nimport { InitializationConfiguration } from '../../types';\n\nexport const remoteFeatureFlagController: InitializationConfiguration<\n RemoteFeatureFlagController,\n RemoteFeatureFlagControllerMessenger\n> = {\n name: 'RemoteFeatureFlagController',\n init: ({ state, messenger, options }) =>\n new RemoteFeatureFlagController({\n state,\n messenger,\n clientConfigApiService: options.clientConfigApiService,\n getMetaMetricsId: options.getMetaMetricsId ?? ((): string => ''),\n clientVersion: options.clientVersion ?? '0.0.0',\n prevClientVersion: options.prevClientVersion,\n fetchInterval: options.fetchInterval,\n disabled: options.disabled,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'RemoteFeatureFlagController',\n parent,\n }),\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { RemoteFeatureFlagController, RemoteFeatureFlagControllerMessenger } from "@metamask/remote-feature-flag-controller";
2
+ import { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const remoteFeatureFlagController: InitializationConfiguration<RemoteFeatureFlagController, RemoteFeatureFlagControllerMessenger>;
4
+ //# sourceMappingURL=remote-feature-flag-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-feature-flag-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACrC,iDAAiD;AAElD,OAAO,EAAE,2BAA2B,EAAE,wBAAoB;AAE1D,eAAO,MAAM,2BAA2B,EAAE,2BAA2B,CACnE,2BAA2B,EAC3B,oCAAoC,CAmBrC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RemoteFeatureFlagController, RemoteFeatureFlagControllerMessenger } from "@metamask/remote-feature-flag-controller";
2
+ import { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const remoteFeatureFlagController: InitializationConfiguration<RemoteFeatureFlagController, RemoteFeatureFlagControllerMessenger>;
4
+ //# sourceMappingURL=remote-feature-flag-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-feature-flag-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,EACrC,iDAAiD;AAElD,OAAO,EAAE,2BAA2B,EAAE,wBAAoB;AAE1D,eAAO,MAAM,2BAA2B,EAAE,2BAA2B,CACnE,2BAA2B,EAC3B,oCAAoC,CAmBrC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Messenger } from "@metamask/messenger";
2
+ import { RemoteFeatureFlagController } from "@metamask/remote-feature-flag-controller";
3
+ export const remoteFeatureFlagController = {
4
+ name: 'RemoteFeatureFlagController',
5
+ init: ({ state, messenger, options }) => new RemoteFeatureFlagController({
6
+ state,
7
+ messenger,
8
+ clientConfigApiService: options.clientConfigApiService,
9
+ getMetaMetricsId: options.getMetaMetricsId ?? (() => ''),
10
+ clientVersion: options.clientVersion ?? '0.0.0',
11
+ prevClientVersion: options.prevClientVersion,
12
+ fetchInterval: options.fetchInterval,
13
+ disabled: options.disabled,
14
+ }),
15
+ getMessenger: (parent) => new Messenger({
16
+ namespace: 'RemoteFeatureFlagController',
17
+ parent,
18
+ }),
19
+ };
20
+ //# sourceMappingURL=remote-feature-flag-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-feature-flag-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/remote-feature-flag-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EACL,2BAA2B,EAE5B,iDAAiD;AAIlD,MAAM,CAAC,MAAM,2BAA2B,GAGpC;IACF,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,2BAA2B,CAAC;QAC9B,KAAK;QACL,SAAS;QACT,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;QACtD,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,CAAC,GAAW,EAAE,CAAC,EAAE,CAAC;QAChE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO;QAC/C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,6BAA6B;QACxC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n RemoteFeatureFlagController,\n RemoteFeatureFlagControllerMessenger,\n} from '@metamask/remote-feature-flag-controller';\n\nimport { InitializationConfiguration } from '../../types';\n\nexport const remoteFeatureFlagController: InitializationConfiguration<\n RemoteFeatureFlagController,\n RemoteFeatureFlagControllerMessenger\n> = {\n name: 'RemoteFeatureFlagController',\n init: ({ state, messenger, options }) =>\n new RemoteFeatureFlagController({\n state,\n messenger,\n clientConfigApiService: options.clientConfigApiService,\n getMetaMetricsId: options.getMetaMetricsId ?? ((): string => ''),\n clientVersion: options.clientVersion ?? '0.0.0',\n prevClientVersion: options.prevClientVersion,\n fetchInterval: options.fetchInterval,\n disabled: options.disabled,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'RemoteFeatureFlagController',\n parent,\n }),\n};\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RemoteFeatureFlagController } from '@metamask/remote-feature-flag-controller';\n\ntype RemoteFeatureFlagControllerOptions = ConstructorParameters<\n typeof RemoteFeatureFlagController\n>[0];\n\n/**\n * Per-instance options for the wallet's `RemoteFeatureFlagController`.\n * `clientConfigApiService` is required; the rest are optional and fall back to\n * the defaults applied in the controller's `init`.\n */\nexport type RemoteFeatureFlagControllerInstanceOptions = {\n /**\n * The service that fetches remote feature flags. Required: each client\n * injects a `ClientConfigApiService` configured for its own client type,\n * distribution, and environment, so there is no platform-agnostic default.\n */\n clientConfigApiService: RemoteFeatureFlagControllerOptions['clientConfigApiService'];\n /**\n * Returns the current MetaMetrics id, used for user-segmentation thresholds.\n * Defaults to `() => ''`.\n */\n getMetaMetricsId?: RemoteFeatureFlagControllerOptions['getMetaMetricsId'];\n /**\n * The current client version for version-based flag filtering. Must be a\n * valid 3-part SemVer or the controller throws. Defaults to `'0.0.0'`.\n */\n clientVersion?: RemoteFeatureFlagControllerOptions['clientVersion'];\n /**\n * The previously-run client version. When it differs from `clientVersion`,\n * the controller invalidates its cached flags on the next update.\n */\n prevClientVersion?: RemoteFeatureFlagControllerOptions['prevClientVersion'];\n /**\n * Milliseconds before cached flags expire. Defaults to the controller's own\n * default (1 day).\n */\n fetchInterval?: RemoteFeatureFlagControllerOptions['fetchInterval'];\n /**\n * Whether the controller starts disabled. Defaults to `false`. The dynamic\n * enable/disable toggling stays client-side via the controller's exposed\n * `enable`/`disable` actions.\n */\n disabled?: RemoteFeatureFlagControllerOptions['disabled'];\n};\n"]}
@@ -0,0 +1,43 @@
1
+ import type { RemoteFeatureFlagController } from "@metamask/remote-feature-flag-controller";
2
+ type RemoteFeatureFlagControllerOptions = ConstructorParameters<typeof RemoteFeatureFlagController>[0];
3
+ /**
4
+ * Per-instance options for the wallet's `RemoteFeatureFlagController`.
5
+ * `clientConfigApiService` is required; the rest are optional and fall back to
6
+ * the defaults applied in the controller's `init`.
7
+ */
8
+ export type RemoteFeatureFlagControllerInstanceOptions = {
9
+ /**
10
+ * The service that fetches remote feature flags. Required: each client
11
+ * injects a `ClientConfigApiService` configured for its own client type,
12
+ * distribution, and environment, so there is no platform-agnostic default.
13
+ */
14
+ clientConfigApiService: RemoteFeatureFlagControllerOptions['clientConfigApiService'];
15
+ /**
16
+ * Returns the current MetaMetrics id, used for user-segmentation thresholds.
17
+ * Defaults to `() => ''`.
18
+ */
19
+ getMetaMetricsId?: RemoteFeatureFlagControllerOptions['getMetaMetricsId'];
20
+ /**
21
+ * The current client version for version-based flag filtering. Must be a
22
+ * valid 3-part SemVer or the controller throws. Defaults to `'0.0.0'`.
23
+ */
24
+ clientVersion?: RemoteFeatureFlagControllerOptions['clientVersion'];
25
+ /**
26
+ * The previously-run client version. When it differs from `clientVersion`,
27
+ * the controller invalidates its cached flags on the next update.
28
+ */
29
+ prevClientVersion?: RemoteFeatureFlagControllerOptions['prevClientVersion'];
30
+ /**
31
+ * Milliseconds before cached flags expire. Defaults to the controller's own
32
+ * default (1 day).
33
+ */
34
+ fetchInterval?: RemoteFeatureFlagControllerOptions['fetchInterval'];
35
+ /**
36
+ * Whether the controller starts disabled. Defaults to `false`. The dynamic
37
+ * enable/disable toggling stays client-side via the controller's exposed
38
+ * `enable`/`disable` actions.
39
+ */
40
+ disabled?: RemoteFeatureFlagControllerOptions['disabled'];
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,iDAAiD;AAE5F,KAAK,kCAAkC,GAAG,qBAAqB,CAC7D,OAAO,2BAA2B,CACnC,CAAC,CAAC,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD;;;;OAIG;IACH,sBAAsB,EAAE,kCAAkC,CAAC,wBAAwB,CAAC,CAAC;IACrF;;;OAGG;IACH,gBAAgB,CAAC,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,CAAC;IAC1E;;;OAGG;IACH,aAAa,CAAC,EAAE,kCAAkC,CAAC,eAAe,CAAC,CAAC;IACpE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,kCAAkC,CAAC,mBAAmB,CAAC,CAAC;IAC5E;;;OAGG;IACH,aAAa,CAAC,EAAE,kCAAkC,CAAC,eAAe,CAAC,CAAC;IACpE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,kCAAkC,CAAC,UAAU,CAAC,CAAC;CAC3D,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { RemoteFeatureFlagController } from "@metamask/remote-feature-flag-controller";
2
+ type RemoteFeatureFlagControllerOptions = ConstructorParameters<typeof RemoteFeatureFlagController>[0];
3
+ /**
4
+ * Per-instance options for the wallet's `RemoteFeatureFlagController`.
5
+ * `clientConfigApiService` is required; the rest are optional and fall back to
6
+ * the defaults applied in the controller's `init`.
7
+ */
8
+ export type RemoteFeatureFlagControllerInstanceOptions = {
9
+ /**
10
+ * The service that fetches remote feature flags. Required: each client
11
+ * injects a `ClientConfigApiService` configured for its own client type,
12
+ * distribution, and environment, so there is no platform-agnostic default.
13
+ */
14
+ clientConfigApiService: RemoteFeatureFlagControllerOptions['clientConfigApiService'];
15
+ /**
16
+ * Returns the current MetaMetrics id, used for user-segmentation thresholds.
17
+ * Defaults to `() => ''`.
18
+ */
19
+ getMetaMetricsId?: RemoteFeatureFlagControllerOptions['getMetaMetricsId'];
20
+ /**
21
+ * The current client version for version-based flag filtering. Must be a
22
+ * valid 3-part SemVer or the controller throws. Defaults to `'0.0.0'`.
23
+ */
24
+ clientVersion?: RemoteFeatureFlagControllerOptions['clientVersion'];
25
+ /**
26
+ * The previously-run client version. When it differs from `clientVersion`,
27
+ * the controller invalidates its cached flags on the next update.
28
+ */
29
+ prevClientVersion?: RemoteFeatureFlagControllerOptions['prevClientVersion'];
30
+ /**
31
+ * Milliseconds before cached flags expire. Defaults to the controller's own
32
+ * default (1 day).
33
+ */
34
+ fetchInterval?: RemoteFeatureFlagControllerOptions['fetchInterval'];
35
+ /**
36
+ * Whether the controller starts disabled. Defaults to `false`. The dynamic
37
+ * enable/disable toggling stays client-side via the controller's exposed
38
+ * `enable`/`disable` actions.
39
+ */
40
+ disabled?: RemoteFeatureFlagControllerOptions['disabled'];
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,iDAAiD;AAE5F,KAAK,kCAAkC,GAAG,qBAAqB,CAC7D,OAAO,2BAA2B,CACnC,CAAC,CAAC,CAAC,CAAC;AAEL;;;;GAIG;AACH,MAAM,MAAM,0CAA0C,GAAG;IACvD;;;;OAIG;IACH,sBAAsB,EAAE,kCAAkC,CAAC,wBAAwB,CAAC,CAAC;IACrF;;;OAGG;IACH,gBAAgB,CAAC,EAAE,kCAAkC,CAAC,kBAAkB,CAAC,CAAC;IAC1E;;;OAGG;IACH,aAAa,CAAC,EAAE,kCAAkC,CAAC,eAAe,CAAC,CAAC;IACpE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,kCAAkC,CAAC,mBAAmB,CAAC,CAAC;IAC5E;;;OAGG;IACH,aAAa,CAAC,EAAE,kCAAkC,CAAC,eAAe,CAAC,CAAC;IACpE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,kCAAkC,CAAC,UAAU,CAAC,CAAC;CAC3D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/remote-feature-flag-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { RemoteFeatureFlagController } from '@metamask/remote-feature-flag-controller';\n\ntype RemoteFeatureFlagControllerOptions = ConstructorParameters<\n typeof RemoteFeatureFlagController\n>[0];\n\n/**\n * Per-instance options for the wallet's `RemoteFeatureFlagController`.\n * `clientConfigApiService` is required; the rest are optional and fall back to\n * the defaults applied in the controller's `init`.\n */\nexport type RemoteFeatureFlagControllerInstanceOptions = {\n /**\n * The service that fetches remote feature flags. Required: each client\n * injects a `ClientConfigApiService` configured for its own client type,\n * distribution, and environment, so there is no platform-agnostic default.\n */\n clientConfigApiService: RemoteFeatureFlagControllerOptions['clientConfigApiService'];\n /**\n * Returns the current MetaMetrics id, used for user-segmentation thresholds.\n * Defaults to `() => ''`.\n */\n getMetaMetricsId?: RemoteFeatureFlagControllerOptions['getMetaMetricsId'];\n /**\n * The current client version for version-based flag filtering. Must be a\n * valid 3-part SemVer or the controller throws. Defaults to `'0.0.0'`.\n */\n clientVersion?: RemoteFeatureFlagControllerOptions['clientVersion'];\n /**\n * The previously-run client version. When it differs from `clientVersion`,\n * the controller invalidates its cached flags on the next update.\n */\n prevClientVersion?: RemoteFeatureFlagControllerOptions['prevClientVersion'];\n /**\n * Milliseconds before cached flags expire. Defaults to the controller's own\n * default (1 day).\n */\n fetchInterval?: RemoteFeatureFlagControllerOptions['fetchInterval'];\n /**\n * Whether the controller starts disabled. Defaults to `false`. The dynamic\n * enable/disable toggling stays client-side via the controller's exposed\n * `enable`/`disable` actions.\n */\n disabled?: RemoteFeatureFlagControllerOptions['disabled'];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -2,6 +2,7 @@ import type { Json } from "@metamask/utils";
2
2
  import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.cjs";
3
3
  import type { ApprovalControllerInstanceOptions } from "./initialization/instances/approval-controller/types.cjs";
4
4
  import type { KeyringControllerInstanceOptions } from "./initialization/instances/keyring-controller/types.cjs";
5
+ import type { RemoteFeatureFlagControllerInstanceOptions } from "./initialization/instances/remote-feature-flag-controller/types.cjs";
5
6
  import type { StorageServiceInstanceOptions } from "./initialization/instances/storage-service/types.cjs";
6
7
  import { InitializationConfiguration } from "./initialization/types.cjs";
7
8
  export type WalletOptions = {
@@ -13,6 +14,7 @@ export type WalletOptions = {
13
14
  export type InstanceSpecificOptions = {
14
15
  approvalController?: ApprovalControllerInstanceOptions;
15
16
  keyringController?: KeyringControllerInstanceOptions;
17
+ remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;
16
18
  storageService: StorageServiceInstanceOptions;
17
19
  };
18
20
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
package/dist/types.d.mts CHANGED
@@ -2,6 +2,7 @@ import type { Json } from "@metamask/utils";
2
2
  import type { DefaultActions, DefaultEvents, RootMessenger } from "./initialization/defaults.mjs";
3
3
  import type { ApprovalControllerInstanceOptions } from "./initialization/instances/approval-controller/types.mjs";
4
4
  import type { KeyringControllerInstanceOptions } from "./initialization/instances/keyring-controller/types.mjs";
5
+ import type { RemoteFeatureFlagControllerInstanceOptions } from "./initialization/instances/remote-feature-flag-controller/types.mjs";
5
6
  import type { StorageServiceInstanceOptions } from "./initialization/instances/storage-service/types.mjs";
6
7
  import { InitializationConfiguration } from "./initialization/types.mjs";
7
8
  export type WalletOptions = {
@@ -13,6 +14,7 @@ export type WalletOptions = {
13
14
  export type InstanceSpecificOptions = {
14
15
  approvalController?: ApprovalControllerInstanceOptions;
15
16
  keyringController?: KeyringControllerInstanceOptions;
17
+ remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;
16
18
  storageService: StorageServiceInstanceOptions;
17
19
  };
18
20
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,EAAE,2BAA2B,EAAE,mCAA+B;AAErE,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/wallet",
3
- "version": "2.0.0-preview-a3b313179",
3
+ "version": "2.0.0-preview-e4acb70",
4
4
  "description": "Provides a shared framework for building MetaMask wallets",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -59,6 +59,7 @@
59
59
  "@metamask/controller-utils": "^12.1.0",
60
60
  "@metamask/keyring-controller": "^26.0.0",
61
61
  "@metamask/messenger": "^1.2.0",
62
+ "@metamask/remote-feature-flag-controller": "^4.2.2",
62
63
  "@metamask/scure-bip39": "^2.1.1",
63
64
  "@metamask/storage-service": "^1.0.1",
64
65
  "@metamask/utils": "^11.9.0"