@metamask-previews/composable-controller 7.0.0-preview-aaea6b5 → 7.0.0-preview-c50d4e85

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.
@@ -4,12 +4,14 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkHD5NGOXXjs = require('./chunk-HD5NGOXX.js');
8
7
 
8
+ var _chunkNQSU6G7Ujs = require('./chunk-NQSU6G7U.js');
9
9
 
10
10
 
11
11
 
12
12
 
13
13
 
14
- exports.ComposableController = _chunkHD5NGOXXjs.ComposableController; exports.controllerName = _chunkHD5NGOXXjs.controllerName; exports.default = _chunkHD5NGOXXjs.ComposableController_default; exports.isBaseController = _chunkHD5NGOXXjs.isBaseController; exports.isBaseControllerV1 = _chunkHD5NGOXXjs.isBaseControllerV1;
14
+
15
+
16
+ exports.ComposableController = _chunkNQSU6G7Ujs.ComposableController; exports.INVALID_CONTROLLER_ERROR = _chunkNQSU6G7Ujs.INVALID_CONTROLLER_ERROR; exports.controllerName = _chunkNQSU6G7Ujs.controllerName; exports.default = _chunkNQSU6G7Ujs.ComposableController_default; exports.isBaseController = _chunkNQSU6G7Ujs.isBaseController; exports.isBaseControllerV1 = _chunkNQSU6G7Ujs.isBaseControllerV1;
15
17
  //# sourceMappingURL=ComposableController.js.map
@@ -1,12 +1,14 @@
1
1
  import {
2
2
  ComposableController,
3
3
  ComposableController_default,
4
+ INVALID_CONTROLLER_ERROR,
4
5
  controllerName,
5
6
  isBaseController,
6
7
  isBaseControllerV1
7
- } from "./chunk-ZICGKTY4.mjs";
8
+ } from "./chunk-M3UDMMB2.mjs";
8
9
  export {
9
10
  ComposableController,
11
+ INVALID_CONTROLLER_ERROR,
10
12
  controllerName,
11
13
  ComposableController_default as default,
12
14
  isBaseController,
@@ -15,11 +15,36 @@ var __privateMethod = (obj, member, method) => {
15
15
  // src/ComposableController.ts
16
16
  import { BaseController, BaseControllerV1 } from "@metamask/base-controller";
17
17
  var controllerName = "ComposableController";
18
+ var INVALID_CONTROLLER_ERROR = "Invalid controller: controller must have a `messagingSystem` or be a class inheriting from `BaseControllerV1`.";
18
19
  function isBaseControllerV1(controller) {
19
- return "name" in controller && typeof controller.name === "string" && "defaultConfig" in controller && typeof controller.defaultConfig === "object" && "defaultState" in controller && typeof controller.defaultState === "object" && "disabled" in controller && typeof controller.disabled === "boolean" && controller instanceof BaseControllerV1;
20
+ return (
21
+ // 'name' in controller &&
22
+ // typeof controller.name === 'string' &&
23
+ // 'config' in controller &&
24
+ // typeof controller.config === 'object' &&
25
+ // 'defaultConfig' in controller &&
26
+ // typeof controller.defaultConfig === 'object' &&
27
+ // 'state' in controller &&
28
+ // typeof controller.state === 'object' &&
29
+ // 'defaultState' in controller &&
30
+ // typeof controller.defaultState === 'object' &&
31
+ // 'disabled' in controller &&
32
+ // typeof controller.disabled === 'boolean' &&
33
+ // 'subscribe' in controller &&
34
+ // typeof controller.subscribe === 'function' &&
35
+ controller instanceof BaseControllerV1
36
+ );
20
37
  }
21
38
  function isBaseController(controller) {
22
- return "name" in controller && typeof controller.name === "string" && "state" in controller && typeof controller.state === "object" && controller instanceof BaseController;
39
+ return (
40
+ // 'name' in controller &&
41
+ // typeof controller.name === 'string' &&
42
+ // 'state' in controller &&
43
+ // typeof controller.state === 'object' &&
44
+ // 'metadata' in controller &&
45
+ // typeof controller.metadata === 'object' &&
46
+ controller instanceof BaseController
47
+ );
23
48
  }
24
49
  var _updateChildController, updateChildController_fn;
25
50
  var ComposableController = class extends BaseController {
@@ -56,6 +81,7 @@ var ComposableController = class extends BaseController {
56
81
  });
57
82
  /**
58
83
  * Constructor helper that subscribes to child controller state changes.
84
+ *
59
85
  * @param controller - Controller instance to update
60
86
  */
61
87
  __privateAdd(this, _updateChildController);
@@ -66,15 +92,10 @@ var ComposableController = class extends BaseController {
66
92
  };
67
93
  _updateChildController = new WeakSet();
68
94
  updateChildController_fn = function(controller) {
69
- if (!isBaseController(controller) && !isBaseControllerV1(controller)) {
70
- throw new Error(
71
- "Invalid controller: controller must extend from BaseController or BaseControllerV1"
72
- );
73
- }
74
95
  const { name } = controller;
75
- if (isBaseControllerV1(controller) && "messagingSystem" in controller || isBaseController(controller)) {
96
+ if (isBaseController(controller) || isBaseControllerV1(controller) && "messagingSystem" in controller) {
76
97
  this.messagingSystem.subscribe(
77
- // TODO: Either fix this lint violation or explain why it's necessary to ignore.
98
+ // False negative. `name` is a string type.
78
99
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
79
100
  `${name}:stateChange`,
80
101
  (childState) => {
@@ -89,15 +110,18 @@ updateChildController_fn = function(controller) {
89
110
  Object.assign(state, { [name]: childState });
90
111
  });
91
112
  });
113
+ } else {
114
+ throw new Error(INVALID_CONTROLLER_ERROR);
92
115
  }
93
116
  };
94
117
  var ComposableController_default = ComposableController;
95
118
 
96
119
  export {
97
120
  controllerName,
121
+ INVALID_CONTROLLER_ERROR,
98
122
  isBaseControllerV1,
99
123
  isBaseController,
100
124
  ComposableController,
101
125
  ComposableController_default
102
126
  };
103
- //# sourceMappingURL=chunk-ZICGKTY4.mjs.map
127
+ //# sourceMappingURL=chunk-M3UDMMB2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ComposableController.ts"],"sourcesContent":["import type {\n ActionConstraint,\n BaseConfig,\n BaseState,\n EventConstraint,\n RestrictedControllerMessenger,\n StateConstraint,\n StateMetadata,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type { PublicInterface } from '@metamask/utils';\nimport type { Patch } from 'immer';\n\nexport const controllerName = 'ComposableController';\n\nexport const INVALID_CONTROLLER_ERROR =\n 'Invalid controller: controller must have a `messagingSystem` or be a class inheriting from `BaseControllerV1`.';\n\n/**\n * A universal supertype for the `BaseControllerV1` state object.\n */\ntype ConfigConstraintV1 = BaseConfig & object;\n\n/**\n * A universal supertype for the `BaseControllerV1` state object.\n */\ntype StateConstraintV1 = BaseState & object;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseControllerV1`.\n * Any `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\ntype BaseControllerV1Instance = PublicInterface<\n BaseControllerV1<ConfigConstraintV1, StateConstraintV1>\n>;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`).\n * Any `BaseController` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n *\n * For this reason, we only look for `BaseController` properties that we use in the ComposableController (name and state).\n */\ntype BaseControllerInstance = {\n name: string;\n state: StateConstraint;\n metadata: Record<string, unknown>;\n};\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`) or `BaseControllerV1`.\n * Any `BaseController` or `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` and `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\ntype ControllerInstance = BaseControllerV1Instance | BaseControllerInstance;\n\n/**\n * The narrowest supertype of all `RestrictedControllerMessenger` instances.\n *\n * @template ControllerName - Name of the controller.\n * Optionally can be used to narrow the type to a specific controller.\n */\nexport type RestrictedControllerMessengerConstraint<\n ControllerName extends string = string,\n> = RestrictedControllerMessenger<\n ControllerName,\n ActionConstraint,\n EventConstraint,\n string,\n string\n>;\n\n/**\n * Determines if the given controller is an instance of `BaseControllerV1`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseControllerV1`\n */\nexport function isBaseControllerV1(\n controller: ControllerInstance,\n): controller is BaseControllerV1Instance {\n return (\n // 'name' in controller &&\n // typeof controller.name === 'string' &&\n // 'config' in controller &&\n // typeof controller.config === 'object' &&\n // 'defaultConfig' in controller &&\n // typeof controller.defaultConfig === 'object' &&\n // 'state' in controller &&\n // typeof controller.state === 'object' &&\n // 'defaultState' in controller &&\n // typeof controller.defaultState === 'object' &&\n // 'disabled' in controller &&\n // typeof controller.disabled === 'boolean' &&\n // 'subscribe' in controller &&\n // typeof controller.subscribe === 'function' &&\n controller instanceof BaseControllerV1\n );\n}\n\n/**\n * Determines if the given controller is an instance of `BaseController`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseController`\n */\nexport function isBaseController(\n controller: ControllerInstance,\n): controller is BaseControllerInstance {\n return (\n // 'name' in controller &&\n // typeof controller.name === 'string' &&\n // 'state' in controller &&\n // typeof controller.state === 'object' &&\n // 'metadata' in controller &&\n // typeof controller.metadata === 'object' &&\n controller instanceof BaseController\n );\n}\n\n/**\n * A universal supertype for the controller state object, encompassing both `BaseControllerV1` and `BaseControllerV2` state.\n */\nexport type LegacyControllerStateConstraint =\n | StateConstraintV1\n | StateConstraint;\n\n/**\n * A universal supertype for the composable controller state object.\n *\n * This type is only intended to be used for disabling the generic constraint on the `ControllerState` type argument in the `BaseController` type as a temporary solution for ensuring compatibility with BaseControllerV1 child controllers.\n * Note that it is unsuitable for general use as a type constraint.\n */\n// TODO: Replace with `ComposableControllerStateConstraint` once BaseControllerV2 migrations are completed for all controllers.\ntype LegacyComposableControllerStateConstraint = {\n // `any` is used here to disable the generic constraint on the `ControllerState` type argument in the `BaseController` type,\n // enabling composable controller state types with BaseControllerV1 state objects to be.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: Record<string, any>;\n};\n\n/**\n * The narrowest supertype for the composable controller state object.\n * This is also a widest subtype of the 'LegacyComposableControllerStateConstraint' type.\n */\n// TODO: Replace with `{ [name: string]: StateConstraint }` once BaseControllerV2 migrations are completed for all controllers.\nexport type ComposableControllerStateConstraint = {\n [name: string]: LegacyControllerStateConstraint;\n};\n\n/**\n * A `stateChange` event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.\n */\n// TODO: Replace all instances with `ControllerStateChangeEvent` once `BaseControllerV2` migrations are completed for all controllers.\ntype LegacyControllerStateChangeEvent<\n ControllerName extends string,\n ControllerState extends StateConstraintV1,\n> = {\n type: `${ControllerName}:stateChange`;\n payload: [ControllerState, Patch[]];\n};\n\n/**\n * The `stateChange` event type for the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerStateChangeEvent<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = LegacyControllerStateChangeEvent<\n typeof controllerName,\n ComposableControllerState\n>;\n\n/**\n * A union type of internal event types available to the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerStateChangeEvent<ComposableControllerState>;\n\n/**\n * A utility type that extracts controllers from the {@link ComposableControllerState} type,\n * and derives a union type of all of their corresponding `stateChange` events.\n *\n * This type can handle both `BaseController` and `BaseControllerV1` controller instances.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ChildControllerStateChangeEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerState extends Record<\n infer ControllerName extends string,\n infer ControllerState\n>\n ? ControllerState extends StateConstraint\n ? ControllerStateChangeEvent<ControllerName, ControllerState>\n : // TODO: Remove this conditional branch once `BaseControllerV2` migrations are completed for all controllers.\n ControllerState extends StateConstraintV1\n ? LegacyControllerStateChangeEvent<ControllerName, ControllerState>\n : never\n : never;\n\n/**\n * A union type of external event types available to the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\ntype AllowedEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ChildControllerStateChangeEvents<ComposableControllerState>;\n\n/**\n * The messenger of the {@link ComposableController}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerMessenger<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = RestrictedControllerMessenger<\n typeof controllerName,\n never,\n | ComposableControllerEvents<ComposableControllerState>\n | AllowedEvents<ComposableControllerState>,\n never,\n AllowedEvents<ComposableControllerState>['type']\n>;\n\n/**\n * Controller that composes multiple child controllers and maintains up-to-date composed state.\n *\n * @template ComposableControllerState - A type object containing the names and state types of the child controllers.\n * @template ChildControllers - A union type of the child controllers being used to instantiate the {@link ComposableController}.\n */\nexport class ComposableController<\n ComposableControllerState extends LegacyComposableControllerStateConstraint,\n ChildControllers extends ControllerInstance,\n> extends BaseController<\n typeof controllerName,\n ComposableControllerState,\n ComposableControllerMessenger<ComposableControllerState>\n> {\n /**\n * Creates a ComposableController instance.\n *\n * @param options - Initial options used to configure this controller\n * @param options.controllers - List of child controller instances to compose.\n * @param options.messenger - A restricted controller messenger.\n */\n\n constructor({\n controllers,\n messenger,\n }: {\n controllers: ChildControllers[];\n messenger: ComposableControllerMessenger<ComposableControllerState>;\n }) {\n if (messenger === undefined) {\n throw new Error(`Messaging system is required`);\n }\n\n super({\n name: controllerName,\n metadata: controllers.reduce<StateMetadata<ComposableControllerState>>(\n (metadata, controller) => ({\n ...metadata,\n [controller.name]: isBaseController(controller)\n ? controller.metadata\n : { persist: true, anonymous: true },\n }),\n {} as never,\n ),\n state: controllers.reduce<ComposableControllerState>(\n (state, controller) => {\n return { ...state, [controller.name]: controller.state };\n },\n {} as never,\n ),\n messenger,\n });\n\n controllers.forEach((controller) =>\n this.#updateChildController(controller),\n );\n }\n\n /**\n * Constructor helper that subscribes to child controller state changes.\n *\n * @param controller - Controller instance to update\n */\n #updateChildController(controller: ControllerInstance): void {\n const { name } = controller;\n if (\n isBaseController(controller) ||\n (isBaseControllerV1(controller) && 'messagingSystem' in controller)\n ) {\n this.messagingSystem.subscribe(\n // False negative. `name` is a string type.\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `${name}:stateChange`,\n (childState: LegacyControllerStateConstraint) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n },\n );\n } else if (isBaseControllerV1(controller)) {\n controller.subscribe((childState: StateConstraintV1) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n });\n } else {\n throw new Error(INVALID_CONTROLLER_ERROR);\n }\n }\n}\n\nexport default ComposableController;\n"],"mappings":";;;;;;;;;;;;;;;AAUA,SAAS,gBAAgB,wBAAwB;AAI1C,IAAM,iBAAiB;AAEvB,IAAM,2BACX;AAoEK,SAAS,mBACd,YACwC;AACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeE,sBAAsB;AAAA;AAE1B;AAOO,SAAS,iBACd,YACsC;AACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOE,sBAAsB;AAAA;AAE1B;AA5HA;AAkPO,IAAM,uBAAN,cAGG,eAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF,GAGG;AACD,QAAI,cAAc,QAAW;AAC3B,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,QACpB,CAAC,UAAU,gBAAgB;AAAA,UACzB,GAAG;AAAA,UACH,CAAC,WAAW,IAAI,GAAG,iBAAiB,UAAU,IAC1C,WAAW,WACX,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,QACvC;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA,OAAO,YAAY;AAAA,QACjB,CAAC,OAAO,eAAe;AACrB,iBAAO,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,WAAW,MAAM;AAAA,QACzD;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAYH;AAAA;AAAA;AAAA;AAAA;AAAA;AAVE,gBAAY;AAAA,MAAQ,CAAC,eACnB,sBAAK,kDAAL,WAA4B;AAAA,IAC9B;AAAA,EACF;AAiCF;AA1BE;AAAA,2BAAsB,SAAC,YAAsC;AAC3D,QAAM,EAAE,KAAK,IAAI;AACjB,MACE,iBAAiB,UAAU,KAC1B,mBAAmB,UAAU,KAAK,qBAAqB,YACxD;AACA,SAAK,gBAAgB;AAAA;AAAA;AAAA,MAGnB,GAAG,IAAI;AAAA,MACP,CAAC,eAAgD;AAC/C,aAAK,OAAO,CAAC,UAAU;AACrB,iBAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,WAAW,mBAAmB,UAAU,GAAG;AACzC,eAAW,UAAU,CAAC,eAAkC;AACtD,WAAK,OAAO,CAAC,UAAU;AACrB,eAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH,CAAC;AAAA,EACH,OAAO;AACL,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAGF,IAAO,+BAAQ;","names":[]}
@@ -15,11 +15,36 @@ var __privateMethod = (obj, member, method) => {
15
15
  // src/ComposableController.ts
16
16
  var _basecontroller = require('@metamask/base-controller');
17
17
  var controllerName = "ComposableController";
18
+ var INVALID_CONTROLLER_ERROR = "Invalid controller: controller must have a `messagingSystem` or be a class inheriting from `BaseControllerV1`.";
18
19
  function isBaseControllerV1(controller) {
19
- return "name" in controller && typeof controller.name === "string" && "defaultConfig" in controller && typeof controller.defaultConfig === "object" && "defaultState" in controller && typeof controller.defaultState === "object" && "disabled" in controller && typeof controller.disabled === "boolean" && controller instanceof _basecontroller.BaseControllerV1;
20
+ return (
21
+ // 'name' in controller &&
22
+ // typeof controller.name === 'string' &&
23
+ // 'config' in controller &&
24
+ // typeof controller.config === 'object' &&
25
+ // 'defaultConfig' in controller &&
26
+ // typeof controller.defaultConfig === 'object' &&
27
+ // 'state' in controller &&
28
+ // typeof controller.state === 'object' &&
29
+ // 'defaultState' in controller &&
30
+ // typeof controller.defaultState === 'object' &&
31
+ // 'disabled' in controller &&
32
+ // typeof controller.disabled === 'boolean' &&
33
+ // 'subscribe' in controller &&
34
+ // typeof controller.subscribe === 'function' &&
35
+ controller instanceof _basecontroller.BaseControllerV1
36
+ );
20
37
  }
21
38
  function isBaseController(controller) {
22
- return "name" in controller && typeof controller.name === "string" && "state" in controller && typeof controller.state === "object" && controller instanceof _basecontroller.BaseController;
39
+ return (
40
+ // 'name' in controller &&
41
+ // typeof controller.name === 'string' &&
42
+ // 'state' in controller &&
43
+ // typeof controller.state === 'object' &&
44
+ // 'metadata' in controller &&
45
+ // typeof controller.metadata === 'object' &&
46
+ controller instanceof _basecontroller.BaseController
47
+ );
23
48
  }
24
49
  var _updateChildController, updateChildController_fn;
25
50
  var ComposableController = class extends _basecontroller.BaseController {
@@ -56,6 +81,7 @@ var ComposableController = class extends _basecontroller.BaseController {
56
81
  });
57
82
  /**
58
83
  * Constructor helper that subscribes to child controller state changes.
84
+ *
59
85
  * @param controller - Controller instance to update
60
86
  */
61
87
  __privateAdd(this, _updateChildController);
@@ -66,15 +92,10 @@ var ComposableController = class extends _basecontroller.BaseController {
66
92
  };
67
93
  _updateChildController = new WeakSet();
68
94
  updateChildController_fn = function(controller) {
69
- if (!isBaseController(controller) && !isBaseControllerV1(controller)) {
70
- throw new Error(
71
- "Invalid controller: controller must extend from BaseController or BaseControllerV1"
72
- );
73
- }
74
95
  const { name } = controller;
75
- if (isBaseControllerV1(controller) && "messagingSystem" in controller || isBaseController(controller)) {
96
+ if (isBaseController(controller) || isBaseControllerV1(controller) && "messagingSystem" in controller) {
76
97
  this.messagingSystem.subscribe(
77
- // TODO: Either fix this lint violation or explain why it's necessary to ignore.
98
+ // False negative. `name` is a string type.
78
99
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
79
100
  `${name}:stateChange`,
80
101
  (childState) => {
@@ -89,6 +110,8 @@ updateChildController_fn = function(controller) {
89
110
  Object.assign(state, { [name]: childState });
90
111
  });
91
112
  });
113
+ } else {
114
+ throw new Error(INVALID_CONTROLLER_ERROR);
92
115
  }
93
116
  };
94
117
  var ComposableController_default = ComposableController;
@@ -99,5 +122,6 @@ var ComposableController_default = ComposableController;
99
122
 
100
123
 
101
124
 
102
- exports.controllerName = controllerName; exports.isBaseControllerV1 = isBaseControllerV1; exports.isBaseController = isBaseController; exports.ComposableController = ComposableController; exports.ComposableController_default = ComposableController_default;
103
- //# sourceMappingURL=chunk-HD5NGOXX.js.map
125
+
126
+ exports.controllerName = controllerName; exports.INVALID_CONTROLLER_ERROR = INVALID_CONTROLLER_ERROR; exports.isBaseControllerV1 = isBaseControllerV1; exports.isBaseController = isBaseController; exports.ComposableController = ComposableController; exports.ComposableController_default = ComposableController_default;
127
+ //# sourceMappingURL=chunk-NQSU6G7U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ComposableController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUA,SAAS,gBAAgB,wBAAwB;AAI1C,IAAM,iBAAiB;AAEvB,IAAM,2BACX;AAoEK,SAAS,mBACd,YACwC;AACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeE,sBAAsB;AAAA;AAE1B;AAOO,SAAS,iBACd,YACsC;AACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOE,sBAAsB;AAAA;AAE1B;AA5HA;AAkPO,IAAM,uBAAN,cAGG,eAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF,GAGG;AACD,QAAI,cAAc,QAAW;AAC3B,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,QACpB,CAAC,UAAU,gBAAgB;AAAA,UACzB,GAAG;AAAA,UACH,CAAC,WAAW,IAAI,GAAG,iBAAiB,UAAU,IAC1C,WAAW,WACX,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,QACvC;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA,OAAO,YAAY;AAAA,QACjB,CAAC,OAAO,eAAe;AACrB,iBAAO,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,WAAW,MAAM;AAAA,QACzD;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAYH;AAAA;AAAA;AAAA;AAAA;AAAA;AAVE,gBAAY;AAAA,MAAQ,CAAC,eACnB,sBAAK,kDAAL,WAA4B;AAAA,IAC9B;AAAA,EACF;AAiCF;AA1BE;AAAA,2BAAsB,SAAC,YAAsC;AAC3D,QAAM,EAAE,KAAK,IAAI;AACjB,MACE,iBAAiB,UAAU,KAC1B,mBAAmB,UAAU,KAAK,qBAAqB,YACxD;AACA,SAAK,gBAAgB;AAAA;AAAA;AAAA,MAGnB,GAAG,IAAI;AAAA,MACP,CAAC,eAAgD;AAC/C,aAAK,OAAO,CAAC,UAAU;AACrB,iBAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,WAAW,mBAAmB,UAAU,GAAG;AACzC,eAAW,UAAU,CAAC,eAAkC;AACtD,WAAK,OAAO,CAAC,UAAU;AACrB,eAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH,CAAC;AAAA,EACH,OAAO;AACL,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAGF,IAAO,+BAAQ","sourcesContent":["import type {\n ActionConstraint,\n BaseConfig,\n BaseState,\n EventConstraint,\n RestrictedControllerMessenger,\n StateConstraint,\n StateMetadata,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type { PublicInterface } from '@metamask/utils';\nimport type { Patch } from 'immer';\n\nexport const controllerName = 'ComposableController';\n\nexport const INVALID_CONTROLLER_ERROR =\n 'Invalid controller: controller must have a `messagingSystem` or be a class inheriting from `BaseControllerV1`.';\n\n/**\n * A universal supertype for the `BaseControllerV1` state object.\n */\ntype ConfigConstraintV1 = BaseConfig & object;\n\n/**\n * A universal supertype for the `BaseControllerV1` state object.\n */\ntype StateConstraintV1 = BaseState & object;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseControllerV1`.\n * Any `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\ntype BaseControllerV1Instance = PublicInterface<\n BaseControllerV1<ConfigConstraintV1, StateConstraintV1>\n>;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`).\n * Any `BaseController` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n *\n * For this reason, we only look for `BaseController` properties that we use in the ComposableController (name and state).\n */\ntype BaseControllerInstance = {\n name: string;\n state: StateConstraint;\n metadata: Record<string, unknown>;\n};\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`) or `BaseControllerV1`.\n * Any `BaseController` or `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` and `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\ntype ControllerInstance = BaseControllerV1Instance | BaseControllerInstance;\n\n/**\n * The narrowest supertype of all `RestrictedControllerMessenger` instances.\n *\n * @template ControllerName - Name of the controller.\n * Optionally can be used to narrow the type to a specific controller.\n */\nexport type RestrictedControllerMessengerConstraint<\n ControllerName extends string = string,\n> = RestrictedControllerMessenger<\n ControllerName,\n ActionConstraint,\n EventConstraint,\n string,\n string\n>;\n\n/**\n * Determines if the given controller is an instance of `BaseControllerV1`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseControllerV1`\n */\nexport function isBaseControllerV1(\n controller: ControllerInstance,\n): controller is BaseControllerV1Instance {\n return (\n // 'name' in controller &&\n // typeof controller.name === 'string' &&\n // 'config' in controller &&\n // typeof controller.config === 'object' &&\n // 'defaultConfig' in controller &&\n // typeof controller.defaultConfig === 'object' &&\n // 'state' in controller &&\n // typeof controller.state === 'object' &&\n // 'defaultState' in controller &&\n // typeof controller.defaultState === 'object' &&\n // 'disabled' in controller &&\n // typeof controller.disabled === 'boolean' &&\n // 'subscribe' in controller &&\n // typeof controller.subscribe === 'function' &&\n controller instanceof BaseControllerV1\n );\n}\n\n/**\n * Determines if the given controller is an instance of `BaseController`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseController`\n */\nexport function isBaseController(\n controller: ControllerInstance,\n): controller is BaseControllerInstance {\n return (\n // 'name' in controller &&\n // typeof controller.name === 'string' &&\n // 'state' in controller &&\n // typeof controller.state === 'object' &&\n // 'metadata' in controller &&\n // typeof controller.metadata === 'object' &&\n controller instanceof BaseController\n );\n}\n\n/**\n * A universal supertype for the controller state object, encompassing both `BaseControllerV1` and `BaseControllerV2` state.\n */\nexport type LegacyControllerStateConstraint =\n | StateConstraintV1\n | StateConstraint;\n\n/**\n * A universal supertype for the composable controller state object.\n *\n * This type is only intended to be used for disabling the generic constraint on the `ControllerState` type argument in the `BaseController` type as a temporary solution for ensuring compatibility with BaseControllerV1 child controllers.\n * Note that it is unsuitable for general use as a type constraint.\n */\n// TODO: Replace with `ComposableControllerStateConstraint` once BaseControllerV2 migrations are completed for all controllers.\ntype LegacyComposableControllerStateConstraint = {\n // `any` is used here to disable the generic constraint on the `ControllerState` type argument in the `BaseController` type,\n // enabling composable controller state types with BaseControllerV1 state objects to be.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: Record<string, any>;\n};\n\n/**\n * The narrowest supertype for the composable controller state object.\n * This is also a widest subtype of the 'LegacyComposableControllerStateConstraint' type.\n */\n// TODO: Replace with `{ [name: string]: StateConstraint }` once BaseControllerV2 migrations are completed for all controllers.\nexport type ComposableControllerStateConstraint = {\n [name: string]: LegacyControllerStateConstraint;\n};\n\n/**\n * A `stateChange` event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.\n */\n// TODO: Replace all instances with `ControllerStateChangeEvent` once `BaseControllerV2` migrations are completed for all controllers.\ntype LegacyControllerStateChangeEvent<\n ControllerName extends string,\n ControllerState extends StateConstraintV1,\n> = {\n type: `${ControllerName}:stateChange`;\n payload: [ControllerState, Patch[]];\n};\n\n/**\n * The `stateChange` event type for the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerStateChangeEvent<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = LegacyControllerStateChangeEvent<\n typeof controllerName,\n ComposableControllerState\n>;\n\n/**\n * A union type of internal event types available to the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerStateChangeEvent<ComposableControllerState>;\n\n/**\n * A utility type that extracts controllers from the {@link ComposableControllerState} type,\n * and derives a union type of all of their corresponding `stateChange` events.\n *\n * This type can handle both `BaseController` and `BaseControllerV1` controller instances.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ChildControllerStateChangeEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerState extends Record<\n infer ControllerName extends string,\n infer ControllerState\n>\n ? ControllerState extends StateConstraint\n ? ControllerStateChangeEvent<ControllerName, ControllerState>\n : // TODO: Remove this conditional branch once `BaseControllerV2` migrations are completed for all controllers.\n ControllerState extends StateConstraintV1\n ? LegacyControllerStateChangeEvent<ControllerName, ControllerState>\n : never\n : never;\n\n/**\n * A union type of external event types available to the {@link ComposableControllerMessenger}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\ntype AllowedEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ChildControllerStateChangeEvents<ComposableControllerState>;\n\n/**\n * The messenger of the {@link ComposableController}.\n *\n * @template ComposableControllerState - A type object that maps controller names to their state types.\n */\nexport type ComposableControllerMessenger<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = RestrictedControllerMessenger<\n typeof controllerName,\n never,\n | ComposableControllerEvents<ComposableControllerState>\n | AllowedEvents<ComposableControllerState>,\n never,\n AllowedEvents<ComposableControllerState>['type']\n>;\n\n/**\n * Controller that composes multiple child controllers and maintains up-to-date composed state.\n *\n * @template ComposableControllerState - A type object containing the names and state types of the child controllers.\n * @template ChildControllers - A union type of the child controllers being used to instantiate the {@link ComposableController}.\n */\nexport class ComposableController<\n ComposableControllerState extends LegacyComposableControllerStateConstraint,\n ChildControllers extends ControllerInstance,\n> extends BaseController<\n typeof controllerName,\n ComposableControllerState,\n ComposableControllerMessenger<ComposableControllerState>\n> {\n /**\n * Creates a ComposableController instance.\n *\n * @param options - Initial options used to configure this controller\n * @param options.controllers - List of child controller instances to compose.\n * @param options.messenger - A restricted controller messenger.\n */\n\n constructor({\n controllers,\n messenger,\n }: {\n controllers: ChildControllers[];\n messenger: ComposableControllerMessenger<ComposableControllerState>;\n }) {\n if (messenger === undefined) {\n throw new Error(`Messaging system is required`);\n }\n\n super({\n name: controllerName,\n metadata: controllers.reduce<StateMetadata<ComposableControllerState>>(\n (metadata, controller) => ({\n ...metadata,\n [controller.name]: isBaseController(controller)\n ? controller.metadata\n : { persist: true, anonymous: true },\n }),\n {} as never,\n ),\n state: controllers.reduce<ComposableControllerState>(\n (state, controller) => {\n return { ...state, [controller.name]: controller.state };\n },\n {} as never,\n ),\n messenger,\n });\n\n controllers.forEach((controller) =>\n this.#updateChildController(controller),\n );\n }\n\n /**\n * Constructor helper that subscribes to child controller state changes.\n *\n * @param controller - Controller instance to update\n */\n #updateChildController(controller: ControllerInstance): void {\n const { name } = controller;\n if (\n isBaseController(controller) ||\n (isBaseControllerV1(controller) && 'messagingSystem' in controller)\n ) {\n this.messagingSystem.subscribe(\n // False negative. `name` is a string type.\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `${name}:stateChange`,\n (childState: LegacyControllerStateConstraint) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n },\n );\n } else if (isBaseControllerV1(controller)) {\n controller.subscribe((childState: StateConstraintV1) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n });\n } else {\n throw new Error(INVALID_CONTROLLER_ERROR);\n }\n }\n}\n\nexport default ComposableController;\n"]}
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkHD5NGOXXjs = require('./chunk-HD5NGOXX.js');
5
+ var _chunkNQSU6G7Ujs = require('./chunk-NQSU6G7U.js');
6
6
 
7
7
 
8
8
 
9
9
 
10
- exports.ComposableController = _chunkHD5NGOXXjs.ComposableController; exports.isBaseController = _chunkHD5NGOXXjs.isBaseController; exports.isBaseControllerV1 = _chunkHD5NGOXXjs.isBaseControllerV1;
10
+ exports.ComposableController = _chunkNQSU6G7Ujs.ComposableController; exports.isBaseController = _chunkNQSU6G7Ujs.isBaseController; exports.isBaseControllerV1 = _chunkNQSU6G7Ujs.isBaseControllerV1;
11
11
  //# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  ComposableController,
3
3
  isBaseController,
4
4
  isBaseControllerV1
5
- } from "./chunk-ZICGKTY4.mjs";
5
+ } from "./chunk-M3UDMMB2.mjs";
6
6
  export {
7
7
  ComposableController,
8
8
  isBaseController,
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../types/eth-ens-namehash.d.ts","../../../types/ethereum-ens-network-map.d.ts","../../../types/ethjs-query.d.ts","../../../types/global.d.ts","../../../types/single-call-balance-checker-abi.d.ts","../../../types/@metamask/contract-metadata.d.ts","../../../types/@metamask/eth-hd-keyring.d.ts","../../../types/@metamask/eth-simple-keyring.d.ts","../../../types/@metamask/ethjs-provider-http.d.ts","../../../types/@metamask/ethjs-unit.d.ts","../../../types/@metamask/metamask-eth-abis.d.ts","../../../types/eth-json-rpc-infura/src/createProvider.d.ts","../../../types/eth-phishing-detect/src/config.json.d.ts","../../../types/eth-phishing-detect/src/detector.d.ts","../../base-controller/dist/types/BaseControllerV1.d.ts","../../../node_modules/@metamask/superstruct/dist/error.d.cts","../../../node_modules/@metamask/superstruct/dist/utils.d.cts","../../../node_modules/@metamask/superstruct/dist/struct.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/coercions.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/refinements.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/types.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/utilities.d.cts","../../../node_modules/@metamask/superstruct/dist/index.d.cts","../../../node_modules/@metamask/utils/dist/assert.d.cts","../../../node_modules/@metamask/utils/dist/base64.d.cts","../../../node_modules/@metamask/utils/dist/hex.d.cts","../../../node_modules/@metamask/utils/dist/bytes.d.cts","../../../node_modules/@metamask/utils/dist/caip-types.d.cts","../../../node_modules/@metamask/utils/dist/checksum.d.cts","../../../node_modules/@metamask/utils/dist/coercers.d.cts","../../../node_modules/@metamask/utils/dist/collections.d.cts","../../../node_modules/@metamask/utils/dist/encryption-types.d.cts","../../../node_modules/@metamask/utils/dist/errors.d.cts","../../../node_modules/@metamask/utils/dist/json.d.cts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@ethereumjs/common/dist/enums.d.ts","../../../node_modules/@ethereumjs/common/dist/types.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@ethereumjs/util/dist/constants.d.ts","../../../node_modules/@ethereumjs/util/dist/units.d.ts","../../../node_modules/@ethereumjs/util/dist/address.d.ts","../../../node_modules/@ethereumjs/util/dist/bytes.d.ts","../../../node_modules/@ethereumjs/util/dist/types.d.ts","../../../node_modules/@ethereumjs/util/dist/account.d.ts","../../../node_modules/@ethereumjs/util/dist/withdrawal.d.ts","../../../node_modules/@ethereumjs/util/dist/signature.d.ts","../../../node_modules/@ethereumjs/util/dist/encoding.d.ts","../../../node_modules/@ethereumjs/util/dist/asyncEventEmitter.d.ts","../../../node_modules/@ethereumjs/util/dist/internal.d.ts","../../../node_modules/@ethereumjs/util/dist/lock.d.ts","../../../node_modules/@ethereumjs/util/dist/provider.d.ts","../../../node_modules/@ethereumjs/util/dist/index.d.ts","../../../node_modules/@ethereumjs/common/dist/common.d.ts","../../../node_modules/@ethereumjs/common/dist/utils.d.ts","../../../node_modules/@ethereumjs/common/dist/index.d.ts","../../../node_modules/@ethereumjs/tx/dist/eip2930Transaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/legacyTransaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/types.d.ts","../../../node_modules/@ethereumjs/tx/dist/baseTransaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/eip1559Transaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/transactionFactory.d.ts","../../../node_modules/@ethereumjs/tx/dist/index.d.ts","../../../node_modules/@metamask/utils/dist/keyring.d.cts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@metamask/utils/dist/logging.d.cts","../../../node_modules/@metamask/utils/dist/misc.d.cts","../../../node_modules/@metamask/utils/dist/number.d.cts","../../../node_modules/@metamask/utils/dist/opaque.d.cts","../../../node_modules/@metamask/utils/dist/promise.d.cts","../../../node_modules/@metamask/utils/dist/time.d.cts","../../../node_modules/@metamask/utils/dist/transaction-types.d.cts","../../../node_modules/@metamask/utils/dist/versions.d.cts","../../../node_modules/@metamask/utils/dist/index.d.cts","../../../node_modules/immer/dist/utils/env.d.ts","../../../node_modules/immer/dist/utils/errors.d.ts","../../../node_modules/immer/dist/types/types-external.d.ts","../../../node_modules/immer/dist/types/types-internal.d.ts","../../../node_modules/immer/dist/utils/common.d.ts","../../../node_modules/immer/dist/utils/plugins.d.ts","../../../node_modules/immer/dist/core/scope.d.ts","../../../node_modules/immer/dist/core/finalize.d.ts","../../../node_modules/immer/dist/core/proxy.d.ts","../../../node_modules/immer/dist/core/immerClass.d.ts","../../../node_modules/immer/dist/core/current.d.ts","../../../node_modules/immer/dist/internal.d.ts","../../../node_modules/immer/dist/plugins/es5.d.ts","../../../node_modules/immer/dist/plugins/patches.d.ts","../../../node_modules/immer/dist/plugins/mapset.d.ts","../../../node_modules/immer/dist/plugins/all.d.ts","../../../node_modules/immer/dist/immer.d.ts","../../base-controller/dist/types/RestrictedControllerMessenger.d.ts","../../base-controller/dist/types/ControllerMessenger.d.ts","../../base-controller/dist/types/BaseControllerV2.d.ts","../../base-controller/dist/types/index.d.ts","../src/ComposableController.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/deep-freeze-strict/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/diffLines.d.ts","../../../node_modules/jest-diff/build/printDiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/jest-when/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/pbkdf2/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/punycode/index.d.ts","../../../node_modules/@types/readable-stream/node_modules/safe-buffer/index.d.ts","../../../node_modules/@types/readable-stream/index.d.ts","../../../node_modules/@types/secp256k1/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","impliedFormat":1},{"version":"27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true,"impliedFormat":1},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true,"impliedFormat":1},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true,"impliedFormat":1},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true,"impliedFormat":1},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"70bbfaec021ac4a0c805374225b55d70887f987df8b8dd7711d79464bb7b4385","impliedFormat":1},{"version":"869089d60b67219f63e6aca810284c89bae1b384b5cbc7ce64e53d82ad223ed5","impliedFormat":1},{"version":"fe8f00e1ffe6c8069f2568844debb342a661980c30e52b132f002b93f66de47e","impliedFormat":1},{"version":"f31113ac9492fdd6e78bf6151b338c92e5b1837be426ef4aa0648ce82d13b518","affectsGlobalScope":true,"impliedFormat":1},{"version":"62a0875a0397b35a2364f1d401c0ce17975dfa4d47bf6844de858ae04da349f9","impliedFormat":1},{"version":"ee7491d0318d1fafcba97d5b72b450eb52671570f7a4ecd9e8898d40eaae9472","impliedFormat":1},{"version":"e3e7d217d89b380c1f34395eadc9289542851b0f0a64007dfe1fb7cf7423d24e","impliedFormat":1},{"version":"fd79909e93b4d50fd0ed9f3d39ddf8ba0653290bac25c295aac49f6befbd081b","impliedFormat":1},{"version":"345a9cc2945406f53051cd0e9b51f82e1e53929848eab046fdda91ee8aa7da31","impliedFormat":1},{"version":"9debe2de883da37a914e5e784a7be54c201b8f1d783822ad6f443ff409a5ea21","impliedFormat":1},{"version":"dee5d5c5440cda1f3668f11809a5503c30db0476ad117dd450f7ba5a45300e8f","impliedFormat":1},{"version":"f5e396c1424c391078c866d6f84afe0b4d2f7f85a160b9c756cd63b5b1775d93","impliedFormat":1},{"version":"5caa6f4fff16066d377d4e254f6c34c16540da3809cd66cd626a303bc33c419f","impliedFormat":1},{"version":"730d055528bdf12c8524870bb33d237991be9084c57634e56e5d8075f6605e02","impliedFormat":1},{"version":"f6f886a9fcd0aab0552a0742d66d4c1ff323a86cb3d119477e0980a8c6343e55","impliedFormat":1},{"version":"c26b7050e19f8f555605db02f6cfae645ec7928d2dd6f428790e01a163795f97","impliedFormat":1},{"version":"df877ab086035627f1d36150d33204d3d7d097b67a41b8d31f621afd32b618ba","impliedFormat":1},{"version":"30a340292b28c797f55fe80ccab953d6ff310165a5c871717a0ff7ba474b05c6","impliedFormat":1},{"version":"d2e0607a2ea008ec9f4cf46954e8e21c94bd42373bdb780ed8f27d8deab90907","impliedFormat":1},{"version":"8a6e0aeb87d2ec01563a82b20f98e0a740d81d8e600286fb378b39c1cf0905b4","impliedFormat":1},{"version":"d645973bd03c1b0b0d2817ffcfc6346c7e6ce94df7cf6a46087d27a347eb6f73","impliedFormat":1},{"version":"17ae0674c777ae1c8f912c247b0195604494b417d8da457ac6dfec8907a180c1","impliedFormat":1},{"version":"4cb8668d4cdad969d15718ffed6a75a68ffa026b3d4208a37a5842dc3f8aee9f","impliedFormat":1},{"version":"8e775a861341ec44847ac043ab2b60edc18dafc6b895acbb5f5628b465c61f62","impliedFormat":1},{"version":"69896bb78fcf1307b0f592839c8f1a7f6977bc4d55ec1fb2db046c8c7c0c25ae","impliedFormat":1},{"version":"c8ef51808d56e538840e26043483eab15df31026cf2b3fd47a279b0eec01fa69","impliedFormat":1},{"version":"11f688c9704ffff4c6dd7b9892d379b5f36f4e7408833168fe491181e5e049fe","impliedFormat":1},{"version":"895054cb55cfbad2618ea4c9042117423c7d415bbfadf7c68f07b9030607dd92","impliedFormat":1},{"version":"70dbd132cafd25ff48f589e4adc467eefe258f640a651b3846fe9218e0ee2fe3","impliedFormat":1},{"version":"457b8e22ca4672e962ec7b55ab0cc5d68cfcdd8cf4ffba250df9e6c1eb0540a5","impliedFormat":1},{"version":"30e81e0d15a6cca02397e1aa517166e03ce0a28f0e6d53e25440ef22b31f64ab","impliedFormat":1},{"version":"d85503a3b889c475f2a56348c44d7c2aba42e5a7587fa06bbc46ccdd4258bd94","impliedFormat":1},{"version":"3442bd24d7d746b3a79f2bc44d8456f58ea4d841dbf6eced8c41607e980287c0","impliedFormat":1},{"version":"57540a291cb6fbd3b75616d3db9cf2b27a5f6b96733774ccac542432b86b8daa","impliedFormat":1},{"version":"3e0d35597ff6c5142082e60814fa39c8a2077a58d8a6a262e619afb5f855f6ba","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"056097110efd16869ec118cedb44ecbac9a019576eee808d61304ca6d5cb2cbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"0e60b021c025306c352205d38fce23b6bf353650566f5d26824fe1317f99ac99","affectsGlobalScope":true,"impliedFormat":1},{"version":"3dca3e952c8df3d5f78c55e53b6bb735bebf323ec6bae656c503e892cd4eb78d","impliedFormat":1},{"version":"661a11d16ad2e3543a77c53bcd4017ee9a450f47ab7def3ab493a86eae4d550c","impliedFormat":1},{"version":"8cdc646cec7819581ef343b83855b1bfe4fe674f2c84f4fb8dc90d82fb56bd3a","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"a847ac812e3f49e72601b1462faa1f80984b3e606190f548f4dfe9f0c8ef35cf","impliedFormat":1},{"version":"6c39d4dbdb372b364442854e42d8c473e2ec67badb226745af17ed5ac41ce6f5","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"1bcc1e650cb04a29b65ef9227290792476ea416b5c342ce025417727618ecf6f","impliedFormat":1},{"version":"988b518a683e0203d1a4aa56dce733814299e0869d87da5899b098baa08fb40f","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4a3399b36463f19d8b5654caee162eb9def18c1ba3f735ba3c06413ab0b72a5","impliedFormat":1},{"version":"f7f13beb30daef3fabb51734f79aa39a876569b528364871ef91a5e01b9733d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"171d02c5040b15102025d9e6357cc884e36c232a7e491c6be6259d85e9ac8437","impliedFormat":1},{"version":"addacad25729b8ba7c3f8cdd74a3afa191dbdd46e4efcc7b7db2ec4f8f0b9f71","impliedFormat":1},{"version":"aaa36a3ede6e754b88ad45ac785de8563f1808937e4a133f13fe36e22dac0593","impliedFormat":1},{"version":"bb6d313b87960df2630a8dd9119751723e3600038e5ca123ccaf9a15f47e9eaa","impliedFormat":1},{"version":"7e4217814fc7349400fa44f24d53f0932b6b0b70b21ea9024225f634afa998a1","impliedFormat":1},{"version":"43ec77c369473e92e2ecebf0554a0fdaa9c256644a6070f28228dfcceec77351","impliedFormat":1},{"version":"2dc06aeb1e2a47b03dfbe68952956fc9b82afed9a921424f91b9ba00e1d3205a","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2388edcfda2b2f9a9762b196387b95e0b688f6c3e21ff8a86c6a7518f8ce0a8","impliedFormat":1},{"version":"4be60abb12ee8573738f06e47e3fe99436669d4b3546f0ae7a9a59b93fba3951","impliedFormat":1},{"version":"dd67d2b5e4e8a182a38de8e69fb736945eaa4588e0909c14e01a14bd3cc1fd1e","impliedFormat":1},{"version":"71da8f7eeae664a4f95e557c3277267f7baf9be11a3734c9962b8bbf7d434eb1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d09f4b48899d342b5d6cd846f95f969a401933b0dcd375a8a7e45832328bb86","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc6ef5733d4ea6d2e06310a32dffd2c16418b467c5033d49cecc4f3a25de7497","impliedFormat":1},{"version":"94768454c3348b6ebe48e45fbad8c92e2bb7af4a35243edbe2b90823d0bd7f9a","impliedFormat":1},{"version":"0be79b3ff0f16b6c2f9bc8c4cc7097ea417d8d67f8267f7e1eec8e32b548c2ff","impliedFormat":1},{"version":"88e485c93a1443952cb336167d49b82c33f6c0ca598608c943dc44f724f13e72","impliedFormat":1},{"version":"1ad9ae9e496d80dfb5cd49c7958aca4d48647599f2599d2ca1c67a72c23c7899","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"aed943465fbce1efe49ee16b5ea409050f15cd8eaf116f6fadb64ef0772e7d95","impliedFormat":1},{"version":"70d08483a67bf7050dbedace398ef3fee9f436fcd60517c97c4c1e22e3c6f3e8","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"e933de8143e1d12dd51d89b398760fd5a9081896be366dad88a922d0b29f3c69","affectsGlobalScope":true,"impliedFormat":1},{"version":"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","impliedFormat":1},{"version":"c92436ab2b0f306458fefa7121f81edd53c9b4bb3bb92d8b1cf6c9a2355e944b","impliedFormat":1},{"version":"8e1f7c597c91a204847ea79b8f225ebe2e817278959b41afaabc5a297dfe802b","impliedFormat":1},{"version":"875c46cfd441e361416221859dc40617936fbbbe77c4b842b66b6a1fd74f2368","impliedFormat":1},{"version":"a05e2d784c9be7051c4ac87a407c66d2106e23490c18c038bbd0712bde7602fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f045c02a95c50d245e35aae2c070ac0a804f13c7a810f49f4b296361da133a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf434b5c04792f62d6f4bdd5e2c8673f36e638e910333c172614d5def9b17f98","impliedFormat":1},{"version":"1d65d4798df9c2df008884035c41d3e67731f29db5ecb64cd7378797c7c53a2f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"129f54f0e0b0dbf88d6578d627c54bd8599ecbdd9743b6788320d26e49fc5485","impliedFormat":1},{"version":"867f95abf1df444aab146b19847391fc2f922a55f6a970a27ed8226766cee29f","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0297b09e607bec9698cac7cf55463d6731406efb1161ee4d448293b47397c84","impliedFormat":1},{"version":"f9623ef5cecfa8ae05c1a3bb8cf81c0c723ec124e46f71e3104ef665fe74ad10","impliedFormat":1},{"version":"809a57de65ca328f47f4639ba1a8a4348af2c9f91a060e77bdd3dd92dd71b492","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"016990463a717488f46aeba06125b987d0d7c77dc09d27d47ea2760f1af7f4da","impliedFormat":1},{"version":"692c448209a6699a345b5318ae2fc0612ee95c52812f0abf81dc902260ce572f","impliedFormat":1},{"version":"6ba92d2209defae5551c58f024665ad2fd965f03dd80e17b1bb1cee57ebd706a","impliedFormat":1},{"version":"d50fc26add4a7d835a29482544e4605558f3706fe14e191b1009ce70f76dadf0","impliedFormat":1},{"version":"39eb436d0226a590cc35f84b7bffae0fd613e2c4c83124be83969726df8cf269","impliedFormat":1},{"version":"e7dbb1423e552557b09a125be1c6772c94c169677146e3eaee95e6d1fc6851c8","impliedFormat":1},{"version":"aa184f01f3f0b540bddf441dc658bd472a59d519da188a2f048acb365e8ca77a","impliedFormat":1},{"version":"49798c9e2d9624bbc01cdf8371171b64a4eead49fef2853b69fe1bc2e7c75207","impliedFormat":1},{"version":"c7fb2b8c48f3a20faad1673b23366f24992afaf7d3854190e51d72e0dcad5bc8","impliedFormat":1},{"version":"c0a48e69d2a824fcf1fdd6ec59604e280c56998ac7a7e3a8514823db1de68cdd","impliedFormat":1},{"version":"4e78c87355f7e4fd9524d7582a14bf72771aeee33acb73a848de8bf2e44d8831","impliedFormat":1},{"version":"ff00f23ec0c6c986df2778657ef18073548634b31757bd496902cd00c183ae96","impliedFormat":1},{"version":"6c3351c0361b6fa16a3379508e2c4114cba7ad6d6bfcc0d5b2fb9f02aa2f83c4","impliedFormat":1},{"version":"69071e42231f3b87f71b076904875bdef914f01c3017eb6a39a33694e437b5e0","impliedFormat":1},{"version":"dee490d4ee8b309fcba02b3c49ab263b4a40946c1cd29e7b12e08b48c70cd9a2","impliedFormat":1},{"version":"7ddda341b1ad729e8da34de6378d9d1b3f64a7bef3a4a8fcdf4261c9a9c68ccb","impliedFormat":1},{"version":"174f185e6b6399ea73366bff1e454c5e54bef9b0804a57bef7f5009d1f21b9ad","impliedFormat":1},{"version":"e0d39ecd8a0627a45b9fece85425d5d048e2d0cf23d4c444d9594147605ca4bf","impliedFormat":1},{"version":"10b3b799f9675ebe2785104b5ac69a898accc5d32f86cda152fa646a2c3cdfc2","impliedFormat":1},{"version":"41ca098760de99ca2cc5de79e73e0b837e2661767e5772a983bc535ba4d86690","impliedFormat":1},{"version":"f78570ffe02941be6f7ad1b8a54642a1d6069d16cdbbb75bfe1cdf81610f0c69","impliedFormat":1},{"version":"c0a90b05dc7d2a78b2f90c9e2b1d464887ee23a71799acba659b0359785d07de","impliedFormat":1},{"version":"0557cef4f85111361244bad1e684ce9cadb326e582f78ad70d31c93ddb0d99f3","impliedFormat":1},{"version":"bf5413a1e4c9a2127b83ff92b52f9b3f344f91841ffb95a8a78eec6059730caf","impliedFormat":1},{"version":"c7d64c42ea284a34e9aa757537f7a37d79b07a04d409b1bea51f5a8ddda45e25","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"04e90044c2e8fd4b0938a4d3f9d8e1efee7fd77ced068e4e6f0eea1102735e40","impliedFormat":1},{"version":"4ff91243ea4afd0a59dfe0704d069bcb4e23b413ba821667669102fe3ca78c78","impliedFormat":1},{"version":"b16327ee01357bc4b698d8d464e0050585d17357420f2b4d184c96abf6373990","impliedFormat":1},{"version":"e247271d2e5f60a37056511587b7c3df27f9abcf0a5ea95ed8cee786cef48478","impliedFormat":1},{"version":"01dfb59624113bd88e1059623cecd7943c845b09c4394acea0aa439786d13edb","impliedFormat":1},{"version":"fe81fb714ee64eb7219b1cabad2fcad57bbd38f9474a583d718c8eb82b6241e0","impliedFormat":1},{"version":"9bdfb026298a0a75c054478fdd19b0de4b1bf7dfbfff84781b0f1da25d81c6b4","impliedFormat":1},{"version":"3c332d20a736ef5b8e760ac9100f4fdd0022534d51e4f0f29d40eea9c15ecd86","impliedFormat":1},{"version":"6c1a41c6039219da236aba5ca487585e9e98958c885023f1d39c066b48949734","impliedFormat":1},{"version":"3f425f99f8dbc920370d86c5b7ebff7b2a710fd991b012559d35f9e4adee1661","impliedFormat":1},{"version":"1ad191863b99a80efa56eab1a724da76641fa0a31333dbdb1dca4e6bd182309a","impliedFormat":1},{"version":"2270cf0bacf7d694e3047c8fa13873b7025e6ddfa0f7b63acee44c1e9927bcc0","impliedFormat":1},{"version":"8ffc8385762a724b7eebfa8317152bfba4512168d6d906f1a9698a9a6038b47b","impliedFormat":1},{"version":"cfff1509be4fd735a305637de296711313d8660644b766c4e6b603baf7149b12","impliedFormat":1},{"version":"4535531d0b0bba5cfb0917f13f9d4a50cea4239895de55c02b0f6bc3f3eb646d","impliedFormat":1},{"version":"797ed7a333103aa45a7cebfaf9a04454b59a22a7faf2e9f5a743d9ee44cd8024","impliedFormat":1},{"version":"3cb7cceea4cf68d02e5eba1f412ef0706ba60fbefd8a9c5f3a839bfa35857967","impliedFormat":1},{"version":"3042247c61fa9d67ff654424d9864e2dc7b9ff080540b960cbcdba18002a375a","impliedFormat":1},{"version":"3e0b0c20c7c314d9278c0b6b08b8d84f4552fb4acbb641ddc33deb35dc54f723","impliedFormat":1},{"version":"2d3b3589a50def08e636031988f1344d7c26f1b6bbf3b0e0078922a6770d9bb1","impliedFormat":1},{"version":"92e8887e25fd27cacf0bd6b84d388536ff843d46e2eee88a1659369a19bf6453","impliedFormat":1},{"version":"08f2ee0e58420657f003cb53c801e3bbb08de2d0a3f4cb77ea8cf6f3675f3722","impliedFormat":1},{"version":"2ab874598ce7f5b3f693ce4e2de5647944845c50396b147f8a5f7c7d06dc0bc7","impliedFormat":1},{"version":"fc02a0675473c0fe3f528753abb9328a04122f4204856202b26c1ebaa35fb9e5","impliedFormat":1},{"version":"110afe66c4206c0a14e9777d421db05c1b77fbe1736c4bcde21cb98daa147116","impliedFormat":1},{"version":"a623ad0abc212091a2307c131f1c7711f5d38e3f8c1ddb1c3bc9c0eec212d213","impliedFormat":1},{"version":"8d58199827b16f41b9c71f672d7567408decbc2a5d14376c479d29c3b47c5542","impliedFormat":1},{"version":"bbf6b7a072488c5c4a68499e9e0c1af81ca51f51484d4b04961e2df855362675","impliedFormat":1},{"version":"221e49e8fe5beed930604d0d115a6ddd869b373cbaee35a963f7e747820cb93b","impliedFormat":1},{"version":"abdac331c5bcd8a3a39c6bcbf1a2fd3fc254c7c474f21dad3ca549d125d9fc6e","impliedFormat":1},{"version":"453296b06c5beeb56f4db735a4db622346b423bab786c0b3c139f2d33faf59fb","signature":"a8b31dc75241f2d55b19f7c385f570d3a9e79c393024a242dd68d370a97b8ed6","impliedFormat":1},{"version":"22260d0cca8ca4165d6bcc31e955fae0f1dc658f78c6de2045d9c5a96901f623","signature":"3ea9a800fe7dd7665c142e8a0120dfd8554ef11b8d5350cb33aba35bd4599f06","impliedFormat":1},{"version":"1894294e2f0e275a6ca2c3d0af1fb45f629531bbf446f2946dc8c881583a5935","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"5f02abbb1b17e3d1e68c5eea14adf4705696e6255e2982b010c0dc2a5417b606","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"8aceb205dcc6f814ad99635baf1e40b6e01d06d3fe27b72fd766c6d0b8c0c600","impliedFormat":1},{"version":"8c95f96ccd4be0674944077aec1e4f2cccd515ca06d4327562dd017250e7d3fc","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","impliedFormat":1},{"version":"dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","impliedFormat":1},{"version":"1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","impliedFormat":1},{"version":"8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","impliedFormat":1},{"version":"7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73","impliedFormat":1},{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true,"impliedFormat":1},{"version":"d92dc90fecd2552db74d8dc3c6fb4db9145b2aa0efe2c127236ba035969068d4","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"ff81bffa4ecfceae2e86b5920c3fcb250b66b1d6ed72944dffdf58123be2481b","impliedFormat":1},{"version":"458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","impliedFormat":1},{"version":"da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","impliedFormat":1},{"version":"0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"bdf0ed7d9ebae6175a5d1b4ec4065d07f8099379370a804b1faff05004dc387d","impliedFormat":1},{"version":"3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","impliedFormat":1},{"version":"b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"254d9fb8c872d73d34594be8a200fd7311dbfa10a4116bfc465fba408052f2b3","impliedFormat":1},{"version":"d88a5e779faf033be3d52142a04fbe1cb96009868e3bbdd296b2bc6c59e06c0e","impliedFormat":1},{"version":"2ccea88888048bbfcacbc9531a5596ea48a3e7dcd0a25f531a81bb717903ba4f","impliedFormat":1},{"version":"5e379df3d61561c2ed7789b5995b9ba2143bbba21a905e2381e16efe7d1fa424","impliedFormat":1},{"version":"f07a137bbe2de7a122c37bfea00e761975fb264c49f18003d398d71b3fb35a5f","impliedFormat":1},{"version":"d8f7109e14f20eb735225a62fd3f8366da1a8349e90331cdad57f4b04caf6c5a","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"9d92b037978bb9525bc4b673ebddd443277542e010c0aef019c03a170ccdaa73","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"ae271d475b632ce7b03fea6d9cf6da72439e57a109672671cbc79f54e1386938","impliedFormat":1}],"root":[[45,58],192,193],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"inlineSources":true,"module":100,"outDir":"./types","rootDir":"../src","sourceMap":true,"strict":true,"target":7},"fileIdsList":[[194],[95,131,132,133,148],[132,133,149,150],[131,132],[131,148,151,154],[131,151,154,155],[152,153,154,156,157],[131,154],[131,148,151,152,153,156],[131,139],[131],[95,131],[83,131],[135,136,137,138,139,140,141,142,143,144,145,146,147],[131,137,138],[131,137,139],[60,61,62,63,64,65,66],[60,61],[62],[61,62],[60,62],[67],[70],[67,70],[68,69,70,71,72,73,74,75,76,77,78,159,162,163,164,165,166,167,168,169],[67,68],[70,76,78,158],[161],[70,71],[67,165],[194,195,196,197,198],[194,196],[160],[202,203,204],[96,131],[207],[208],[219],[213,218],[222,224,225,226,227,228,229,230,231,232,233,234],[222,223,225,226,227,228,229,230,231,232,233,234],[223,224,225,226,227,228,229,230,231,232,233,234],[222,223,224,226,227,228,229,230,231,232,233,234],[222,223,224,225,227,228,229,230,231,232,233,234],[222,223,224,225,226,228,229,230,231,232,233,234],[222,223,224,225,226,227,229,230,231,232,233,234],[222,223,224,225,226,227,228,230,231,232,233,234],[222,223,224,225,226,227,228,229,231,232,233,234],[222,223,224,225,226,227,228,229,230,232,233,234],[222,223,224,225,226,227,228,229,230,231,233,234],[222,223,224,225,226,227,228,229,230,231,232,234],[222,223,224,225,226,227,228,229,230,231,232,233],[79],[82],[83,88,115],[84,95,96,103,112,123],[84,85,95,103],[86,124],[87,88,96,104],[88,112,120],[89,91,95,103],[90],[91,92],[95],[94,95],[82,95],[95,96,97,112,123],[95,96,97,112],[95,98,103,112,123],[95,96,98,99,103,112,120,123],[98,100,112,120,123],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[95,101],[102,123,128],[91,95,103,112],[104],[105],[82,106],[107,122,128],[108],[109],[95,110],[110,111,124,126],[83,95,112,113,114],[83,112,114],[112,113],[115],[116],[95,118,119],[118,119],[88,103,112,120],[121],[103,122],[83,98,109,123],[88,124],[112,125],[126],[127],[83,88,95,97,106,112,123,126,128],[112,129],[131,240],[243,282],[243,267,282],[282],[243],[243,268,282],[243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[268,282],[283],[287],[182],[182,183,184,185,186],[171,172,173,174,175,176,177,178,179,180,181],[211,214],[211,214,215,216],[213],[210,217],[212],[170,187,188,189],[188],[189],[59,188,189,190],[187,191],[192]],"referencedMap":[[196,1],[149,2],[151,3],[133,4],[155,5],[156,6],[152,6],[158,7],[153,6],[157,8],[154,9],[140,10],[137,11],[144,12],[138,10],[135,13],[148,14],[142,11],[139,15],[141,16],[67,17],[62,18],[63,19],[64,19],[65,20],[66,20],[61,21],[68,22],[69,22],[71,23],[72,22],[73,22],[74,24],[70,22],[170,25],[78,26],[159,27],[162,28],[164,23],[168,29],[169,30],[199,31],[195,1],[197,32],[198,1],[200,11],[161,33],[205,34],[206,35],[208,36],[209,37],[220,38],[219,39],[223,40],[224,41],[222,42],[225,43],[226,44],[227,45],[228,46],[229,47],[230,48],[231,49],[232,50],[233,51],[234,52],[79,53],[80,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[91,63],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[98,69],[99,70],[100,71],[131,72],[101,73],[102,74],[103,75],[104,76],[105,77],[106,78],[107,79],[108,80],[109,81],[110,82],[111,83],[112,84],[114,85],[113,86],[115,87],[116,88],[118,89],[119,90],[120,91],[121,92],[122,93],[123,94],[124,95],[125,96],[126,97],[127,98],[128,99],[129,100],[237,11],[241,101],[242,11],[267,102],[268,103],[243,104],[246,104],[265,102],[266,102],[256,102],[255,105],[253,102],[248,102],[261,102],[259,102],[263,102],[247,102],[260,102],[264,102],[249,102],[250,102],[262,102],[244,102],[251,102],[252,102],[254,102],[258,102],[269,106],[257,102],[245,102],[282,107],[276,106],[278,108],[277,106],[270,106],[271,106],[273,106],[275,106],[279,108],[280,108],[272,108],[274,108],[284,109],[288,110],[178,111],[180,111],[179,111],[177,111],[187,112],[182,113],[173,111],[174,111],[175,111],[176,111],[215,114],[217,115],[216,114],[214,116],[218,117],[213,118],[190,119],[189,120],[188,121],[191,122],[192,123],[193,124]],"exportedModulesMap":[[196,1],[149,2],[151,3],[133,4],[155,5],[156,6],[152,6],[158,7],[153,6],[157,8],[154,9],[140,10],[137,11],[144,12],[138,10],[135,13],[148,14],[142,11],[139,15],[141,16],[67,17],[62,18],[63,19],[64,19],[65,20],[66,20],[61,21],[68,22],[69,22],[71,23],[72,22],[73,22],[74,24],[70,22],[170,25],[78,26],[159,27],[162,28],[164,23],[168,29],[169,30],[199,31],[195,1],[197,32],[198,1],[200,11],[161,33],[205,34],[206,35],[208,36],[209,37],[220,38],[219,39],[223,40],[224,41],[222,42],[225,43],[226,44],[227,45],[228,46],[229,47],[230,48],[231,49],[232,50],[233,51],[234,52],[79,53],[80,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[91,63],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[98,69],[99,70],[100,71],[131,72],[101,73],[102,74],[103,75],[104,76],[105,77],[106,78],[107,79],[108,80],[109,81],[110,82],[111,83],[112,84],[114,85],[113,86],[115,87],[116,88],[118,89],[119,90],[120,91],[121,92],[122,93],[123,94],[124,95],[125,96],[126,97],[127,98],[128,99],[129,100],[237,11],[241,101],[242,11],[267,102],[268,103],[243,104],[246,104],[265,102],[266,102],[256,102],[255,105],[253,102],[248,102],[261,102],[259,102],[263,102],[247,102],[260,102],[264,102],[249,102],[250,102],[262,102],[244,102],[251,102],[252,102],[254,102],[258,102],[269,106],[257,102],[245,102],[282,107],[276,106],[278,108],[277,106],[270,106],[271,106],[273,106],[275,106],[279,108],[280,108],[272,108],[274,108],[284,109],[288,110],[178,111],[180,111],[179,111],[177,111],[187,112],[182,113],[173,111],[174,111],[175,111],[176,111],[215,114],[217,115],[216,114],[214,116],[218,117],[213,118],[190,119],[189,120],[188,121],[191,122],[192,123],[193,124]],"semanticDiagnosticsPerFile":[196,194,149,132,151,133,150,155,156,152,158,153,157,154,140,137,144,138,135,143,148,145,146,147,142,139,136,141,60,67,62,63,64,65,66,61,68,69,71,72,73,74,75,76,77,70,170,78,159,162,163,164,165,166,167,168,169,199,195,197,198,200,161,201,202,205,203,206,207,208,209,220,219,204,221,223,224,222,225,226,227,228,229,230,231,232,233,234,235,160,79,80,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,81,130,98,99,100,131,101,102,103,104,105,106,107,108,109,110,111,112,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,236,237,238,239,241,240,242,267,268,243,246,265,266,256,255,253,248,261,259,263,247,260,264,249,250,262,244,251,252,254,258,269,257,245,282,281,276,278,277,270,271,273,275,279,280,272,274,284,283,285,286,287,288,134,210,181,178,180,179,177,187,182,186,183,185,184,173,174,175,171,172,176,211,215,217,216,214,218,213,212,43,44,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,59,190,189,188,191,192,193,50,51,52,53,54,55,45,56,57,58,46,47,48,49],"latestChangedDtsFile":"./types/index.d.ts"},"version":"5.0.4"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../types/eth-ens-namehash.d.ts","../../../types/ethereum-ens-network-map.d.ts","../../../types/ethjs-query.d.ts","../../../types/global.d.ts","../../../types/single-call-balance-checker-abi.d.ts","../../../types/@metamask/contract-metadata.d.ts","../../../types/@metamask/eth-hd-keyring.d.ts","../../../types/@metamask/eth-simple-keyring.d.ts","../../../types/@metamask/ethjs-provider-http.d.ts","../../../types/@metamask/ethjs-unit.d.ts","../../../types/@metamask/metamask-eth-abis.d.ts","../../../types/eth-json-rpc-infura/src/createProvider.d.ts","../../../types/eth-phishing-detect/src/config.json.d.ts","../../../types/eth-phishing-detect/src/detector.d.ts","../../base-controller/dist/types/BaseControllerV1.d.ts","../../../node_modules/@metamask/superstruct/dist/error.d.cts","../../../node_modules/@metamask/superstruct/dist/utils.d.cts","../../../node_modules/@metamask/superstruct/dist/struct.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/coercions.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/refinements.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/types.d.cts","../../../node_modules/@metamask/superstruct/dist/structs/utilities.d.cts","../../../node_modules/@metamask/superstruct/dist/index.d.cts","../../../node_modules/@metamask/utils/dist/assert.d.cts","../../../node_modules/@metamask/utils/dist/base64.d.cts","../../../node_modules/@metamask/utils/dist/hex.d.cts","../../../node_modules/@metamask/utils/dist/bytes.d.cts","../../../node_modules/@metamask/utils/dist/caip-types.d.cts","../../../node_modules/@metamask/utils/dist/checksum.d.cts","../../../node_modules/@metamask/utils/dist/coercers.d.cts","../../../node_modules/@metamask/utils/dist/collections.d.cts","../../../node_modules/@metamask/utils/dist/encryption-types.d.cts","../../../node_modules/@metamask/utils/dist/errors.d.cts","../../../node_modules/@metamask/utils/dist/json.d.cts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@ethereumjs/common/dist/enums.d.ts","../../../node_modules/@ethereumjs/common/dist/types.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/@ethereumjs/util/dist/constants.d.ts","../../../node_modules/@ethereumjs/util/dist/units.d.ts","../../../node_modules/@ethereumjs/util/dist/address.d.ts","../../../node_modules/@ethereumjs/util/dist/bytes.d.ts","../../../node_modules/@ethereumjs/util/dist/types.d.ts","../../../node_modules/@ethereumjs/util/dist/account.d.ts","../../../node_modules/@ethereumjs/util/dist/withdrawal.d.ts","../../../node_modules/@ethereumjs/util/dist/signature.d.ts","../../../node_modules/@ethereumjs/util/dist/encoding.d.ts","../../../node_modules/@ethereumjs/util/dist/asyncEventEmitter.d.ts","../../../node_modules/@ethereumjs/util/dist/internal.d.ts","../../../node_modules/@ethereumjs/util/dist/lock.d.ts","../../../node_modules/@ethereumjs/util/dist/provider.d.ts","../../../node_modules/@ethereumjs/util/dist/index.d.ts","../../../node_modules/@ethereumjs/common/dist/common.d.ts","../../../node_modules/@ethereumjs/common/dist/utils.d.ts","../../../node_modules/@ethereumjs/common/dist/index.d.ts","../../../node_modules/@ethereumjs/tx/dist/eip2930Transaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/legacyTransaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/types.d.ts","../../../node_modules/@ethereumjs/tx/dist/baseTransaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/eip1559Transaction.d.ts","../../../node_modules/@ethereumjs/tx/dist/transactionFactory.d.ts","../../../node_modules/@ethereumjs/tx/dist/index.d.ts","../../../node_modules/@metamask/utils/dist/keyring.d.cts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../../node_modules/@metamask/utils/dist/logging.d.cts","../../../node_modules/@metamask/utils/dist/misc.d.cts","../../../node_modules/@metamask/utils/dist/number.d.cts","../../../node_modules/@metamask/utils/dist/opaque.d.cts","../../../node_modules/@metamask/utils/dist/promise.d.cts","../../../node_modules/@metamask/utils/dist/time.d.cts","../../../node_modules/@metamask/utils/dist/transaction-types.d.cts","../../../node_modules/@metamask/utils/dist/versions.d.cts","../../../node_modules/@metamask/utils/dist/index.d.cts","../../../node_modules/immer/dist/utils/env.d.ts","../../../node_modules/immer/dist/utils/errors.d.ts","../../../node_modules/immer/dist/types/types-external.d.ts","../../../node_modules/immer/dist/types/types-internal.d.ts","../../../node_modules/immer/dist/utils/common.d.ts","../../../node_modules/immer/dist/utils/plugins.d.ts","../../../node_modules/immer/dist/core/scope.d.ts","../../../node_modules/immer/dist/core/finalize.d.ts","../../../node_modules/immer/dist/core/proxy.d.ts","../../../node_modules/immer/dist/core/immerClass.d.ts","../../../node_modules/immer/dist/core/current.d.ts","../../../node_modules/immer/dist/internal.d.ts","../../../node_modules/immer/dist/plugins/es5.d.ts","../../../node_modules/immer/dist/plugins/patches.d.ts","../../../node_modules/immer/dist/plugins/mapset.d.ts","../../../node_modules/immer/dist/plugins/all.d.ts","../../../node_modules/immer/dist/immer.d.ts","../../base-controller/dist/types/RestrictedControllerMessenger.d.ts","../../base-controller/dist/types/ControllerMessenger.d.ts","../../base-controller/dist/types/BaseControllerV2.d.ts","../../base-controller/dist/types/index.d.ts","../src/ComposableController.ts","../src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/bn.js/index.d.ts","../../../node_modules/@types/deep-freeze-strict/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/jest-diff/build/cleanupSemantic.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/diffLines.d.ts","../../../node_modules/jest-diff/build/printDiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/jest-when/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/pbkdf2/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/punycode/index.d.ts","../../../node_modules/@types/readable-stream/node_modules/safe-buffer/index.d.ts","../../../node_modules/@types/readable-stream/index.d.ts","../../../node_modules/@types/secp256k1/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","impliedFormat":1},{"version":"27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true,"impliedFormat":1},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true,"impliedFormat":1},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true,"impliedFormat":1},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true,"impliedFormat":1},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true,"impliedFormat":1},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true,"impliedFormat":1},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true,"impliedFormat":1},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"70bbfaec021ac4a0c805374225b55d70887f987df8b8dd7711d79464bb7b4385","impliedFormat":1},{"version":"869089d60b67219f63e6aca810284c89bae1b384b5cbc7ce64e53d82ad223ed5","impliedFormat":1},{"version":"fe8f00e1ffe6c8069f2568844debb342a661980c30e52b132f002b93f66de47e","impliedFormat":1},{"version":"f31113ac9492fdd6e78bf6151b338c92e5b1837be426ef4aa0648ce82d13b518","affectsGlobalScope":true,"impliedFormat":1},{"version":"62a0875a0397b35a2364f1d401c0ce17975dfa4d47bf6844de858ae04da349f9","impliedFormat":1},{"version":"ee7491d0318d1fafcba97d5b72b450eb52671570f7a4ecd9e8898d40eaae9472","impliedFormat":1},{"version":"e3e7d217d89b380c1f34395eadc9289542851b0f0a64007dfe1fb7cf7423d24e","impliedFormat":1},{"version":"fd79909e93b4d50fd0ed9f3d39ddf8ba0653290bac25c295aac49f6befbd081b","impliedFormat":1},{"version":"345a9cc2945406f53051cd0e9b51f82e1e53929848eab046fdda91ee8aa7da31","impliedFormat":1},{"version":"9debe2de883da37a914e5e784a7be54c201b8f1d783822ad6f443ff409a5ea21","impliedFormat":1},{"version":"dee5d5c5440cda1f3668f11809a5503c30db0476ad117dd450f7ba5a45300e8f","impliedFormat":1},{"version":"f5e396c1424c391078c866d6f84afe0b4d2f7f85a160b9c756cd63b5b1775d93","impliedFormat":1},{"version":"5caa6f4fff16066d377d4e254f6c34c16540da3809cd66cd626a303bc33c419f","impliedFormat":1},{"version":"730d055528bdf12c8524870bb33d237991be9084c57634e56e5d8075f6605e02","impliedFormat":1},{"version":"f6f886a9fcd0aab0552a0742d66d4c1ff323a86cb3d119477e0980a8c6343e55","impliedFormat":1},{"version":"c26b7050e19f8f555605db02f6cfae645ec7928d2dd6f428790e01a163795f97","impliedFormat":1},{"version":"df877ab086035627f1d36150d33204d3d7d097b67a41b8d31f621afd32b618ba","impliedFormat":1},{"version":"30a340292b28c797f55fe80ccab953d6ff310165a5c871717a0ff7ba474b05c6","impliedFormat":1},{"version":"d2e0607a2ea008ec9f4cf46954e8e21c94bd42373bdb780ed8f27d8deab90907","impliedFormat":1},{"version":"8a6e0aeb87d2ec01563a82b20f98e0a740d81d8e600286fb378b39c1cf0905b4","impliedFormat":1},{"version":"d645973bd03c1b0b0d2817ffcfc6346c7e6ce94df7cf6a46087d27a347eb6f73","impliedFormat":1},{"version":"17ae0674c777ae1c8f912c247b0195604494b417d8da457ac6dfec8907a180c1","impliedFormat":1},{"version":"4cb8668d4cdad969d15718ffed6a75a68ffa026b3d4208a37a5842dc3f8aee9f","impliedFormat":1},{"version":"8e775a861341ec44847ac043ab2b60edc18dafc6b895acbb5f5628b465c61f62","impliedFormat":1},{"version":"69896bb78fcf1307b0f592839c8f1a7f6977bc4d55ec1fb2db046c8c7c0c25ae","impliedFormat":1},{"version":"c8ef51808d56e538840e26043483eab15df31026cf2b3fd47a279b0eec01fa69","impliedFormat":1},{"version":"11f688c9704ffff4c6dd7b9892d379b5f36f4e7408833168fe491181e5e049fe","impliedFormat":1},{"version":"895054cb55cfbad2618ea4c9042117423c7d415bbfadf7c68f07b9030607dd92","impliedFormat":1},{"version":"70dbd132cafd25ff48f589e4adc467eefe258f640a651b3846fe9218e0ee2fe3","impliedFormat":1},{"version":"457b8e22ca4672e962ec7b55ab0cc5d68cfcdd8cf4ffba250df9e6c1eb0540a5","impliedFormat":1},{"version":"30e81e0d15a6cca02397e1aa517166e03ce0a28f0e6d53e25440ef22b31f64ab","impliedFormat":1},{"version":"d85503a3b889c475f2a56348c44d7c2aba42e5a7587fa06bbc46ccdd4258bd94","impliedFormat":1},{"version":"3442bd24d7d746b3a79f2bc44d8456f58ea4d841dbf6eced8c41607e980287c0","impliedFormat":1},{"version":"57540a291cb6fbd3b75616d3db9cf2b27a5f6b96733774ccac542432b86b8daa","impliedFormat":1},{"version":"3e0d35597ff6c5142082e60814fa39c8a2077a58d8a6a262e619afb5f855f6ba","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"056097110efd16869ec118cedb44ecbac9a019576eee808d61304ca6d5cb2cbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"0e60b021c025306c352205d38fce23b6bf353650566f5d26824fe1317f99ac99","affectsGlobalScope":true,"impliedFormat":1},{"version":"3dca3e952c8df3d5f78c55e53b6bb735bebf323ec6bae656c503e892cd4eb78d","impliedFormat":1},{"version":"661a11d16ad2e3543a77c53bcd4017ee9a450f47ab7def3ab493a86eae4d550c","impliedFormat":1},{"version":"8cdc646cec7819581ef343b83855b1bfe4fe674f2c84f4fb8dc90d82fb56bd3a","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"a847ac812e3f49e72601b1462faa1f80984b3e606190f548f4dfe9f0c8ef35cf","impliedFormat":1},{"version":"6c39d4dbdb372b364442854e42d8c473e2ec67badb226745af17ed5ac41ce6f5","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"1bcc1e650cb04a29b65ef9227290792476ea416b5c342ce025417727618ecf6f","impliedFormat":1},{"version":"988b518a683e0203d1a4aa56dce733814299e0869d87da5899b098baa08fb40f","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4a3399b36463f19d8b5654caee162eb9def18c1ba3f735ba3c06413ab0b72a5","impliedFormat":1},{"version":"f7f13beb30daef3fabb51734f79aa39a876569b528364871ef91a5e01b9733d2","affectsGlobalScope":true,"impliedFormat":1},{"version":"171d02c5040b15102025d9e6357cc884e36c232a7e491c6be6259d85e9ac8437","impliedFormat":1},{"version":"addacad25729b8ba7c3f8cdd74a3afa191dbdd46e4efcc7b7db2ec4f8f0b9f71","impliedFormat":1},{"version":"aaa36a3ede6e754b88ad45ac785de8563f1808937e4a133f13fe36e22dac0593","impliedFormat":1},{"version":"bb6d313b87960df2630a8dd9119751723e3600038e5ca123ccaf9a15f47e9eaa","impliedFormat":1},{"version":"7e4217814fc7349400fa44f24d53f0932b6b0b70b21ea9024225f634afa998a1","impliedFormat":1},{"version":"43ec77c369473e92e2ecebf0554a0fdaa9c256644a6070f28228dfcceec77351","impliedFormat":1},{"version":"2dc06aeb1e2a47b03dfbe68952956fc9b82afed9a921424f91b9ba00e1d3205a","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2388edcfda2b2f9a9762b196387b95e0b688f6c3e21ff8a86c6a7518f8ce0a8","impliedFormat":1},{"version":"4be60abb12ee8573738f06e47e3fe99436669d4b3546f0ae7a9a59b93fba3951","impliedFormat":1},{"version":"dd67d2b5e4e8a182a38de8e69fb736945eaa4588e0909c14e01a14bd3cc1fd1e","impliedFormat":1},{"version":"71da8f7eeae664a4f95e557c3277267f7baf9be11a3734c9962b8bbf7d434eb1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0d09f4b48899d342b5d6cd846f95f969a401933b0dcd375a8a7e45832328bb86","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc6ef5733d4ea6d2e06310a32dffd2c16418b467c5033d49cecc4f3a25de7497","impliedFormat":1},{"version":"94768454c3348b6ebe48e45fbad8c92e2bb7af4a35243edbe2b90823d0bd7f9a","impliedFormat":1},{"version":"0be79b3ff0f16b6c2f9bc8c4cc7097ea417d8d67f8267f7e1eec8e32b548c2ff","impliedFormat":1},{"version":"88e485c93a1443952cb336167d49b82c33f6c0ca598608c943dc44f724f13e72","impliedFormat":1},{"version":"1ad9ae9e496d80dfb5cd49c7958aca4d48647599f2599d2ca1c67a72c23c7899","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"aed943465fbce1efe49ee16b5ea409050f15cd8eaf116f6fadb64ef0772e7d95","impliedFormat":1},{"version":"70d08483a67bf7050dbedace398ef3fee9f436fcd60517c97c4c1e22e3c6f3e8","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"e933de8143e1d12dd51d89b398760fd5a9081896be366dad88a922d0b29f3c69","affectsGlobalScope":true,"impliedFormat":1},{"version":"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","impliedFormat":1},{"version":"c92436ab2b0f306458fefa7121f81edd53c9b4bb3bb92d8b1cf6c9a2355e944b","impliedFormat":1},{"version":"8e1f7c597c91a204847ea79b8f225ebe2e817278959b41afaabc5a297dfe802b","impliedFormat":1},{"version":"875c46cfd441e361416221859dc40617936fbbbe77c4b842b66b6a1fd74f2368","impliedFormat":1},{"version":"a05e2d784c9be7051c4ac87a407c66d2106e23490c18c038bbd0712bde7602fd","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f045c02a95c50d245e35aae2c070ac0a804f13c7a810f49f4b296361da133a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf434b5c04792f62d6f4bdd5e2c8673f36e638e910333c172614d5def9b17f98","impliedFormat":1},{"version":"1d65d4798df9c2df008884035c41d3e67731f29db5ecb64cd7378797c7c53a2f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"129f54f0e0b0dbf88d6578d627c54bd8599ecbdd9743b6788320d26e49fc5485","impliedFormat":1},{"version":"867f95abf1df444aab146b19847391fc2f922a55f6a970a27ed8226766cee29f","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0297b09e607bec9698cac7cf55463d6731406efb1161ee4d448293b47397c84","impliedFormat":1},{"version":"f9623ef5cecfa8ae05c1a3bb8cf81c0c723ec124e46f71e3104ef665fe74ad10","impliedFormat":1},{"version":"809a57de65ca328f47f4639ba1a8a4348af2c9f91a060e77bdd3dd92dd71b492","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"016990463a717488f46aeba06125b987d0d7c77dc09d27d47ea2760f1af7f4da","impliedFormat":1},{"version":"692c448209a6699a345b5318ae2fc0612ee95c52812f0abf81dc902260ce572f","impliedFormat":1},{"version":"6ba92d2209defae5551c58f024665ad2fd965f03dd80e17b1bb1cee57ebd706a","impliedFormat":1},{"version":"d50fc26add4a7d835a29482544e4605558f3706fe14e191b1009ce70f76dadf0","impliedFormat":1},{"version":"39eb436d0226a590cc35f84b7bffae0fd613e2c4c83124be83969726df8cf269","impliedFormat":1},{"version":"e7dbb1423e552557b09a125be1c6772c94c169677146e3eaee95e6d1fc6851c8","impliedFormat":1},{"version":"aa184f01f3f0b540bddf441dc658bd472a59d519da188a2f048acb365e8ca77a","impliedFormat":1},{"version":"49798c9e2d9624bbc01cdf8371171b64a4eead49fef2853b69fe1bc2e7c75207","impliedFormat":1},{"version":"c7fb2b8c48f3a20faad1673b23366f24992afaf7d3854190e51d72e0dcad5bc8","impliedFormat":1},{"version":"c0a48e69d2a824fcf1fdd6ec59604e280c56998ac7a7e3a8514823db1de68cdd","impliedFormat":1},{"version":"4e78c87355f7e4fd9524d7582a14bf72771aeee33acb73a848de8bf2e44d8831","impliedFormat":1},{"version":"ff00f23ec0c6c986df2778657ef18073548634b31757bd496902cd00c183ae96","impliedFormat":1},{"version":"6c3351c0361b6fa16a3379508e2c4114cba7ad6d6bfcc0d5b2fb9f02aa2f83c4","impliedFormat":1},{"version":"69071e42231f3b87f71b076904875bdef914f01c3017eb6a39a33694e437b5e0","impliedFormat":1},{"version":"dee490d4ee8b309fcba02b3c49ab263b4a40946c1cd29e7b12e08b48c70cd9a2","impliedFormat":1},{"version":"7ddda341b1ad729e8da34de6378d9d1b3f64a7bef3a4a8fcdf4261c9a9c68ccb","impliedFormat":1},{"version":"174f185e6b6399ea73366bff1e454c5e54bef9b0804a57bef7f5009d1f21b9ad","impliedFormat":1},{"version":"e0d39ecd8a0627a45b9fece85425d5d048e2d0cf23d4c444d9594147605ca4bf","impliedFormat":1},{"version":"10b3b799f9675ebe2785104b5ac69a898accc5d32f86cda152fa646a2c3cdfc2","impliedFormat":1},{"version":"41ca098760de99ca2cc5de79e73e0b837e2661767e5772a983bc535ba4d86690","impliedFormat":1},{"version":"f78570ffe02941be6f7ad1b8a54642a1d6069d16cdbbb75bfe1cdf81610f0c69","impliedFormat":1},{"version":"c0a90b05dc7d2a78b2f90c9e2b1d464887ee23a71799acba659b0359785d07de","impliedFormat":1},{"version":"0557cef4f85111361244bad1e684ce9cadb326e582f78ad70d31c93ddb0d99f3","impliedFormat":1},{"version":"bf5413a1e4c9a2127b83ff92b52f9b3f344f91841ffb95a8a78eec6059730caf","impliedFormat":1},{"version":"c7d64c42ea284a34e9aa757537f7a37d79b07a04d409b1bea51f5a8ddda45e25","impliedFormat":1},{"version":"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","impliedFormat":1},{"version":"3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1","impliedFormat":1},{"version":"04e90044c2e8fd4b0938a4d3f9d8e1efee7fd77ced068e4e6f0eea1102735e40","impliedFormat":1},{"version":"4ff91243ea4afd0a59dfe0704d069bcb4e23b413ba821667669102fe3ca78c78","impliedFormat":1},{"version":"b16327ee01357bc4b698d8d464e0050585d17357420f2b4d184c96abf6373990","impliedFormat":1},{"version":"e247271d2e5f60a37056511587b7c3df27f9abcf0a5ea95ed8cee786cef48478","impliedFormat":1},{"version":"01dfb59624113bd88e1059623cecd7943c845b09c4394acea0aa439786d13edb","impliedFormat":1},{"version":"fe81fb714ee64eb7219b1cabad2fcad57bbd38f9474a583d718c8eb82b6241e0","impliedFormat":1},{"version":"9bdfb026298a0a75c054478fdd19b0de4b1bf7dfbfff84781b0f1da25d81c6b4","impliedFormat":1},{"version":"3c332d20a736ef5b8e760ac9100f4fdd0022534d51e4f0f29d40eea9c15ecd86","impliedFormat":1},{"version":"6c1a41c6039219da236aba5ca487585e9e98958c885023f1d39c066b48949734","impliedFormat":1},{"version":"3f425f99f8dbc920370d86c5b7ebff7b2a710fd991b012559d35f9e4adee1661","impliedFormat":1},{"version":"1ad191863b99a80efa56eab1a724da76641fa0a31333dbdb1dca4e6bd182309a","impliedFormat":1},{"version":"2270cf0bacf7d694e3047c8fa13873b7025e6ddfa0f7b63acee44c1e9927bcc0","impliedFormat":1},{"version":"8ffc8385762a724b7eebfa8317152bfba4512168d6d906f1a9698a9a6038b47b","impliedFormat":1},{"version":"cfff1509be4fd735a305637de296711313d8660644b766c4e6b603baf7149b12","impliedFormat":1},{"version":"4535531d0b0bba5cfb0917f13f9d4a50cea4239895de55c02b0f6bc3f3eb646d","impliedFormat":1},{"version":"797ed7a333103aa45a7cebfaf9a04454b59a22a7faf2e9f5a743d9ee44cd8024","impliedFormat":1},{"version":"3cb7cceea4cf68d02e5eba1f412ef0706ba60fbefd8a9c5f3a839bfa35857967","impliedFormat":1},{"version":"3042247c61fa9d67ff654424d9864e2dc7b9ff080540b960cbcdba18002a375a","impliedFormat":1},{"version":"3e0b0c20c7c314d9278c0b6b08b8d84f4552fb4acbb641ddc33deb35dc54f723","impliedFormat":1},{"version":"2d3b3589a50def08e636031988f1344d7c26f1b6bbf3b0e0078922a6770d9bb1","impliedFormat":1},{"version":"92e8887e25fd27cacf0bd6b84d388536ff843d46e2eee88a1659369a19bf6453","impliedFormat":1},{"version":"08f2ee0e58420657f003cb53c801e3bbb08de2d0a3f4cb77ea8cf6f3675f3722","impliedFormat":1},{"version":"2ab874598ce7f5b3f693ce4e2de5647944845c50396b147f8a5f7c7d06dc0bc7","impliedFormat":1},{"version":"fc02a0675473c0fe3f528753abb9328a04122f4204856202b26c1ebaa35fb9e5","impliedFormat":1},{"version":"110afe66c4206c0a14e9777d421db05c1b77fbe1736c4bcde21cb98daa147116","impliedFormat":1},{"version":"a623ad0abc212091a2307c131f1c7711f5d38e3f8c1ddb1c3bc9c0eec212d213","impliedFormat":1},{"version":"8d58199827b16f41b9c71f672d7567408decbc2a5d14376c479d29c3b47c5542","impliedFormat":1},{"version":"bbf6b7a072488c5c4a68499e9e0c1af81ca51f51484d4b04961e2df855362675","impliedFormat":1},{"version":"221e49e8fe5beed930604d0d115a6ddd869b373cbaee35a963f7e747820cb93b","impliedFormat":1},{"version":"abdac331c5bcd8a3a39c6bcbf1a2fd3fc254c7c474f21dad3ca549d125d9fc6e","impliedFormat":1},{"version":"ac1286e1314124bba1836091b095a8911741051bab1f26061de8d401598631c6","signature":"5f58226622360dd62ce128d2d9993f6dfe40d41b9a60eab1a5b3511605e75e92","impliedFormat":1},{"version":"22260d0cca8ca4165d6bcc31e955fae0f1dc658f78c6de2045d9c5a96901f623","signature":"3ea9a800fe7dd7665c142e8a0120dfd8554ef11b8d5350cb33aba35bd4599f06","impliedFormat":1},{"version":"1894294e2f0e275a6ca2c3d0af1fb45f629531bbf446f2946dc8c881583a5935","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"5f02abbb1b17e3d1e68c5eea14adf4705696e6255e2982b010c0dc2a5417b606","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"8aceb205dcc6f814ad99635baf1e40b6e01d06d3fe27b72fd766c6d0b8c0c600","impliedFormat":1},{"version":"8c95f96ccd4be0674944077aec1e4f2cccd515ca06d4327562dd017250e7d3fc","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee7d8894904b465b072be0d2e4b45cf6b887cdba16a467645c4e200982ece7ea","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"7852500a7dc3f9cb6b73d619f6e0249119211ea662fd5e16c59ee5aba3deeb80","impliedFormat":1},{"version":"afe73051ff6a03a9565cbd8ebb0e956ee3df5e913ad5c1ded64218aabfa3dcb5","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","impliedFormat":1},{"version":"462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","impliedFormat":1},{"version":"5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","impliedFormat":1},{"version":"7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","impliedFormat":1},{"version":"dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","impliedFormat":1},{"version":"1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","impliedFormat":1},{"version":"8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","impliedFormat":1},{"version":"7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73","impliedFormat":1},{"version":"ccfd8774cd9b929f63ff7dcf657977eb0652e3547f1fcac1b3a1dc5db22d4d58","affectsGlobalScope":true,"impliedFormat":1},{"version":"d92dc90fecd2552db74d8dc3c6fb4db9145b2aa0efe2c127236ba035969068d4","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"ff81bffa4ecfceae2e86b5920c3fcb250b66b1d6ed72944dffdf58123be2481b","impliedFormat":1},{"version":"458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","impliedFormat":1},{"version":"da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"aa2c18a1b5a086bbcaae10a4efba409cc95ba7287d8cf8f2591b53704fea3dea","impliedFormat":1},{"version":"6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","impliedFormat":1},{"version":"0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"bdf0ed7d9ebae6175a5d1b4ec4065d07f8099379370a804b1faff05004dc387d","impliedFormat":1},{"version":"3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","impliedFormat":1},{"version":"b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"4f6a12044ee6f458db11964153830abbc499e73d065c51c329ec97407f4b13dd","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"254d9fb8c872d73d34594be8a200fd7311dbfa10a4116bfc465fba408052f2b3","impliedFormat":1},{"version":"d88a5e779faf033be3d52142a04fbe1cb96009868e3bbdd296b2bc6c59e06c0e","impliedFormat":1},{"version":"2ccea88888048bbfcacbc9531a5596ea48a3e7dcd0a25f531a81bb717903ba4f","impliedFormat":1},{"version":"5e379df3d61561c2ed7789b5995b9ba2143bbba21a905e2381e16efe7d1fa424","impliedFormat":1},{"version":"f07a137bbe2de7a122c37bfea00e761975fb264c49f18003d398d71b3fb35a5f","impliedFormat":1},{"version":"d8f7109e14f20eb735225a62fd3f8366da1a8349e90331cdad57f4b04caf6c5a","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","impliedFormat":1},{"version":"9d92b037978bb9525bc4b673ebddd443277542e010c0aef019c03a170ccdaa73","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"ae271d475b632ce7b03fea6d9cf6da72439e57a109672671cbc79f54e1386938","impliedFormat":1}],"root":[[45,58],192,193],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"inlineSources":true,"module":100,"outDir":"./types","rootDir":"../src","sourceMap":true,"strict":true,"target":7},"fileIdsList":[[194],[95,131,132,133,148],[132,133,149,150],[131,132],[131,148,151,154],[131,151,154,155],[152,153,154,156,157],[131,154],[131,148,151,152,153,156],[131,139],[131],[95,131],[83,131],[135,136,137,138,139,140,141,142,143,144,145,146,147],[131,137,138],[131,137,139],[60,61,62,63,64,65,66],[60,61],[62],[61,62],[60,62],[67],[70],[67,70],[68,69,70,71,72,73,74,75,76,77,78,159,162,163,164,165,166,167,168,169],[67,68],[70,76,78,158],[161],[70,71],[67,165],[194,195,196,197,198],[194,196],[160],[202,203,204],[96,131],[207],[208],[219],[213,218],[222,224,225,226,227,228,229,230,231,232,233,234],[222,223,225,226,227,228,229,230,231,232,233,234],[223,224,225,226,227,228,229,230,231,232,233,234],[222,223,224,226,227,228,229,230,231,232,233,234],[222,223,224,225,227,228,229,230,231,232,233,234],[222,223,224,225,226,228,229,230,231,232,233,234],[222,223,224,225,226,227,229,230,231,232,233,234],[222,223,224,225,226,227,228,230,231,232,233,234],[222,223,224,225,226,227,228,229,231,232,233,234],[222,223,224,225,226,227,228,229,230,232,233,234],[222,223,224,225,226,227,228,229,230,231,233,234],[222,223,224,225,226,227,228,229,230,231,232,234],[222,223,224,225,226,227,228,229,230,231,232,233],[79],[82],[83,88,115],[84,95,96,103,112,123],[84,85,95,103],[86,124],[87,88,96,104],[88,112,120],[89,91,95,103],[90],[91,92],[95],[94,95],[82,95],[95,96,97,112,123],[95,96,97,112],[95,98,103,112,123],[95,96,98,99,103,112,120,123],[98,100,112,120,123],[79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],[95,101],[102,123,128],[91,95,103,112],[104],[105],[82,106],[107,122,128],[108],[109],[95,110],[110,111,124,126],[83,95,112,113,114],[83,112,114],[112,113],[115],[116],[95,118,119],[118,119],[88,103,112,120],[121],[103,122],[83,98,109,123],[88,124],[112,125],[126],[127],[83,88,95,97,106,112,123,126,128],[112,129],[131,240],[243,282],[243,267,282],[282],[243],[243,268,282],[243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[268,282],[283],[287],[182],[182,183,184,185,186],[171,172,173,174,175,176,177,178,179,180,181],[211,214],[211,214,215,216],[213],[210,217],[212],[170,187,188,189],[188],[189],[59,188,189,190],[170,187,191],[192]],"referencedMap":[[196,1],[149,2],[151,3],[133,4],[155,5],[156,6],[152,6],[158,7],[153,6],[157,8],[154,9],[140,10],[137,11],[144,12],[138,10],[135,13],[148,14],[142,11],[139,15],[141,16],[67,17],[62,18],[63,19],[64,19],[65,20],[66,20],[61,21],[68,22],[69,22],[71,23],[72,22],[73,22],[74,24],[70,22],[170,25],[78,26],[159,27],[162,28],[164,23],[168,29],[169,30],[199,31],[195,1],[197,32],[198,1],[200,11],[161,33],[205,34],[206,35],[208,36],[209,37],[220,38],[219,39],[223,40],[224,41],[222,42],[225,43],[226,44],[227,45],[228,46],[229,47],[230,48],[231,49],[232,50],[233,51],[234,52],[79,53],[80,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[91,63],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[98,69],[99,70],[100,71],[131,72],[101,73],[102,74],[103,75],[104,76],[105,77],[106,78],[107,79],[108,80],[109,81],[110,82],[111,83],[112,84],[114,85],[113,86],[115,87],[116,88],[118,89],[119,90],[120,91],[121,92],[122,93],[123,94],[124,95],[125,96],[126,97],[127,98],[128,99],[129,100],[237,11],[241,101],[242,11],[267,102],[268,103],[243,104],[246,104],[265,102],[266,102],[256,102],[255,105],[253,102],[248,102],[261,102],[259,102],[263,102],[247,102],[260,102],[264,102],[249,102],[250,102],[262,102],[244,102],[251,102],[252,102],[254,102],[258,102],[269,106],[257,102],[245,102],[282,107],[276,106],[278,108],[277,106],[270,106],[271,106],[273,106],[275,106],[279,108],[280,108],[272,108],[274,108],[284,109],[288,110],[178,111],[180,111],[179,111],[177,111],[187,112],[182,113],[173,111],[174,111],[175,111],[176,111],[215,114],[217,115],[216,114],[214,116],[218,117],[213,118],[190,119],[189,120],[188,121],[191,122],[192,123],[193,124]],"exportedModulesMap":[[196,1],[149,2],[151,3],[133,4],[155,5],[156,6],[152,6],[158,7],[153,6],[157,8],[154,9],[140,10],[137,11],[144,12],[138,10],[135,13],[148,14],[142,11],[139,15],[141,16],[67,17],[62,18],[63,19],[64,19],[65,20],[66,20],[61,21],[68,22],[69,22],[71,23],[72,22],[73,22],[74,24],[70,22],[170,25],[78,26],[159,27],[162,28],[164,23],[168,29],[169,30],[199,31],[195,1],[197,32],[198,1],[200,11],[161,33],[205,34],[206,35],[208,36],[209,37],[220,38],[219,39],[223,40],[224,41],[222,42],[225,43],[226,44],[227,45],[228,46],[229,47],[230,48],[231,49],[232,50],[233,51],[234,52],[79,53],[80,53],[82,54],[83,55],[84,56],[85,57],[86,58],[87,59],[88,60],[89,61],[90,62],[91,63],[92,63],[93,64],[94,65],[95,66],[96,67],[97,68],[98,69],[99,70],[100,71],[131,72],[101,73],[102,74],[103,75],[104,76],[105,77],[106,78],[107,79],[108,80],[109,81],[110,82],[111,83],[112,84],[114,85],[113,86],[115,87],[116,88],[118,89],[119,90],[120,91],[121,92],[122,93],[123,94],[124,95],[125,96],[126,97],[127,98],[128,99],[129,100],[237,11],[241,101],[242,11],[267,102],[268,103],[243,104],[246,104],[265,102],[266,102],[256,102],[255,105],[253,102],[248,102],[261,102],[259,102],[263,102],[247,102],[260,102],[264,102],[249,102],[250,102],[262,102],[244,102],[251,102],[252,102],[254,102],[258,102],[269,106],[257,102],[245,102],[282,107],[276,106],[278,108],[277,106],[270,106],[271,106],[273,106],[275,106],[279,108],[280,108],[272,108],[274,108],[284,109],[288,110],[178,111],[180,111],[179,111],[177,111],[187,112],[182,113],[173,111],[174,111],[175,111],[176,111],[215,114],[217,115],[216,114],[214,116],[218,117],[213,118],[190,119],[189,120],[188,121],[191,122],[192,123],[193,124]],"semanticDiagnosticsPerFile":[196,194,149,132,151,133,150,155,156,152,158,153,157,154,140,137,144,138,135,143,148,145,146,147,142,139,136,141,60,67,62,63,64,65,66,61,68,69,71,72,73,74,75,76,77,70,170,78,159,162,163,164,165,166,167,168,169,199,195,197,198,200,161,201,202,205,203,206,207,208,209,220,219,204,221,223,224,222,225,226,227,228,229,230,231,232,233,234,235,160,79,80,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,81,130,98,99,100,131,101,102,103,104,105,106,107,108,109,110,111,112,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,236,237,238,239,241,240,242,267,268,243,246,265,266,256,255,253,248,261,259,263,247,260,264,249,250,262,244,251,252,254,258,269,257,245,282,281,276,278,277,270,271,273,275,279,280,272,274,284,283,285,286,287,288,134,210,181,178,180,179,177,187,182,186,183,185,184,173,174,175,171,172,176,211,215,217,216,214,218,213,212,43,44,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,59,190,189,188,191,192,193,50,51,52,53,54,55,45,56,57,58,46,47,48,49],"latestChangedDtsFile":"./types/index.d.ts"},"version":"5.0.4"}
@@ -1,7 +1,17 @@
1
- import { BaseController, BaseControllerV1 } from '@metamask/base-controller';
2
1
  import type { ActionConstraint, BaseConfig, BaseState, EventConstraint, RestrictedControllerMessenger, StateConstraint, ControllerStateChangeEvent } from '@metamask/base-controller';
2
+ import { BaseController, BaseControllerV1 } from '@metamask/base-controller';
3
+ import type { PublicInterface } from '@metamask/utils';
3
4
  import type { Patch } from 'immer';
4
5
  export declare const controllerName = "ComposableController";
6
+ export declare const INVALID_CONTROLLER_ERROR = "Invalid controller: controller must have a `messagingSystem` or be a class inheriting from `BaseControllerV1`.";
7
+ /**
8
+ * A universal supertype for the `BaseControllerV1` state object.
9
+ */
10
+ type ConfigConstraintV1 = BaseConfig & object;
11
+ /**
12
+ * A universal supertype for the `BaseControllerV1` state object.
13
+ */
14
+ type StateConstraintV1 = BaseState & object;
5
15
  /**
6
16
  * A universal subtype of all controller instances that extend from `BaseControllerV1`.
7
17
  * Any `BaseControllerV1` instance can be assigned to this type.
@@ -9,7 +19,7 @@ export declare const controllerName = "ComposableController";
9
19
  * Note that this type is not the widest subtype or narrowest supertype of all `BaseControllerV1` instances.
10
20
  * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.
11
21
  */
12
- export type BaseControllerV1Instance = BaseControllerV1<any, any>;
22
+ type BaseControllerV1Instance = PublicInterface<BaseControllerV1<ConfigConstraintV1, StateConstraintV1>>;
13
23
  /**
14
24
  * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`).
15
25
  * Any `BaseController` instance can be assigned to this type.
@@ -19,9 +29,10 @@ export type BaseControllerV1Instance = BaseControllerV1<any, any>;
19
29
  *
20
30
  * For this reason, we only look for `BaseController` properties that we use in the ComposableController (name and state).
21
31
  */
22
- export type BaseControllerInstance = {
32
+ type BaseControllerInstance = {
23
33
  name: string;
24
34
  state: StateConstraint;
35
+ metadata: Record<string, unknown>;
25
36
  };
26
37
  /**
27
38
  * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`) or `BaseControllerV1`.
@@ -30,27 +41,30 @@ export type BaseControllerInstance = {
30
41
  * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` and `BaseControllerV1` instances.
31
42
  * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.
32
43
  */
33
- export type ControllerInstance = BaseControllerV1Instance | BaseControllerInstance;
44
+ type ControllerInstance = BaseControllerV1Instance | BaseControllerInstance;
34
45
  /**
35
46
  * The narrowest supertype of all `RestrictedControllerMessenger` instances.
47
+ *
48
+ * @template ControllerName - Name of the controller.
49
+ * Optionally can be used to narrow the type to a specific controller.
36
50
  */
37
- export type RestrictedControllerMessengerConstraint = RestrictedControllerMessenger<string, ActionConstraint, EventConstraint, string, string>;
51
+ export type RestrictedControllerMessengerConstraint<ControllerName extends string = string> = RestrictedControllerMessenger<ControllerName, ActionConstraint, EventConstraint, string, string>;
38
52
  /**
39
53
  * Determines if the given controller is an instance of `BaseControllerV1`
40
54
  * @param controller - Controller instance to check
41
55
  * @returns True if the controller is an instance of `BaseControllerV1`
42
56
  */
43
- export declare function isBaseControllerV1(controller: ControllerInstance): controller is BaseControllerV1<BaseConfig & Record<string, unknown>, BaseState & Record<string, unknown>>;
57
+ export declare function isBaseControllerV1(controller: ControllerInstance): controller is BaseControllerV1Instance;
44
58
  /**
45
59
  * Determines if the given controller is an instance of `BaseController`
46
60
  * @param controller - Controller instance to check
47
61
  * @returns True if the controller is an instance of `BaseController`
48
62
  */
49
- export declare function isBaseController(controller: ControllerInstance): controller is BaseController<string, StateConstraint, RestrictedControllerMessengerConstraint>;
63
+ export declare function isBaseController(controller: ControllerInstance): controller is BaseControllerInstance;
50
64
  /**
51
65
  * A universal supertype for the controller state object, encompassing both `BaseControllerV1` and `BaseControllerV2` state.
52
66
  */
53
- export type LegacyControllerStateConstraint = BaseState | StateConstraint;
67
+ export type LegacyControllerStateConstraint = StateConstraintV1 | StateConstraint;
54
68
  /**
55
69
  * A universal supertype for the composable controller state object.
56
70
  *
@@ -68,26 +82,52 @@ export type ComposableControllerStateConstraint = {
68
82
  [name: string]: LegacyControllerStateConstraint;
69
83
  };
70
84
  /**
71
- * A controller state change event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.
85
+ * A `stateChange` event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.
72
86
  */
73
- type LegacyControllerStateChangeEvent<ControllerName extends string, ControllerState extends LegacyControllerStateConstraint> = {
87
+ type LegacyControllerStateChangeEvent<ControllerName extends string, ControllerState extends StateConstraintV1> = {
74
88
  type: `${ControllerName}:stateChange`;
75
89
  payload: [ControllerState, Patch[]];
76
90
  };
91
+ /**
92
+ * The `stateChange` event type for the {@link ComposableControllerMessenger}.
93
+ *
94
+ * @template ComposableControllerState - A type object that maps controller names to their state types.
95
+ */
77
96
  export type ComposableControllerStateChangeEvent<ComposableControllerState extends ComposableControllerStateConstraint> = LegacyControllerStateChangeEvent<typeof controllerName, ComposableControllerState>;
97
+ /**
98
+ * A union type of internal event types available to the {@link ComposableControllerMessenger}.
99
+ *
100
+ * @template ComposableControllerState - A type object that maps controller names to their state types.
101
+ */
78
102
  export type ComposableControllerEvents<ComposableControllerState extends ComposableControllerStateConstraint> = ComposableControllerStateChangeEvent<ComposableControllerState>;
79
- type ChildControllerStateChangeEvents<ComposableControllerState extends ComposableControllerStateConstraint> = ComposableControllerState extends Record<infer ControllerName extends string, infer ControllerState> ? ControllerState extends StateConstraint ? ControllerStateChangeEvent<ControllerName, ControllerState> : ControllerState extends Record<string, unknown> ? LegacyControllerStateChangeEvent<ControllerName, ControllerState> : never : never;
103
+ /**
104
+ * A utility type that extracts controllers from the {@link ComposableControllerState} type,
105
+ * and derives a union type of all of their corresponding `stateChange` events.
106
+ *
107
+ * This type can handle both `BaseController` and `BaseControllerV1` controller instances.
108
+ *
109
+ * @template ComposableControllerState - A type object that maps controller names to their state types.
110
+ */
111
+ export type ChildControllerStateChangeEvents<ComposableControllerState extends ComposableControllerStateConstraint> = ComposableControllerState extends Record<infer ControllerName extends string, infer ControllerState> ? ControllerState extends StateConstraint ? ControllerStateChangeEvent<ControllerName, ControllerState> : ControllerState extends StateConstraintV1 ? LegacyControllerStateChangeEvent<ControllerName, ControllerState> : never : never;
112
+ /**
113
+ * A union type of external event types available to the {@link ComposableControllerMessenger}.
114
+ *
115
+ * @template ComposableControllerState - A type object that maps controller names to their state types.
116
+ */
80
117
  type AllowedEvents<ComposableControllerState extends ComposableControllerStateConstraint> = ChildControllerStateChangeEvents<ComposableControllerState>;
118
+ /**
119
+ * The messenger of the {@link ComposableController}.
120
+ *
121
+ * @template ComposableControllerState - A type object that maps controller names to their state types.
122
+ */
81
123
  export type ComposableControllerMessenger<ComposableControllerState extends ComposableControllerStateConstraint> = RestrictedControllerMessenger<typeof controllerName, never, ComposableControllerEvents<ComposableControllerState> | AllowedEvents<ComposableControllerState>, never, AllowedEvents<ComposableControllerState>['type']>;
82
- type GetChildControllers<ComposableControllerState, ControllerName extends keyof ComposableControllerState = keyof ComposableControllerState> = ControllerName extends string ? ComposableControllerState[ControllerName] extends StateConstraint ? {
83
- name: ControllerName;
84
- state: ComposableControllerState[ControllerName];
85
- } : BaseControllerV1<BaseConfig & Record<string, unknown>, BaseState & ComposableControllerState[ControllerName]> : never;
86
124
  /**
87
- * Controller that can be used to compose multiple controllers together.
88
- * @template ChildControllerState - The composed state of the child controllers that are being used to instantiate the composable controller.
125
+ * Controller that composes multiple child controllers and maintains up-to-date composed state.
126
+ *
127
+ * @template ComposableControllerState - A type object containing the names and state types of the child controllers.
128
+ * @template ChildControllers - A union type of the child controllers being used to instantiate the {@link ComposableController}.
89
129
  */
90
- export declare class ComposableController<ComposableControllerState extends LegacyComposableControllerStateConstraint, ChildControllers extends ControllerInstance = GetChildControllers<ComposableControllerState>> extends BaseController<typeof controllerName, ComposableControllerState, ComposableControllerMessenger<ComposableControllerState>> {
130
+ export declare class ComposableController<ComposableControllerState extends LegacyComposableControllerStateConstraint, ChildControllers extends ControllerInstance> extends BaseController<typeof controllerName, ComposableControllerState, ComposableControllerMessenger<ComposableControllerState>> {
91
131
  #private;
92
132
  /**
93
133
  * Creates a ComposableController instance.
@@ -1 +1 @@
1
- {"version":3,"file":"ComposableController.d.ts","sourceRoot":"","sources":["../../src/ComposableController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,6BAA6B,EAC7B,eAAe,EAEf,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAGlC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7B;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,uCAAuC,GACjD,6BAA6B,CAC3B,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,MAAM,CACP,CAAC;AAEJ;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kBAAkB,GAC7B,UAAU,IAAI,gBAAgB,CAC/B,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACpC,CAYA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,GAC7B,UAAU,IAAI,cAAc,CAC7B,MAAM,EACN,eAAe,EACf,uCAAuC,CACxC,CAQA;AAED;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,eAAe,CAAC;AAE1E;;;;;GAKG;AAEH,KAAK,yCAAyC,GAAG;IAI/C,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC,CAAC;AAEF;;;GAGG;AAEH,MAAM,MAAM,mCAAmC,GAAG;IAChD,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B,CAAC;CACjD,CAAC;AAEF;;GAEG;AAEH,KAAK,gCAAgC,CACnC,cAAc,SAAS,MAAM,EAC7B,eAAe,SAAS,+BAA+B,IACrD;IACF,IAAI,EAAE,GAAG,cAAc,cAAc,CAAC;IACtC,OAAO,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,oCAAoC,CAC9C,yBAAyB,SAAS,mCAAmC,IACnE,gCAAgC,CAClC,OAAO,cAAc,EACrB,yBAAyB,CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,yBAAyB,SAAS,mCAAmC,IACnE,oCAAoC,CAAC,yBAAyB,CAAC,CAAC;AAEpE,KAAK,gCAAgC,CACnC,yBAAyB,SAAS,mCAAmC,IACnE,yBAAyB,SAAS,MAAM,CAC1C,MAAM,cAAc,SAAS,MAAM,EACnC,MAAM,eAAe,CACtB,GACG,eAAe,SAAS,eAAe,GACrC,0BAA0B,CAAC,cAAc,EAAE,eAAe,CAAC,GAC3D,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,gCAAgC,CAAC,cAAc,EAAE,eAAe,CAAC,GACjE,KAAK,GACP,KAAK,CAAC;AAEV,KAAK,aAAa,CAChB,yBAAyB,SAAS,mCAAmC,IACnE,gCAAgC,CAAC,yBAAyB,CAAC,CAAC;AAEhE,MAAM,MAAM,6BAA6B,CACvC,yBAAyB,SAAS,mCAAmC,IACnE,6BAA6B,CAC/B,OAAO,cAAc,EACrB,KAAK,EACH,0BAA0B,CAAC,yBAAyB,CAAC,GACrD,aAAa,CAAC,yBAAyB,CAAC,EAC1C,KAAK,EACL,aAAa,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CACjD,CAAC;AAEF,KAAK,mBAAmB,CACtB,yBAAyB,EACzB,cAAc,SAAS,MAAM,yBAAyB,GAAG,MAAM,yBAAyB,IACtF,cAAc,SAAS,MAAM,GAC7B,yBAAyB,CAAC,cAAc,CAAC,SAAS,eAAe,GAC/D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,yBAAyB,CAAC,cAAc,CAAC,CAAA;CAAE,GAC1E,gBAAgB,CACd,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,GAAG,yBAAyB,CAAC,cAAc,CAAC,CACtD,GACH,KAAK,CAAC;AAEV;;;GAGG;AACH,qBAAa,oBAAoB,CAC/B,yBAAyB,SAAS,yCAAyC,EAC3E,gBAAgB,SAAS,kBAAkB,GAAG,mBAAmB,CAAC,yBAAyB,CAAC,CAC5F,SAAQ,cAAc,CACtB,OAAO,cAAc,EACrB,yBAAyB,EACzB,6BAA6B,CAAC,yBAAyB,CAAC,CACzD;;IACC;;;;;;OAMG;gBAES,EACV,WAAW,EACX,SAAS,GACV,EAAE;QACD,WAAW,EAAE,gBAAgB,EAAE,CAAC;QAChC,SAAS,EAAE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;KACrE;CAgEF;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"ComposableController.d.ts","sourceRoot":"","sources":["../../src/ComposableController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,6BAA6B,EAC7B,eAAe,EAEf,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,eAAO,MAAM,cAAc,yBAAyB,CAAC;AAErD,eAAO,MAAM,wBAAwB,mHAC6E,CAAC;AAEnH;;GAEG;AACH,KAAK,kBAAkB,GAAG,UAAU,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,KAAK,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5C;;;;;;GAMG;AACH,KAAK,wBAAwB,GAAG,eAAe,CAC7C,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CACxD,CAAC;AAEF;;;;;;;;GAQG;AACH,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,kBAAkB,GAAG,wBAAwB,GAAG,sBAAsB,CAAC;AAE5E;;;;;GAKG;AACH,MAAM,MAAM,uCAAuC,CACjD,cAAc,SAAS,MAAM,GAAG,MAAM,IACpC,6BAA6B,CAC/B,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,MAAM,CACP,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,kBAAkB,GAC7B,UAAU,IAAI,wBAAwB,CAkBxC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,GAC7B,UAAU,IAAI,sBAAsB,CAUtC;AAED;;GAEG;AACH,MAAM,MAAM,+BAA+B,GACvC,iBAAiB,GACjB,eAAe,CAAC;AAEpB;;;;;GAKG;AAEH,KAAK,yCAAyC,GAAG;IAI/C,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC,CAAC;AAEF;;;GAGG;AAEH,MAAM,MAAM,mCAAmC,GAAG;IAChD,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B,CAAC;CACjD,CAAC;AAEF;;GAEG;AAEH,KAAK,gCAAgC,CACnC,cAAc,SAAS,MAAM,EAC7B,eAAe,SAAS,iBAAiB,IACvC;IACF,IAAI,EAAE,GAAG,cAAc,cAAc,CAAC;IACtC,OAAO,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oCAAoC,CAC9C,yBAAyB,SAAS,mCAAmC,IACnE,gCAAgC,CAClC,OAAO,cAAc,EACrB,yBAAyB,CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,CACpC,yBAAyB,SAAS,mCAAmC,IACnE,oCAAoC,CAAC,yBAAyB,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,MAAM,gCAAgC,CAC1C,yBAAyB,SAAS,mCAAmC,IACnE,yBAAyB,SAAS,MAAM,CAC1C,MAAM,cAAc,SAAS,MAAM,EACnC,MAAM,eAAe,CACtB,GACG,eAAe,SAAS,eAAe,GACrC,0BAA0B,CAAC,cAAc,EAAE,eAAe,CAAC,GAE7D,eAAe,SAAS,iBAAiB,GACvC,gCAAgC,CAAC,cAAc,EAAE,eAAe,CAAC,GACjE,KAAK,GACP,KAAK,CAAC;AAEV;;;;GAIG;AACH,KAAK,aAAa,CAChB,yBAAyB,SAAS,mCAAmC,IACnE,gCAAgC,CAAC,yBAAyB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,CACvC,yBAAyB,SAAS,mCAAmC,IACnE,6BAA6B,CAC/B,OAAO,cAAc,EACrB,KAAK,EACH,0BAA0B,CAAC,yBAAyB,CAAC,GACrD,aAAa,CAAC,yBAAyB,CAAC,EAC1C,KAAK,EACL,aAAa,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,CACjD,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,oBAAoB,CAC/B,yBAAyB,SAAS,yCAAyC,EAC3E,gBAAgB,SAAS,kBAAkB,CAC3C,SAAQ,cAAc,CACtB,OAAO,cAAc,EACrB,yBAAyB,EACzB,6BAA6B,CAAC,yBAAyB,CAAC,CACzD;;IACC;;;;;;OAMG;gBAES,EACV,WAAW,EACX,SAAS,GACV,EAAE;QACD,WAAW,EAAE,gBAAgB,EAAE,CAAC;QAChC,SAAS,EAAE,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;KACrE;CA6DF;AAED,eAAe,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/composable-controller",
3
- "version": "7.0.0-preview-aaea6b5",
3
+ "version": "7.0.0-preview-c50d4e85",
4
4
  "description": "Consolidates the state from multiple controllers into one",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -46,6 +46,7 @@
46
46
  "devDependencies": {
47
47
  "@metamask/auto-changelog": "^3.4.4",
48
48
  "@metamask/json-rpc-engine": "^9.0.2",
49
+ "@metamask/utils": "^9.1.0",
49
50
  "@types/jest": "^27.4.1",
50
51
  "deepmerge": "^4.2.2",
51
52
  "immer": "^9.0.6",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ComposableController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB,wBAAwB;AAa1C,IAAM,iBAAiB;AAwDvB,SAAS,mBACd,YAIA;AACA,SACE,UAAU,cACV,OAAO,WAAW,SAAS,YAC3B,mBAAmB,cACnB,OAAO,WAAW,kBAAkB,YACpC,kBAAkB,cAClB,OAAO,WAAW,iBAAiB,YACnC,cAAc,cACd,OAAO,WAAW,aAAa,aAC/B,sBAAsB;AAE1B;AAOO,SAAS,iBACd,YAKA;AACA,SACE,UAAU,cACV,OAAO,WAAW,SAAS,YAC3B,WAAW,cACX,OAAO,WAAW,UAAU,YAC5B,sBAAsB;AAE1B;AA3GA;AA4MO,IAAM,uBAAN,cAGG,eAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF,GAGG;AACD,QAAI,cAAc,QAAW;AAC3B,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,QACpB,CAAC,UAAU,gBAAgB;AAAA,UACzB,GAAG;AAAA,UACH,CAAC,WAAW,IAAI,GAAG,iBAAiB,UAAU,IAC1C,WAAW,WACX,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,QACvC;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA,OAAO,YAAY;AAAA,QACjB,CAAC,OAAO,eAAe;AACrB,iBAAO,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,WAAW,MAAM;AAAA,QACzD;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAWH;AAAA;AAAA;AAAA;AAAA;AATE,gBAAY;AAAA,MAAQ,CAAC,eACnB,sBAAK,kDAAL,WAA4B;AAAA,IAC9B;AAAA,EACF;AAoCF;AA9BE;AAAA,2BAAsB,SAAC,YAAsC;AAC3D,MAAI,CAAC,iBAAiB,UAAU,KAAK,CAAC,mBAAmB,UAAU,GAAG;AACpE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,KAAK,IAAI;AACjB,MACG,mBAAmB,UAAU,KAAK,qBAAqB,cACxD,iBAAiB,UAAU,GAC3B;AACA,SAAK,gBAAgB;AAAA;AAAA;AAAA,MAGnB,GAAG,IAAI;AAAA,MACP,CAAC,eAAwC;AACvC,aAAK,OAAO,CAAC,UAAU;AACrB,iBAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,WAAW,mBAAmB,UAAU,GAAG;AACzC,eAAW,UAAU,CAAC,eAAe;AACnC,WAAK,OAAO,CAAC,UAAU;AACrB,eAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAGF,IAAO,+BAAQ","sourcesContent":["import { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type {\n ActionConstraint,\n BaseConfig,\n BaseState,\n EventConstraint,\n RestrictedControllerMessenger,\n StateConstraint,\n StateMetadata,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { Patch } from 'immer';\n\nexport const controllerName = 'ComposableController';\n\n/**\n * A universal subtype of all controller instances that extend from `BaseControllerV1`.\n * Any `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\nexport type BaseControllerV1Instance =\n // `any` is used so that all `BaseControllerV1` instances are assignable to this type.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n BaseControllerV1<any, any>;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`).\n * Any `BaseController` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n *\n * For this reason, we only look for `BaseController` properties that we use in the ComposableController (name and state).\n */\nexport type BaseControllerInstance = {\n name: string;\n state: StateConstraint;\n};\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`) or `BaseControllerV1`.\n * Any `BaseController` or `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` and `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\nexport type ControllerInstance =\n | BaseControllerV1Instance\n | BaseControllerInstance;\n\n/**\n * The narrowest supertype of all `RestrictedControllerMessenger` instances.\n */\nexport type RestrictedControllerMessengerConstraint =\n RestrictedControllerMessenger<\n string,\n ActionConstraint,\n EventConstraint,\n string,\n string\n >;\n\n/**\n * Determines if the given controller is an instance of `BaseControllerV1`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseControllerV1`\n */\nexport function isBaseControllerV1(\n controller: ControllerInstance,\n): controller is BaseControllerV1<\n BaseConfig & Record<string, unknown>,\n BaseState & Record<string, unknown>\n> {\n return (\n 'name' in controller &&\n typeof controller.name === 'string' &&\n 'defaultConfig' in controller &&\n typeof controller.defaultConfig === 'object' &&\n 'defaultState' in controller &&\n typeof controller.defaultState === 'object' &&\n 'disabled' in controller &&\n typeof controller.disabled === 'boolean' &&\n controller instanceof BaseControllerV1\n );\n}\n\n/**\n * Determines if the given controller is an instance of `BaseController`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseController`\n */\nexport function isBaseController(\n controller: ControllerInstance,\n): controller is BaseController<\n string,\n StateConstraint,\n RestrictedControllerMessengerConstraint\n> {\n return (\n 'name' in controller &&\n typeof controller.name === 'string' &&\n 'state' in controller &&\n typeof controller.state === 'object' &&\n controller instanceof BaseController\n );\n}\n\n/**\n * A universal supertype for the controller state object, encompassing both `BaseControllerV1` and `BaseControllerV2` state.\n */\nexport type LegacyControllerStateConstraint = BaseState | StateConstraint;\n\n/**\n * A universal supertype for the composable controller state object.\n *\n * This type is only intended to be used for disabling the generic constraint on the `ControllerState` type argument in the `BaseController` type as a temporary solution for ensuring compatibility with BaseControllerV1 child controllers.\n * Note that it is unsuitable for general use as a type constraint.\n */\n// TODO: Replace with `ComposableControllerStateConstraint` once BaseControllerV2 migrations are completed for all controllers.\ntype LegacyComposableControllerStateConstraint = {\n // `any` is used here to disable the generic constraint on the `ControllerState` type argument in the `BaseController` type,\n // enabling composable controller state types with BaseControllerV1 state objects to be.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: Record<string, any>;\n};\n\n/**\n * The narrowest supertype for the composable controller state object.\n * This is also a widest subtype of the 'LegacyComposableControllerStateConstraint' type.\n */\n// TODO: Replace with `{ [name: string]: StateConstraint }` once BaseControllerV2 migrations are completed for all controllers.\nexport type ComposableControllerStateConstraint = {\n [name: string]: LegacyControllerStateConstraint;\n};\n\n/**\n * A controller state change event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.\n */\n// TODO: Replace all instances with `ControllerStateChangeEvent` once `BaseControllerV2` migrations are completed for all controllers.\ntype LegacyControllerStateChangeEvent<\n ControllerName extends string,\n ControllerState extends LegacyControllerStateConstraint,\n> = {\n type: `${ControllerName}:stateChange`;\n payload: [ControllerState, Patch[]];\n};\n\nexport type ComposableControllerStateChangeEvent<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = LegacyControllerStateChangeEvent<\n typeof controllerName,\n ComposableControllerState\n>;\n\nexport type ComposableControllerEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerStateChangeEvent<ComposableControllerState>;\n\ntype ChildControllerStateChangeEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerState extends Record<\n infer ControllerName extends string,\n infer ControllerState\n>\n ? ControllerState extends StateConstraint\n ? ControllerStateChangeEvent<ControllerName, ControllerState>\n : ControllerState extends Record<string, unknown>\n ? LegacyControllerStateChangeEvent<ControllerName, ControllerState>\n : never\n : never;\n\ntype AllowedEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ChildControllerStateChangeEvents<ComposableControllerState>;\n\nexport type ComposableControllerMessenger<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = RestrictedControllerMessenger<\n typeof controllerName,\n never,\n | ComposableControllerEvents<ComposableControllerState>\n | AllowedEvents<ComposableControllerState>,\n never,\n AllowedEvents<ComposableControllerState>['type']\n>;\n\ntype GetChildControllers<\n ComposableControllerState,\n ControllerName extends keyof ComposableControllerState = keyof ComposableControllerState,\n> = ControllerName extends string\n ? ComposableControllerState[ControllerName] extends StateConstraint\n ? { name: ControllerName; state: ComposableControllerState[ControllerName] }\n : BaseControllerV1<\n BaseConfig & Record<string, unknown>,\n BaseState & ComposableControllerState[ControllerName]\n >\n : never;\n\n/**\n * Controller that can be used to compose multiple controllers together.\n * @template ChildControllerState - The composed state of the child controllers that are being used to instantiate the composable controller.\n */\nexport class ComposableController<\n ComposableControllerState extends LegacyComposableControllerStateConstraint,\n ChildControllers extends ControllerInstance = GetChildControllers<ComposableControllerState>,\n> extends BaseController<\n typeof controllerName,\n ComposableControllerState,\n ComposableControllerMessenger<ComposableControllerState>\n> {\n /**\n * Creates a ComposableController instance.\n *\n * @param options - Initial options used to configure this controller\n * @param options.controllers - List of child controller instances to compose.\n * @param options.messenger - A restricted controller messenger.\n */\n\n constructor({\n controllers,\n messenger,\n }: {\n controllers: ChildControllers[];\n messenger: ComposableControllerMessenger<ComposableControllerState>;\n }) {\n if (messenger === undefined) {\n throw new Error(`Messaging system is required`);\n }\n\n super({\n name: controllerName,\n metadata: controllers.reduce<StateMetadata<ComposableControllerState>>(\n (metadata, controller) => ({\n ...metadata,\n [controller.name]: isBaseController(controller)\n ? controller.metadata\n : { persist: true, anonymous: true },\n }),\n {} as never,\n ),\n state: controllers.reduce<ComposableControllerState>(\n (state, controller) => {\n return { ...state, [controller.name]: controller.state };\n },\n {} as never,\n ),\n messenger,\n });\n\n controllers.forEach((controller) =>\n this.#updateChildController(controller),\n );\n }\n\n /**\n * Constructor helper that subscribes to child controller state changes.\n * @param controller - Controller instance to update\n */\n #updateChildController(controller: ControllerInstance): void {\n if (!isBaseController(controller) && !isBaseControllerV1(controller)) {\n throw new Error(\n 'Invalid controller: controller must extend from BaseController or BaseControllerV1',\n );\n }\n\n const { name } = controller;\n if (\n (isBaseControllerV1(controller) && 'messagingSystem' in controller) ||\n isBaseController(controller)\n ) {\n this.messagingSystem.subscribe(\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `${name}:stateChange`,\n (childState: Record<string, unknown>) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n },\n );\n } else if (isBaseControllerV1(controller)) {\n controller.subscribe((childState) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n });\n }\n }\n}\n\nexport default ComposableController;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ComposableController.ts"],"sourcesContent":["import { BaseController, BaseControllerV1 } from '@metamask/base-controller';\nimport type {\n ActionConstraint,\n BaseConfig,\n BaseState,\n EventConstraint,\n RestrictedControllerMessenger,\n StateConstraint,\n StateMetadata,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type { Patch } from 'immer';\n\nexport const controllerName = 'ComposableController';\n\n/**\n * A universal subtype of all controller instances that extend from `BaseControllerV1`.\n * Any `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\nexport type BaseControllerV1Instance =\n // `any` is used so that all `BaseControllerV1` instances are assignable to this type.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n BaseControllerV1<any, any>;\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`).\n * Any `BaseController` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n *\n * For this reason, we only look for `BaseController` properties that we use in the ComposableController (name and state).\n */\nexport type BaseControllerInstance = {\n name: string;\n state: StateConstraint;\n};\n\n/**\n * A universal subtype of all controller instances that extend from `BaseController` (formerly `BaseControllerV2`) or `BaseControllerV1`.\n * Any `BaseController` or `BaseControllerV1` instance can be assigned to this type.\n *\n * Note that this type is not the widest subtype or narrowest supertype of all `BaseController` and `BaseControllerV1` instances.\n * This type is therefore unsuitable for general use as a type constraint, and is only intended for use within the ComposableController.\n */\nexport type ControllerInstance =\n | BaseControllerV1Instance\n | BaseControllerInstance;\n\n/**\n * The narrowest supertype of all `RestrictedControllerMessenger` instances.\n */\nexport type RestrictedControllerMessengerConstraint =\n RestrictedControllerMessenger<\n string,\n ActionConstraint,\n EventConstraint,\n string,\n string\n >;\n\n/**\n * Determines if the given controller is an instance of `BaseControllerV1`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseControllerV1`\n */\nexport function isBaseControllerV1(\n controller: ControllerInstance,\n): controller is BaseControllerV1<\n BaseConfig & Record<string, unknown>,\n BaseState & Record<string, unknown>\n> {\n return (\n 'name' in controller &&\n typeof controller.name === 'string' &&\n 'defaultConfig' in controller &&\n typeof controller.defaultConfig === 'object' &&\n 'defaultState' in controller &&\n typeof controller.defaultState === 'object' &&\n 'disabled' in controller &&\n typeof controller.disabled === 'boolean' &&\n controller instanceof BaseControllerV1\n );\n}\n\n/**\n * Determines if the given controller is an instance of `BaseController`\n * @param controller - Controller instance to check\n * @returns True if the controller is an instance of `BaseController`\n */\nexport function isBaseController(\n controller: ControllerInstance,\n): controller is BaseController<\n string,\n StateConstraint,\n RestrictedControllerMessengerConstraint\n> {\n return (\n 'name' in controller &&\n typeof controller.name === 'string' &&\n 'state' in controller &&\n typeof controller.state === 'object' &&\n controller instanceof BaseController\n );\n}\n\n/**\n * A universal supertype for the controller state object, encompassing both `BaseControllerV1` and `BaseControllerV2` state.\n */\nexport type LegacyControllerStateConstraint = BaseState | StateConstraint;\n\n/**\n * A universal supertype for the composable controller state object.\n *\n * This type is only intended to be used for disabling the generic constraint on the `ControllerState` type argument in the `BaseController` type as a temporary solution for ensuring compatibility with BaseControllerV1 child controllers.\n * Note that it is unsuitable for general use as a type constraint.\n */\n// TODO: Replace with `ComposableControllerStateConstraint` once BaseControllerV2 migrations are completed for all controllers.\ntype LegacyComposableControllerStateConstraint = {\n // `any` is used here to disable the generic constraint on the `ControllerState` type argument in the `BaseController` type,\n // enabling composable controller state types with BaseControllerV1 state objects to be.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: Record<string, any>;\n};\n\n/**\n * The narrowest supertype for the composable controller state object.\n * This is also a widest subtype of the 'LegacyComposableControllerStateConstraint' type.\n */\n// TODO: Replace with `{ [name: string]: StateConstraint }` once BaseControllerV2 migrations are completed for all controllers.\nexport type ComposableControllerStateConstraint = {\n [name: string]: LegacyControllerStateConstraint;\n};\n\n/**\n * A controller state change event for any controller instance that extends from either `BaseControllerV1` or `BaseControllerV2`.\n */\n// TODO: Replace all instances with `ControllerStateChangeEvent` once `BaseControllerV2` migrations are completed for all controllers.\ntype LegacyControllerStateChangeEvent<\n ControllerName extends string,\n ControllerState extends LegacyControllerStateConstraint,\n> = {\n type: `${ControllerName}:stateChange`;\n payload: [ControllerState, Patch[]];\n};\n\nexport type ComposableControllerStateChangeEvent<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = LegacyControllerStateChangeEvent<\n typeof controllerName,\n ComposableControllerState\n>;\n\nexport type ComposableControllerEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerStateChangeEvent<ComposableControllerState>;\n\ntype ChildControllerStateChangeEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ComposableControllerState extends Record<\n infer ControllerName extends string,\n infer ControllerState\n>\n ? ControllerState extends StateConstraint\n ? ControllerStateChangeEvent<ControllerName, ControllerState>\n : ControllerState extends Record<string, unknown>\n ? LegacyControllerStateChangeEvent<ControllerName, ControllerState>\n : never\n : never;\n\ntype AllowedEvents<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = ChildControllerStateChangeEvents<ComposableControllerState>;\n\nexport type ComposableControllerMessenger<\n ComposableControllerState extends ComposableControllerStateConstraint,\n> = RestrictedControllerMessenger<\n typeof controllerName,\n never,\n | ComposableControllerEvents<ComposableControllerState>\n | AllowedEvents<ComposableControllerState>,\n never,\n AllowedEvents<ComposableControllerState>['type']\n>;\n\ntype GetChildControllers<\n ComposableControllerState,\n ControllerName extends keyof ComposableControllerState = keyof ComposableControllerState,\n> = ControllerName extends string\n ? ComposableControllerState[ControllerName] extends StateConstraint\n ? { name: ControllerName; state: ComposableControllerState[ControllerName] }\n : BaseControllerV1<\n BaseConfig & Record<string, unknown>,\n BaseState & ComposableControllerState[ControllerName]\n >\n : never;\n\n/**\n * Controller that can be used to compose multiple controllers together.\n * @template ChildControllerState - The composed state of the child controllers that are being used to instantiate the composable controller.\n */\nexport class ComposableController<\n ComposableControllerState extends LegacyComposableControllerStateConstraint,\n ChildControllers extends ControllerInstance = GetChildControllers<ComposableControllerState>,\n> extends BaseController<\n typeof controllerName,\n ComposableControllerState,\n ComposableControllerMessenger<ComposableControllerState>\n> {\n /**\n * Creates a ComposableController instance.\n *\n * @param options - Initial options used to configure this controller\n * @param options.controllers - List of child controller instances to compose.\n * @param options.messenger - A restricted controller messenger.\n */\n\n constructor({\n controllers,\n messenger,\n }: {\n controllers: ChildControllers[];\n messenger: ComposableControllerMessenger<ComposableControllerState>;\n }) {\n if (messenger === undefined) {\n throw new Error(`Messaging system is required`);\n }\n\n super({\n name: controllerName,\n metadata: controllers.reduce<StateMetadata<ComposableControllerState>>(\n (metadata, controller) => ({\n ...metadata,\n [controller.name]: isBaseController(controller)\n ? controller.metadata\n : { persist: true, anonymous: true },\n }),\n {} as never,\n ),\n state: controllers.reduce<ComposableControllerState>(\n (state, controller) => {\n return { ...state, [controller.name]: controller.state };\n },\n {} as never,\n ),\n messenger,\n });\n\n controllers.forEach((controller) =>\n this.#updateChildController(controller),\n );\n }\n\n /**\n * Constructor helper that subscribes to child controller state changes.\n * @param controller - Controller instance to update\n */\n #updateChildController(controller: ControllerInstance): void {\n if (!isBaseController(controller) && !isBaseControllerV1(controller)) {\n throw new Error(\n 'Invalid controller: controller must extend from BaseController or BaseControllerV1',\n );\n }\n\n const { name } = controller;\n if (\n (isBaseControllerV1(controller) && 'messagingSystem' in controller) ||\n isBaseController(controller)\n ) {\n this.messagingSystem.subscribe(\n // TODO: Either fix this lint violation or explain why it's necessary to ignore.\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n `${name}:stateChange`,\n (childState: Record<string, unknown>) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n },\n );\n } else if (isBaseControllerV1(controller)) {\n controller.subscribe((childState) => {\n this.update((state) => {\n Object.assign(state, { [name]: childState });\n });\n });\n }\n }\n}\n\nexport default ComposableController;\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAS,gBAAgB,wBAAwB;AAa1C,IAAM,iBAAiB;AAwDvB,SAAS,mBACd,YAIA;AACA,SACE,UAAU,cACV,OAAO,WAAW,SAAS,YAC3B,mBAAmB,cACnB,OAAO,WAAW,kBAAkB,YACpC,kBAAkB,cAClB,OAAO,WAAW,iBAAiB,YACnC,cAAc,cACd,OAAO,WAAW,aAAa,aAC/B,sBAAsB;AAE1B;AAOO,SAAS,iBACd,YAKA;AACA,SACE,UAAU,cACV,OAAO,WAAW,SAAS,YAC3B,WAAW,cACX,OAAO,WAAW,UAAU,YAC5B,sBAAsB;AAE1B;AA3GA;AA4MO,IAAM,uBAAN,cAGG,eAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF,GAGG;AACD,QAAI,cAAc,QAAW;AAC3B,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,QACpB,CAAC,UAAU,gBAAgB;AAAA,UACzB,GAAG;AAAA,UACH,CAAC,WAAW,IAAI,GAAG,iBAAiB,UAAU,IAC1C,WAAW,WACX,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,QACvC;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA,OAAO,YAAY;AAAA,QACjB,CAAC,OAAO,eAAe;AACrB,iBAAO,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,GAAG,WAAW,MAAM;AAAA,QACzD;AAAA,QACA,CAAC;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AAWH;AAAA;AAAA;AAAA;AAAA;AATE,gBAAY;AAAA,MAAQ,CAAC,eACnB,sBAAK,kDAAL,WAA4B;AAAA,IAC9B;AAAA,EACF;AAoCF;AA9BE;AAAA,2BAAsB,SAAC,YAAsC;AAC3D,MAAI,CAAC,iBAAiB,UAAU,KAAK,CAAC,mBAAmB,UAAU,GAAG;AACpE,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,EAAE,KAAK,IAAI;AACjB,MACG,mBAAmB,UAAU,KAAK,qBAAqB,cACxD,iBAAiB,UAAU,GAC3B;AACA,SAAK,gBAAgB;AAAA;AAAA;AAAA,MAGnB,GAAG,IAAI;AAAA,MACP,CAAC,eAAwC;AACvC,aAAK,OAAO,CAAC,UAAU;AACrB,iBAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,QAC7C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,WAAW,mBAAmB,UAAU,GAAG;AACzC,eAAW,UAAU,CAAC,eAAe;AACnC,WAAK,OAAO,CAAC,UAAU;AACrB,eAAO,OAAO,OAAO,EAAE,CAAC,IAAI,GAAG,WAAW,CAAC;AAAA,MAC7C,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AAGF,IAAO,+BAAQ;","names":[]}