@metamask/snaps-rpc-methods 17.0.0 → 17.1.0

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 (46) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/dist/endowments/enum.cjs +1 -0
  3. package/dist/endowments/enum.cjs.map +1 -1
  4. package/dist/endowments/enum.d.cts +2 -1
  5. package/dist/endowments/enum.d.cts.map +1 -1
  6. package/dist/endowments/enum.d.mts +2 -1
  7. package/dist/endowments/enum.d.mts.map +1 -1
  8. package/dist/endowments/enum.mjs +1 -0
  9. package/dist/endowments/enum.mjs.map +1 -1
  10. package/dist/endowments/index.cjs +4 -0
  11. package/dist/endowments/index.cjs.map +1 -1
  12. package/dist/endowments/index.d.cts +12 -0
  13. package/dist/endowments/index.d.cts.map +1 -1
  14. package/dist/endowments/index.d.mts +12 -0
  15. package/dist/endowments/index.d.mts.map +1 -1
  16. package/dist/endowments/index.mjs +4 -0
  17. package/dist/endowments/index.mjs.map +1 -1
  18. package/dist/endowments/messenger.cjs +90 -0
  19. package/dist/endowments/messenger.cjs.map +1 -0
  20. package/dist/endowments/messenger.d.cts +40 -0
  21. package/dist/endowments/messenger.d.cts.map +1 -0
  22. package/dist/endowments/messenger.d.mts +40 -0
  23. package/dist/endowments/messenger.d.mts.map +1 -0
  24. package/dist/endowments/messenger.mjs +85 -0
  25. package/dist/endowments/messenger.mjs.map +1 -0
  26. package/dist/permitted/index.cjs.map +1 -1
  27. package/dist/permitted/index.d.cts +3 -2
  28. package/dist/permitted/index.d.cts.map +1 -1
  29. package/dist/permitted/index.d.mts +3 -2
  30. package/dist/permitted/index.d.mts.map +1 -1
  31. package/dist/permitted/index.mjs.map +1 -1
  32. package/dist/permitted/messengerCall.cjs +97 -0
  33. package/dist/permitted/messengerCall.cjs.map +1 -0
  34. package/dist/permitted/messengerCall.d.cts +54 -0
  35. package/dist/permitted/messengerCall.d.cts.map +1 -0
  36. package/dist/permitted/messengerCall.d.mts +54 -0
  37. package/dist/permitted/messengerCall.d.mts.map +1 -0
  38. package/dist/permitted/messengerCall.mjs +94 -0
  39. package/dist/permitted/messengerCall.mjs.map +1 -0
  40. package/dist/permitted/middleware.cjs +2 -0
  41. package/dist/permitted/middleware.cjs.map +1 -1
  42. package/dist/permitted/middleware.d.cts.map +1 -1
  43. package/dist/permitted/middleware.d.mts.map +1 -1
  44. package/dist/permitted/middleware.mjs +2 -0
  45. package/dist/permitted/middleware.mjs.map +1 -1
  46. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [17.1.0]
11
+
12
+ ### Added
13
+
14
+ - Add support for using the messenger in preinstalled Snaps via `endowment:messenger` ([#4055](https://github.com/MetaMask/snaps/pull/4055))
15
+
16
+ ### Changed
17
+
18
+ - Bump `@metamask/messenger` from `^1.2.0` to `^2.0.0` ([#4064](https://github.com/MetaMask/snaps/pull/4064))
19
+ - Bump `@metamask/superstruct` from `^3.2.1` to `^3.3.0` ([#4062](https://github.com/MetaMask/snaps/pull/4062))
20
+
10
21
  ## [17.0.0]
11
22
 
12
23
  ### Changed
@@ -644,7 +655,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
644
655
  - The version of the package no longer needs to match the version of all other
645
656
  MetaMask Snaps packages.
646
657
 
647
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@17.0.0...HEAD
658
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@17.1.0...HEAD
659
+ [17.1.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@17.0.0...@metamask/snaps-rpc-methods@17.1.0
648
660
  [17.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@16.0.0...@metamask/snaps-rpc-methods@17.0.0
649
661
  [16.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@15.1.1...@metamask/snaps-rpc-methods@16.0.0
650
662
  [15.1.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@15.1.0...@metamask/snaps-rpc-methods@15.1.1
@@ -18,5 +18,6 @@ var SnapEndowments;
18
18
  SnapEndowments["SettingsPage"] = "endowment:page-settings";
19
19
  SnapEndowments["Assets"] = "endowment:assets";
20
20
  SnapEndowments["Protocol"] = "endowment:protocol";
21
+ SnapEndowments["Messenger"] = "endowment:messenger";
21
22
  })(SnapEndowments || (exports.SnapEndowments = SnapEndowments = {}));
22
23
  //# sourceMappingURL=enum.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.cjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACjC,CAAC,EAhBW,cAAc,8BAAd,cAAc,QAgBzB","sourcesContent":["export enum SnapEndowments {\n NetworkAccess = 'endowment:network-access',\n SignatureInsight = 'endowment:signature-insight',\n TransactionInsight = 'endowment:transaction-insight',\n Cronjob = 'endowment:cronjob',\n EthereumProvider = 'endowment:ethereum-provider',\n MultichainProvider = 'endowment:multichain-provider',\n Rpc = 'endowment:rpc',\n WebAssemblyAccess = 'endowment:webassembly',\n NameLookup = 'endowment:name-lookup',\n LifecycleHooks = 'endowment:lifecycle-hooks',\n Keyring = 'endowment:keyring',\n HomePage = 'endowment:page-home',\n SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n}\n"]}
1
+ {"version":3,"file":"enum.cjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;AACnC,CAAC,EAjBW,cAAc,8BAAd,cAAc,QAiBzB","sourcesContent":["export enum SnapEndowments {\n NetworkAccess = 'endowment:network-access',\n SignatureInsight = 'endowment:signature-insight',\n TransactionInsight = 'endowment:transaction-insight',\n Cronjob = 'endowment:cronjob',\n EthereumProvider = 'endowment:ethereum-provider',\n MultichainProvider = 'endowment:multichain-provider',\n Rpc = 'endowment:rpc',\n WebAssemblyAccess = 'endowment:webassembly',\n NameLookup = 'endowment:name-lookup',\n LifecycleHooks = 'endowment:lifecycle-hooks',\n Keyring = 'endowment:keyring',\n HomePage = 'endowment:page-home',\n SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n Messenger = 'endowment:messenger',\n}\n"]}
@@ -13,6 +13,7 @@ export declare enum SnapEndowments {
13
13
  HomePage = "endowment:page-home",
14
14
  SettingsPage = "endowment:page-settings",
15
15
  Assets = "endowment:assets",
16
- Protocol = "endowment:protocol"
16
+ Protocol = "endowment:protocol",
17
+ Messenger = "endowment:messenger"
17
18
  }
18
19
  //# sourceMappingURL=enum.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.cts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;CAChC"}
1
+ {"version":3,"file":"enum.d.cts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;IAC/B,SAAS,wBAAwB;CAClC"}
@@ -13,6 +13,7 @@ export declare enum SnapEndowments {
13
13
  HomePage = "endowment:page-home",
14
14
  SettingsPage = "endowment:page-settings",
15
15
  Assets = "endowment:assets",
16
- Protocol = "endowment:protocol"
16
+ Protocol = "endowment:protocol",
17
+ Messenger = "endowment:messenger"
17
18
  }
18
19
  //# sourceMappingURL=enum.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;CAChC"}
1
+ {"version":3,"file":"enum.d.mts","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,aAAa,6BAA6B;IAC1C,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,OAAO,sBAAsB;IAC7B,gBAAgB,gCAAgC;IAChD,kBAAkB,kCAAkC;IACpD,GAAG,kBAAkB;IACrB,iBAAiB,0BAA0B;IAC3C,UAAU,0BAA0B;IACpC,cAAc,8BAA8B;IAC5C,OAAO,sBAAsB;IAC7B,QAAQ,wBAAwB;IAChC,YAAY,4BAA4B;IACxC,MAAM,qBAAqB;IAC3B,QAAQ,uBAAuB;IAC/B,SAAS,wBAAwB;CAClC"}
@@ -15,5 +15,6 @@ export var SnapEndowments;
15
15
  SnapEndowments["SettingsPage"] = "endowment:page-settings";
16
16
  SnapEndowments["Assets"] = "endowment:assets";
17
17
  SnapEndowments["Protocol"] = "endowment:protocol";
18
+ SnapEndowments["Messenger"] = "endowment:messenger";
18
19
  })(SnapEndowments || (SnapEndowments = {}));
19
20
  //# sourceMappingURL=enum.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.mjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;AACjC,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB","sourcesContent":["export enum SnapEndowments {\n NetworkAccess = 'endowment:network-access',\n SignatureInsight = 'endowment:signature-insight',\n TransactionInsight = 'endowment:transaction-insight',\n Cronjob = 'endowment:cronjob',\n EthereumProvider = 'endowment:ethereum-provider',\n MultichainProvider = 'endowment:multichain-provider',\n Rpc = 'endowment:rpc',\n WebAssemblyAccess = 'endowment:webassembly',\n NameLookup = 'endowment:name-lookup',\n LifecycleHooks = 'endowment:lifecycle-hooks',\n Keyring = 'endowment:keyring',\n HomePage = 'endowment:page-home',\n SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n}\n"]}
1
+ {"version":3,"file":"enum.mjs","sourceRoot":"","sources":["../../src/endowments/enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACxB,4DAA0C,CAAA;IAC1C,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,+CAA6B,CAAA;IAC7B,kEAAgD,CAAA;IAChD,sEAAoD,CAAA;IACpD,uCAAqB,CAAA;IACrB,6DAA2C,CAAA;IAC3C,sDAAoC,CAAA;IACpC,8DAA4C,CAAA;IAC5C,+CAA6B,CAAA;IAC7B,kDAAgC,CAAA;IAChC,0DAAwC,CAAA;IACxC,6CAA2B,CAAA;IAC3B,iDAA+B,CAAA;IAC/B,mDAAiC,CAAA;AACnC,CAAC,EAjBW,cAAc,KAAd,cAAc,QAiBzB","sourcesContent":["export enum SnapEndowments {\n NetworkAccess = 'endowment:network-access',\n SignatureInsight = 'endowment:signature-insight',\n TransactionInsight = 'endowment:transaction-insight',\n Cronjob = 'endowment:cronjob',\n EthereumProvider = 'endowment:ethereum-provider',\n MultichainProvider = 'endowment:multichain-provider',\n Rpc = 'endowment:rpc',\n WebAssemblyAccess = 'endowment:webassembly',\n NameLookup = 'endowment:name-lookup',\n LifecycleHooks = 'endowment:lifecycle-hooks',\n Keyring = 'endowment:keyring',\n HomePage = 'endowment:page-home',\n SettingsPage = 'endowment:page-settings',\n Assets = 'endowment:assets',\n Protocol = 'endowment:protocol',\n Messenger = 'endowment:messenger',\n}\n"]}
@@ -23,6 +23,7 @@ const ethereum_provider_1 = require("./ethereum-provider.cjs");
23
23
  const home_page_1 = require("./home-page.cjs");
24
24
  const keyring_1 = require("./keyring.cjs");
25
25
  const lifecycle_hooks_1 = require("./lifecycle-hooks.cjs");
26
+ const messenger_1 = require("./messenger.cjs");
26
27
  const multichain_provider_1 = require("./multichain-provider.cjs");
27
28
  const name_lookup_1 = require("./name-lookup.cjs");
28
29
  const network_access_1 = require("./network-access.cjs");
@@ -48,6 +49,7 @@ exports.endowmentPermissionBuilders = {
48
49
  [home_page_1.homePageEndowmentBuilder.targetName]: home_page_1.homePageEndowmentBuilder,
49
50
  [signature_insight_1.signatureInsightEndowmentBuilder.targetName]: signature_insight_1.signatureInsightEndowmentBuilder,
50
51
  [assets_1.assetsEndowmentBuilder.targetName]: assets_1.assetsEndowmentBuilder,
52
+ [messenger_1.messengerEndowmentBuilder.targetName]: messenger_1.messengerEndowmentBuilder,
51
53
  };
52
54
  exports.endowmentCaveatSpecifications = {
53
55
  ...cronjob_1.cronjobCaveatSpecifications,
@@ -58,6 +60,7 @@ exports.endowmentCaveatSpecifications = {
58
60
  ...signature_insight_1.signatureInsightCaveatSpecifications,
59
61
  ...caveats_1.maxRequestTimeCaveatSpecifications,
60
62
  ...protocol_1.protocolCaveatSpecifications,
63
+ ...messenger_1.messengerCaveatSpecifications,
61
64
  };
62
65
  exports.endowmentCaveatMappers = {
63
66
  [cronjob_1.cronjobEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(cronjob_1.getCronjobCaveatMapper),
@@ -71,6 +74,7 @@ exports.endowmentCaveatMappers = {
71
74
  [home_page_1.homePageEndowmentBuilder.targetName]: caveats_1.getMaxRequestTimeCaveatMapper,
72
75
  [settings_page_1.settingsPageEndowmentBuilder.targetName]: caveats_1.getMaxRequestTimeCaveatMapper,
73
76
  [assets_1.assetsEndowmentBuilder.targetName]: (0, caveats_1.createMaxRequestTimeMapper)(assets_1.getAssetsCaveatMapper),
77
+ [messenger_1.messengerEndowmentBuilder.targetName]: messenger_1.getMessengerCaveatMapper,
74
78
  };
75
79
  // We allow null because a permitted handler does not have an endowment
76
80
  exports.handlerEndowments = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport { multichainProviderEndowmentBuilder } from './multichain-provider';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [multichainProviderEndowmentBuilder.targetName]:\n multichainProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport {\n getKeyringCaveatOrigins,\n getKeyringCaveatCapabilities,\n} from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getMessengerCaveatMapper,\n messengerCaveatSpecifications,\n messengerEndowmentBuilder,\n} from './messenger';\nimport { multichainProviderEndowmentBuilder } from './multichain-provider';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [multichainProviderEndowmentBuilder.targetName]:\n multichainProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n [messengerEndowmentBuilder.targetName]: messengerEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n ...messengerCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n [messengerEndowmentBuilder.targetName]: getMessengerCaveatMapper,\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport {\n getKeyringCaveatOrigins,\n getKeyringCaveatCapabilities,\n} from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
@@ -149,8 +149,20 @@ export declare const endowmentPermissionBuilders: {
149
149
  allowedCaveats: readonly [string, ...string[]] | null;
150
150
  }>;
151
151
  }>;
152
+ readonly "endowment:messenger": Readonly<{
153
+ readonly targetName: import("./enum.cjs").SnapEndowments.Messenger;
154
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
155
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
156
+ targetName: import("./enum.cjs").SnapEndowments.Messenger;
157
+ endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
158
+ allowedCaveats: readonly [string, ...string[]] | null;
159
+ validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
160
+ subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
161
+ }>;
162
+ }>;
152
163
  };
153
164
  export declare const endowmentCaveatSpecifications: {
165
+ messengerScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
154
166
  protocolSnapScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
155
167
  maxRequestTime: import("@metamask/permission-controller").CaveatSpecificationConstraint;
156
168
  signatureOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAmD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAC7B,sBAAkB;AACnB,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAwD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;CAUzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA6BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAC7B,sBAAkB;AACnB,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -149,8 +149,20 @@ export declare const endowmentPermissionBuilders: {
149
149
  allowedCaveats: readonly [string, ...string[]] | null;
150
150
  }>;
151
151
  }>;
152
+ readonly "endowment:messenger": Readonly<{
153
+ readonly targetName: import("./enum.mjs").SnapEndowments.Messenger;
154
+ readonly specificationBuilder: import("@metamask/permission-controller").PermissionSpecificationBuilder<import("@metamask/permission-controller").PermissionType.Endowment, any, {
155
+ permissionType: import("@metamask/permission-controller").PermissionType.Endowment;
156
+ targetName: import("./enum.mjs").SnapEndowments.Messenger;
157
+ endowmentGetter: (_options?: import("@metamask/permission-controller").EndowmentGetterParams | undefined) => null;
158
+ allowedCaveats: readonly [string, ...string[]] | null;
159
+ validator: import("@metamask/permission-controller").PermissionValidatorConstraint;
160
+ subjectTypes: readonly import("@metamask/permission-controller").SubjectType[];
161
+ }>;
162
+ }>;
152
163
  };
153
164
  export declare const endowmentCaveatSpecifications: {
165
+ messengerScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
154
166
  protocolSnapScopes: import("@metamask/permission-controller").CaveatSpecificationConstraint;
155
167
  maxRequestTime: import("@metamask/permission-controller").CaveatSpecificationConstraint;
156
168
  signatureOrigin: import("@metamask/permission-controller").CaveatSpecificationConstraint;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAmD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAC7B,sBAAkB;AACnB,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAwD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;;;CAUzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA6BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EACL,uBAAuB,EACvB,4BAA4B,GAC7B,sBAAkB;AACnB,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -6,6 +6,7 @@ import { ethereumProviderEndowmentBuilder } from "./ethereum-provider.mjs";
6
6
  import { homePageEndowmentBuilder } from "./home-page.mjs";
7
7
  import { getKeyringCaveatMapper, keyringCaveatSpecifications, keyringEndowmentBuilder } from "./keyring.mjs";
8
8
  import { lifecycleHooksEndowmentBuilder } from "./lifecycle-hooks.mjs";
9
+ import { getMessengerCaveatMapper, messengerCaveatSpecifications, messengerEndowmentBuilder } from "./messenger.mjs";
9
10
  import { multichainProviderEndowmentBuilder } from "./multichain-provider.mjs";
10
11
  import { getNameLookupCaveatMapper, nameLookupCaveatSpecifications, nameLookupEndowmentBuilder } from "./name-lookup.mjs";
11
12
  import { networkAccessEndowmentBuilder } from "./network-access.mjs";
@@ -31,6 +32,7 @@ export const endowmentPermissionBuilders = {
31
32
  [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,
32
33
  [signatureInsightEndowmentBuilder.targetName]: signatureInsightEndowmentBuilder,
33
34
  [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,
35
+ [messengerEndowmentBuilder.targetName]: messengerEndowmentBuilder,
34
36
  };
35
37
  export const endowmentCaveatSpecifications = {
36
38
  ...cronjobCaveatSpecifications,
@@ -41,6 +43,7 @@ export const endowmentCaveatSpecifications = {
41
43
  ...signatureInsightCaveatSpecifications,
42
44
  ...maxRequestTimeCaveatSpecifications,
43
45
  ...protocolCaveatSpecifications,
46
+ ...messengerCaveatSpecifications,
44
47
  };
45
48
  export const endowmentCaveatMappers = {
46
49
  [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getCronjobCaveatMapper),
@@ -54,6 +57,7 @@ export const endowmentCaveatMappers = {
54
57
  [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
55
58
  [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,
56
59
  [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(getAssetsCaveatMapper),
60
+ [messengerEndowmentBuilder.targetName]: getMessengerCaveatMapper,
57
61
  };
58
62
  // We allow null because a permitted handler does not have an endowment
59
63
  export const handlerEndowments = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,8BAA8B;AAGpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAiB;AACzE,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,kCAAkC,EACnC,4BAAkB;AACnB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACvB,sBAAkB;AACnB,OAAO,EAAE,gCAAgC,EAAE,gCAA4B;AACvE,OAAO,EAAE,wBAAwB,EAAE,wBAAoB;AACvD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACxB,sBAAkB;AACnB,OAAO,EAAE,8BAA8B,EAAE,8BAA0B;AACnE,OAAO,EAAE,kCAAkC,EAAE,kCAA8B;AAC3E,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,0BAAsB;AACvB,OAAO,EAAE,6BAA6B,EAAE,6BAAyB;AACjE,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,uBAAmB;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACpB,kBAAc;AACf,OAAO,EAAE,4BAA4B,EAAE,4BAAwB;AAC/D,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,gCAAgC,EACjC,gCAA4B;AAC7B,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,kCAAkC,EACnC,kCAA8B;AAC/B,OAAO,EAAE,2BAA2B,EAAE,2BAAuB;AAE7D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACzE,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAC7C,kCAAkC;IACpC,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAC7C,kCAAkC;IACpC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,mBAAmB;IACrD,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,2BAA2B;IACrE,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B;IACnE,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,8BAA8B;IAC3E,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,4BAA4B;IACvE,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,sBAAsB;CACnD,CAAC;AAEX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,GAAG,2BAA2B;IAC9B,GAAG,sCAAsC;IACzC,GAAG,uBAAuB;IAC1B,GAAG,8BAA8B;IACjC,GAAG,2BAA2B;IAC9B,GAAG,oCAAoC;IACvC,GAAG,kCAAkC;IACrC,GAAG,4BAA4B;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACzE,iCAAiC,CAClC;IACD,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAC9B,0BAA0B,CAAC,kBAAkB,CAAC;IAChD,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACjE,yBAAyB,CAC1B;IACD,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC/D,uBAAuB,CACxB;IACD,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACvE,+BAA+B,CAChC;IACD,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IAC1E,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACpE,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACxE,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC7D,qBAAqB,CACtB;CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACnE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,UAAU;IAC1D,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,kCAAkC,CAAC,UAAU;IAC1E,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAC3D,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAChE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACnE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,wBAAwB,CAAC,UAAU;IAC7D,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAC,UAAU;IACrE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,gCAAgC,CAAC,UAAU;IACtE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI;IAC/B,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACvE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,UAAU;IAC/D,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACnE,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACnE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,UAAU;IACpE,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,IAAI;IACnC,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,6BAA6B,CAAC,UAAU;CACzE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC7B,sBAAkB;AACnB,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport { multichainProviderEndowmentBuilder } from './multichain-provider';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [multichainProviderEndowmentBuilder.targetName]:\n multichainProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport {\n getKeyringCaveatOrigins,\n getKeyringCaveatCapabilities,\n} from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getMessengerCaveatMapper,\n messengerCaveatSpecifications,\n messengerEndowmentBuilder,\n} from './messenger';\nimport { multichainProviderEndowmentBuilder } from './multichain-provider';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [multichainProviderEndowmentBuilder.targetName]:\n multichainProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n [messengerEndowmentBuilder.targetName]: messengerEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n ...messengerCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n [messengerEndowmentBuilder.targetName]: getMessengerCaveatMapper,\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport {\n getKeyringCaveatOrigins,\n getKeyringCaveatCapabilities,\n} from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.messengerCaveatSpecifications = exports.getMessengerCaveatActions = exports.getMessengerCaveatMapper = exports.messengerEndowmentBuilder = void 0;
4
+ const permission_controller_1 = require("@metamask/permission-controller");
5
+ const rpc_errors_1 = require("@metamask/rpc-errors");
6
+ const snaps_utils_1 = require("@metamask/snaps-utils");
7
+ const utils_1 = require("@metamask/utils");
8
+ const caveats_1 = require("./caveats/index.cjs");
9
+ const enum_1 = require("./enum.cjs");
10
+ const permissionName = enum_1.SnapEndowments.Messenger;
11
+ /**
12
+ * `endowment:messenger` returns nothing; it is intended to be used as a
13
+ * flag by the Snaps Platform to detect whether a Snap has the capability to
14
+ * use the messenger API.
15
+ *
16
+ * @param _builderOptions - Optional specification builder options.
17
+ * @returns The specification for the messenger endowment.
18
+ */
19
+ const specificationBuilder = (_builderOptions) => {
20
+ return {
21
+ permissionType: permission_controller_1.PermissionType.Endowment,
22
+ targetName: permissionName,
23
+ allowedCaveats: [snaps_utils_1.SnapCaveatType.MessengerScopes],
24
+ endowmentGetter: (_getterOptions) => null,
25
+ validator: (0, caveats_1.createGenericPermissionValidator)([
26
+ { type: snaps_utils_1.SnapCaveatType.MessengerScopes },
27
+ ]),
28
+ subjectTypes: [permission_controller_1.SubjectType.Snap],
29
+ };
30
+ };
31
+ exports.messengerEndowmentBuilder = Object.freeze({
32
+ targetName: permissionName,
33
+ specificationBuilder,
34
+ });
35
+ /**
36
+ * Map a raw value from the `initialPermissions` to a caveat specification.
37
+ * Note that this function does not do any validation, that's handled by the
38
+ * PermissionsController when the permission is requested.
39
+ *
40
+ * @param value - The raw value from the `initialPermissions`.
41
+ * @returns The caveat specification.
42
+ */
43
+ function getMessengerCaveatMapper(value) {
44
+ if (!value || !(0, utils_1.isObject)(value) || Object.keys(value).length === 0) {
45
+ return { caveats: null };
46
+ }
47
+ return {
48
+ caveats: [
49
+ {
50
+ type: snaps_utils_1.SnapCaveatType.MessengerScopes,
51
+ value,
52
+ },
53
+ ],
54
+ };
55
+ }
56
+ exports.getMessengerCaveatMapper = getMessengerCaveatMapper;
57
+ /**
58
+ * Getter function to get the {@link MessengerActions} caveat value from a
59
+ * permission.
60
+ *
61
+ * @param permission - The permission to get the caveat value from.
62
+ * @returns The caveat value.
63
+ */
64
+ function getMessengerCaveatActions(permission) {
65
+ const caveat = permission?.caveats?.find((permCaveat) => permCaveat.type === snaps_utils_1.SnapCaveatType.MessengerScopes);
66
+ return caveat?.value.actions ? caveat.value.actions : null;
67
+ }
68
+ exports.getMessengerCaveatActions = getMessengerCaveatActions;
69
+ /**
70
+ * Validates the type of the caveat value.
71
+ *
72
+ * @param caveat - The caveat to validate.
73
+ * @throws If the caveat value is invalid.
74
+ */
75
+ function validateCaveat(caveat) {
76
+ if (!(0, utils_1.hasProperty)(caveat, 'value') || !(0, utils_1.isObject)(caveat)) {
77
+ throw rpc_errors_1.rpcErrors.invalidParams({
78
+ message: 'Expected an object.',
79
+ });
80
+ }
81
+ const { value } = caveat;
82
+ (0, utils_1.assertStruct)(value, snaps_utils_1.MessengerScopesStruct, 'Invalid messenger scopes specified', rpc_errors_1.rpcErrors.invalidParams);
83
+ }
84
+ exports.messengerCaveatSpecifications = {
85
+ [snaps_utils_1.SnapCaveatType.MessengerScopes]: Object.freeze({
86
+ type: snaps_utils_1.SnapCaveatType.MessengerScopes,
87
+ validator: (caveat) => validateCaveat(caveat),
88
+ }),
89
+ };
90
+ //# sourceMappingURL=messenger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger.cjs","sourceRoot":"","sources":["../../src/endowments/messenger.ts"],"names":[],"mappings":";;;AASA,2EAA8E;AAC9E,qDAAiD;AAEjD,uDAA8E;AAG9E,2CAAsE;AAEtE,iDAA6D;AAC7D,qCAAwC;AAExC,MAAM,cAAc,GAAG,qBAAc,CAAC,SAAS,CAAC;AAWhD;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAItB,CAAC,eAAyB,EAAE,EAAE;IAChC,OAAO;QACL,cAAc,EAAE,sCAAc,CAAC,SAAS;QACxC,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE,CAAC,4BAAc,CAAC,eAAe,CAAC;QAChD,eAAe,EAAE,CAAC,cAAsC,EAAE,EAAE,CAAC,IAAI;QACjE,SAAS,EAAE,IAAA,0CAAgC,EAAC;YAC1C,EAAE,IAAI,EAAE,4BAAc,CAAC,eAAe,EAAE;SACzC,CAAC;QACF,YAAY,EAAE,CAAC,mCAAW,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,UAAU,EAAE,cAAc;IAC1B,oBAAoB;CACZ,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,SAAgB,wBAAwB,CACtC,KAAW;IAEX,IAAI,CAAC,KAAK,IAAI,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,4BAAc,CAAC,eAAe;gBACpC,KAAK;aACN;SACF;KACF,CAAC;AACJ,CAAC;AAfD,4DAeC;AAID;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,UAAiC;IAEjC,MAAM,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,IAAI,CACtC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,4BAAc,CAAC,eAAe,CACL,CAAC;IAEhE,OAAO,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AARD,8DAQC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAA2B;IACjD,IAAI,CAAC,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,IAAA,gBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,sBAAS,CAAC,aAAa,CAAC;YAC5B,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,IAAA,oBAAY,EACV,KAAK,EACL,mCAAqB,EACrB,oCAAoC,EACpC,sBAAS,CAAC,aAAa,CACxB,CAAC;AACJ,CAAC;AAEY,QAAA,6BAA6B,GAGtC;IACF,CAAC,4BAAc,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9C,IAAI,EAAE,4BAAc,CAAC,eAAe;QACpC,SAAS,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;KACnE,CAAC;CACH,CAAC","sourcesContent":["import type {\n Caveat,\n CaveatSpecificationConstraint,\n EndowmentGetterParams,\n PermissionConstraint,\n PermissionSpecificationBuilder,\n PermissionValidatorConstraint,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type { MessengerActionsStruct } from '@metamask/snaps-utils';\nimport { MessengerScopesStruct, SnapCaveatType } from '@metamask/snaps-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport type { Json, NonEmptyArray } from '@metamask/utils';\nimport { assertStruct, hasProperty, isObject } from '@metamask/utils';\n\nimport { createGenericPermissionValidator } from './caveats';\nimport { SnapEndowments } from './enum';\n\nconst permissionName = SnapEndowments.Messenger;\n\ntype MessengerEndowmentSpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.Endowment;\n targetName: typeof permissionName;\n endowmentGetter: (_options?: EndowmentGetterParams) => null;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n subjectTypes: readonly SubjectType[];\n}>;\n\n/**\n * `endowment:messenger` returns nothing; it is intended to be used as a\n * flag by the Snaps Platform to detect whether a Snap has the capability to\n * use the messenger API.\n *\n * @param _builderOptions - Optional specification builder options.\n * @returns The specification for the messenger endowment.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.Endowment,\n any,\n MessengerEndowmentSpecification\n> = (_builderOptions?: unknown) => {\n return {\n permissionType: PermissionType.Endowment,\n targetName: permissionName,\n allowedCaveats: [SnapCaveatType.MessengerScopes],\n endowmentGetter: (_getterOptions?: EndowmentGetterParams) => null,\n validator: createGenericPermissionValidator([\n { type: SnapCaveatType.MessengerScopes },\n ]),\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nexport const messengerEndowmentBuilder = Object.freeze({\n targetName: permissionName,\n specificationBuilder,\n} as const);\n\n/**\n * Map a raw value from the `initialPermissions` to a caveat specification.\n * Note that this function does not do any validation, that's handled by the\n * PermissionsController when the permission is requested.\n *\n * @param value - The raw value from the `initialPermissions`.\n * @returns The caveat specification.\n */\nexport function getMessengerCaveatMapper(\n value: Json,\n): Pick<PermissionConstraint, 'caveats'> {\n if (!value || !isObject(value) || Object.keys(value).length === 0) {\n return { caveats: null };\n }\n\n return {\n caveats: [\n {\n type: SnapCaveatType.MessengerScopes,\n value,\n },\n ],\n };\n}\n\nexport type MessengerActions = Infer<typeof MessengerActionsStruct>;\n\n/**\n * Getter function to get the {@link MessengerActions} caveat value from a\n * permission.\n *\n * @param permission - The permission to get the caveat value from.\n * @returns The caveat value.\n */\nexport function getMessengerCaveatActions(\n permission?: PermissionConstraint,\n): MessengerActions | null {\n const caveat = permission?.caveats?.find(\n (permCaveat) => permCaveat.type === SnapCaveatType.MessengerScopes,\n ) as Caveat<string, { actions?: MessengerActions }> | undefined;\n\n return caveat?.value.actions ? caveat.value.actions : null;\n}\n\n/**\n * Validates the type of the caveat value.\n *\n * @param caveat - The caveat to validate.\n * @throws If the caveat value is invalid.\n */\nfunction validateCaveat(caveat: Caveat<string, any>): void {\n if (!hasProperty(caveat, 'value') || !isObject(caveat)) {\n throw rpcErrors.invalidParams({\n message: 'Expected an object.',\n });\n }\n\n const { value } = caveat;\n assertStruct(\n value,\n MessengerScopesStruct,\n 'Invalid messenger scopes specified',\n rpcErrors.invalidParams,\n );\n}\n\nexport const messengerCaveatSpecifications: Record<\n SnapCaveatType.MessengerScopes,\n CaveatSpecificationConstraint\n> = {\n [SnapCaveatType.MessengerScopes]: Object.freeze({\n type: SnapCaveatType.MessengerScopes,\n validator: (caveat: Caveat<string, any>) => validateCaveat(caveat),\n }),\n};\n"]}
@@ -0,0 +1,40 @@
1
+ import type { CaveatSpecificationConstraint, EndowmentGetterParams, PermissionConstraint, PermissionSpecificationBuilder, PermissionValidatorConstraint } from "@metamask/permission-controller";
2
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
3
+ import type { MessengerActionsStruct } from "@metamask/snaps-utils";
4
+ import { SnapCaveatType } from "@metamask/snaps-utils";
5
+ import type { Infer } from "@metamask/superstruct";
6
+ import type { Json, NonEmptyArray } from "@metamask/utils";
7
+ import { SnapEndowments } from "./enum.cjs";
8
+ declare const permissionName = SnapEndowments.Messenger;
9
+ export declare const messengerEndowmentBuilder: Readonly<{
10
+ readonly targetName: SnapEndowments.Messenger;
11
+ readonly specificationBuilder: PermissionSpecificationBuilder<PermissionType.Endowment, any, {
12
+ permissionType: PermissionType.Endowment;
13
+ targetName: typeof permissionName;
14
+ endowmentGetter: (_options?: EndowmentGetterParams) => null;
15
+ allowedCaveats: Readonly<NonEmptyArray<string>> | null;
16
+ validator: PermissionValidatorConstraint;
17
+ subjectTypes: readonly SubjectType[];
18
+ }>;
19
+ }>;
20
+ /**
21
+ * Map a raw value from the `initialPermissions` to a caveat specification.
22
+ * Note that this function does not do any validation, that's handled by the
23
+ * PermissionsController when the permission is requested.
24
+ *
25
+ * @param value - The raw value from the `initialPermissions`.
26
+ * @returns The caveat specification.
27
+ */
28
+ export declare function getMessengerCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
29
+ export type MessengerActions = Infer<typeof MessengerActionsStruct>;
30
+ /**
31
+ * Getter function to get the {@link MessengerActions} caveat value from a
32
+ * permission.
33
+ *
34
+ * @param permission - The permission to get the caveat value from.
35
+ * @returns The caveat value.
36
+ */
37
+ export declare function getMessengerCaveatActions(permission?: PermissionConstraint): MessengerActions | null;
38
+ export declare const messengerCaveatSpecifications: Record<SnapCaveatType.MessengerScopes, CaveatSpecificationConstraint>;
39
+ export {};
40
+ //# sourceMappingURL=messenger.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger.d.cts","sourceRoot":"","sources":["../../src/endowments/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,6BAA6B,EAE9B,wCAAwC;AACzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA8B;AACpE,OAAO,EAAyB,cAAc,EAAE,8BAA8B;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,QAAA,MAAM,cAAc,2BAA2B,CAAC;AAoChD,eAAO,MAAM,yBAAyB;;;wBAjCpB,eAAe,SAAS;oBAC5B,qBAAqB;qCACJ,qBAAqB,KAAK,IAAI;wBAC3C,SAAS,cAAc,MAAM,CAAC,CAAC,GAAG,IAAI;mBAC3C,6BAA6B;sBAC1B,SAAS,WAAW,EAAE;;EA+B3B,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAavC;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,oBAAoB,GAChC,gBAAgB,GAAG,IAAI,CAMzB;AAwBD,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAChD,cAAc,CAAC,eAAe,EAC9B,6BAA6B,CAM9B,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { CaveatSpecificationConstraint, EndowmentGetterParams, PermissionConstraint, PermissionSpecificationBuilder, PermissionValidatorConstraint } from "@metamask/permission-controller";
2
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
3
+ import type { MessengerActionsStruct } from "@metamask/snaps-utils";
4
+ import { SnapCaveatType } from "@metamask/snaps-utils";
5
+ import type { Infer } from "@metamask/superstruct";
6
+ import type { Json, NonEmptyArray } from "@metamask/utils";
7
+ import { SnapEndowments } from "./enum.mjs";
8
+ declare const permissionName = SnapEndowments.Messenger;
9
+ export declare const messengerEndowmentBuilder: Readonly<{
10
+ readonly targetName: SnapEndowments.Messenger;
11
+ readonly specificationBuilder: PermissionSpecificationBuilder<PermissionType.Endowment, any, {
12
+ permissionType: PermissionType.Endowment;
13
+ targetName: typeof permissionName;
14
+ endowmentGetter: (_options?: EndowmentGetterParams) => null;
15
+ allowedCaveats: Readonly<NonEmptyArray<string>> | null;
16
+ validator: PermissionValidatorConstraint;
17
+ subjectTypes: readonly SubjectType[];
18
+ }>;
19
+ }>;
20
+ /**
21
+ * Map a raw value from the `initialPermissions` to a caveat specification.
22
+ * Note that this function does not do any validation, that's handled by the
23
+ * PermissionsController when the permission is requested.
24
+ *
25
+ * @param value - The raw value from the `initialPermissions`.
26
+ * @returns The caveat specification.
27
+ */
28
+ export declare function getMessengerCaveatMapper(value: Json): Pick<PermissionConstraint, 'caveats'>;
29
+ export type MessengerActions = Infer<typeof MessengerActionsStruct>;
30
+ /**
31
+ * Getter function to get the {@link MessengerActions} caveat value from a
32
+ * permission.
33
+ *
34
+ * @param permission - The permission to get the caveat value from.
35
+ * @returns The caveat value.
36
+ */
37
+ export declare function getMessengerCaveatActions(permission?: PermissionConstraint): MessengerActions | null;
38
+ export declare const messengerCaveatSpecifications: Record<SnapCaveatType.MessengerScopes, CaveatSpecificationConstraint>;
39
+ export {};
40
+ //# sourceMappingURL=messenger.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger.d.mts","sourceRoot":"","sources":["../../src/endowments/messenger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,6BAA6B,EAC7B,qBAAqB,EACrB,oBAAoB,EACpB,8BAA8B,EAC9B,6BAA6B,EAE9B,wCAAwC;AACzC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA8B;AACpE,OAAO,EAAyB,cAAc,EAAE,8BAA8B;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAe;AAExC,QAAA,MAAM,cAAc,2BAA2B,CAAC;AAoChD,eAAO,MAAM,yBAAyB;;;wBAjCpB,eAAe,SAAS;oBAC5B,qBAAqB;qCACJ,qBAAqB,KAAK,IAAI;wBAC3C,SAAS,cAAc,MAAM,CAAC,CAAC,GAAG,IAAI;mBAC3C,6BAA6B;sBAC1B,SAAS,WAAW,EAAE;;EA+B3B,CAAC;AAEZ;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,IAAI,GACV,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAavC;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,oBAAoB,GAChC,gBAAgB,GAAG,IAAI,CAMzB;AAwBD,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAChD,cAAc,CAAC,eAAe,EAC9B,6BAA6B,CAM9B,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { PermissionType, SubjectType } from "@metamask/permission-controller";
2
+ import { rpcErrors } from "@metamask/rpc-errors";
3
+ import { MessengerScopesStruct, SnapCaveatType } from "@metamask/snaps-utils";
4
+ import { assertStruct, hasProperty, isObject } from "@metamask/utils";
5
+ import { createGenericPermissionValidator } from "./caveats/index.mjs";
6
+ import { SnapEndowments } from "./enum.mjs";
7
+ const permissionName = SnapEndowments.Messenger;
8
+ /**
9
+ * `endowment:messenger` returns nothing; it is intended to be used as a
10
+ * flag by the Snaps Platform to detect whether a Snap has the capability to
11
+ * use the messenger API.
12
+ *
13
+ * @param _builderOptions - Optional specification builder options.
14
+ * @returns The specification for the messenger endowment.
15
+ */
16
+ const specificationBuilder = (_builderOptions) => {
17
+ return {
18
+ permissionType: PermissionType.Endowment,
19
+ targetName: permissionName,
20
+ allowedCaveats: [SnapCaveatType.MessengerScopes],
21
+ endowmentGetter: (_getterOptions) => null,
22
+ validator: createGenericPermissionValidator([
23
+ { type: SnapCaveatType.MessengerScopes },
24
+ ]),
25
+ subjectTypes: [SubjectType.Snap],
26
+ };
27
+ };
28
+ export const messengerEndowmentBuilder = Object.freeze({
29
+ targetName: permissionName,
30
+ specificationBuilder,
31
+ });
32
+ /**
33
+ * Map a raw value from the `initialPermissions` to a caveat specification.
34
+ * Note that this function does not do any validation, that's handled by the
35
+ * PermissionsController when the permission is requested.
36
+ *
37
+ * @param value - The raw value from the `initialPermissions`.
38
+ * @returns The caveat specification.
39
+ */
40
+ export function getMessengerCaveatMapper(value) {
41
+ if (!value || !isObject(value) || Object.keys(value).length === 0) {
42
+ return { caveats: null };
43
+ }
44
+ return {
45
+ caveats: [
46
+ {
47
+ type: SnapCaveatType.MessengerScopes,
48
+ value,
49
+ },
50
+ ],
51
+ };
52
+ }
53
+ /**
54
+ * Getter function to get the {@link MessengerActions} caveat value from a
55
+ * permission.
56
+ *
57
+ * @param permission - The permission to get the caveat value from.
58
+ * @returns The caveat value.
59
+ */
60
+ export function getMessengerCaveatActions(permission) {
61
+ const caveat = permission?.caveats?.find((permCaveat) => permCaveat.type === SnapCaveatType.MessengerScopes);
62
+ return caveat?.value.actions ? caveat.value.actions : null;
63
+ }
64
+ /**
65
+ * Validates the type of the caveat value.
66
+ *
67
+ * @param caveat - The caveat to validate.
68
+ * @throws If the caveat value is invalid.
69
+ */
70
+ function validateCaveat(caveat) {
71
+ if (!hasProperty(caveat, 'value') || !isObject(caveat)) {
72
+ throw rpcErrors.invalidParams({
73
+ message: 'Expected an object.',
74
+ });
75
+ }
76
+ const { value } = caveat;
77
+ assertStruct(value, MessengerScopesStruct, 'Invalid messenger scopes specified', rpcErrors.invalidParams);
78
+ }
79
+ export const messengerCaveatSpecifications = {
80
+ [SnapCaveatType.MessengerScopes]: Object.freeze({
81
+ type: SnapCaveatType.MessengerScopes,
82
+ validator: (caveat) => validateCaveat(caveat),
83
+ }),
84
+ };
85
+ //# sourceMappingURL=messenger.mjs.map