@metamask-previews/snap-networks-utils 1.0.0-preview-2aa5deb → 1.0.0-preview-57b1c19b

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.
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _AssetsProvider_messenger;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.AssetsProvider = exports.ASSETS_PROVIDER_NAME = void 0;
16
4
  /**
@@ -18,9 +6,9 @@ exports.AssetsProvider = exports.ASSETS_PROVIDER_NAME = void 0;
18
6
  */
19
7
  exports.ASSETS_PROVIDER_NAME = 'AssetsProvider';
20
8
  class AssetsProvider {
9
+ #messenger;
21
10
  constructor({ messenger }) {
22
- _AssetsProvider_messenger.set(this, void 0);
23
- __classPrivateFieldSet(this, _AssetsProvider_messenger, messenger, "f");
11
+ this.#messenger = messenger;
24
12
  }
25
13
  /**
26
14
  * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.
@@ -30,7 +18,7 @@ class AssetsProvider {
30
18
  * @returns Controller asset, or `undefined`.
31
19
  */
32
20
  async getAccountAssetByID(accountId, assetId) {
33
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetByID', accountId, assetId);
21
+ return this.#messenger.call('AssetsController:getAccountAssetByID', accountId, assetId);
34
22
  }
35
23
  /**
36
24
  * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.
@@ -40,7 +28,7 @@ class AssetsProvider {
40
28
  * @returns Map of asset ID → controller asset.
41
29
  */
42
30
  async getAccountAssetsByIDs(accountId, assetIds) {
43
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetsByIDs', accountId, assetIds);
31
+ return this.#messenger.call('AssetsController:getAccountAssetsByIDs', accountId, assetIds);
44
32
  }
45
33
  /**
46
34
  * Returns controller-backed assets for an account on a chain.
@@ -50,9 +38,8 @@ class AssetsProvider {
50
38
  * @returns Controller assets keyed by CAIP-19 asset ID.
51
39
  */
52
40
  async getAccountAssetsByScope(scope, accountId) {
53
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetsByScope', accountId, scope);
41
+ return this.#messenger.call('AssetsController:getAccountAssetsByScope', accountId, scope);
54
42
  }
55
43
  }
56
44
  exports.AssetsProvider = AssetsProvider;
57
- _AssetsProvider_messenger = new WeakMap();
58
45
  //# sourceMappingURL=AssetsProvider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsProvider.cjs","sourceRoot":"","sources":["../../../src/providers/assets/AssetsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAWA;;GAEG;AACU,QAAA,oBAAoB,GAAG,gBAAyB,CAAC;AAiB9D,MAAa,cAAc;IAGzB,YAAY,EAAE,SAAS,EAA0C;QAFxD,4CAAoC;QAG3C,uBAAA,IAAI,6BAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAoB,EACpB,OAAsB;QAEtB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,sCAAsC,EACtC,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAoB,EACpB,QAAyB;QAIzB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,wCAAwC,EACxC,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAkB,EAClB,SAAoB;QAIpB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,0CAA0C,EAC1C,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAhED,wCAgEC","sourcesContent":["import type {\n AccountId,\n AssetsControllerGetAccountAssetByIDAction,\n AssetsControllerGetAccountAssetsByIDsAction,\n AssetsControllerGetAccountAssetsByScopeAction,\n Caip19AssetId,\n} from '@metamask/assets-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\n/**\n * Namespace for the {@link AssetsProvider} messenger.\n */\nexport const ASSETS_PROVIDER_NAME = 'AssetsProvider' as const;\n\n/**\n * Actions from other messengers that {@link AssetsProvider} calls.\n */\nexport type AssetsProviderAllowedActions =\n | AssetsControllerGetAccountAssetByIDAction\n | AssetsControllerGetAccountAssetsByIDsAction\n | AssetsControllerGetAccountAssetsByScopeAction;\n\n/**\n * Messenger restricted to actions consumed by {@link AssetsProvider}.\n */\nexport type AssetsProviderMessenger = AsyncMessenger<\n Messenger<typeof ASSETS_PROVIDER_NAME, AssetsProviderAllowedActions>\n>;\n\nexport class AssetsProvider {\n readonly #messenger: AssetsProviderMessenger;\n\n constructor({ messenger }: { messenger: AssetsProviderMessenger }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.\n *\n * @param accountId - Keyring account ID.\n * @param assetId - CAIP-19 asset ID.\n * @returns Controller asset, or `undefined`.\n */\n async getAccountAssetByID(\n accountId: AccountId,\n assetId: Caip19AssetId,\n ): Promise<ReturnType<AssetsControllerGetAccountAssetByIDAction['handler']>> {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetByID',\n accountId,\n assetId,\n );\n }\n\n /**\n * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.\n *\n * @param accountId - Keyring account ID.\n * @param assetIds - CAIP-19 asset IDs to resolve.\n * @returns Map of asset ID → controller asset.\n */\n async getAccountAssetsByIDs(\n accountId: AccountId,\n assetIds: Caip19AssetId[],\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByIDsAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByIDs',\n accountId,\n assetIds,\n );\n }\n\n /**\n * Returns controller-backed assets for an account on a chain.\n *\n * @param scope - CAIP-2 chain ID to filter controller results.\n * @param accountId - Keyring account ID.\n * @returns Controller assets keyed by CAIP-19 asset ID.\n */\n async getAccountAssetsByScope(\n scope: CaipChainId,\n accountId: AccountId,\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByScopeAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByScope',\n accountId,\n scope,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"AssetsProvider.cjs","sourceRoot":"","sources":["../../../src/providers/assets/AssetsProvider.ts"],"names":[],"mappings":";;;AAWA;;GAEG;AACU,QAAA,oBAAoB,GAAG,gBAAyB,CAAC;AAiB9D,MAAa,cAAc;IAChB,UAAU,CAA0B;IAE7C,YAAY,EAAE,SAAS,EAA0C;QAC/D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAoB,EACpB,OAAsB;QAEtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,sCAAsC,EACtC,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAoB,EACpB,QAAyB;QAIzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,wCAAwC,EACxC,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAkB,EAClB,SAAoB;QAIpB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,0CAA0C,EAC1C,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAhED,wCAgEC","sourcesContent":["import type {\n AccountId,\n AssetsControllerGetAccountAssetByIDAction,\n AssetsControllerGetAccountAssetsByIDsAction,\n AssetsControllerGetAccountAssetsByScopeAction,\n Caip19AssetId,\n} from '@metamask/assets-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\n/**\n * Namespace for the {@link AssetsProvider} messenger.\n */\nexport const ASSETS_PROVIDER_NAME = 'AssetsProvider' as const;\n\n/**\n * Actions from other messengers that {@link AssetsProvider} calls.\n */\nexport type AssetsProviderAllowedActions =\n | AssetsControllerGetAccountAssetByIDAction\n | AssetsControllerGetAccountAssetsByIDsAction\n | AssetsControllerGetAccountAssetsByScopeAction;\n\n/**\n * Messenger restricted to actions consumed by {@link AssetsProvider}.\n */\nexport type AssetsProviderMessenger = AsyncMessenger<\n Messenger<typeof ASSETS_PROVIDER_NAME, AssetsProviderAllowedActions>\n>;\n\nexport class AssetsProvider {\n readonly #messenger: AssetsProviderMessenger;\n\n constructor({ messenger }: { messenger: AssetsProviderMessenger }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.\n *\n * @param accountId - Keyring account ID.\n * @param assetId - CAIP-19 asset ID.\n * @returns Controller asset, or `undefined`.\n */\n async getAccountAssetByID(\n accountId: AccountId,\n assetId: Caip19AssetId,\n ): Promise<ReturnType<AssetsControllerGetAccountAssetByIDAction['handler']>> {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetByID',\n accountId,\n assetId,\n );\n }\n\n /**\n * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.\n *\n * @param accountId - Keyring account ID.\n * @param assetIds - CAIP-19 asset IDs to resolve.\n * @returns Map of asset ID → controller asset.\n */\n async getAccountAssetsByIDs(\n accountId: AccountId,\n assetIds: Caip19AssetId[],\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByIDsAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByIDs',\n accountId,\n assetIds,\n );\n }\n\n /**\n * Returns controller-backed assets for an account on a chain.\n *\n * @param scope - CAIP-2 chain ID to filter controller results.\n * @param accountId - Keyring account ID.\n * @returns Controller assets keyed by CAIP-19 asset ID.\n */\n async getAccountAssetsByScope(\n scope: CaipChainId,\n accountId: AccountId,\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByScopeAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByScope',\n accountId,\n scope,\n );\n }\n}\n"]}
@@ -1,23 +1,11 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _AssetsProvider_messenger;
13
1
  /**
14
2
  * Namespace for the {@link AssetsProvider} messenger.
15
3
  */
16
4
  export const ASSETS_PROVIDER_NAME = 'AssetsProvider';
17
5
  export class AssetsProvider {
6
+ #messenger;
18
7
  constructor({ messenger }) {
19
- _AssetsProvider_messenger.set(this, void 0);
20
- __classPrivateFieldSet(this, _AssetsProvider_messenger, messenger, "f");
8
+ this.#messenger = messenger;
21
9
  }
22
10
  /**
23
11
  * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.
@@ -27,7 +15,7 @@ export class AssetsProvider {
27
15
  * @returns Controller asset, or `undefined`.
28
16
  */
29
17
  async getAccountAssetByID(accountId, assetId) {
30
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetByID', accountId, assetId);
18
+ return this.#messenger.call('AssetsController:getAccountAssetByID', accountId, assetId);
31
19
  }
32
20
  /**
33
21
  * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.
@@ -37,7 +25,7 @@ export class AssetsProvider {
37
25
  * @returns Map of asset ID → controller asset.
38
26
  */
39
27
  async getAccountAssetsByIDs(accountId, assetIds) {
40
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetsByIDs', accountId, assetIds);
28
+ return this.#messenger.call('AssetsController:getAccountAssetsByIDs', accountId, assetIds);
41
29
  }
42
30
  /**
43
31
  * Returns controller-backed assets for an account on a chain.
@@ -47,8 +35,7 @@ export class AssetsProvider {
47
35
  * @returns Controller assets keyed by CAIP-19 asset ID.
48
36
  */
49
37
  async getAccountAssetsByScope(scope, accountId) {
50
- return __classPrivateFieldGet(this, _AssetsProvider_messenger, "f").call('AssetsController:getAccountAssetsByScope', accountId, scope);
38
+ return this.#messenger.call('AssetsController:getAccountAssetsByScope', accountId, scope);
51
39
  }
52
40
  }
53
- _AssetsProvider_messenger = new WeakMap();
54
41
  //# sourceMappingURL=AssetsProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssetsProvider.mjs","sourceRoot":"","sources":["../../../src/providers/assets/AssetsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAyB,CAAC;AAiB9D,MAAM,OAAO,cAAc;IAGzB,YAAY,EAAE,SAAS,EAA0C;QAFxD,4CAAoC;QAG3C,uBAAA,IAAI,6BAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAoB,EACpB,OAAsB;QAEtB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,sCAAsC,EACtC,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAoB,EACpB,QAAyB;QAIzB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,wCAAwC,EACxC,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAkB,EAClB,SAAoB;QAIpB,OAAO,uBAAA,IAAI,iCAAW,CAAC,IAAI,CACzB,0CAA0C,EAC1C,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type {\n AccountId,\n AssetsControllerGetAccountAssetByIDAction,\n AssetsControllerGetAccountAssetsByIDsAction,\n AssetsControllerGetAccountAssetsByScopeAction,\n Caip19AssetId,\n} from '@metamask/assets-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\n/**\n * Namespace for the {@link AssetsProvider} messenger.\n */\nexport const ASSETS_PROVIDER_NAME = 'AssetsProvider' as const;\n\n/**\n * Actions from other messengers that {@link AssetsProvider} calls.\n */\nexport type AssetsProviderAllowedActions =\n | AssetsControllerGetAccountAssetByIDAction\n | AssetsControllerGetAccountAssetsByIDsAction\n | AssetsControllerGetAccountAssetsByScopeAction;\n\n/**\n * Messenger restricted to actions consumed by {@link AssetsProvider}.\n */\nexport type AssetsProviderMessenger = AsyncMessenger<\n Messenger<typeof ASSETS_PROVIDER_NAME, AssetsProviderAllowedActions>\n>;\n\nexport class AssetsProvider {\n readonly #messenger: AssetsProviderMessenger;\n\n constructor({ messenger }: { messenger: AssetsProviderMessenger }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.\n *\n * @param accountId - Keyring account ID.\n * @param assetId - CAIP-19 asset ID.\n * @returns Controller asset, or `undefined`.\n */\n async getAccountAssetByID(\n accountId: AccountId,\n assetId: Caip19AssetId,\n ): Promise<ReturnType<AssetsControllerGetAccountAssetByIDAction['handler']>> {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetByID',\n accountId,\n assetId,\n );\n }\n\n /**\n * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.\n *\n * @param accountId - Keyring account ID.\n * @param assetIds - CAIP-19 asset IDs to resolve.\n * @returns Map of asset ID → controller asset.\n */\n async getAccountAssetsByIDs(\n accountId: AccountId,\n assetIds: Caip19AssetId[],\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByIDsAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByIDs',\n accountId,\n assetIds,\n );\n }\n\n /**\n * Returns controller-backed assets for an account on a chain.\n *\n * @param scope - CAIP-2 chain ID to filter controller results.\n * @param accountId - Keyring account ID.\n * @returns Controller assets keyed by CAIP-19 asset ID.\n */\n async getAccountAssetsByScope(\n scope: CaipChainId,\n accountId: AccountId,\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByScopeAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByScope',\n accountId,\n scope,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"AssetsProvider.mjs","sourceRoot":"","sources":["../../../src/providers/assets/AssetsProvider.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAyB,CAAC;AAiB9D,MAAM,OAAO,cAAc;IAChB,UAAU,CAA0B;IAE7C,YAAY,EAAE,SAAS,EAA0C;QAC/D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAoB,EACpB,OAAsB;QAEtB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,sCAAsC,EACtC,SAAS,EACT,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,SAAoB,EACpB,QAAyB;QAIzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,wCAAwC,EACxC,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAAkB,EAClB,SAAoB;QAIpB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,0CAA0C,EAC1C,SAAS,EACT,KAAK,CACN,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type {\n AccountId,\n AssetsControllerGetAccountAssetByIDAction,\n AssetsControllerGetAccountAssetsByIDsAction,\n AssetsControllerGetAccountAssetsByScopeAction,\n Caip19AssetId,\n} from '@metamask/assets-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { CaipChainId } from '@metamask/utils';\n\n/**\n * Namespace for the {@link AssetsProvider} messenger.\n */\nexport const ASSETS_PROVIDER_NAME = 'AssetsProvider' as const;\n\n/**\n * Actions from other messengers that {@link AssetsProvider} calls.\n */\nexport type AssetsProviderAllowedActions =\n | AssetsControllerGetAccountAssetByIDAction\n | AssetsControllerGetAccountAssetsByIDsAction\n | AssetsControllerGetAccountAssetsByScopeAction;\n\n/**\n * Messenger restricted to actions consumed by {@link AssetsProvider}.\n */\nexport type AssetsProviderMessenger = AsyncMessenger<\n Messenger<typeof ASSETS_PROVIDER_NAME, AssetsProviderAllowedActions>\n>;\n\nexport class AssetsProvider {\n readonly #messenger: AssetsProviderMessenger;\n\n constructor({ messenger }: { messenger: AssetsProviderMessenger }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single account asset by CAIP-19 ID, or `undefined` if missing.\n *\n * @param accountId - Keyring account ID.\n * @param assetId - CAIP-19 asset ID.\n * @returns Controller asset, or `undefined`.\n */\n async getAccountAssetByID(\n accountId: AccountId,\n assetId: Caip19AssetId,\n ): Promise<ReturnType<AssetsControllerGetAccountAssetByIDAction['handler']>> {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetByID',\n accountId,\n assetId,\n );\n }\n\n /**\n * Returns account assets for the given CAIP-19 IDs, keyed by asset ID.\n *\n * @param accountId - Keyring account ID.\n * @param assetIds - CAIP-19 asset IDs to resolve.\n * @returns Map of asset ID → controller asset.\n */\n async getAccountAssetsByIDs(\n accountId: AccountId,\n assetIds: Caip19AssetId[],\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByIDsAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByIDs',\n accountId,\n assetIds,\n );\n }\n\n /**\n * Returns controller-backed assets for an account on a chain.\n *\n * @param scope - CAIP-2 chain ID to filter controller results.\n * @param accountId - Keyring account ID.\n * @returns Controller assets keyed by CAIP-19 asset ID.\n */\n async getAccountAssetsByScope(\n scope: CaipChainId,\n accountId: AccountId,\n ): Promise<\n ReturnType<AssetsControllerGetAccountAssetsByScopeAction['handler']>\n > {\n return this.#messenger.call(\n 'AssetsController:getAccountAssetsByScope',\n accountId,\n scope,\n );\n }\n}\n"]}
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _RemoteFeatureFlagsProvider_messenger;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.RemoteFeatureFlagsProvider = exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME = void 0;
16
4
  /**
@@ -18,9 +6,9 @@ exports.RemoteFeatureFlagsProvider = exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME
18
6
  */
19
7
  exports.REMOTE_FEATURE_FLAGS_PROVIDER_NAME = 'RemoteFeatureFlagsProvider';
20
8
  class RemoteFeatureFlagsProvider {
9
+ #messenger;
21
10
  constructor({ messenger, }) {
22
- _RemoteFeatureFlagsProvider_messenger.set(this, void 0);
23
- __classPrivateFieldSet(this, _RemoteFeatureFlagsProvider_messenger, messenger, "f");
11
+ this.#messenger = messenger;
24
12
  }
25
13
  /**
26
14
  * Returns a single remote feature flag value, or `undefined` if missing.
@@ -29,7 +17,7 @@ class RemoteFeatureFlagsProvider {
29
17
  * @returns Flag value, or `undefined`.
30
18
  */
31
19
  async getFeatureFlag(flagKey) {
32
- const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
20
+ const { remoteFeatureFlags } = await this.#messenger.call('RemoteFeatureFlagController:getState');
33
21
  return remoteFeatureFlags[flagKey];
34
22
  }
35
23
  /**
@@ -40,7 +28,7 @@ class RemoteFeatureFlagsProvider {
40
28
  * @returns Map of flag key → value.
41
29
  */
42
30
  async getFeatureFlags(flagKeys) {
43
- const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
31
+ const { remoteFeatureFlags } = await this.#messenger.call('RemoteFeatureFlagController:getState');
44
32
  return flagKeys.reduce((acc, flagKey) => {
45
33
  acc[flagKey] = remoteFeatureFlags[flagKey];
46
34
  return acc;
@@ -48,5 +36,4 @@ class RemoteFeatureFlagsProvider {
48
36
  }
49
37
  }
50
38
  exports.RemoteFeatureFlagsProvider = RemoteFeatureFlagsProvider;
51
- _RemoteFeatureFlagsProvider_messenger = new WeakMap();
52
39
  //# sourceMappingURL=RemoteFeatureFlagsProvider.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteFeatureFlagsProvider.cjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA;;GAEG;AACU,QAAA,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAa,0BAA0B;IAGrC,YAAY,EACV,SAAS,GAGV;QANQ,wDAAgD;QAOvD,uBAAA,IAAI,yCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF;AA5CD,gEA4CC","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
1
+ {"version":3,"file":"RemoteFeatureFlagsProvider.cjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":";;;AAKA;;GAEG;AACU,QAAA,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAa,0BAA0B;IAC5B,UAAU,CAAsC;IAEzD,YAAY,EACV,SAAS,GAGV;QACC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF;AA5CD,gEA4CC","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
@@ -1,23 +1,11 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _RemoteFeatureFlagsProvider_messenger;
13
1
  /**
14
2
  * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.
15
3
  */
16
4
  export const REMOTE_FEATURE_FLAGS_PROVIDER_NAME = 'RemoteFeatureFlagsProvider';
17
5
  export class RemoteFeatureFlagsProvider {
6
+ #messenger;
18
7
  constructor({ messenger, }) {
19
- _RemoteFeatureFlagsProvider_messenger.set(this, void 0);
20
- __classPrivateFieldSet(this, _RemoteFeatureFlagsProvider_messenger, messenger, "f");
8
+ this.#messenger = messenger;
21
9
  }
22
10
  /**
23
11
  * Returns a single remote feature flag value, or `undefined` if missing.
@@ -26,7 +14,7 @@ export class RemoteFeatureFlagsProvider {
26
14
  * @returns Flag value, or `undefined`.
27
15
  */
28
16
  async getFeatureFlag(flagKey) {
29
- const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
17
+ const { remoteFeatureFlags } = await this.#messenger.call('RemoteFeatureFlagController:getState');
30
18
  return remoteFeatureFlags[flagKey];
31
19
  }
32
20
  /**
@@ -37,12 +25,11 @@ export class RemoteFeatureFlagsProvider {
37
25
  * @returns Map of flag key → value.
38
26
  */
39
27
  async getFeatureFlags(flagKeys) {
40
- const { remoteFeatureFlags } = await __classPrivateFieldGet(this, _RemoteFeatureFlagsProvider_messenger, "f").call('RemoteFeatureFlagController:getState');
28
+ const { remoteFeatureFlags } = await this.#messenger.call('RemoteFeatureFlagController:getState');
41
29
  return flagKeys.reduce((acc, flagKey) => {
42
30
  acc[flagKey] = remoteFeatureFlags[flagKey];
43
31
  return acc;
44
32
  }, {});
45
33
  }
46
34
  }
47
- _RemoteFeatureFlagsProvider_messenger = new WeakMap();
48
35
  //# sourceMappingURL=RemoteFeatureFlagsProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteFeatureFlagsProvider.mjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAM,OAAO,0BAA0B;IAGrC,YAAY,EACV,SAAS,GAGV;QANQ,wDAAgD;QAOvD,uBAAA,IAAI,yCAAc,SAAS,MAAA,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,uBAAA,IAAI,6CAAW,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
1
+ {"version":3,"file":"RemoteFeatureFlagsProvider.mjs","sourceRoot":"","sources":["../../../src/providers/remote-feature-flags/RemoteFeatureFlagsProvider.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,4BAAqC,CAAC;AAkBxC,MAAM,OAAO,0BAA0B;IAC5B,UAAU,CAAsC;IAEzD,YAAY,EACV,SAAS,GAGV;QACC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAe;QAClC,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAkB;QAElB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CACvD,sCAAsC,CACvC,CAAC;QAEF,OAAO,QAAQ,CAAC,MAAM,CAAmC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxE,GAAG,CAAC,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;CACF","sourcesContent":["import type { Messenger } from '@metamask/messenger';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport { AsyncMessenger } from '@metamask/snaps-sdk';\nimport type { Json } from '@metamask/utils';\n\n/**\n * Namespace for the {@link RemoteFeatureFlagsProvider} messenger.\n */\nexport const REMOTE_FEATURE_FLAGS_PROVIDER_NAME =\n 'RemoteFeatureFlagsProvider' as const;\n\n/**\n * Actions from other messengers that {@link RemoteFeatureFlagsProvider} calls.\n */\nexport type RemoteFeatureFlagsProviderAllowedActions =\n RemoteFeatureFlagControllerGetStateAction;\n\n/**\n * Messenger restricted to actions consumed by {@link RemoteFeatureFlagsProvider}.\n */\nexport type RemoteFeatureFlagsProviderMessenger = AsyncMessenger<\n Messenger<\n typeof REMOTE_FEATURE_FLAGS_PROVIDER_NAME,\n RemoteFeatureFlagsProviderAllowedActions\n >\n>;\n\nexport class RemoteFeatureFlagsProvider {\n readonly #messenger: RemoteFeatureFlagsProviderMessenger;\n\n constructor({\n messenger,\n }: {\n messenger: RemoteFeatureFlagsProviderMessenger;\n }) {\n this.#messenger = messenger;\n }\n\n /**\n * Returns a single remote feature flag value, or `undefined` if missing.\n *\n * @param flagKey - LaunchDarkly / client-config feature flag key.\n * @returns Flag value, or `undefined`.\n */\n async getFeatureFlag(flagKey: string): Promise<Json | undefined> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return remoteFeatureFlags[flagKey];\n }\n\n /**\n * Returns remote feature flag values for the given keys, keyed by flag key.\n * Missing keys are included with value `undefined`.\n *\n * @param flagKeys - Feature flag keys to resolve.\n * @returns Map of flag key → value.\n */\n async getFeatureFlags(\n flagKeys: string[],\n ): Promise<Record<string, Json | undefined>> {\n const { remoteFeatureFlags } = await this.#messenger.call(\n 'RemoteFeatureFlagController:getState',\n );\n\n return flagKeys.reduce<Record<string, Json | undefined>>((acc, flagKey) => {\n acc[flagKey] = remoteFeatureFlags[flagKey];\n return acc;\n }, {});\n }\n}\n"]}
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var _InFlightCoalescer_inFlight;
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  exports.InFlightCoalescer = void 0;
10
4
  /**
@@ -15,23 +9,20 @@ exports.InFlightCoalescer = void 0;
15
9
  * Note that coalesced callers share the run's outcome, including rejections.
16
10
  */
17
11
  class InFlightCoalescer {
18
- constructor() {
19
- _InFlightCoalescer_inFlight.set(this, new Map());
20
- }
12
+ #inFlight = new Map();
21
13
  async run(key, fn) {
22
- const pending = __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").get(key);
14
+ const pending = this.#inFlight.get(key);
23
15
  if (pending) {
24
16
  return pending;
25
17
  }
26
18
  const task = Promise.resolve()
27
19
  .then(fn)
28
20
  .finally(() => {
29
- __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").delete(key);
21
+ this.#inFlight.delete(key);
30
22
  });
31
- __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").set(key, task);
23
+ this.#inFlight.set(key, task);
32
24
  return task;
33
25
  }
34
26
  }
35
27
  exports.InFlightCoalescer = InFlightCoalescer;
36
- _InFlightCoalescer_inFlight = new WeakMap();
37
28
  //# sourceMappingURL=InFlightCoalescer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"InFlightCoalescer.cjs","sourceRoot":"","sources":["../../../src/utils/dedupe/InFlightCoalescer.ts"],"names":[],"mappings":";;;;;;;;;AAAA;;;;;;GAMG;AACH,MAAa,iBAAiB;IAA9B;QACW,sCAAY,IAAI,GAAG,EAA4B,EAAC;IAiB3D,CAAC;IAfC,KAAK,CAAC,GAAG,CAAS,GAAW,EAAE,EAAyB;QACtD,MAAM,OAAO,GAAG,uBAAA,IAAI,mCAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAA0B,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,EAAE,CAAC;aACR,OAAO,CAAC,GAAG,EAAE;YACZ,uBAAA,IAAI,mCAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,uBAAA,IAAI,mCAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlBD,8CAkBC","sourcesContent":["/**\n * Coalesces concurrent async operations by key: while a call for a key is in\n * flight, subsequent calls with the same key await the same promise instead of\n * starting duplicate work. Once a run settles, the next call starts a fresh one.\n *\n * Note that coalesced callers share the run's outcome, including rejections.\n */\nexport class InFlightCoalescer {\n readonly #inFlight = new Map<string, Promise<unknown>>();\n\n async run<Result>(key: string, fn: () => Promise<Result>): Promise<Result> {\n const pending = this.#inFlight.get(key);\n if (pending) {\n return pending as Promise<Result>;\n }\n\n const task = Promise.resolve()\n .then(fn)\n .finally(() => {\n this.#inFlight.delete(key);\n });\n this.#inFlight.set(key, task);\n\n return task;\n }\n}\n"]}
1
+ {"version":3,"file":"InFlightCoalescer.cjs","sourceRoot":"","sources":["../../../src/utils/dedupe/InFlightCoalescer.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,iBAAiB;IACnB,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAS,GAAW,EAAE,EAAyB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAA0B,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,EAAE,CAAC;aACR,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAlBD,8CAkBC","sourcesContent":["/**\n * Coalesces concurrent async operations by key: while a call for a key is in\n * flight, subsequent calls with the same key await the same promise instead of\n * starting duplicate work. Once a run settles, the next call starts a fresh one.\n *\n * Note that coalesced callers share the run's outcome, including rejections.\n */\nexport class InFlightCoalescer {\n readonly #inFlight = new Map<string, Promise<unknown>>();\n\n async run<Result>(key: string, fn: () => Promise<Result>): Promise<Result> {\n const pending = this.#inFlight.get(key);\n if (pending) {\n return pending as Promise<Result>;\n }\n\n const task = Promise.resolve()\n .then(fn)\n .finally(() => {\n this.#inFlight.delete(key);\n });\n this.#inFlight.set(key, task);\n\n return task;\n }\n}\n"]}
@@ -1,9 +1,3 @@
1
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
- };
6
- var _InFlightCoalescer_inFlight;
7
1
  /**
8
2
  * Coalesces concurrent async operations by key: while a call for a key is in
9
3
  * flight, subsequent calls with the same key await the same promise instead of
@@ -12,22 +6,19 @@ var _InFlightCoalescer_inFlight;
12
6
  * Note that coalesced callers share the run's outcome, including rejections.
13
7
  */
14
8
  export class InFlightCoalescer {
15
- constructor() {
16
- _InFlightCoalescer_inFlight.set(this, new Map());
17
- }
9
+ #inFlight = new Map();
18
10
  async run(key, fn) {
19
- const pending = __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").get(key);
11
+ const pending = this.#inFlight.get(key);
20
12
  if (pending) {
21
13
  return pending;
22
14
  }
23
15
  const task = Promise.resolve()
24
16
  .then(fn)
25
17
  .finally(() => {
26
- __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").delete(key);
18
+ this.#inFlight.delete(key);
27
19
  });
28
- __classPrivateFieldGet(this, _InFlightCoalescer_inFlight, "f").set(key, task);
20
+ this.#inFlight.set(key, task);
29
21
  return task;
30
22
  }
31
23
  }
32
- _InFlightCoalescer_inFlight = new WeakMap();
33
24
  //# sourceMappingURL=InFlightCoalescer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"InFlightCoalescer.mjs","sourceRoot":"","sources":["../../../src/utils/dedupe/InFlightCoalescer.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACW,sCAAY,IAAI,GAAG,EAA4B,EAAC;IAiB3D,CAAC;IAfC,KAAK,CAAC,GAAG,CAAS,GAAW,EAAE,EAAyB;QACtD,MAAM,OAAO,GAAG,uBAAA,IAAI,mCAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAA0B,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,EAAE,CAAC;aACR,OAAO,CAAC,GAAG,EAAE;YACZ,uBAAA,IAAI,mCAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,uBAAA,IAAI,mCAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/**\n * Coalesces concurrent async operations by key: while a call for a key is in\n * flight, subsequent calls with the same key await the same promise instead of\n * starting duplicate work. Once a run settles, the next call starts a fresh one.\n *\n * Note that coalesced callers share the run's outcome, including rejections.\n */\nexport class InFlightCoalescer {\n readonly #inFlight = new Map<string, Promise<unknown>>();\n\n async run<Result>(key: string, fn: () => Promise<Result>): Promise<Result> {\n const pending = this.#inFlight.get(key);\n if (pending) {\n return pending as Promise<Result>;\n }\n\n const task = Promise.resolve()\n .then(fn)\n .finally(() => {\n this.#inFlight.delete(key);\n });\n this.#inFlight.set(key, task);\n\n return task;\n }\n}\n"]}
1
+ {"version":3,"file":"InFlightCoalescer.mjs","sourceRoot":"","sources":["../../../src/utils/dedupe/InFlightCoalescer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,iBAAiB;IACnB,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEzD,KAAK,CAAC,GAAG,CAAS,GAAW,EAAE,EAAyB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAA0B,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aAC3B,IAAI,CAAC,EAAE,CAAC;aACR,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["/**\n * Coalesces concurrent async operations by key: while a call for a key is in\n * flight, subsequent calls with the same key await the same promise instead of\n * starting duplicate work. Once a run settles, the next call starts a fresh one.\n *\n * Note that coalesced callers share the run's outcome, including rejections.\n */\nexport class InFlightCoalescer {\n readonly #inFlight = new Map<string, Promise<unknown>>();\n\n async run<Result>(key: string, fn: () => Promise<Result>): Promise<Result> {\n const pending = this.#inFlight.get(key);\n if (pending) {\n return pending as Promise<Result>;\n }\n\n const task = Promise.resolve()\n .then(fn)\n .finally(() => {\n this.#inFlight.delete(key);\n });\n this.#inFlight.set(key, task);\n\n return task;\n }\n}\n"]}
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _Logger_instances, _Logger_level, _Logger_prefix, _Logger_decorators, _Logger_isLevelDisabled, _Logger_write;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.Logger = exports.LogLevel = void 0;
16
4
  const superstruct_1 = require("@metamask/superstruct");
@@ -80,15 +68,14 @@ const LogLevelStruct = (0, superstruct_1.enums)(Object.values(exports.LogLevel))
80
68
  * ```
81
69
  */
82
70
  class Logger {
71
+ #level;
72
+ #prefix;
73
+ #decorators;
83
74
  constructor({ level, prefix, decorators }) {
84
- _Logger_instances.add(this);
85
- _Logger_level.set(this, void 0);
86
- _Logger_prefix.set(this, void 0);
87
- _Logger_decorators.set(this, void 0);
88
75
  (0, superstruct_1.assert)(level, LogLevelStruct);
89
- __classPrivateFieldSet(this, _Logger_level, level, "f");
90
- __classPrivateFieldSet(this, _Logger_prefix, prefix, "f");
91
- __classPrivateFieldSet(this, _Logger_decorators, decorators, "f");
76
+ this.#level = level;
77
+ this.#prefix = prefix;
78
+ this.#decorators = decorators;
92
79
  }
93
80
  /**
94
81
  * Returns a logger with an additional prefix.
@@ -102,16 +89,16 @@ class Logger {
102
89
  */
103
90
  withPrefix(prefix) {
104
91
  return new Logger({
105
- level: __classPrivateFieldGet(this, _Logger_level, "f"),
106
- prefix: __classPrivateFieldGet(this, _Logger_prefix, "f") ? `${__classPrivateFieldGet(this, _Logger_prefix, "f")} ${prefix}` : prefix,
107
- decorators: __classPrivateFieldGet(this, _Logger_decorators, "f"),
92
+ level: this.#level,
93
+ prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,
94
+ decorators: this.#decorators,
108
95
  });
109
96
  }
110
97
  error(...args) {
111
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, exports.LogLevel.ERROR, console.error, args);
98
+ this.#write(exports.LogLevel.ERROR, console.error, args);
112
99
  }
113
100
  warn(...args) {
114
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, exports.LogLevel.WARN, console.warn, args);
101
+ this.#write(exports.LogLevel.WARN, console.warn, args);
115
102
  }
116
103
  /**
117
104
  * Logs an informational message.
@@ -123,30 +110,31 @@ class Logger {
123
110
  this.info(...args);
124
111
  }
125
112
  info(...args) {
126
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, exports.LogLevel.INFO, console.info, args);
113
+ this.#write(exports.LogLevel.INFO, console.info, args);
127
114
  }
128
115
  debug(...args) {
129
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, exports.LogLevel.DEBUG, console.debug, args);
116
+ this.#write(exports.LogLevel.DEBUG, console.debug, args);
130
117
  }
131
118
  trace(...args) {
132
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, exports.LogLevel.TRACE, console.trace, args);
119
+ this.#write(exports.LogLevel.TRACE, console.trace, args);
133
120
  }
134
- }
135
- exports.Logger = Logger;
136
- _Logger_level = new WeakMap(), _Logger_prefix = new WeakMap(), _Logger_decorators = new WeakMap(), _Logger_instances = new WeakSet(), _Logger_isLevelDisabled = function _Logger_isLevelDisabled(level) {
137
- return logLevelPriority[level] > logLevelPriority[__classPrivateFieldGet(this, _Logger_level, "f")];
138
- }, _Logger_write = function _Logger_write(level, writeToConsole, args) {
139
- if (__classPrivateFieldGet(this, _Logger_instances, "m", _Logger_isLevelDisabled).call(this, level)) {
140
- return;
121
+ #isLevelDisabled(level) {
122
+ return logLevelPriority[level] > logLevelPriority[this.#level];
141
123
  }
142
- const next = __classPrivateFieldGet(this, _Logger_prefix, "f")
143
- ? (...nextArgs) => writeToConsole(__classPrivateFieldGet(this, _Logger_prefix, "f"), ...nextArgs)
144
- : writeToConsole;
145
- const decorator = __classPrivateFieldGet(this, _Logger_decorators, "f")?.[level];
146
- if (decorator) {
147
- decorator(next, ...args);
148
- return;
124
+ #write(level, writeToConsole, args) {
125
+ if (this.#isLevelDisabled(level)) {
126
+ return;
127
+ }
128
+ const next = this.#prefix
129
+ ? (...nextArgs) => writeToConsole(this.#prefix, ...nextArgs)
130
+ : writeToConsole;
131
+ const decorator = this.#decorators?.[level];
132
+ if (decorator) {
133
+ decorator(next, ...args);
134
+ return;
135
+ }
136
+ next(...args);
149
137
  }
150
- next(...args);
151
- };
138
+ }
139
+ exports.Logger = Logger;
152
140
  //# sourceMappingURL=Logger.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.cjs","sourceRoot":"","sources":["../../../src/utils/logger/Logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert, enums } from '@metamask/superstruct';\n\n/**\n * The severity levels supported by {@link Logger}.\n */\nexport const LogLevel = {\n SILENT: 'silent',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n TRACE: 'trace',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n/**\n * Defines the severity ordering used to filter log messages.\n *\n * Lower values are less verbose. Changing these numeric priorities changes\n * which messages are emitted for each configured {@link LogLevel}, including\n * in production.\n */\nconst logLevelPriority = {\n [LogLevel.SILENT]: 0,\n [LogLevel.ERROR]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.INFO]: 3,\n [LogLevel.DEBUG]: 4,\n [LogLevel.TRACE]: 5,\n};\n\nconst LogLevelStruct = enums(Object.values(LogLevel));\n\nexport type LoggerMethod = Exclude<LogLevel, typeof LogLevel.SILENT>;\n\nexport type LogMethod = (...args: unknown[]) => void;\n\n/**\n * A function that can add behavior around a logger method.\n *\n * Call `next` to forward a message through the logger's configured output.\n */\nexport type LogMethodDecorator = (next: LogMethod, ...args: unknown[]) => void;\n\nexport type LoggerDecorators = Partial<\n Record<LoggerMethod, LogMethodDecorator>\n>;\n\n/**\n * Configuration for a {@link Logger}.\n *\n * **Example: configure logging with `LOG_LEVEL`.**\n *\n * ```ts\n * const logger = new Logger({\n * level: process.env.LOG_LEVEL\n * });\n * ```\n */\nexport type LoggerOptions = {\n /**\n * The most verbose severity level that should be logged. Use\n * {@link LogLevel.SILENT} to disable logging.\n */\n level: LogLevel;\n /**\n * An optional prefix prepended to every message.\n *\n * Use {@link Logger.withPrefix} to add prefixes after construction.\n */\n prefix?: string;\n /**\n * Optional behavior to apply to individual log methods.\n *\n * Decorators receive `next`, which preserves this logger's configured level,\n * prefix, and console output.\n */\n decorators?: LoggerDecorators;\n};\n\n/**\n * Logs network Snap messages to the console at configurable severity levels.\n *\n * Disable output with {@link LogLevel.SILENT}.\n *\n * **Example: create an enabled logger.**\n *\n * ```ts\n * import { Logger } from '@metamask/snap-networks-utils';\n *\n * const logger = new Logger({ level: LogLevel.TRACE });\n * logger.info('Account synced');\n * ```\n *\n * **Example: add a Snap or component prefix.**\n *\n * ```ts\n * const rootLogger = new Logger({ level: LogLevel.TRACE });\n * const snapLogger = rootLogger.withPrefix('[tron-wallet-snap]');\n * const accountsLogger = snapLogger.withPrefix('[accounts]');\n *\n * accountsLogger.debug('Refreshing account balances');\n * ```\n *\n * **Example: decorate a method with Snap-specific behavior.**\n *\n * ```ts\n * const logger = new Logger({\n * level: LogLevel.TRACE,\n * decorators: {\n * error: (next, error) => {\n * const details = getSolanaErrorDetails(error);\n * next(details ?? error);\n * },\n * },\n * });\n * ```\n */\nexport class Logger {\n readonly #level: LogLevel;\n\n readonly #prefix?: string;\n\n readonly #decorators?: LoggerDecorators;\n\n constructor({ level, prefix, decorators }: LoggerOptions) {\n assert(level, LogLevelStruct);\n\n this.#level = level;\n this.#prefix = prefix;\n this.#decorators = decorators;\n }\n\n /**\n * Returns a logger with an additional prefix.\n *\n * The returned logger has the same log level and decorators as this one. Call\n * this method as many times as needed; each derived logger appends its prefix\n * to the existing prefix.\n *\n * @param prefix - The prefix to add to each message.\n * @returns A derived logger.\n */\n withPrefix(prefix: string): Logger {\n return new Logger({\n level: this.#level,\n prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,\n decorators: this.#decorators,\n });\n }\n\n error(...args: unknown[]): void {\n this.#write(LogLevel.ERROR, console.error, args);\n }\n\n warn(...args: unknown[]): void {\n this.#write(LogLevel.WARN, console.warn, args);\n }\n\n /**\n * Logs an informational message.\n *\n * @param args - The values to write to the console.\n * @deprecated Use {@link Logger.info} instead.\n */\n log(...args: unknown[]): void {\n this.info(...args);\n }\n\n info(...args: unknown[]): void {\n this.#write(LogLevel.INFO, console.info, args);\n }\n\n debug(...args: unknown[]): void {\n this.#write(LogLevel.DEBUG, console.debug, args);\n }\n\n trace(...args: unknown[]): void {\n this.#write(LogLevel.TRACE, console.trace, args);\n }\n\n #isLevelDisabled(level: LoggerMethod): boolean {\n return logLevelPriority[level] > logLevelPriority[this.#level];\n }\n\n #write(\n level: LoggerMethod,\n writeToConsole: (...args: unknown[]) => void,\n args: unknown[],\n ): void {\n if (this.#isLevelDisabled(level)) {\n return;\n }\n\n const next: LogMethod = this.#prefix\n ? (...nextArgs: unknown[]): void =>\n writeToConsole(this.#prefix, ...nextArgs)\n : writeToConsole;\n\n const decorator = this.#decorators?.[level];\n\n if (decorator) {\n decorator(next, ...args);\n return;\n }\n\n next(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"Logger.cjs","sourceRoot":"","sources":["../../../src/utils/logger/Logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert, enums } from '@metamask/superstruct';\n\n/**\n * The severity levels supported by {@link Logger}.\n */\nexport const LogLevel = {\n SILENT: 'silent',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n TRACE: 'trace',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n/**\n * Defines the severity ordering used to filter log messages.\n *\n * Lower values are less verbose. Changing these numeric priorities changes\n * which messages are emitted for each configured {@link LogLevel}, including\n * in production.\n */\nconst logLevelPriority = {\n [LogLevel.SILENT]: 0,\n [LogLevel.ERROR]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.INFO]: 3,\n [LogLevel.DEBUG]: 4,\n [LogLevel.TRACE]: 5,\n};\n\nconst LogLevelStruct = enums(Object.values(LogLevel));\n\nexport type LoggerMethod = Exclude<LogLevel, typeof LogLevel.SILENT>;\n\nexport type LogMethod = (...args: unknown[]) => void;\n\n/**\n * A function that can add behavior around a logger method.\n *\n * Call `next` to forward a message through the logger's configured output.\n */\nexport type LogMethodDecorator = (next: LogMethod, ...args: unknown[]) => void;\n\nexport type LoggerDecorators = Partial<\n Record<LoggerMethod, LogMethodDecorator>\n>;\n\n/**\n * Configuration for a {@link Logger}.\n *\n * **Example: configure logging with `LOG_LEVEL`.**\n *\n * ```ts\n * const logger = new Logger({\n * level: process.env.LOG_LEVEL\n * });\n * ```\n */\nexport type LoggerOptions = {\n /**\n * The most verbose severity level that should be logged. Use\n * {@link LogLevel.SILENT} to disable logging.\n */\n level: LogLevel;\n /**\n * An optional prefix prepended to every message.\n *\n * Use {@link Logger.withPrefix} to add prefixes after construction.\n */\n prefix?: string;\n /**\n * Optional behavior to apply to individual log methods.\n *\n * Decorators receive `next`, which preserves this logger's configured level,\n * prefix, and console output.\n */\n decorators?: LoggerDecorators;\n};\n\n/**\n * Logs network Snap messages to the console at configurable severity levels.\n *\n * Disable output with {@link LogLevel.SILENT}.\n *\n * **Example: create an enabled logger.**\n *\n * ```ts\n * import { Logger } from '@metamask/snap-networks-utils';\n *\n * const logger = new Logger({ level: LogLevel.TRACE });\n * logger.info('Account synced');\n * ```\n *\n * **Example: add a Snap or component prefix.**\n *\n * ```ts\n * const rootLogger = new Logger({ level: LogLevel.TRACE });\n * const snapLogger = rootLogger.withPrefix('[tron-wallet-snap]');\n * const accountsLogger = snapLogger.withPrefix('[accounts]');\n *\n * accountsLogger.debug('Refreshing account balances');\n * ```\n *\n * **Example: decorate a method with Snap-specific behavior.**\n *\n * ```ts\n * const logger = new Logger({\n * level: LogLevel.TRACE,\n * decorators: {\n * error: (next, error) => {\n * const details = getSolanaErrorDetails(error);\n * next(details ?? error);\n * },\n * },\n * });\n * ```\n */\nexport class Logger {\n readonly #level: LogLevel;\n\n readonly #prefix?: string;\n\n readonly #decorators?: LoggerDecorators;\n\n constructor({ level, prefix, decorators }: LoggerOptions) {\n assert(level, LogLevelStruct);\n\n this.#level = level;\n this.#prefix = prefix;\n this.#decorators = decorators;\n }\n\n /**\n * Returns a logger with an additional prefix.\n *\n * The returned logger has the same log level and decorators as this one. Call\n * this method as many times as needed; each derived logger appends its prefix\n * to the existing prefix.\n *\n * @param prefix - The prefix to add to each message.\n * @returns A derived logger.\n */\n withPrefix(prefix: string): Logger {\n return new Logger({\n level: this.#level,\n prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,\n decorators: this.#decorators,\n });\n }\n\n error(...args: unknown[]): void {\n this.#write(LogLevel.ERROR, console.error, args);\n }\n\n warn(...args: unknown[]): void {\n this.#write(LogLevel.WARN, console.warn, args);\n }\n\n /**\n * Logs an informational message.\n *\n * @param args - The values to write to the console.\n * @deprecated Use {@link Logger.info} instead.\n */\n log(...args: unknown[]): void {\n this.info(...args);\n }\n\n info(...args: unknown[]): void {\n this.#write(LogLevel.INFO, console.info, args);\n }\n\n debug(...args: unknown[]): void {\n this.#write(LogLevel.DEBUG, console.debug, args);\n }\n\n trace(...args: unknown[]): void {\n this.#write(LogLevel.TRACE, console.trace, args);\n }\n\n #isLevelDisabled(level: LoggerMethod): boolean {\n return logLevelPriority[level] > logLevelPriority[this.#level];\n }\n\n #write(\n level: LoggerMethod,\n writeToConsole: (...args: unknown[]) => void,\n args: unknown[],\n ): void {\n if (this.#isLevelDisabled(level)) {\n return;\n }\n\n const next: LogMethod = this.#prefix\n ? (...nextArgs: unknown[]): void =>\n writeToConsole(this.#prefix, ...nextArgs)\n : writeToConsole;\n\n const decorator = this.#decorators?.[level];\n\n if (decorator) {\n decorator(next, ...args);\n return;\n }\n\n next(...args);\n }\n}\n"]}
@@ -1,15 +1,3 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _Logger_instances, _Logger_level, _Logger_prefix, _Logger_decorators, _Logger_isLevelDisabled, _Logger_write;
13
1
  import { assert, enums } from "@metamask/superstruct";
14
2
  /**
15
3
  * The severity levels supported by {@link Logger}.
@@ -77,15 +65,14 @@ const LogLevelStruct = enums(Object.values(LogLevel));
77
65
  * ```
78
66
  */
79
67
  export class Logger {
68
+ #level;
69
+ #prefix;
70
+ #decorators;
80
71
  constructor({ level, prefix, decorators }) {
81
- _Logger_instances.add(this);
82
- _Logger_level.set(this, void 0);
83
- _Logger_prefix.set(this, void 0);
84
- _Logger_decorators.set(this, void 0);
85
72
  assert(level, LogLevelStruct);
86
- __classPrivateFieldSet(this, _Logger_level, level, "f");
87
- __classPrivateFieldSet(this, _Logger_prefix, prefix, "f");
88
- __classPrivateFieldSet(this, _Logger_decorators, decorators, "f");
73
+ this.#level = level;
74
+ this.#prefix = prefix;
75
+ this.#decorators = decorators;
89
76
  }
90
77
  /**
91
78
  * Returns a logger with an additional prefix.
@@ -99,16 +86,16 @@ export class Logger {
99
86
  */
100
87
  withPrefix(prefix) {
101
88
  return new Logger({
102
- level: __classPrivateFieldGet(this, _Logger_level, "f"),
103
- prefix: __classPrivateFieldGet(this, _Logger_prefix, "f") ? `${__classPrivateFieldGet(this, _Logger_prefix, "f")} ${prefix}` : prefix,
104
- decorators: __classPrivateFieldGet(this, _Logger_decorators, "f"),
89
+ level: this.#level,
90
+ prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,
91
+ decorators: this.#decorators,
105
92
  });
106
93
  }
107
94
  error(...args) {
108
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, LogLevel.ERROR, console.error, args);
95
+ this.#write(LogLevel.ERROR, console.error, args);
109
96
  }
110
97
  warn(...args) {
111
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, LogLevel.WARN, console.warn, args);
98
+ this.#write(LogLevel.WARN, console.warn, args);
112
99
  }
113
100
  /**
114
101
  * Logs an informational message.
@@ -120,29 +107,30 @@ export class Logger {
120
107
  this.info(...args);
121
108
  }
122
109
  info(...args) {
123
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, LogLevel.INFO, console.info, args);
110
+ this.#write(LogLevel.INFO, console.info, args);
124
111
  }
125
112
  debug(...args) {
126
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, LogLevel.DEBUG, console.debug, args);
113
+ this.#write(LogLevel.DEBUG, console.debug, args);
127
114
  }
128
115
  trace(...args) {
129
- __classPrivateFieldGet(this, _Logger_instances, "m", _Logger_write).call(this, LogLevel.TRACE, console.trace, args);
116
+ this.#write(LogLevel.TRACE, console.trace, args);
130
117
  }
131
- }
132
- _Logger_level = new WeakMap(), _Logger_prefix = new WeakMap(), _Logger_decorators = new WeakMap(), _Logger_instances = new WeakSet(), _Logger_isLevelDisabled = function _Logger_isLevelDisabled(level) {
133
- return logLevelPriority[level] > logLevelPriority[__classPrivateFieldGet(this, _Logger_level, "f")];
134
- }, _Logger_write = function _Logger_write(level, writeToConsole, args) {
135
- if (__classPrivateFieldGet(this, _Logger_instances, "m", _Logger_isLevelDisabled).call(this, level)) {
136
- return;
118
+ #isLevelDisabled(level) {
119
+ return logLevelPriority[level] > logLevelPriority[this.#level];
137
120
  }
138
- const next = __classPrivateFieldGet(this, _Logger_prefix, "f")
139
- ? (...nextArgs) => writeToConsole(__classPrivateFieldGet(this, _Logger_prefix, "f"), ...nextArgs)
140
- : writeToConsole;
141
- const decorator = __classPrivateFieldGet(this, _Logger_decorators, "f")?.[level];
142
- if (decorator) {
143
- decorator(next, ...args);
144
- return;
121
+ #write(level, writeToConsole, args) {
122
+ if (this.#isLevelDisabled(level)) {
123
+ return;
124
+ }
125
+ const next = this.#prefix
126
+ ? (...nextArgs) => writeToConsole(this.#prefix, ...nextArgs)
127
+ : writeToConsole;
128
+ const decorator = this.#decorators?.[level];
129
+ if (decorator) {
130
+ decorator(next, ...args);
131
+ return;
132
+ }
133
+ next(...args);
145
134
  }
146
- next(...args);
147
- };
135
+ }
148
136
  //# sourceMappingURL=Logger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.mjs","sourceRoot":"","sources":["../../../src/utils/logger/Logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert, enums } from '@metamask/superstruct';\n\n/**\n * The severity levels supported by {@link Logger}.\n */\nexport const LogLevel = {\n SILENT: 'silent',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n TRACE: 'trace',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n/**\n * Defines the severity ordering used to filter log messages.\n *\n * Lower values are less verbose. Changing these numeric priorities changes\n * which messages are emitted for each configured {@link LogLevel}, including\n * in production.\n */\nconst logLevelPriority = {\n [LogLevel.SILENT]: 0,\n [LogLevel.ERROR]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.INFO]: 3,\n [LogLevel.DEBUG]: 4,\n [LogLevel.TRACE]: 5,\n};\n\nconst LogLevelStruct = enums(Object.values(LogLevel));\n\nexport type LoggerMethod = Exclude<LogLevel, typeof LogLevel.SILENT>;\n\nexport type LogMethod = (...args: unknown[]) => void;\n\n/**\n * A function that can add behavior around a logger method.\n *\n * Call `next` to forward a message through the logger's configured output.\n */\nexport type LogMethodDecorator = (next: LogMethod, ...args: unknown[]) => void;\n\nexport type LoggerDecorators = Partial<\n Record<LoggerMethod, LogMethodDecorator>\n>;\n\n/**\n * Configuration for a {@link Logger}.\n *\n * **Example: configure logging with `LOG_LEVEL`.**\n *\n * ```ts\n * const logger = new Logger({\n * level: process.env.LOG_LEVEL\n * });\n * ```\n */\nexport type LoggerOptions = {\n /**\n * The most verbose severity level that should be logged. Use\n * {@link LogLevel.SILENT} to disable logging.\n */\n level: LogLevel;\n /**\n * An optional prefix prepended to every message.\n *\n * Use {@link Logger.withPrefix} to add prefixes after construction.\n */\n prefix?: string;\n /**\n * Optional behavior to apply to individual log methods.\n *\n * Decorators receive `next`, which preserves this logger's configured level,\n * prefix, and console output.\n */\n decorators?: LoggerDecorators;\n};\n\n/**\n * Logs network Snap messages to the console at configurable severity levels.\n *\n * Disable output with {@link LogLevel.SILENT}.\n *\n * **Example: create an enabled logger.**\n *\n * ```ts\n * import { Logger } from '@metamask/snap-networks-utils';\n *\n * const logger = new Logger({ level: LogLevel.TRACE });\n * logger.info('Account synced');\n * ```\n *\n * **Example: add a Snap or component prefix.**\n *\n * ```ts\n * const rootLogger = new Logger({ level: LogLevel.TRACE });\n * const snapLogger = rootLogger.withPrefix('[tron-wallet-snap]');\n * const accountsLogger = snapLogger.withPrefix('[accounts]');\n *\n * accountsLogger.debug('Refreshing account balances');\n * ```\n *\n * **Example: decorate a method with Snap-specific behavior.**\n *\n * ```ts\n * const logger = new Logger({\n * level: LogLevel.TRACE,\n * decorators: {\n * error: (next, error) => {\n * const details = getSolanaErrorDetails(error);\n * next(details ?? error);\n * },\n * },\n * });\n * ```\n */\nexport class Logger {\n readonly #level: LogLevel;\n\n readonly #prefix?: string;\n\n readonly #decorators?: LoggerDecorators;\n\n constructor({ level, prefix, decorators }: LoggerOptions) {\n assert(level, LogLevelStruct);\n\n this.#level = level;\n this.#prefix = prefix;\n this.#decorators = decorators;\n }\n\n /**\n * Returns a logger with an additional prefix.\n *\n * The returned logger has the same log level and decorators as this one. Call\n * this method as many times as needed; each derived logger appends its prefix\n * to the existing prefix.\n *\n * @param prefix - The prefix to add to each message.\n * @returns A derived logger.\n */\n withPrefix(prefix: string): Logger {\n return new Logger({\n level: this.#level,\n prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,\n decorators: this.#decorators,\n });\n }\n\n error(...args: unknown[]): void {\n this.#write(LogLevel.ERROR, console.error, args);\n }\n\n warn(...args: unknown[]): void {\n this.#write(LogLevel.WARN, console.warn, args);\n }\n\n /**\n * Logs an informational message.\n *\n * @param args - The values to write to the console.\n * @deprecated Use {@link Logger.info} instead.\n */\n log(...args: unknown[]): void {\n this.info(...args);\n }\n\n info(...args: unknown[]): void {\n this.#write(LogLevel.INFO, console.info, args);\n }\n\n debug(...args: unknown[]): void {\n this.#write(LogLevel.DEBUG, console.debug, args);\n }\n\n trace(...args: unknown[]): void {\n this.#write(LogLevel.TRACE, console.trace, args);\n }\n\n #isLevelDisabled(level: LoggerMethod): boolean {\n return logLevelPriority[level] > logLevelPriority[this.#level];\n }\n\n #write(\n level: LoggerMethod,\n writeToConsole: (...args: unknown[]) => void,\n args: unknown[],\n ): void {\n if (this.#isLevelDisabled(level)) {\n return;\n }\n\n const next: LogMethod = this.#prefix\n ? (...nextArgs: unknown[]): void =>\n writeToConsole(this.#prefix, ...nextArgs)\n : writeToConsole;\n\n const decorator = this.#decorators?.[level];\n\n if (decorator) {\n decorator(next, ...args);\n return;\n }\n\n next(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"Logger.mjs","sourceRoot":"","sources":["../../../src/utils/logger/Logger.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert, enums } from '@metamask/superstruct';\n\n/**\n * The severity levels supported by {@link Logger}.\n */\nexport const LogLevel = {\n SILENT: 'silent',\n ERROR: 'error',\n WARN: 'warn',\n INFO: 'info',\n DEBUG: 'debug',\n TRACE: 'trace',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n\n/**\n * Defines the severity ordering used to filter log messages.\n *\n * Lower values are less verbose. Changing these numeric priorities changes\n * which messages are emitted for each configured {@link LogLevel}, including\n * in production.\n */\nconst logLevelPriority = {\n [LogLevel.SILENT]: 0,\n [LogLevel.ERROR]: 1,\n [LogLevel.WARN]: 2,\n [LogLevel.INFO]: 3,\n [LogLevel.DEBUG]: 4,\n [LogLevel.TRACE]: 5,\n};\n\nconst LogLevelStruct = enums(Object.values(LogLevel));\n\nexport type LoggerMethod = Exclude<LogLevel, typeof LogLevel.SILENT>;\n\nexport type LogMethod = (...args: unknown[]) => void;\n\n/**\n * A function that can add behavior around a logger method.\n *\n * Call `next` to forward a message through the logger's configured output.\n */\nexport type LogMethodDecorator = (next: LogMethod, ...args: unknown[]) => void;\n\nexport type LoggerDecorators = Partial<\n Record<LoggerMethod, LogMethodDecorator>\n>;\n\n/**\n * Configuration for a {@link Logger}.\n *\n * **Example: configure logging with `LOG_LEVEL`.**\n *\n * ```ts\n * const logger = new Logger({\n * level: process.env.LOG_LEVEL\n * });\n * ```\n */\nexport type LoggerOptions = {\n /**\n * The most verbose severity level that should be logged. Use\n * {@link LogLevel.SILENT} to disable logging.\n */\n level: LogLevel;\n /**\n * An optional prefix prepended to every message.\n *\n * Use {@link Logger.withPrefix} to add prefixes after construction.\n */\n prefix?: string;\n /**\n * Optional behavior to apply to individual log methods.\n *\n * Decorators receive `next`, which preserves this logger's configured level,\n * prefix, and console output.\n */\n decorators?: LoggerDecorators;\n};\n\n/**\n * Logs network Snap messages to the console at configurable severity levels.\n *\n * Disable output with {@link LogLevel.SILENT}.\n *\n * **Example: create an enabled logger.**\n *\n * ```ts\n * import { Logger } from '@metamask/snap-networks-utils';\n *\n * const logger = new Logger({ level: LogLevel.TRACE });\n * logger.info('Account synced');\n * ```\n *\n * **Example: add a Snap or component prefix.**\n *\n * ```ts\n * const rootLogger = new Logger({ level: LogLevel.TRACE });\n * const snapLogger = rootLogger.withPrefix('[tron-wallet-snap]');\n * const accountsLogger = snapLogger.withPrefix('[accounts]');\n *\n * accountsLogger.debug('Refreshing account balances');\n * ```\n *\n * **Example: decorate a method with Snap-specific behavior.**\n *\n * ```ts\n * const logger = new Logger({\n * level: LogLevel.TRACE,\n * decorators: {\n * error: (next, error) => {\n * const details = getSolanaErrorDetails(error);\n * next(details ?? error);\n * },\n * },\n * });\n * ```\n */\nexport class Logger {\n readonly #level: LogLevel;\n\n readonly #prefix?: string;\n\n readonly #decorators?: LoggerDecorators;\n\n constructor({ level, prefix, decorators }: LoggerOptions) {\n assert(level, LogLevelStruct);\n\n this.#level = level;\n this.#prefix = prefix;\n this.#decorators = decorators;\n }\n\n /**\n * Returns a logger with an additional prefix.\n *\n * The returned logger has the same log level and decorators as this one. Call\n * this method as many times as needed; each derived logger appends its prefix\n * to the existing prefix.\n *\n * @param prefix - The prefix to add to each message.\n * @returns A derived logger.\n */\n withPrefix(prefix: string): Logger {\n return new Logger({\n level: this.#level,\n prefix: this.#prefix ? `${this.#prefix} ${prefix}` : prefix,\n decorators: this.#decorators,\n });\n }\n\n error(...args: unknown[]): void {\n this.#write(LogLevel.ERROR, console.error, args);\n }\n\n warn(...args: unknown[]): void {\n this.#write(LogLevel.WARN, console.warn, args);\n }\n\n /**\n * Logs an informational message.\n *\n * @param args - The values to write to the console.\n * @deprecated Use {@link Logger.info} instead.\n */\n log(...args: unknown[]): void {\n this.info(...args);\n }\n\n info(...args: unknown[]): void {\n this.#write(LogLevel.INFO, console.info, args);\n }\n\n debug(...args: unknown[]): void {\n this.#write(LogLevel.DEBUG, console.debug, args);\n }\n\n trace(...args: unknown[]): void {\n this.#write(LogLevel.TRACE, console.trace, args);\n }\n\n #isLevelDisabled(level: LoggerMethod): boolean {\n return logLevelPriority[level] > logLevelPriority[this.#level];\n }\n\n #write(\n level: LoggerMethod,\n writeToConsole: (...args: unknown[]) => void,\n args: unknown[],\n ): void {\n if (this.#isLevelDisabled(level)) {\n return;\n }\n\n const next: LogMethod = this.#prefix\n ? (...nextArgs: unknown[]): void =>\n writeToConsole(this.#prefix, ...nextArgs)\n : writeToConsole;\n\n const decorator = this.#decorators?.[level];\n\n if (decorator) {\n decorator(next, ...args);\n return;\n }\n\n next(...args);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/snap-networks-utils",
3
- "version": "1.0.0-preview-2aa5deb",
3
+ "version": "1.0.0-preview-57b1c19b",
4
4
  "description": "Shared utilities for MetaMask network snaps",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -94,6 +94,6 @@
94
94
  "typescript": "~5.8.3"
95
95
  },
96
96
  "engines": {
97
- "node": ">=20"
97
+ "node": "^22.14.0 || ^24"
98
98
  }
99
99
  }