@metamask-previews/wallet 5.0.0-preview-e12e4a38f → 5.0.0-preview-0b8cac1b5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/initialization/initialization.cjs +9 -2
  3. package/dist/initialization/initialization.cjs.map +1 -1
  4. package/dist/initialization/initialization.d.cts.map +1 -1
  5. package/dist/initialization/initialization.d.mts.map +1 -1
  6. package/dist/initialization/initialization.mjs +9 -2
  7. package/dist/initialization/initialization.mjs.map +1 -1
  8. package/dist/initialization/instances/address-book-controller/address-book-controller.cjs +17 -0
  9. package/dist/initialization/instances/address-book-controller/address-book-controller.cjs.map +1 -0
  10. package/dist/initialization/instances/address-book-controller/address-book-controller.d.cts +4 -0
  11. package/dist/initialization/instances/address-book-controller/address-book-controller.d.cts.map +1 -0
  12. package/dist/initialization/instances/address-book-controller/address-book-controller.d.mts +4 -0
  13. package/dist/initialization/instances/address-book-controller/address-book-controller.d.mts.map +1 -0
  14. package/dist/initialization/instances/address-book-controller/address-book-controller.mjs +14 -0
  15. package/dist/initialization/instances/address-book-controller/address-book-controller.mjs.map +1 -0
  16. package/dist/initialization/instances/index.cjs +7 -1
  17. package/dist/initialization/instances/index.cjs.map +1 -1
  18. package/dist/initialization/instances/index.d.cts +3 -0
  19. package/dist/initialization/instances/index.d.cts.map +1 -1
  20. package/dist/initialization/instances/index.d.mts +3 -0
  21. package/dist/initialization/instances/index.d.mts.map +1 -1
  22. package/dist/initialization/instances/index.mjs +3 -0
  23. package/dist/initialization/instances/index.mjs.map +1 -1
  24. package/dist/initialization/instances/permission-controller/permission-controller.cjs +33 -0
  25. package/dist/initialization/instances/permission-controller/permission-controller.cjs.map +1 -0
  26. package/dist/initialization/instances/permission-controller/permission-controller.d.cts +4 -0
  27. package/dist/initialization/instances/permission-controller/permission-controller.d.cts.map +1 -0
  28. package/dist/initialization/instances/permission-controller/permission-controller.d.mts +4 -0
  29. package/dist/initialization/instances/permission-controller/permission-controller.d.mts.map +1 -0
  30. package/dist/initialization/instances/permission-controller/permission-controller.mjs +30 -0
  31. package/dist/initialization/instances/permission-controller/permission-controller.mjs.map +1 -0
  32. package/dist/initialization/instances/permission-controller/types.cjs +3 -0
  33. package/dist/initialization/instances/permission-controller/types.cjs.map +1 -0
  34. package/dist/initialization/instances/permission-controller/types.d.cts +28 -0
  35. package/dist/initialization/instances/permission-controller/types.d.cts.map +1 -0
  36. package/dist/initialization/instances/permission-controller/types.d.mts +28 -0
  37. package/dist/initialization/instances/permission-controller/types.d.mts.map +1 -0
  38. package/dist/initialization/instances/permission-controller/types.mjs +2 -0
  39. package/dist/initialization/instances/permission-controller/types.mjs.map +1 -0
  40. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.cjs +35 -0
  41. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.cjs.map +1 -0
  42. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.d.cts +4 -0
  43. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.d.cts.map +1 -0
  44. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.d.mts +4 -0
  45. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.d.mts.map +1 -0
  46. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.mjs +32 -0
  47. package/dist/initialization/instances/subject-metadata-controller/subject-metadata-controller.mjs.map +1 -0
  48. package/dist/initialization/instances/subject-metadata-controller/types.cjs +3 -0
  49. package/dist/initialization/instances/subject-metadata-controller/types.cjs.map +1 -0
  50. package/dist/initialization/instances/subject-metadata-controller/types.d.cts +13 -0
  51. package/dist/initialization/instances/subject-metadata-controller/types.d.cts.map +1 -0
  52. package/dist/initialization/instances/subject-metadata-controller/types.d.mts +13 -0
  53. package/dist/initialization/instances/subject-metadata-controller/types.d.mts.map +1 -0
  54. package/dist/initialization/instances/subject-metadata-controller/types.mjs +2 -0
  55. package/dist/initialization/instances/subject-metadata-controller/types.mjs.map +1 -0
  56. package/dist/types.cjs.map +1 -1
  57. package/dist/types.d.cts +4 -0
  58. package/dist/types.d.cts.map +1 -1
  59. package/dist/types.d.mts +4 -0
  60. package/dist/types.d.mts.map +1 -1
  61. package/dist/types.mjs.map +1 -1
  62. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - **BREAKING:** Wire `AddressBookController` into the default wallet initialization ([#9291](https://github.com/MetaMask/core/pull/9291))
13
+ - **BREAKING:** Wire `PermissionController` and `SubjectMetadataController` into the default wallet initialization ([#9300](https://github.com/MetaMask/core/pull/9300))
14
+ - Adds optional `instanceOptions.permissionController` (`caveatSpecifications`, `permissionSpecifications`, `unrestrictedMethods`) and `instanceOptions.subjectMetadataController.subjectCacheLimit`.
15
+
16
+ ### Changed
17
+
18
+ - A configuration that overrides a default is now initialized in that default's position rather than ahead of all defaults, preserving construction-order dependencies between default controllers (e.g. `PermissionController` before `SubjectMetadataController`) ([#9300](https://github.com/MetaMask/core/pull/9300))
19
+
10
20
  ## [5.0.0]
11
21
 
12
22
  ### Added
@@ -10,8 +10,15 @@ const defaults_1 = require("./defaults.cjs");
10
10
  */
11
11
  function initialize(options) {
12
12
  const { messenger, state = {}, initializationConfigurations = [], instanceOptions, } = options;
13
- const overriddenConfiguration = initializationConfigurations.map((config) => config.name);
14
- const configurationEntries = initializationConfigurations.concat(Object.values(defaults_1.defaultConfigurations).filter((config) => !overriddenConfiguration.includes(config.name)));
13
+ const defaultConfigurationEntries = Object.values(defaults_1.defaultConfigurations);
14
+ const overrideConfigurationsByName = new Map(initializationConfigurations.map((config) => [config.name, config]));
15
+ const defaultConfigurationNames = new Set(defaultConfigurationEntries.map((config) => config.name));
16
+ // Overrides keep their default's position so construction order between
17
+ // defaults is preserved (e.g. `PermissionController` before
18
+ // `SubjectMetadataController`). Non-default configs are additive and run first.
19
+ const additionalConfigurations = initializationConfigurations.filter((config) => !defaultConfigurationNames.has(config.name));
20
+ const mergedDefaultConfigurations = defaultConfigurationEntries.map((config) => overrideConfigurationsByName.get(config.name) ?? config);
21
+ const configurationEntries = additionalConfigurations.concat(mergedDefaultConfigurations);
15
22
  const instances = {};
16
23
  for (const config of configurationEntries) {
17
24
  const { name } = config;
@@ -1 +1 @@
1
- {"version":3,"file":"initialization.cjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":";;;AAMA,6CAAkE;AAOlE;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,GAAG,CAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,MAAM,CAC9D,MAAM,CAAC,MAAM,CAAC,gCAAqB,CAAC,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACR,CACrD,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC;AAzCD,gCAyCC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const overriddenConfiguration = initializationConfigurations.map(\n (config) => config.name,\n );\n\n const configurationEntries = initializationConfigurations.concat(\n Object.values(defaultConfigurations).filter(\n (config) => !overriddenConfiguration.includes(config.name),\n ) as InitializationConfiguration<unknown, unknown>[],\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
1
+ {"version":3,"file":"initialization.cjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":";;;AAMA,6CAAkE;AAOlE;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAC/C,gCAAqB,CAC6B,CAAC;IAErD,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,4BAA4B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACpE,CAAC;IACF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,2BAA2B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACzD,CAAC;IAEF,wEAAwE;IACxE,4DAA4D;IAC5D,gFAAgF;IAChF,MAAM,wBAAwB,GAAG,4BAA4B,CAAC,MAAM,CAClE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CACxD,CAAC;IACF,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,GAAG,CACjE,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CACpE,CAAC;IAEF,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,MAAM,CAC1D,2BAA2B,CAC5B,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC;AAxDD,gCAwDC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const defaultConfigurationEntries = Object.values(\n defaultConfigurations,\n ) as InitializationConfiguration<unknown, unknown>[];\n\n const overrideConfigurationsByName = new Map(\n initializationConfigurations.map((config) => [config.name, config]),\n );\n const defaultConfigurationNames = new Set(\n defaultConfigurationEntries.map((config) => config.name),\n );\n\n // Overrides keep their default's position so construction order between\n // defaults is preserved (e.g. `PermissionController` before\n // `SubjectMetadataController`). Non-default configs are additive and run first.\n const additionalConfigurations = initializationConfigurations.filter(\n (config) => !defaultConfigurationNames.has(config.name),\n );\n const mergedDefaultConfigurations = defaultConfigurationEntries.map(\n (config) => overrideConfigurationsByName.get(config.name) ?? config,\n );\n\n const configurationEntries = additionalConfigurations.concat(\n mergedDefaultConfigurations,\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"initialization.d.cts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAyCvE"}
1
+ {"version":3,"file":"initialization.d.cts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAwDvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"initialization.d.mts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAyCvE"}
1
+ {"version":3,"file":"initialization.d.mts","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,aAAa,EAAE,qBAAiB;AACvE,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,uBAAmB;AACpB,OAAO,EAAyB,aAAa,EAAE,uBAAmB;AAGlE,KAAK,iBAAiB,GAAG,aAAa,GAAG;IACvC,SAAS,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAwDvE"}
@@ -7,8 +7,15 @@ import { defaultConfigurations } from "./defaults.mjs";
7
7
  */
8
8
  export function initialize(options) {
9
9
  const { messenger, state = {}, initializationConfigurations = [], instanceOptions, } = options;
10
- const overriddenConfiguration = initializationConfigurations.map((config) => config.name);
11
- const configurationEntries = initializationConfigurations.concat(Object.values(defaultConfigurations).filter((config) => !overriddenConfiguration.includes(config.name)));
10
+ const defaultConfigurationEntries = Object.values(defaultConfigurations);
11
+ const overrideConfigurationsByName = new Map(initializationConfigurations.map((config) => [config.name, config]));
12
+ const defaultConfigurationNames = new Set(defaultConfigurationEntries.map((config) => config.name));
13
+ // Overrides keep their default's position so construction order between
14
+ // defaults is preserved (e.g. `PermissionController` before
15
+ // `SubjectMetadataController`). Non-default configs are additive and run first.
16
+ const additionalConfigurations = initializationConfigurations.filter((config) => !defaultConfigurationNames.has(config.name));
17
+ const mergedDefaultConfigurations = defaultConfigurationEntries.map((config) => overrideConfigurationsByName.get(config.name) ?? config);
18
+ const configurationEntries = additionalConfigurations.concat(mergedDefaultConfigurations);
12
19
  const instances = {};
13
20
  for (const config of configurationEntries) {
14
21
  const { name } = config;
@@ -1 +1 @@
1
- {"version":3,"file":"initialization.mjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAiB,uBAAmB;AAOlE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,uBAAuB,GAAG,4BAA4B,CAAC,GAAG,CAC9D,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CACxB,CAAC;IAEF,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,MAAM,CAC9D,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAM,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CACR,CACrD,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const overriddenConfiguration = initializationConfigurations.map(\n (config) => config.name,\n );\n\n const configurationEntries = initializationConfigurations.concat(\n Object.values(defaultConfigurations).filter(\n (config) => !overriddenConfiguration.includes(config.name),\n ) as InitializationConfiguration<unknown, unknown>[],\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
1
+ {"version":3,"file":"initialization.mjs","sourceRoot":"","sources":["../../src/initialization/initialization.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAiB,uBAAmB;AAOlE;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,MAAM,EACJ,SAAS,EACT,KAAK,GAAG,EAAE,EACV,4BAA4B,GAAG,EAAE,EACjC,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAC/C,qBAAqB,CAC6B,CAAC;IAErD,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAC1C,4BAA4B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CACpE,CAAC;IACF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CACvC,2BAA2B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACzD,CAAC;IAEF,wEAAwE;IACxE,4DAA4D;IAC5D,gFAAgF;IAChF,MAAM,wBAAwB,GAAG,4BAA4B,CAAC,MAAM,CAClE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CACxD,CAAC;IACF,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,GAAG,CACjE,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CACpE,CAAC;IAEF,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,MAAM,CAC1D,2BAA2B,CAC5B,CAAC;IAEF,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,MAAM,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,aAAa,GACjB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAmC,CAAC;QAErF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YAC3B,8CAA8C;YAC9C,KAAK,EAAE,aAAsB;YAC7B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;SAChD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO,SAA6B,CAAC;AACvC,CAAC","sourcesContent":["import type { InstanceSpecificOptions, WalletOptions } from '../types';\nimport type {\n DefaultActions,\n DefaultEvents,\n DefaultInstances,\n} from './defaults';\nimport { defaultConfigurations, RootMessenger } from './defaults';\nimport { InitializationConfiguration } from './types';\n\ntype InitializeOptions = WalletOptions & {\n messenger: RootMessenger<DefaultActions, DefaultEvents>;\n};\n\n/**\n * Initialize all instances based on th default configurations and any additional configurations specified in `options`.\n *\n * @param options - The wallet options.\n * @returns A map containing the instances.\n */\nexport function initialize(options: InitializeOptions): DefaultInstances {\n const {\n messenger,\n state = {},\n initializationConfigurations = [],\n instanceOptions,\n } = options;\n\n const defaultConfigurationEntries = Object.values(\n defaultConfigurations,\n ) as InitializationConfiguration<unknown, unknown>[];\n\n const overrideConfigurationsByName = new Map(\n initializationConfigurations.map((config) => [config.name, config]),\n );\n const defaultConfigurationNames = new Set(\n defaultConfigurationEntries.map((config) => config.name),\n );\n\n // Overrides keep their default's position so construction order between\n // defaults is preserved (e.g. `PermissionController` before\n // `SubjectMetadataController`). Non-default configs are additive and run first.\n const additionalConfigurations = initializationConfigurations.filter(\n (config) => !defaultConfigurationNames.has(config.name),\n );\n const mergedDefaultConfigurations = defaultConfigurationEntries.map(\n (config) => overrideConfigurationsByName.get(config.name) ?? config,\n );\n\n const configurationEntries = additionalConfigurations.concat(\n mergedDefaultConfigurations,\n );\n\n const instances: Record<string, unknown> = {};\n\n for (const config of configurationEntries) {\n const { name } = config;\n\n const instanceState = state[name];\n\n const instanceMessenger = config.getMessenger(messenger);\n\n const camelCaseName =\n `${name.charAt(0).toLowerCase()}${name.slice(1)}` as keyof InstanceSpecificOptions;\n\n const instance = config.init({\n // TODO: Consider whether this can be improved\n state: instanceState as never,\n messenger: instanceMessenger,\n options: instanceOptions?.[camelCaseName] ?? {},\n });\n\n instances[name] = instance;\n }\n\n return instances as DefaultInstances;\n}\n"]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addressBookController = void 0;
4
+ const address_book_controller_1 = require("@metamask/address-book-controller");
5
+ const messenger_1 = require("@metamask/messenger");
6
+ exports.addressBookController = {
7
+ name: 'AddressBookController',
8
+ init: ({ state, messenger }) => new address_book_controller_1.AddressBookController({
9
+ state,
10
+ messenger,
11
+ }),
12
+ getMessenger: (parent) => new messenger_1.Messenger({
13
+ namespace: 'AddressBookController',
14
+ parent,
15
+ }),
16
+ };
17
+ //# sourceMappingURL=address-book-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-book-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/address-book-controller/address-book-controller.ts"],"names":[],"mappings":";;;AAAA,+EAG2C;AAC3C,mDAAgD;AAInC,QAAA,qBAAqB,GAG9B;IACF,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAC7B,IAAI,+CAAqB,CAAC;QACxB,KAAK;QACL,SAAS;KACV,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,qBAAS,CAAC;QACZ,SAAS,EAAE,uBAAuB;QAClC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import {\n AddressBookController,\n AddressBookControllerMessenger,\n} from '@metamask/address-book-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type { InitializationConfiguration } from '../../types';\n\nexport const addressBookController: InitializationConfiguration<\n AddressBookController,\n AddressBookControllerMessenger\n> = {\n name: 'AddressBookController',\n init: ({ state, messenger }) =>\n new AddressBookController({\n state,\n messenger,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'AddressBookController',\n parent,\n }),\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { AddressBookController, AddressBookControllerMessenger } from "@metamask/address-book-controller";
2
+ import type { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const addressBookController: InitializationConfiguration<AddressBookController, AddressBookControllerMessenger>;
4
+ //# sourceMappingURL=address-book-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-book-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/address-book-controller/address-book-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC/B,0CAA0C;AAG3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,qBAAqB,EAAE,2BAA2B,CAC7D,qBAAqB,EACrB,8BAA8B,CAa/B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AddressBookController, AddressBookControllerMessenger } from "@metamask/address-book-controller";
2
+ import type { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const addressBookController: InitializationConfiguration<AddressBookController, AddressBookControllerMessenger>;
4
+ //# sourceMappingURL=address-book-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-book-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/address-book-controller/address-book-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC/B,0CAA0C;AAG3C,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,qBAAqB,EAAE,2BAA2B,CAC7D,qBAAqB,EACrB,8BAA8B,CAa/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { AddressBookController } from "@metamask/address-book-controller";
2
+ import { Messenger } from "@metamask/messenger";
3
+ export const addressBookController = {
4
+ name: 'AddressBookController',
5
+ init: ({ state, messenger }) => new AddressBookController({
6
+ state,
7
+ messenger,
8
+ }),
9
+ getMessenger: (parent) => new Messenger({
10
+ namespace: 'AddressBookController',
11
+ parent,
12
+ }),
13
+ };
14
+ //# sourceMappingURL=address-book-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address-book-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/address-book-controller/address-book-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAEtB,0CAA0C;AAC3C,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAIhD,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAC7B,IAAI,qBAAqB,CAAC;QACxB,KAAK;QACL,SAAS;KACV,CAAC;IACJ,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CACvB,IAAI,SAAS,CAAC;QACZ,SAAS,EAAE,uBAAuB;QAClC,MAAM;KACP,CAAC;CACL,CAAC","sourcesContent":["import {\n AddressBookController,\n AddressBookControllerMessenger,\n} from '@metamask/address-book-controller';\nimport { Messenger } from '@metamask/messenger';\n\nimport type { InitializationConfiguration } from '../../types';\n\nexport const addressBookController: InitializationConfiguration<\n AddressBookController,\n AddressBookControllerMessenger\n> = {\n name: 'AddressBookController',\n init: ({ state, messenger }) =>\n new AddressBookController({\n state,\n messenger,\n }),\n getMessenger: (parent) =>\n new Messenger({\n namespace: 'AddressBookController',\n parent,\n }),\n};\n"]}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.storageService = exports.remoteFeatureFlagController = exports.networkController = exports.keyringController = exports.connectivityController = exports.approvalController = exports.accountsController = void 0;
3
+ exports.subjectMetadataController = exports.storageService = exports.remoteFeatureFlagController = exports.permissionController = exports.networkController = exports.keyringController = exports.connectivityController = exports.approvalController = exports.addressBookController = exports.accountsController = void 0;
4
4
  var accounts_controller_1 = require("./accounts-controller/accounts-controller.cjs");
5
5
  Object.defineProperty(exports, "accountsController", { enumerable: true, get: function () { return accounts_controller_1.accountsController; } });
6
+ var address_book_controller_1 = require("./address-book-controller/address-book-controller.cjs");
7
+ Object.defineProperty(exports, "addressBookController", { enumerable: true, get: function () { return address_book_controller_1.addressBookController; } });
6
8
  var approval_controller_1 = require("./approval-controller/approval-controller.cjs");
7
9
  Object.defineProperty(exports, "approvalController", { enumerable: true, get: function () { return approval_controller_1.approvalController; } });
8
10
  var connectivity_controller_1 = require("./connectivity-controller/connectivity-controller.cjs");
@@ -11,8 +13,12 @@ var keyring_controller_1 = require("./keyring-controller/keyring-controller.cjs"
11
13
  Object.defineProperty(exports, "keyringController", { enumerable: true, get: function () { return keyring_controller_1.keyringController; } });
12
14
  var network_controller_1 = require("./network-controller/network-controller.cjs");
13
15
  Object.defineProperty(exports, "networkController", { enumerable: true, get: function () { return network_controller_1.networkController; } });
16
+ var permission_controller_1 = require("./permission-controller/permission-controller.cjs");
17
+ Object.defineProperty(exports, "permissionController", { enumerable: true, get: function () { return permission_controller_1.permissionController; } });
14
18
  var remote_feature_flag_controller_1 = require("./remote-feature-flag-controller/remote-feature-flag-controller.cjs");
15
19
  Object.defineProperty(exports, "remoteFeatureFlagController", { enumerable: true, get: function () { return remote_feature_flag_controller_1.remoteFeatureFlagController; } });
16
20
  var storage_service_1 = require("./storage-service/storage-service.cjs");
17
21
  Object.defineProperty(exports, "storageService", { enumerable: true, get: function () { return storage_service_1.storageService; } });
22
+ var subject_metadata_controller_1 = require("./subject-metadata-controller/subject-metadata-controller.cjs");
23
+ Object.defineProperty(exports, "subjectMetadataController", { enumerable: true, get: function () { return subject_metadata_controller_1.subjectMetadataController; } });
18
24
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,iGAA2F;AAAlF,iIAAA,sBAAsB,OAAA;AAC/B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,sHAA8G;AAArG,6IAAA,2BAA2B,OAAA;AACpC,yEAAmE;AAA1D,iHAAA,cAAc,OAAA","sourcesContent":["export { accountsController } from './accounts-controller/accounts-controller';\nexport { approvalController } from './approval-controller/approval-controller';\nexport { connectivityController } from './connectivity-controller/connectivity-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { networkController } from './network-controller/network-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":";;;AAAA,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,iGAA0F;AAAjF,gIAAA,qBAAqB,OAAA;AAC9B,qFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,iGAA2F;AAAlF,iIAAA,sBAAsB,OAAA;AAC/B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,kFAA4E;AAAnE,uHAAA,iBAAiB,OAAA;AAC1B,2FAAqF;AAA5E,6HAAA,oBAAoB,OAAA;AAC7B,sHAA8G;AAArG,6IAAA,2BAA2B,OAAA;AACpC,yEAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,6GAAsG;AAA7F,wIAAA,yBAAyB,OAAA","sourcesContent":["export { accountsController } from './accounts-controller/accounts-controller';\nexport { addressBookController } from './address-book-controller/address-book-controller';\nexport { approvalController } from './approval-controller/approval-controller';\nexport { connectivityController } from './connectivity-controller/connectivity-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { networkController } from './network-controller/network-controller';\nexport { permissionController } from './permission-controller/permission-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\nexport { subjectMetadataController } from './subject-metadata-controller/subject-metadata-controller';\n"]}
@@ -1,8 +1,11 @@
1
1
  export { accountsController } from "./accounts-controller/accounts-controller.cjs";
2
+ export { addressBookController } from "./address-book-controller/address-book-controller.cjs";
2
3
  export { approvalController } from "./approval-controller/approval-controller.cjs";
3
4
  export { connectivityController } from "./connectivity-controller/connectivity-controller.cjs";
4
5
  export { keyringController } from "./keyring-controller/keyring-controller.cjs";
5
6
  export { networkController } from "./network-controller/network-controller.cjs";
7
+ export { permissionController } from "./permission-controller/permission-controller.cjs";
6
8
  export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.cjs";
7
9
  export { storageService } from "./storage-service/storage-service.cjs";
10
+ export { subjectMetadataController } from "./subject-metadata-controller/subject-metadata-controller.cjs";
8
11
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,qBAAqB,EAAE,8DAA0D;AAC1F,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,oBAAoB,EAAE,0DAAsD;AACrF,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C;AACnE,OAAO,EAAE,yBAAyB,EAAE,sEAAkE"}
@@ -1,8 +1,11 @@
1
1
  export { accountsController } from "./accounts-controller/accounts-controller.mjs";
2
+ export { addressBookController } from "./address-book-controller/address-book-controller.mjs";
2
3
  export { approvalController } from "./approval-controller/approval-controller.mjs";
3
4
  export { connectivityController } from "./connectivity-controller/connectivity-controller.mjs";
4
5
  export { keyringController } from "./keyring-controller/keyring-controller.mjs";
5
6
  export { networkController } from "./network-controller/network-controller.mjs";
7
+ export { permissionController } from "./permission-controller/permission-controller.mjs";
6
8
  export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.mjs";
7
9
  export { storageService } from "./storage-service/storage-service.mjs";
10
+ export { subjectMetadataController } from "./subject-metadata-controller/subject-metadata-controller.mjs";
8
11
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,qBAAqB,EAAE,8DAA0D;AAC1F,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,oBAAoB,EAAE,0DAAsD;AACrF,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C;AACnE,OAAO,EAAE,yBAAyB,EAAE,sEAAkE"}
@@ -1,8 +1,11 @@
1
1
  export { accountsController } from "./accounts-controller/accounts-controller.mjs";
2
+ export { addressBookController } from "./address-book-controller/address-book-controller.mjs";
2
3
  export { approvalController } from "./approval-controller/approval-controller.mjs";
3
4
  export { connectivityController } from "./connectivity-controller/connectivity-controller.mjs";
4
5
  export { keyringController } from "./keyring-controller/keyring-controller.mjs";
5
6
  export { networkController } from "./network-controller/network-controller.mjs";
7
+ export { permissionController } from "./permission-controller/permission-controller.mjs";
6
8
  export { remoteFeatureFlagController } from "./remote-feature-flag-controller/remote-feature-flag-controller.mjs";
7
9
  export { storageService } from "./storage-service/storage-service.mjs";
10
+ export { subjectMetadataController } from "./subject-metadata-controller/subject-metadata-controller.mjs";
8
11
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C","sourcesContent":["export { accountsController } from './accounts-controller/accounts-controller';\nexport { approvalController } from './approval-controller/approval-controller';\nexport { connectivityController } from './connectivity-controller/connectivity-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { networkController } from './network-controller/network-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../src/initialization/instances/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,qBAAqB,EAAE,8DAA0D;AAC1F,OAAO,EAAE,kBAAkB,EAAE,sDAAkD;AAC/E,OAAO,EAAE,sBAAsB,EAAE,8DAA0D;AAC3F,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,iBAAiB,EAAE,oDAAgD;AAC5E,OAAO,EAAE,oBAAoB,EAAE,0DAAsD;AACrF,OAAO,EAAE,2BAA2B,EAAE,4EAAwE;AAC9G,OAAO,EAAE,cAAc,EAAE,8CAA0C;AACnE,OAAO,EAAE,yBAAyB,EAAE,sEAAkE","sourcesContent":["export { accountsController } from './accounts-controller/accounts-controller';\nexport { addressBookController } from './address-book-controller/address-book-controller';\nexport { approvalController } from './approval-controller/approval-controller';\nexport { connectivityController } from './connectivity-controller/connectivity-controller';\nexport { keyringController } from './keyring-controller/keyring-controller';\nexport { networkController } from './network-controller/network-controller';\nexport { permissionController } from './permission-controller/permission-controller';\nexport { remoteFeatureFlagController } from './remote-feature-flag-controller/remote-feature-flag-controller';\nexport { storageService } from './storage-service/storage-service';\nexport { subjectMetadataController } from './subject-metadata-controller/subject-metadata-controller';\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.permissionController = void 0;
4
+ const messenger_1 = require("@metamask/messenger");
5
+ const permission_controller_1 = require("@metamask/permission-controller");
6
+ exports.permissionController = {
7
+ name: 'PermissionController',
8
+ init: ({ state, messenger, options }) => new permission_controller_1.PermissionController({
9
+ state,
10
+ messenger,
11
+ caveatSpecifications: options.caveatSpecifications ?? {},
12
+ permissionSpecifications: options.permissionSpecifications ?? {},
13
+ unrestrictedMethods: options.unrestrictedMethods ?? [],
14
+ }),
15
+ getMessenger: (parent) => {
16
+ const permissionControllerMessenger = new messenger_1.Messenger({
17
+ namespace: 'PermissionController',
18
+ parent,
19
+ });
20
+ parent.delegate({
21
+ messenger: permissionControllerMessenger,
22
+ actions: [
23
+ 'ApprovalController:addRequest',
24
+ 'ApprovalController:hasRequest',
25
+ 'ApprovalController:acceptRequest',
26
+ 'ApprovalController:rejectRequest',
27
+ 'SubjectMetadataController:getSubjectMetadata',
28
+ ],
29
+ });
30
+ return permissionControllerMessenger;
31
+ },
32
+ };
33
+ //# sourceMappingURL=permission-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/permission-controller.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2EAMyC;AAS5B,QAAA,oBAAoB,GAG7B;IACF,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,4CAAoB,CAGtB;QACA,KAAK;QACL,SAAS;QACT,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,EAAE;QACxD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,IAAI,EAAE;QAChE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,EAAE;KACvD,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,6BAA6B,GACjC,IAAI,qBAAS,CAAC;YACZ,SAAS,EAAE,sBAAsB;YACjC,MAAM;SACP,CAAC,CAAC;QAEL,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,6BAA6B;YACxC,OAAO,EAAE;gBACP,+BAA+B;gBAC/B,+BAA+B;gBAC/B,kCAAkC;gBAClC,kCAAkC;gBAClC,8CAA8C;aAC/C;SACF,CAAC,CAAC;QAEH,OAAO,6BAA6B,CAAC;IACvC,CAAC;CACF,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n CaveatSpecificationConstraint,\n GenericPermissionController,\n PermissionController,\n PermissionControllerMessenger,\n PermissionSpecificationConstraint,\n} from '@metamask/permission-controller';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const permissionController: InitializationConfiguration<\n GenericPermissionController,\n PermissionControllerMessenger\n> = {\n name: 'PermissionController',\n init: ({ state, messenger, options }) =>\n new PermissionController<\n PermissionSpecificationConstraint,\n CaveatSpecificationConstraint\n >({\n state,\n messenger,\n caveatSpecifications: options.caveatSpecifications ?? {},\n permissionSpecifications: options.permissionSpecifications ?? {},\n unrestrictedMethods: options.unrestrictedMethods ?? [],\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const permissionControllerMessenger: PermissionControllerMessenger =\n new Messenger({\n namespace: 'PermissionController',\n parent,\n });\n\n parent.delegate({\n messenger: permissionControllerMessenger,\n actions: [\n 'ApprovalController:addRequest',\n 'ApprovalController:hasRequest',\n 'ApprovalController:acceptRequest',\n 'ApprovalController:rejectRequest',\n 'SubjectMetadataController:getSubjectMetadata',\n ],\n });\n\n return permissionControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { GenericPermissionController, PermissionControllerMessenger } from "@metamask/permission-controller";
2
+ import type { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const permissionController: InitializationConfiguration<GenericPermissionController, PermissionControllerMessenger>;
4
+ //# sourceMappingURL=permission-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/permission-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAE3B,6BAA6B,EAE9B,wCAAwC;AAOzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,oBAAoB,EAAE,2BAA2B,CAC5D,2BAA2B,EAC3B,6BAA6B,CAkC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { GenericPermissionController, PermissionControllerMessenger } from "@metamask/permission-controller";
2
+ import type { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const permissionController: InitializationConfiguration<GenericPermissionController, PermissionControllerMessenger>;
4
+ //# sourceMappingURL=permission-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/permission-controller.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,2BAA2B,EAE3B,6BAA6B,EAE9B,wCAAwC;AAOzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAE/D,eAAO,MAAM,oBAAoB,EAAE,2BAA2B,CAC5D,2BAA2B,EAC3B,6BAA6B,CAkC9B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Messenger } from "@metamask/messenger";
2
+ import { PermissionController } from "@metamask/permission-controller";
3
+ export const permissionController = {
4
+ name: 'PermissionController',
5
+ init: ({ state, messenger, options }) => new PermissionController({
6
+ state,
7
+ messenger,
8
+ caveatSpecifications: options.caveatSpecifications ?? {},
9
+ permissionSpecifications: options.permissionSpecifications ?? {},
10
+ unrestrictedMethods: options.unrestrictedMethods ?? [],
11
+ }),
12
+ getMessenger: (parent) => {
13
+ const permissionControllerMessenger = new Messenger({
14
+ namespace: 'PermissionController',
15
+ parent,
16
+ });
17
+ parent.delegate({
18
+ messenger: permissionControllerMessenger,
19
+ actions: [
20
+ 'ApprovalController:addRequest',
21
+ 'ApprovalController:hasRequest',
22
+ 'ApprovalController:acceptRequest',
23
+ 'ApprovalController:rejectRequest',
24
+ 'SubjectMetadataController:getSubjectMetadata',
25
+ ],
26
+ });
27
+ return permissionControllerMessenger;
28
+ },
29
+ };
30
+ //# sourceMappingURL=permission-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/permission-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EAGL,oBAAoB,EAGrB,wCAAwC;AASzC,MAAM,CAAC,MAAM,oBAAoB,GAG7B;IACF,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,oBAAoB,CAGtB;QACA,KAAK;QACL,SAAS;QACT,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,EAAE;QACxD,wBAAwB,EAAE,OAAO,CAAC,wBAAwB,IAAI,EAAE;QAChE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,EAAE;KACvD,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,6BAA6B,GACjC,IAAI,SAAS,CAAC;YACZ,SAAS,EAAE,sBAAsB;YACjC,MAAM;SACP,CAAC,CAAC;QAEL,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,6BAA6B;YACxC,OAAO,EAAE;gBACP,+BAA+B;gBAC/B,+BAA+B;gBAC/B,kCAAkC;gBAClC,kCAAkC;gBAClC,8CAA8C;aAC/C;SACF,CAAC,CAAC;QAEH,OAAO,6BAA6B,CAAC;IACvC,CAAC;CACF,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n CaveatSpecificationConstraint,\n GenericPermissionController,\n PermissionController,\n PermissionControllerMessenger,\n PermissionSpecificationConstraint,\n} from '@metamask/permission-controller';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\nexport const permissionController: InitializationConfiguration<\n GenericPermissionController,\n PermissionControllerMessenger\n> = {\n name: 'PermissionController',\n init: ({ state, messenger, options }) =>\n new PermissionController<\n PermissionSpecificationConstraint,\n CaveatSpecificationConstraint\n >({\n state,\n messenger,\n caveatSpecifications: options.caveatSpecifications ?? {},\n permissionSpecifications: options.permissionSpecifications ?? {},\n unrestrictedMethods: options.unrestrictedMethods ?? [],\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const permissionControllerMessenger: PermissionControllerMessenger =\n new Messenger({\n namespace: 'PermissionController',\n parent,\n });\n\n parent.delegate({\n messenger: permissionControllerMessenger,\n actions: [\n 'ApprovalController:addRequest',\n 'ApprovalController:hasRequest',\n 'ApprovalController:acceptRequest',\n 'ApprovalController:rejectRequest',\n 'SubjectMetadataController:getSubjectMetadata',\n ],\n });\n\n return permissionControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n CaveatSpecificationConstraint,\n PermissionControllerOptions,\n PermissionSpecificationConstraint,\n} from '@metamask/permission-controller';\n\ntype GenericPermissionControllerOptions = PermissionControllerOptions<\n PermissionSpecificationConstraint,\n CaveatSpecificationConstraint\n>;\n\n/**\n * Per-instance options for the wallet's `PermissionController`.\n *\n * The permission and caveat specifications define which permissions exist and\n * how their caveats behave; they vary substantially between clients (CAIP-25\n * account permissions, Snaps endowments and restricted methods, etc.), as does\n * the set of unrestricted JSON-RPC methods. They are therefore injected rather\n * than hardcoded. Each field is optional and defaults to an empty set, so the\n * controller initializes with no permissions registered.\n */\nexport type PermissionControllerInstanceOptions = {\n /**\n * Specifications of all caveats available to the controller.\n */\n caveatSpecifications?: GenericPermissionControllerOptions['caveatSpecifications'];\n /**\n * Specifications of all permissions available to the controller.\n */\n permissionSpecifications?: GenericPermissionControllerOptions['permissionSpecifications'];\n /**\n * Names of all JSON-RPC methods that bypass permission gating.\n */\n unrestrictedMethods?: GenericPermissionControllerOptions['unrestrictedMethods'];\n};\n"]}
@@ -0,0 +1,28 @@
1
+ import type { CaveatSpecificationConstraint, PermissionControllerOptions, PermissionSpecificationConstraint } from "@metamask/permission-controller";
2
+ type GenericPermissionControllerOptions = PermissionControllerOptions<PermissionSpecificationConstraint, CaveatSpecificationConstraint>;
3
+ /**
4
+ * Per-instance options for the wallet's `PermissionController`.
5
+ *
6
+ * The permission and caveat specifications define which permissions exist and
7
+ * how their caveats behave; they vary substantially between clients (CAIP-25
8
+ * account permissions, Snaps endowments and restricted methods, etc.), as does
9
+ * the set of unrestricted JSON-RPC methods. They are therefore injected rather
10
+ * than hardcoded. Each field is optional and defaults to an empty set, so the
11
+ * controller initializes with no permissions registered.
12
+ */
13
+ export type PermissionControllerInstanceOptions = {
14
+ /**
15
+ * Specifications of all caveats available to the controller.
16
+ */
17
+ caveatSpecifications?: GenericPermissionControllerOptions['caveatSpecifications'];
18
+ /**
19
+ * Specifications of all permissions available to the controller.
20
+ */
21
+ permissionSpecifications?: GenericPermissionControllerOptions['permissionSpecifications'];
22
+ /**
23
+ * Names of all JSON-RPC methods that bypass permission gating.
24
+ */
25
+ unrestrictedMethods?: GenericPermissionControllerOptions['unrestrictedMethods'];
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EAClC,wCAAwC;AAEzC,KAAK,kCAAkC,GAAG,2BAA2B,CACnE,iCAAiC,EACjC,6BAA6B,CAC9B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD;;OAEG;IACH,oBAAoB,CAAC,EAAE,kCAAkC,CAAC,sBAAsB,CAAC,CAAC;IAClF;;OAEG;IACH,wBAAwB,CAAC,EAAE,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;IAC1F;;OAEG;IACH,mBAAmB,CAAC,EAAE,kCAAkC,CAAC,qBAAqB,CAAC,CAAC;CACjF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { CaveatSpecificationConstraint, PermissionControllerOptions, PermissionSpecificationConstraint } from "@metamask/permission-controller";
2
+ type GenericPermissionControllerOptions = PermissionControllerOptions<PermissionSpecificationConstraint, CaveatSpecificationConstraint>;
3
+ /**
4
+ * Per-instance options for the wallet's `PermissionController`.
5
+ *
6
+ * The permission and caveat specifications define which permissions exist and
7
+ * how their caveats behave; they vary substantially between clients (CAIP-25
8
+ * account permissions, Snaps endowments and restricted methods, etc.), as does
9
+ * the set of unrestricted JSON-RPC methods. They are therefore injected rather
10
+ * than hardcoded. Each field is optional and defaults to an empty set, so the
11
+ * controller initializes with no permissions registered.
12
+ */
13
+ export type PermissionControllerInstanceOptions = {
14
+ /**
15
+ * Specifications of all caveats available to the controller.
16
+ */
17
+ caveatSpecifications?: GenericPermissionControllerOptions['caveatSpecifications'];
18
+ /**
19
+ * Specifications of all permissions available to the controller.
20
+ */
21
+ permissionSpecifications?: GenericPermissionControllerOptions['permissionSpecifications'];
22
+ /**
23
+ * Names of all JSON-RPC methods that bypass permission gating.
24
+ */
25
+ unrestrictedMethods?: GenericPermissionControllerOptions['unrestrictedMethods'];
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EAClC,wCAAwC;AAEzC,KAAK,kCAAkC,GAAG,2BAA2B,CACnE,iCAAiC,EACjC,6BAA6B,CAC9B,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,mCAAmC,GAAG;IAChD;;OAEG;IACH,oBAAoB,CAAC,EAAE,kCAAkC,CAAC,sBAAsB,CAAC,CAAC;IAClF;;OAEG;IACH,wBAAwB,CAAC,EAAE,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;IAC1F;;OAEG;IACH,mBAAmB,CAAC,EAAE,kCAAkC,CAAC,qBAAqB,CAAC,CAAC;CACjF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/permission-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n CaveatSpecificationConstraint,\n PermissionControllerOptions,\n PermissionSpecificationConstraint,\n} from '@metamask/permission-controller';\n\ntype GenericPermissionControllerOptions = PermissionControllerOptions<\n PermissionSpecificationConstraint,\n CaveatSpecificationConstraint\n>;\n\n/**\n * Per-instance options for the wallet's `PermissionController`.\n *\n * The permission and caveat specifications define which permissions exist and\n * how their caveats behave; they vary substantially between clients (CAIP-25\n * account permissions, Snaps endowments and restricted methods, etc.), as does\n * the set of unrestricted JSON-RPC methods. They are therefore injected rather\n * than hardcoded. Each field is optional and defaults to an empty set, so the\n * controller initializes with no permissions registered.\n */\nexport type PermissionControllerInstanceOptions = {\n /**\n * Specifications of all caveats available to the controller.\n */\n caveatSpecifications?: GenericPermissionControllerOptions['caveatSpecifications'];\n /**\n * Specifications of all permissions available to the controller.\n */\n permissionSpecifications?: GenericPermissionControllerOptions['permissionSpecifications'];\n /**\n * Names of all JSON-RPC methods that bypass permission gating.\n */\n unrestrictedMethods?: GenericPermissionControllerOptions['unrestrictedMethods'];\n};\n"]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.subjectMetadataController = void 0;
4
+ const messenger_1 = require("@metamask/messenger");
5
+ const permission_controller_1 = require("@metamask/permission-controller");
6
+ /**
7
+ * Default maximum number of distinct permissionless subjects to cache metadata
8
+ * for before the oldest is evicted. `100` matches the value MetaMask clients
9
+ * currently use; clients can override via
10
+ * `instanceOptions.subjectMetadataController.subjectCacheLimit`.
11
+ */
12
+ const DEFAULT_SUBJECT_CACHE_LIMIT = 100;
13
+ exports.subjectMetadataController = {
14
+ name: 'SubjectMetadataController',
15
+ init: ({ state, messenger, options }) => new permission_controller_1.SubjectMetadataController({
16
+ state,
17
+ messenger,
18
+ subjectCacheLimit: options.subjectCacheLimit ?? DEFAULT_SUBJECT_CACHE_LIMIT,
19
+ }),
20
+ getMessenger: (parent) => {
21
+ const subjectMetadataControllerMessenger = new messenger_1.Messenger({
22
+ namespace: 'SubjectMetadataController',
23
+ parent,
24
+ });
25
+ // Hydration calls `PermissionController:hasPermissions`, so
26
+ // `PermissionController` must be constructed first. It sorts earlier in
27
+ // `instances/index.ts`, and `initialize` keeps that order under overrides.
28
+ parent.delegate({
29
+ messenger: subjectMetadataControllerMessenger,
30
+ actions: ['PermissionController:hasPermissions'],
31
+ });
32
+ return subjectMetadataControllerMessenger;
33
+ },
34
+ };
35
+ //# sourceMappingURL=subject-metadata-controller.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-metadata-controller.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/subject-metadata-controller.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAChD,2EAGyC;AASzC;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE3B,QAAA,yBAAyB,GAGlC;IACF,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,iDAAyB,CAAC;QAC5B,KAAK;QACL,SAAS;QACT,iBAAiB,EACf,OAAO,CAAC,iBAAiB,IAAI,2BAA2B;KAC3D,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,kCAAkC,GACtC,IAAI,qBAAS,CAAC;YACZ,SAAS,EAAE,2BAA2B;YACtC,MAAM;SACP,CAAC,CAAC;QAEL,4DAA4D;QAC5D,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,kCAAkC;YAC7C,OAAO,EAAE,CAAC,qCAAqC,CAAC;SACjD,CAAC,CAAC;QAEH,OAAO,kCAAkC,CAAC;IAC5C,CAAC;CACF,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n SubjectMetadataController,\n SubjectMetadataControllerMessenger,\n} from '@metamask/permission-controller';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\n/**\n * Default maximum number of distinct permissionless subjects to cache metadata\n * for before the oldest is evicted. `100` matches the value MetaMask clients\n * currently use; clients can override via\n * `instanceOptions.subjectMetadataController.subjectCacheLimit`.\n */\nconst DEFAULT_SUBJECT_CACHE_LIMIT = 100;\n\nexport const subjectMetadataController: InitializationConfiguration<\n SubjectMetadataController,\n SubjectMetadataControllerMessenger\n> = {\n name: 'SubjectMetadataController',\n init: ({ state, messenger, options }) =>\n new SubjectMetadataController({\n state,\n messenger,\n subjectCacheLimit:\n options.subjectCacheLimit ?? DEFAULT_SUBJECT_CACHE_LIMIT,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const subjectMetadataControllerMessenger: SubjectMetadataControllerMessenger =\n new Messenger({\n namespace: 'SubjectMetadataController',\n parent,\n });\n\n // Hydration calls `PermissionController:hasPermissions`, so\n // `PermissionController` must be constructed first. It sorts earlier in\n // `instances/index.ts`, and `initialize` keeps that order under overrides.\n parent.delegate({\n messenger: subjectMetadataControllerMessenger,\n actions: ['PermissionController:hasPermissions'],\n });\n\n return subjectMetadataControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import { SubjectMetadataController, SubjectMetadataControllerMessenger } from "@metamask/permission-controller";
2
+ import type { InitializationConfiguration } from "../../types.cjs";
3
+ export declare const subjectMetadataController: InitializationConfiguration<SubjectMetadataController, SubjectMetadataControllerMessenger>;
4
+ //# sourceMappingURL=subject-metadata-controller.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-metadata-controller.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/subject-metadata-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EACnC,wCAAwC;AAOzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAU/D,eAAO,MAAM,yBAAyB,EAAE,2BAA2B,CACjE,yBAAyB,EACzB,kCAAkC,CA2BnC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { SubjectMetadataController, SubjectMetadataControllerMessenger } from "@metamask/permission-controller";
2
+ import type { InitializationConfiguration } from "../../types.mjs";
3
+ export declare const subjectMetadataController: InitializationConfiguration<SubjectMetadataController, SubjectMetadataControllerMessenger>;
4
+ //# sourceMappingURL=subject-metadata-controller.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-metadata-controller.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/subject-metadata-controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,yBAAyB,EACzB,kCAAkC,EACnC,wCAAwC;AAOzC,OAAO,KAAK,EAAE,2BAA2B,EAAE,wBAAoB;AAU/D,eAAO,MAAM,yBAAyB,EAAE,2BAA2B,CACjE,yBAAyB,EACzB,kCAAkC,CA2BnC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { Messenger } from "@metamask/messenger";
2
+ import { SubjectMetadataController } from "@metamask/permission-controller";
3
+ /**
4
+ * Default maximum number of distinct permissionless subjects to cache metadata
5
+ * for before the oldest is evicted. `100` matches the value MetaMask clients
6
+ * currently use; clients can override via
7
+ * `instanceOptions.subjectMetadataController.subjectCacheLimit`.
8
+ */
9
+ const DEFAULT_SUBJECT_CACHE_LIMIT = 100;
10
+ export const subjectMetadataController = {
11
+ name: 'SubjectMetadataController',
12
+ init: ({ state, messenger, options }) => new SubjectMetadataController({
13
+ state,
14
+ messenger,
15
+ subjectCacheLimit: options.subjectCacheLimit ?? DEFAULT_SUBJECT_CACHE_LIMIT,
16
+ }),
17
+ getMessenger: (parent) => {
18
+ const subjectMetadataControllerMessenger = new Messenger({
19
+ namespace: 'SubjectMetadataController',
20
+ parent,
21
+ });
22
+ // Hydration calls `PermissionController:hasPermissions`, so
23
+ // `PermissionController` must be constructed first. It sorts earlier in
24
+ // `instances/index.ts`, and `initialize` keeps that order under overrides.
25
+ parent.delegate({
26
+ messenger: subjectMetadataControllerMessenger,
27
+ actions: ['PermissionController:hasPermissions'],
28
+ });
29
+ return subjectMetadataControllerMessenger;
30
+ },
31
+ };
32
+ //# sourceMappingURL=subject-metadata-controller.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject-metadata-controller.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/subject-metadata-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,4BAA4B;AAChD,OAAO,EACL,yBAAyB,EAE1B,wCAAwC;AASzC;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAGlC;IACF,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CACtC,IAAI,yBAAyB,CAAC;QAC5B,KAAK;QACL,SAAS;QACT,iBAAiB,EACf,OAAO,CAAC,iBAAiB,IAAI,2BAA2B;KAC3D,CAAC;IACJ,YAAY,EAAE,CAAC,MAAoD,EAAE,EAAE;QACrE,MAAM,kCAAkC,GACtC,IAAI,SAAS,CAAC;YACZ,SAAS,EAAE,2BAA2B;YACtC,MAAM;SACP,CAAC,CAAC;QAEL,4DAA4D;QAC5D,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,CAAC,QAAQ,CAAC;YACd,SAAS,EAAE,kCAAkC;YAC7C,OAAO,EAAE,CAAC,qCAAqC,CAAC;SACjD,CAAC,CAAC;QAEH,OAAO,kCAAkC,CAAC;IAC5C,CAAC;CACF,CAAC","sourcesContent":["import { Messenger } from '@metamask/messenger';\nimport {\n SubjectMetadataController,\n SubjectMetadataControllerMessenger,\n} from '@metamask/permission-controller';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from '../../defaults';\nimport type { InitializationConfiguration } from '../../types';\n\n/**\n * Default maximum number of distinct permissionless subjects to cache metadata\n * for before the oldest is evicted. `100` matches the value MetaMask clients\n * currently use; clients can override via\n * `instanceOptions.subjectMetadataController.subjectCacheLimit`.\n */\nconst DEFAULT_SUBJECT_CACHE_LIMIT = 100;\n\nexport const subjectMetadataController: InitializationConfiguration<\n SubjectMetadataController,\n SubjectMetadataControllerMessenger\n> = {\n name: 'SubjectMetadataController',\n init: ({ state, messenger, options }) =>\n new SubjectMetadataController({\n state,\n messenger,\n subjectCacheLimit:\n options.subjectCacheLimit ?? DEFAULT_SUBJECT_CACHE_LIMIT,\n }),\n getMessenger: (parent: RootMessenger<DefaultActions, DefaultEvents>) => {\n const subjectMetadataControllerMessenger: SubjectMetadataControllerMessenger =\n new Messenger({\n namespace: 'SubjectMetadataController',\n parent,\n });\n\n // Hydration calls `PermissionController:hasPermissions`, so\n // `PermissionController` must be constructed first. It sorts earlier in\n // `instances/index.ts`, and `initialize` keeps that order under overrides.\n parent.delegate({\n messenger: subjectMetadataControllerMessenger,\n actions: ['PermissionController:hasPermissions'],\n });\n\n return subjectMetadataControllerMessenger;\n },\n};\n"]}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SubjectMetadataController } from '@metamask/permission-controller';\n\n/**\n * Per-instance options for the wallet's `SubjectMetadataController`.\n */\nexport type SubjectMetadataControllerInstanceOptions = {\n /**\n * Maximum number of distinct permissionless subjects (origins) to retain\n * metadata for, evicted oldest-first once exceeded. Defaults to a\n * platform-agnostic value when omitted.\n */\n subjectCacheLimit?: ConstructorParameters<\n typeof SubjectMetadataController\n >[0]['subjectCacheLimit'];\n};\n"]}
@@ -0,0 +1,13 @@
1
+ import type { SubjectMetadataController } from "@metamask/permission-controller";
2
+ /**
3
+ * Per-instance options for the wallet's `SubjectMetadataController`.
4
+ */
5
+ export type SubjectMetadataControllerInstanceOptions = {
6
+ /**
7
+ * Maximum number of distinct permissionless subjects (origins) to retain
8
+ * metadata for, evicted oldest-first once exceeded. Defaults to a
9
+ * platform-agnostic value when omitted.
10
+ */
11
+ subjectCacheLimit?: ConstructorParameters<typeof SubjectMetadataController>[0]['subjectCacheLimit'];
12
+ };
13
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,wCAAwC;AAEjF;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAAG;IACrD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CACvC,OAAO,yBAAyB,CACjC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { SubjectMetadataController } from "@metamask/permission-controller";
2
+ /**
3
+ * Per-instance options for the wallet's `SubjectMetadataController`.
4
+ */
5
+ export type SubjectMetadataControllerInstanceOptions = {
6
+ /**
7
+ * Maximum number of distinct permissionless subjects (origins) to retain
8
+ * metadata for, evicted oldest-first once exceeded. Defaults to a
9
+ * platform-agnostic value when omitted.
10
+ */
11
+ subjectCacheLimit?: ConstructorParameters<typeof SubjectMetadataController>[0]['subjectCacheLimit'];
12
+ };
13
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,wCAAwC;AAEjF;;GAEG;AACH,MAAM,MAAM,wCAAwC,GAAG;IACrD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CACvC,OAAO,yBAAyB,CACjC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;CAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../../src/initialization/instances/subject-metadata-controller/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { SubjectMetadataController } from '@metamask/permission-controller';\n\n/**\n * Per-instance options for the wallet's `SubjectMetadataController`.\n */\nexport type SubjectMetadataControllerInstanceOptions = {\n /**\n * Maximum number of distinct permissionless subjects (origins) to retain\n * metadata for, evicted oldest-first once exceeded. Defaults to a\n * platform-agnostic value when omitted.\n */\n subjectCacheLimit?: ConstructorParameters<\n typeof SubjectMetadataController\n >[0]['subjectCacheLimit'];\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport type { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n connectivityController: ConnectivityControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n networkController: NetworkControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types';\nimport type { PermissionControllerInstanceOptions } from './initialization/instances/permission-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport type { SubjectMetadataControllerInstanceOptions } from './initialization/instances/subject-metadata-controller/types';\nimport type { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n connectivityController: ConnectivityControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n networkController: NetworkControllerInstanceOptions;\n permissionController?: PermissionControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n subjectMetadataController?: SubjectMetadataControllerInstanceOptions;\n};\n"]}
package/dist/types.d.cts CHANGED
@@ -4,8 +4,10 @@ import type { ApprovalControllerInstanceOptions } from "./initialization/instanc
4
4
  import type { ConnectivityControllerInstanceOptions } from "./initialization/instances/connectivity-controller/types.cjs";
5
5
  import type { KeyringControllerInstanceOptions } from "./initialization/instances/keyring-controller/types.cjs";
6
6
  import type { NetworkControllerInstanceOptions } from "./initialization/instances/network-controller/types.cjs";
7
+ import type { PermissionControllerInstanceOptions } from "./initialization/instances/permission-controller/types.cjs";
7
8
  import type { RemoteFeatureFlagControllerInstanceOptions } from "./initialization/instances/remote-feature-flag-controller/types.cjs";
8
9
  import type { StorageServiceInstanceOptions } from "./initialization/instances/storage-service/types.cjs";
10
+ import type { SubjectMetadataControllerInstanceOptions } from "./initialization/instances/subject-metadata-controller/types.cjs";
9
11
  import type { InitializationConfiguration } from "./initialization/types.cjs";
10
12
  export type WalletOptions = {
11
13
  messenger?: RootMessenger<DefaultActions, DefaultEvents>;
@@ -18,7 +20,9 @@ export type InstanceSpecificOptions = {
18
20
  connectivityController: ConnectivityControllerInstanceOptions;
19
21
  keyringController?: KeyringControllerInstanceOptions;
20
22
  networkController: NetworkControllerInstanceOptions;
23
+ permissionController?: PermissionControllerInstanceOptions;
21
24
  remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;
22
25
  storageService: StorageServiceInstanceOptions;
26
+ subjectMetadataController?: SubjectMetadataControllerInstanceOptions;
23
27
  };
24
28
  //# sourceMappingURL=types.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,qCAAqC,EAAE,qEAAiE;AACtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,KAAK,EAAE,2BAA2B,EAAE,mCAA+B;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,sBAAsB,EAAE,qCAAqC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,iBAAiB,EAAE,gCAAgC,CAAC;IACpD,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,qCAAqC,EAAE,qEAAiE;AACtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,mCAAmC,EAAE,mEAA+D;AAClH,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,KAAK,EAAE,wCAAwC,EAAE,yEAAqE;AAC7H,OAAO,KAAK,EAAE,2BAA2B,EAAE,mCAA+B;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,sBAAsB,EAAE,qCAAqC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,iBAAiB,EAAE,gCAAgC,CAAC;IACpD,oBAAoB,CAAC,EAAE,mCAAmC,CAAC;IAC3D,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;IAC9C,yBAAyB,CAAC,EAAE,wCAAwC,CAAC;CACtE,CAAC"}
package/dist/types.d.mts CHANGED
@@ -4,8 +4,10 @@ import type { ApprovalControllerInstanceOptions } from "./initialization/instanc
4
4
  import type { ConnectivityControllerInstanceOptions } from "./initialization/instances/connectivity-controller/types.mjs";
5
5
  import type { KeyringControllerInstanceOptions } from "./initialization/instances/keyring-controller/types.mjs";
6
6
  import type { NetworkControllerInstanceOptions } from "./initialization/instances/network-controller/types.mjs";
7
+ import type { PermissionControllerInstanceOptions } from "./initialization/instances/permission-controller/types.mjs";
7
8
  import type { RemoteFeatureFlagControllerInstanceOptions } from "./initialization/instances/remote-feature-flag-controller/types.mjs";
8
9
  import type { StorageServiceInstanceOptions } from "./initialization/instances/storage-service/types.mjs";
10
+ import type { SubjectMetadataControllerInstanceOptions } from "./initialization/instances/subject-metadata-controller/types.mjs";
9
11
  import type { InitializationConfiguration } from "./initialization/types.mjs";
10
12
  export type WalletOptions = {
11
13
  messenger?: RootMessenger<DefaultActions, DefaultEvents>;
@@ -18,7 +20,9 @@ export type InstanceSpecificOptions = {
18
20
  connectivityController: ConnectivityControllerInstanceOptions;
19
21
  keyringController?: KeyringControllerInstanceOptions;
20
22
  networkController: NetworkControllerInstanceOptions;
23
+ permissionController?: PermissionControllerInstanceOptions;
21
24
  remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;
22
25
  storageService: StorageServiceInstanceOptions;
26
+ subjectMetadataController?: SubjectMetadataControllerInstanceOptions;
23
27
  };
24
28
  //# sourceMappingURL=types.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,qCAAqC,EAAE,qEAAiE;AACtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,KAAK,EAAE,2BAA2B,EAAE,mCAA+B;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,sBAAsB,EAAE,qCAAqC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,iBAAiB,EAAE,gCAAgC,CAAC;IACpD,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAE5C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,sCAAkC;AACnC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iEAA6D;AAC9G,OAAO,KAAK,EAAE,qCAAqC,EAAE,qEAAiE;AACtH,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,gCAAgC,EAAE,gEAA4D;AAC5G,OAAO,KAAK,EAAE,mCAAmC,EAAE,mEAA+D;AAClH,OAAO,KAAK,EAAE,0CAA0C,EAAE,4EAAwE;AAClI,OAAO,KAAK,EAAE,6BAA6B,EAAE,6DAAyD;AACtG,OAAO,KAAK,EAAE,wCAAwC,EAAE,yEAAqE;AAC7H,OAAO,KAAK,EAAE,2BAA2B,EAAE,mCAA+B;AAE1E,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,4BAA4B,CAAC,EAAE,2BAA2B,CACxD,OAAO,EACP,OAAO,CACR,EAAE,CAAC;IACJ,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC;IACvD,sBAAsB,EAAE,qCAAqC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,gCAAgC,CAAC;IACrD,iBAAiB,EAAE,gCAAgC,CAAC;IACpD,oBAAoB,CAAC,EAAE,mCAAmC,CAAC;IAC3D,2BAA2B,EAAE,0CAA0C,CAAC;IACxE,cAAc,EAAE,6BAA6B,CAAC;IAC9C,yBAAyB,CAAC,EAAE,wCAAwC,CAAC;CACtE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport type { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n connectivityController: ConnectivityControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n networkController: NetworkControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n};\n"]}
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { Json } from '@metamask/utils';\n\nimport type {\n DefaultActions,\n DefaultEvents,\n RootMessenger,\n} from './initialization/defaults';\nimport type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';\nimport type { ConnectivityControllerInstanceOptions } from './initialization/instances/connectivity-controller/types';\nimport type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';\nimport type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types';\nimport type { PermissionControllerInstanceOptions } from './initialization/instances/permission-controller/types';\nimport type { RemoteFeatureFlagControllerInstanceOptions } from './initialization/instances/remote-feature-flag-controller/types';\nimport type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';\nimport type { SubjectMetadataControllerInstanceOptions } from './initialization/instances/subject-metadata-controller/types';\nimport type { InitializationConfiguration } from './initialization/types';\n\nexport type WalletOptions = {\n messenger?: RootMessenger<DefaultActions, DefaultEvents>;\n state?: Record<string, Record<string, Json> | undefined>;\n initializationConfigurations?: InitializationConfiguration<\n unknown,\n unknown\n >[];\n instanceOptions: InstanceSpecificOptions;\n};\n\nexport type InstanceSpecificOptions = {\n approvalController?: ApprovalControllerInstanceOptions;\n connectivityController: ConnectivityControllerInstanceOptions;\n keyringController?: KeyringControllerInstanceOptions;\n networkController: NetworkControllerInstanceOptions;\n permissionController?: PermissionControllerInstanceOptions;\n remoteFeatureFlagController: RemoteFeatureFlagControllerInstanceOptions;\n storageService: StorageServiceInstanceOptions;\n subjectMetadataController?: SubjectMetadataControllerInstanceOptions;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/wallet",
3
- "version": "5.0.0-preview-e12e4a38f",
3
+ "version": "5.0.0-preview-0b8cac1b5",
4
4
  "description": "Provides a shared framework for building MetaMask wallets",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -54,6 +54,7 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "@metamask/accounts-controller": "^39.0.3",
57
+ "@metamask/address-book-controller": "^7.1.2",
57
58
  "@metamask/approval-controller": "^9.0.2",
58
59
  "@metamask/base-controller": "^9.1.0",
59
60
  "@metamask/browser-passworder": "^6.0.0",
@@ -62,6 +63,7 @@
62
63
  "@metamask/keyring-controller": "^27.1.0",
63
64
  "@metamask/messenger": "^1.2.0",
64
65
  "@metamask/network-controller": "^33.0.0",
66
+ "@metamask/permission-controller": "^13.1.1",
65
67
  "@metamask/remote-feature-flag-controller": "^4.2.2",
66
68
  "@metamask/scure-bip39": "^2.1.1",
67
69
  "@metamask/storage-service": "^1.0.2",