@metamask/permission-controller 11.0.1 → 11.0.3

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 (185) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/dist/Caveat.cjs +48 -0
  3. package/dist/Caveat.cjs.map +1 -0
  4. package/dist/{types/Caveat.d.ts → Caveat.d.cts} +3 -3
  5. package/dist/Caveat.d.cts.map +1 -0
  6. package/dist/Caveat.d.mts +210 -0
  7. package/dist/Caveat.d.mts.map +1 -0
  8. package/dist/Caveat.mjs +42 -11
  9. package/dist/Caveat.mjs.map +1 -1
  10. package/dist/Permission.cjs +65 -0
  11. package/dist/Permission.cjs.map +1 -0
  12. package/dist/{types/Permission.d.ts → Permission.d.cts} +7 -7
  13. package/dist/Permission.d.cts.map +1 -0
  14. package/dist/Permission.d.mts +417 -0
  15. package/dist/Permission.d.mts.map +1 -0
  16. package/dist/Permission.mjs +58 -13
  17. package/dist/Permission.mjs.map +1 -1
  18. package/dist/PermissionController.cjs +1481 -0
  19. package/dist/{chunk-COGJLF22.mjs.map → PermissionController.cjs.map} +1 -1
  20. package/dist/{types/PermissionController.d.ts → PermissionController.d.cts} +10 -10
  21. package/dist/PermissionController.d.cts.map +1 -0
  22. package/dist/PermissionController.d.mts +986 -0
  23. package/dist/PermissionController.d.mts.map +1 -0
  24. package/dist/PermissionController.mjs +1479 -13
  25. package/dist/PermissionController.mjs.map +1 -1
  26. package/dist/SubjectMetadataController.cjs +152 -0
  27. package/dist/SubjectMetadataController.cjs.map +1 -0
  28. package/dist/{types/SubjectMetadataController.d.ts → SubjectMetadataController.d.cts} +5 -5
  29. package/dist/SubjectMetadataController.d.cts.map +1 -0
  30. package/dist/SubjectMetadataController.d.mts +107 -0
  31. package/dist/SubjectMetadataController.d.mts.map +1 -0
  32. package/dist/SubjectMetadataController.mjs +146 -8
  33. package/dist/SubjectMetadataController.mjs.map +1 -1
  34. package/dist/errors.cjs +217 -0
  35. package/dist/errors.cjs.map +1 -0
  36. package/dist/{types/errors.d.ts → errors.d.cts} +6 -6
  37. package/dist/errors.d.cts.map +1 -0
  38. package/dist/errors.d.mts +185 -0
  39. package/dist/errors.d.mts.map +1 -0
  40. package/dist/errors.mjs +187 -57
  41. package/dist/errors.mjs.map +1 -1
  42. package/dist/index.cjs +38 -0
  43. package/dist/index.cjs.map +1 -0
  44. package/dist/index.d.cts +9 -0
  45. package/dist/index.d.cts.map +1 -0
  46. package/dist/index.d.mts +9 -0
  47. package/dist/index.d.mts.map +1 -0
  48. package/dist/index.mjs +7 -97
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/permission-middleware.cjs +55 -0
  51. package/dist/permission-middleware.cjs.map +1 -0
  52. package/dist/{types/permission-middleware.d.ts → permission-middleware.d.cts} +4 -4
  53. package/dist/permission-middleware.d.cts.map +1 -0
  54. package/dist/permission-middleware.d.mts +33 -0
  55. package/dist/permission-middleware.d.mts.map +1 -0
  56. package/dist/permission-middleware.mjs +50 -8
  57. package/dist/permission-middleware.mjs.map +1 -1
  58. package/dist/rpc-methods/getPermissions.cjs +27 -0
  59. package/dist/rpc-methods/getPermissions.cjs.map +1 -0
  60. package/dist/rpc-methods/getPermissions.d.cts +9 -0
  61. package/dist/rpc-methods/getPermissions.d.cts.map +1 -0
  62. package/dist/rpc-methods/getPermissions.d.mts +9 -0
  63. package/dist/rpc-methods/getPermissions.d.mts.map +1 -0
  64. package/dist/rpc-methods/getPermissions.mjs +22 -7
  65. package/dist/rpc-methods/getPermissions.mjs.map +1 -1
  66. package/dist/rpc-methods/index.cjs +12 -0
  67. package/dist/rpc-methods/index.cjs.map +1 -0
  68. package/dist/rpc-methods/index.d.cts +6 -0
  69. package/dist/rpc-methods/index.d.cts.map +1 -0
  70. package/dist/rpc-methods/index.d.mts +6 -0
  71. package/dist/rpc-methods/index.d.mts.map +1 -0
  72. package/dist/rpc-methods/index.mjs +8 -12
  73. package/dist/rpc-methods/index.mjs.map +1 -1
  74. package/dist/rpc-methods/requestPermissions.cjs +36 -0
  75. package/dist/rpc-methods/requestPermissions.cjs.map +1 -0
  76. package/dist/{types/rpc-methods/requestPermissions.d.ts → rpc-methods/requestPermissions.d.cts} +3 -3
  77. package/dist/rpc-methods/requestPermissions.d.cts.map +1 -0
  78. package/dist/rpc-methods/requestPermissions.d.mts +17 -0
  79. package/dist/rpc-methods/requestPermissions.d.mts.map +1 -0
  80. package/dist/rpc-methods/requestPermissions.mjs +31 -8
  81. package/dist/rpc-methods/requestPermissions.mjs.map +1 -1
  82. package/dist/rpc-methods/revokePermissions.cjs +41 -0
  83. package/dist/rpc-methods/revokePermissions.cjs.map +1 -0
  84. package/dist/{types/rpc-methods/revokePermissions.d.ts → rpc-methods/revokePermissions.d.cts} +4 -4
  85. package/dist/rpc-methods/revokePermissions.d.cts.map +1 -0
  86. package/dist/rpc-methods/revokePermissions.d.mts +11 -0
  87. package/dist/rpc-methods/revokePermissions.d.mts.map +1 -0
  88. package/dist/rpc-methods/revokePermissions.mjs +36 -8
  89. package/dist/rpc-methods/revokePermissions.mjs.map +1 -1
  90. package/dist/utils.cjs +44 -0
  91. package/dist/utils.cjs.map +1 -0
  92. package/dist/{types/utils.d.ts → utils.d.cts} +5 -5
  93. package/dist/utils.d.cts.map +1 -0
  94. package/dist/utils.d.mts +57 -0
  95. package/dist/utils.d.mts.map +1 -0
  96. package/dist/utils.mjs +39 -9
  97. package/dist/utils.mjs.map +1 -1
  98. package/package.json +18 -13
  99. package/dist/Caveat.js +0 -12
  100. package/dist/Caveat.js.map +0 -1
  101. package/dist/Permission.js +0 -14
  102. package/dist/Permission.js.map +0 -1
  103. package/dist/PermissionController.js +0 -15
  104. package/dist/PermissionController.js.map +0 -1
  105. package/dist/SubjectMetadataController.js +0 -10
  106. package/dist/SubjectMetadataController.js.map +0 -1
  107. package/dist/chunk-2L4QPE5A.mjs +0 -25
  108. package/dist/chunk-2L4QPE5A.mjs.map +0 -1
  109. package/dist/chunk-3WWJKO7P.mjs +0 -37
  110. package/dist/chunk-3WWJKO7P.mjs.map +0 -1
  111. package/dist/chunk-3YOPLPVY.js +0 -37
  112. package/dist/chunk-3YOPLPVY.js.map +0 -1
  113. package/dist/chunk-42QSJHWO.mjs +0 -155
  114. package/dist/chunk-42QSJHWO.mjs.map +0 -1
  115. package/dist/chunk-4FMYQC3Y.mjs +0 -29
  116. package/dist/chunk-4FMYQC3Y.mjs.map +0 -1
  117. package/dist/chunk-4NAVRO44.mjs +0 -35
  118. package/dist/chunk-4NAVRO44.mjs.map +0 -1
  119. package/dist/chunk-5RFW5THA.mjs +0 -17
  120. package/dist/chunk-5RFW5THA.mjs.map +0 -1
  121. package/dist/chunk-6PXDVUYM.js +0 -29
  122. package/dist/chunk-6PXDVUYM.js.map +0 -1
  123. package/dist/chunk-74H4CVH7.mjs +0 -34
  124. package/dist/chunk-74H4CVH7.mjs.map +0 -1
  125. package/dist/chunk-7A3VYLCK.js +0 -30
  126. package/dist/chunk-7A3VYLCK.js.map +0 -1
  127. package/dist/chunk-B6PDRQ7N.js +0 -1679
  128. package/dist/chunk-B6PDRQ7N.js.map +0 -1
  129. package/dist/chunk-COGJLF22.mjs +0 -1679
  130. package/dist/chunk-F5TBMVWC.js +0 -46
  131. package/dist/chunk-F5TBMVWC.js.map +0 -1
  132. package/dist/chunk-FYADAA2G.js +0 -220
  133. package/dist/chunk-FYADAA2G.js.map +0 -1
  134. package/dist/chunk-G4BWJ7EA.mjs +0 -220
  135. package/dist/chunk-G4BWJ7EA.mjs.map +0 -1
  136. package/dist/chunk-HYMS7IGB.mjs +0 -31
  137. package/dist/chunk-HYMS7IGB.mjs.map +0 -1
  138. package/dist/chunk-I62TTXZ6.mjs +0 -46
  139. package/dist/chunk-I62TTXZ6.mjs.map +0 -1
  140. package/dist/chunk-OCLNDUYO.mjs +0 -30
  141. package/dist/chunk-OCLNDUYO.mjs.map +0 -1
  142. package/dist/chunk-VBIZGGQL.js +0 -17
  143. package/dist/chunk-VBIZGGQL.js.map +0 -1
  144. package/dist/chunk-VQPP5PWS.js +0 -35
  145. package/dist/chunk-VQPP5PWS.js.map +0 -1
  146. package/dist/chunk-VSDHL2GQ.js +0 -155
  147. package/dist/chunk-VSDHL2GQ.js.map +0 -1
  148. package/dist/chunk-X4ZAW4QR.js +0 -34
  149. package/dist/chunk-X4ZAW4QR.js.map +0 -1
  150. package/dist/chunk-Z2XKIXLS.js +0 -25
  151. package/dist/chunk-Z2XKIXLS.js.map +0 -1
  152. package/dist/chunk-ZH4MLSXX.js +0 -31
  153. package/dist/chunk-ZH4MLSXX.js.map +0 -1
  154. package/dist/errors.js +0 -58
  155. package/dist/errors.js.map +0 -1
  156. package/dist/index.js +0 -98
  157. package/dist/index.js.map +0 -1
  158. package/dist/permission-middleware.js +0 -9
  159. package/dist/permission-middleware.js.map +0 -1
  160. package/dist/rpc-methods/getPermissions.js +0 -9
  161. package/dist/rpc-methods/getPermissions.js.map +0 -1
  162. package/dist/rpc-methods/index.js +0 -13
  163. package/dist/rpc-methods/index.js.map +0 -1
  164. package/dist/rpc-methods/requestPermissions.js +0 -10
  165. package/dist/rpc-methods/requestPermissions.js.map +0 -1
  166. package/dist/rpc-methods/revokePermissions.js +0 -10
  167. package/dist/rpc-methods/revokePermissions.js.map +0 -1
  168. package/dist/tsconfig.build.tsbuildinfo +0 -1
  169. package/dist/types/Caveat.d.ts.map +0 -1
  170. package/dist/types/Permission.d.ts.map +0 -1
  171. package/dist/types/PermissionController.d.ts.map +0 -1
  172. package/dist/types/SubjectMetadataController.d.ts.map +0 -1
  173. package/dist/types/errors.d.ts.map +0 -1
  174. package/dist/types/index.d.ts +0 -9
  175. package/dist/types/index.d.ts.map +0 -1
  176. package/dist/types/permission-middleware.d.ts.map +0 -1
  177. package/dist/types/rpc-methods/getPermissions.d.ts +0 -9
  178. package/dist/types/rpc-methods/getPermissions.d.ts.map +0 -1
  179. package/dist/types/rpc-methods/index.d.ts +0 -6
  180. package/dist/types/rpc-methods/index.d.ts.map +0 -1
  181. package/dist/types/rpc-methods/requestPermissions.d.ts.map +0 -1
  182. package/dist/types/rpc-methods/revokePermissions.d.ts.map +0 -1
  183. package/dist/types/utils.d.ts.map +0 -1
  184. package/dist/utils.js +0 -10
  185. package/dist/utils.js.map +0 -1
@@ -1,29 +0,0 @@
1
- import {
2
- getPermissionsHandler
3
- } from "./chunk-5RFW5THA.mjs";
4
- import {
5
- requestPermissionsHandler
6
- } from "./chunk-OCLNDUYO.mjs";
7
- import {
8
- revokePermissionsHandler
9
- } from "./chunk-74H4CVH7.mjs";
10
- import {
11
- __export
12
- } from "./chunk-2L4QPE5A.mjs";
13
-
14
- // src/rpc-methods/index.ts
15
- var rpc_methods_exports = {};
16
- __export(rpc_methods_exports, {
17
- handlers: () => handlers
18
- });
19
- var handlers = [
20
- requestPermissionsHandler,
21
- getPermissionsHandler,
22
- revokePermissionsHandler
23
- ];
24
-
25
- export {
26
- handlers,
27
- rpc_methods_exports
28
- };
29
- //# sourceMappingURL=chunk-4FMYQC3Y.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc-methods/index.ts"],"sourcesContent":["import type { GetPermissionsHooks } from './getPermissions';\nimport { getPermissionsHandler } from './getPermissions';\nimport type { RequestPermissionsHooks } from './requestPermissions';\nimport { requestPermissionsHandler } from './requestPermissions';\nimport type { RevokePermissionsHooks } from './revokePermissions';\nimport { revokePermissionsHandler } from './revokePermissions';\n\nexport type PermittedRpcMethodHooks = RequestPermissionsHooks &\n GetPermissionsHooks &\n RevokePermissionsHooks;\n\nexport const handlers = [\n requestPermissionsHandler,\n getPermissionsHandler,\n revokePermissionsHandler,\n] as const;\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAWO,IAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
@@ -1,35 +0,0 @@
1
- // src/utils.ts
2
- var MethodNames = /* @__PURE__ */ ((MethodNames2) => {
3
- MethodNames2["RequestPermissions"] = "wallet_requestPermissions";
4
- MethodNames2["GetPermissions"] = "wallet_getPermissions";
5
- MethodNames2["RevokePermissions"] = "wallet_revokePermissions";
6
- return MethodNames2;
7
- })(MethodNames || {});
8
- function collectUniqueAndPairedCaveats(leftPermission, rightPermission) {
9
- const leftCaveats = leftPermission?.caveats?.slice() ?? [];
10
- const rightCaveats = rightPermission.caveats?.slice() ?? [];
11
- const leftUniqueCaveats = [];
12
- const caveatPairs = [];
13
- leftCaveats.forEach((leftCaveat) => {
14
- const rightCaveatIndex = rightCaveats.findIndex(
15
- (rightCaveat) => rightCaveat.type === leftCaveat.type
16
- );
17
- if (rightCaveatIndex === -1) {
18
- leftUniqueCaveats.push(leftCaveat);
19
- } else {
20
- caveatPairs.push([leftCaveat, rightCaveats[rightCaveatIndex]]);
21
- rightCaveats.splice(rightCaveatIndex, 1);
22
- }
23
- });
24
- return {
25
- caveatPairs,
26
- leftUniqueCaveats,
27
- rightUniqueCaveats: [...rightCaveats]
28
- };
29
- }
30
-
31
- export {
32
- MethodNames,
33
- collectUniqueAndPairedCaveats
34
- };
35
- //# sourceMappingURL=chunk-4NAVRO44.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type {\n Json,\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type {\n CaveatConstraint,\n CaveatSpecificationConstraint,\n CaveatSpecificationMap,\n} from './Caveat';\nimport type {\n PermissionConstraint,\n PermissionSpecificationConstraint,\n PermissionSpecificationMap,\n} from './Permission';\n\nexport enum MethodNames {\n RequestPermissions = 'wallet_requestPermissions',\n GetPermissions = 'wallet_getPermissions',\n RevokePermissions = 'wallet_revokePermissions',\n}\n\n/**\n * Utility type for extracting a union of all individual caveat or permission\n * specification types from a {@link CaveatSpecificationMap} or\n * {@link PermissionSpecificationMap}.\n *\n * @template SpecificationsMap - The caveat or permission specifications map\n * whose specification type union to extract.\n */\nexport type ExtractSpecifications<\n SpecificationsMap extends\n | CaveatSpecificationMap<CaveatSpecificationConstraint>\n | PermissionSpecificationMap<PermissionSpecificationConstraint>,\n> = SpecificationsMap[keyof SpecificationsMap];\n\n/**\n * A middleware function for handling a permitted method.\n */\nexport type HandlerMiddlewareFunction<\n Hooks,\n Params extends JsonRpcParams,\n Result extends Json,\n> = (\n req: JsonRpcRequest<Params>,\n res: PendingJsonRpcResponse<Result>,\n next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Hooks,\n) => void | Promise<void>;\n\n/**\n * We use a mapped object type in order to create a type that requires the\n * presence of the names of all hooks for the given handler.\n * This can then be used to select only the necessary hooks whenever a method\n * is called for purposes of POLA.\n */\nexport type HookNames<HookMap> = {\n [Property in keyof HookMap]: true;\n};\n\n/**\n * A handler for a permitted method.\n */\nexport type PermittedHandlerExport<\n Hooks,\n Params extends JsonRpcParams,\n Result extends Json,\n> = {\n implementation: HandlerMiddlewareFunction<Hooks, Params, Result>;\n hookNames: HookNames<Hooks>;\n methodNames: string[];\n};\n\n/**\n * Given two permission objects, computes 3 sets:\n * - The set of caveat pairs that are common to both permissions.\n * - The set of caveats that are unique to the existing permission.\n * - The set of caveats that are unique to the requested permission.\n *\n * Assumes that the caveat arrays of both permissions are valid.\n *\n * @param leftPermission - The left-hand permission.\n * @param rightPermission - The right-hand permission.\n * @returns The sets of caveat pairs and unique caveats.\n */\nexport function collectUniqueAndPairedCaveats(\n leftPermission: Partial<PermissionConstraint> | undefined,\n rightPermission: Partial<PermissionConstraint>,\n) {\n const leftCaveats = leftPermission?.caveats?.slice() ?? [];\n const rightCaveats = rightPermission.caveats?.slice() ?? [];\n const leftUniqueCaveats: CaveatConstraint[] = [];\n const caveatPairs: [CaveatConstraint, CaveatConstraint][] = [];\n\n leftCaveats.forEach((leftCaveat) => {\n const rightCaveatIndex = rightCaveats.findIndex(\n (rightCaveat) => rightCaveat.type === leftCaveat.type,\n );\n\n if (rightCaveatIndex === -1) {\n leftUniqueCaveats.push(leftCaveat);\n } else {\n caveatPairs.push([leftCaveat, rightCaveats[rightCaveatIndex]]);\n rightCaveats.splice(rightCaveatIndex, 1);\n }\n });\n\n return {\n caveatPairs,\n leftUniqueCaveats,\n rightUniqueCaveats: [...rightCaveats],\n };\n}\n"],"mappings":";AAsBO,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,wBAAqB;AACrB,EAAAA,aAAA,oBAAiB;AACjB,EAAAA,aAAA,uBAAoB;AAHV,SAAAA;AAAA,GAAA;AAsEL,SAAS,8BACd,gBACA,iBACA;AACA,QAAM,cAAc,gBAAgB,SAAS,MAAM,KAAK,CAAC;AACzD,QAAM,eAAe,gBAAgB,SAAS,MAAM,KAAK,CAAC;AAC1D,QAAM,oBAAwC,CAAC;AAC/C,QAAM,cAAsD,CAAC;AAE7D,cAAY,QAAQ,CAAC,eAAe;AAClC,UAAM,mBAAmB,aAAa;AAAA,MACpC,CAAC,gBAAgB,YAAY,SAAS,WAAW;AAAA,IACnD;AAEA,QAAI,qBAAqB,IAAI;AAC3B,wBAAkB,KAAK,UAAU;AAAA,IACnC,OAAO;AACL,kBAAY,KAAK,CAAC,YAAY,aAAa,gBAAgB,CAAC,CAAC;AAC7D,mBAAa,OAAO,kBAAkB,CAAC;AAAA,IACzC;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,oBAAoB,CAAC,GAAG,YAAY;AAAA,EACtC;AACF;","names":["MethodNames"]}
@@ -1,17 +0,0 @@
1
- // src/rpc-methods/getPermissions.ts
2
- var getPermissionsHandler = {
3
- methodNames: ["wallet_getPermissions" /* GetPermissions */],
4
- implementation: getPermissionsImplementation,
5
- hookNames: {
6
- getPermissionsForOrigin: true
7
- }
8
- };
9
- async function getPermissionsImplementation(_req, res, _next, end, { getPermissionsForOrigin }) {
10
- res.result = Object.values(getPermissionsForOrigin() || {});
11
- return end();
12
- }
13
-
14
- export {
15
- getPermissionsHandler
16
- };
17
- //# sourceMappingURL=chunk-5RFW5THA.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc-methods/getPermissions.ts"],"sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { PermissionConstraint } from '../Permission';\nimport type { SubjectPermissions } from '../PermissionController';\nimport type { PermittedHandlerExport } from '../utils';\nimport { MethodNames } from '../utils';\n\nexport const getPermissionsHandler: PermittedHandlerExport<\n GetPermissionsHooks,\n [],\n PermissionConstraint[]\n> = {\n methodNames: [MethodNames.GetPermissions],\n implementation: getPermissionsImplementation,\n hookNames: {\n getPermissionsForOrigin: true,\n },\n};\n\nexport type GetPermissionsHooks = {\n // This must be bound to the requesting origin.\n getPermissionsForOrigin: () => SubjectPermissions<PermissionConstraint>;\n};\n\n/**\n * Get Permissions implementation to be used in JsonRpcEngine middleware.\n *\n * @param _req - The JsonRpcEngine request - unused\n * @param res - The JsonRpcEngine result object\n * @param _next - JsonRpcEngine next() callback - unused\n * @param end - JsonRpcEngine end() callback\n * @param options - Method hooks passed to the method implementation\n * @param options.getPermissionsForOrigin - The specific method hook needed for this method implementation\n * @returns A promise that resolves to nothing\n */\nasync function getPermissionsImplementation(\n _req: unknown,\n res: PendingJsonRpcResponse<PermissionConstraint[]>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { getPermissionsForOrigin }: GetPermissionsHooks,\n): Promise<void> {\n res.result = Object.values(getPermissionsForOrigin() || {});\n return end();\n}\n"],"mappings":";AAQO,IAAM,wBAIT;AAAA,EACF,aAAa,6CAA2B;AAAA,EACxC,gBAAgB;AAAA,EAChB,WAAW;AAAA,IACT,yBAAyB;AAAA,EAC3B;AACF;AAkBA,eAAe,6BACb,MACA,KACA,OACA,KACA,EAAE,wBAAwB,GACX;AACf,MAAI,SAAS,OAAO,OAAO,wBAAwB,KAAK,CAAC,CAAC;AAC1D,SAAO,IAAI;AACb;","names":[]}
@@ -1,29 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkVBIZGGQLjs = require('./chunk-VBIZGGQL.js');
4
-
5
-
6
- var _chunk7A3VYLCKjs = require('./chunk-7A3VYLCK.js');
7
-
8
-
9
- var _chunkX4ZAW4QRjs = require('./chunk-X4ZAW4QR.js');
10
-
11
-
12
- var _chunkZ2XKIXLSjs = require('./chunk-Z2XKIXLS.js');
13
-
14
- // src/rpc-methods/index.ts
15
- var rpc_methods_exports = {};
16
- _chunkZ2XKIXLSjs.__export.call(void 0, rpc_methods_exports, {
17
- handlers: () => handlers
18
- });
19
- var handlers = [
20
- _chunk7A3VYLCKjs.requestPermissionsHandler,
21
- _chunkVBIZGGQLjs.getPermissionsHandler,
22
- _chunkX4ZAW4QRjs.revokePermissionsHandler
23
- ];
24
-
25
-
26
-
27
-
28
- exports.handlers = handlers; exports.rpc_methods_exports = rpc_methods_exports;
29
- //# sourceMappingURL=chunk-6PXDVUYM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc-methods/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAWO,IAAM,WAAW;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF","sourcesContent":["import type { GetPermissionsHooks } from './getPermissions';\nimport { getPermissionsHandler } from './getPermissions';\nimport type { RequestPermissionsHooks } from './requestPermissions';\nimport { requestPermissionsHandler } from './requestPermissions';\nimport type { RevokePermissionsHooks } from './revokePermissions';\nimport { revokePermissionsHandler } from './revokePermissions';\n\nexport type PermittedRpcMethodHooks = RequestPermissionsHooks &\n GetPermissionsHooks &\n RevokePermissionsHooks;\n\nexport const handlers = [\n requestPermissionsHandler,\n getPermissionsHandler,\n revokePermissionsHandler,\n] as const;\n"]}
@@ -1,34 +0,0 @@
1
- import {
2
- invalidParams
3
- } from "./chunk-G4BWJ7EA.mjs";
4
-
5
- // src/rpc-methods/revokePermissions.ts
6
- import {
7
- isNonEmptyArray
8
- } from "@metamask/utils";
9
- var revokePermissionsHandler = {
10
- methodNames: ["wallet_revokePermissions" /* RevokePermissions */],
11
- implementation: revokePermissionsImplementation,
12
- hookNames: {
13
- revokePermissionsForOrigin: true
14
- }
15
- };
16
- async function revokePermissionsImplementation(req, res, _next, end, { revokePermissionsForOrigin }) {
17
- const { params } = req;
18
- const param = params?.[0];
19
- if (!param) {
20
- return end(invalidParams({ data: { request: req } }));
21
- }
22
- const permissionKeys = Object.keys(param);
23
- if (!isNonEmptyArray(permissionKeys)) {
24
- return end(invalidParams({ data: { request: req } }));
25
- }
26
- revokePermissionsForOrigin(permissionKeys);
27
- res.result = null;
28
- return end();
29
- }
30
-
31
- export {
32
- revokePermissionsHandler
33
- };
34
- //# sourceMappingURL=chunk-74H4CVH7.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc-methods/revokePermissions.ts"],"sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport {\n isNonEmptyArray,\n type Json,\n type JsonRpcRequest,\n type NonEmptyArray,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport { invalidParams } from '../errors';\nimport type { PermissionConstraint } from '../Permission';\nimport type { PermittedHandlerExport } from '../utils';\nimport { MethodNames } from '../utils';\n\nexport const revokePermissionsHandler: PermittedHandlerExport<\n RevokePermissionsHooks,\n RevokePermissionArgs,\n null\n> = {\n methodNames: [MethodNames.RevokePermissions],\n implementation: revokePermissionsImplementation,\n hookNames: {\n revokePermissionsForOrigin: true,\n },\n};\n\nexport type RevokePermissionArgs = Record<\n PermissionConstraint['parentCapability'],\n Json\n>;\n\ntype RevokePermissions = (\n permissions: NonEmptyArray<PermissionConstraint['parentCapability']>,\n) => void;\n\nexport type RevokePermissionsHooks = {\n revokePermissionsForOrigin: RevokePermissions;\n};\n\n/**\n * Revoke Permissions implementation to be used in JsonRpcEngine middleware.\n *\n * @param req - The JsonRpcEngine request\n * @param res - The JsonRpcEngine result object\n * @param _next - JsonRpcEngine next() callback - unused\n * @param end - JsonRpcEngine end() callback\n * @param options - Method hooks passed to the method implementation\n * @param options.revokePermissionsForOrigin - A hook that revokes given permission keys for an origin\n * @returns A promise that resolves to nothing\n */\nasync function revokePermissionsImplementation(\n req: JsonRpcRequest<RevokePermissionArgs>,\n res: PendingJsonRpcResponse<null>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { revokePermissionsForOrigin }: RevokePermissionsHooks,\n): Promise<void> {\n const { params } = req;\n\n const param = params?.[0];\n\n if (!param) {\n return end(invalidParams({ data: { request: req } }));\n }\n\n // For now, this API revokes the entire permission key\n // even if caveats are specified.\n const permissionKeys = Object.keys(param);\n\n if (!isNonEmptyArray(permissionKeys)) {\n return end(invalidParams({ data: { request: req } }));\n }\n\n revokePermissionsForOrigin(permissionKeys);\n\n res.result = null;\n\n return end();\n}\n"],"mappings":";;;;;AACA;AAAA,EACE;AAAA,OAKK;AAOA,IAAM,2BAIT;AAAA,EACF,aAAa,mDAA8B;AAAA,EAC3C,gBAAgB;AAAA,EAChB,WAAW;AAAA,IACT,4BAA4B;AAAA,EAC9B;AACF;AA0BA,eAAe,gCACb,KACA,KACA,OACA,KACA,EAAE,2BAA2B,GACd;AACf,QAAM,EAAE,OAAO,IAAI;AAEnB,QAAM,QAAQ,SAAS,CAAC;AAExB,MAAI,CAAC,OAAO;AACV,WAAO,IAAI,cAAc,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AAAA,EACtD;AAIA,QAAM,iBAAiB,OAAO,KAAK,KAAK;AAExC,MAAI,CAAC,gBAAgB,cAAc,GAAG;AACpC,WAAO,IAAI,cAAc,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AAAA,EACtD;AAEA,6BAA2B,cAAc;AAEzC,MAAI,SAAS;AAEb,SAAO,IAAI;AACb;","names":[]}
@@ -1,30 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunkFYADAA2Gjs = require('./chunk-FYADAA2G.js');
4
-
5
- // src/rpc-methods/requestPermissions.ts
6
- var _controllerutils = require('@metamask/controller-utils');
7
- var requestPermissionsHandler = {
8
- methodNames: ["wallet_requestPermissions" /* RequestPermissions */],
9
- implementation: requestPermissionsImplementation,
10
- hookNames: {
11
- requestPermissionsForOrigin: true
12
- }
13
- };
14
- async function requestPermissionsImplementation(req, res, _next, end, { requestPermissionsForOrigin }) {
15
- const { params } = req;
16
- if (!Array.isArray(params) || !_controllerutils.isPlainObject.call(void 0, params[0])) {
17
- return end(_chunkFYADAA2Gjs.invalidParams.call(void 0, { data: { request: req } }));
18
- }
19
- const [requestedPermissions] = params;
20
- const [grantedPermissions] = await requestPermissionsForOrigin(
21
- requestedPermissions
22
- );
23
- res.result = Object.values(grantedPermissions);
24
- return end();
25
- }
26
-
27
-
28
-
29
- exports.requestPermissionsHandler = requestPermissionsHandler;
30
- //# sourceMappingURL=chunk-7A3VYLCK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc-methods/requestPermissions.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,qBAAqB;AASvB,IAAM,4BAIT;AAAA,EACF,aAAa,qDAA+B;AAAA,EAC5C,gBAAgB;AAAA,EAChB,WAAW;AAAA,IACT,6BAA6B;AAAA,EAC/B;AACF;AAuBA,eAAe,iCACb,KACA,KACA,OACA,KACA,EAAE,4BAA4B,GACf;AACf,QAAM,EAAE,OAAO,IAAI;AAEnB,MAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,CAAC,cAAc,OAAO,CAAC,CAAC,GAAG;AACvD,WAAO,IAAI,cAAc,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;AAAA,EACtD;AAEA,QAAM,CAAC,oBAAoB,IAAI;AAC/B,QAAM,CAAC,kBAAkB,IAAI,MAAM;AAAA,IACjC;AAAA,EACF;AAGA,MAAI,SAAS,OAAO,OAAO,kBAAkB;AAC7C,SAAO,IAAI;AACb","sourcesContent":["import { isPlainObject } from '@metamask/controller-utils';\nimport type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { invalidParams } from '../errors';\nimport type { PermissionConstraint, RequestedPermissions } from '../Permission';\nimport type { PermittedHandlerExport } from '../utils';\nimport { MethodNames } from '../utils';\n\nexport const requestPermissionsHandler: PermittedHandlerExport<\n RequestPermissionsHooks,\n [RequestedPermissions],\n PermissionConstraint[]\n> = {\n methodNames: [MethodNames.RequestPermissions],\n implementation: requestPermissionsImplementation,\n hookNames: {\n requestPermissionsForOrigin: true,\n },\n};\n\ntype RequestPermissions = (\n requestedPermissions: RequestedPermissions,\n) => Promise<\n [Record<string, PermissionConstraint>, { id: string; origin: string }]\n>;\n\nexport type RequestPermissionsHooks = {\n requestPermissionsForOrigin: RequestPermissions;\n};\n\n/**\n * Request Permissions implementation to be used in JsonRpcEngine middleware.\n *\n * @param req - The JsonRpcEngine request\n * @param res - The JsonRpcEngine result object\n * @param _next - JsonRpcEngine next() callback - unused\n * @param end - JsonRpcEngine end() callback\n * @param options - Method hooks passed to the method implementation\n * @param options.requestPermissionsForOrigin - The specific method hook needed for this method implementation\n * @returns A promise that resolves to nothing\n */\nasync function requestPermissionsImplementation(\n req: JsonRpcRequest<[RequestedPermissions]>,\n res: PendingJsonRpcResponse<PermissionConstraint[]>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { requestPermissionsForOrigin }: RequestPermissionsHooks,\n): Promise<void> {\n const { params } = req;\n\n if (!Array.isArray(params) || !isPlainObject(params[0])) {\n return end(invalidParams({ data: { request: req } }));\n }\n\n const [requestedPermissions] = params;\n const [grantedPermissions] = await requestPermissionsForOrigin(\n requestedPermissions,\n );\n\n // `wallet_requestPermission` is specified to return an array.\n res.result = Object.values(grantedPermissions);\n return end();\n}\n"]}