@metamask/permission-controller 12.0.0 → 12.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [12.1.0]
11
+
12
+ ### Added
13
+
14
+ - Add `name` property to permission errors ([#6987](https://github.com/MetaMask/core/pull/6987))
15
+
10
16
  ## [12.0.0]
11
17
 
12
18
  ### Changed
@@ -359,7 +365,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
359
365
 
360
366
  All changes listed after this point were applied to this package following the monorepo conversion.
361
367
 
362
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@12.0.0...HEAD
368
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@12.1.0...HEAD
369
+ [12.1.0]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@12.0.0...@metamask/permission-controller@12.1.0
363
370
  [12.0.0]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@11.1.1...@metamask/permission-controller@12.0.0
364
371
  [11.1.1]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@11.1.0...@metamask/permission-controller@11.1.1
365
372
  [11.1.0]: https://github.com/MetaMask/core/compare/@metamask/permission-controller@11.0.6...@metamask/permission-controller@11.1.0
package/dist/errors.cjs CHANGED
@@ -65,19 +65,27 @@ function internalError(message, data) {
65
65
  return rpc_errors_1.rpcErrors.internal({ message, data });
66
66
  }
67
67
  exports.internalError = internalError;
68
- class InvalidSubjectIdentifierError extends Error {
68
+ class CustomError extends Error {
69
+ constructor(message) {
70
+ super(message);
71
+ this.name = this.constructor.name;
72
+ }
73
+ }
74
+ class InvalidSubjectIdentifierError extends CustomError {
69
75
  constructor(origin) {
70
76
  super(`Invalid subject identifier: "${typeof origin === 'string' ? origin : typeof origin}"`);
77
+ this.name = this.constructor.name;
71
78
  }
72
79
  }
73
80
  exports.InvalidSubjectIdentifierError = InvalidSubjectIdentifierError;
74
- class UnrecognizedSubjectError extends Error {
81
+ class UnrecognizedSubjectError extends CustomError {
75
82
  constructor(origin) {
76
83
  super(`Unrecognized subject: "${origin}" has no permissions.`);
84
+ this.name = this.constructor.name;
77
85
  }
78
86
  }
79
87
  exports.UnrecognizedSubjectError = UnrecognizedSubjectError;
80
- class CaveatMergerDoesNotExistError extends Error {
88
+ class CaveatMergerDoesNotExistError extends CustomError {
81
89
  constructor(caveatType) {
82
90
  super(`Caveat value merger does not exist for type: "${caveatType}"`);
83
91
  }
@@ -91,20 +99,20 @@ class InvalidMergedPermissionsError extends Error {
91
99
  }
92
100
  }
93
101
  exports.InvalidMergedPermissionsError = InvalidMergedPermissionsError;
94
- class InvalidApprovedPermissionError extends Error {
102
+ class InvalidApprovedPermissionError extends CustomError {
95
103
  constructor(origin, target, approvedPermission) {
96
104
  super(`Invalid approved permission for origin "${origin}" and target "${target}".`);
97
105
  this.data = { origin, target, approvedPermission };
98
106
  }
99
107
  }
100
108
  exports.InvalidApprovedPermissionError = InvalidApprovedPermissionError;
101
- class PermissionDoesNotExistError extends Error {
109
+ class PermissionDoesNotExistError extends CustomError {
102
110
  constructor(origin, target) {
103
111
  super(`Subject "${origin}" has no permission for "${target}".`);
104
112
  }
105
113
  }
106
114
  exports.PermissionDoesNotExistError = PermissionDoesNotExistError;
107
- class EndowmentPermissionDoesNotExistError extends Error {
115
+ class EndowmentPermissionDoesNotExistError extends CustomError {
108
116
  constructor(target, origin) {
109
117
  super(`${origin ? `Subject "${origin}"` : 'Unknown subject'} has no permission for "${target}".`);
110
118
  if (origin) {
@@ -113,7 +121,7 @@ class EndowmentPermissionDoesNotExistError extends Error {
113
121
  }
114
122
  }
115
123
  exports.EndowmentPermissionDoesNotExistError = EndowmentPermissionDoesNotExistError;
116
- class UnrecognizedCaveatTypeError extends Error {
124
+ class UnrecognizedCaveatTypeError extends CustomError {
117
125
  constructor(caveatType, origin, target) {
118
126
  super(`Unrecognized caveat type: "${caveatType}"`);
119
127
  this.data = { caveatType };
@@ -126,20 +134,20 @@ class UnrecognizedCaveatTypeError extends Error {
126
134
  }
127
135
  }
128
136
  exports.UnrecognizedCaveatTypeError = UnrecognizedCaveatTypeError;
129
- class InvalidCaveatsPropertyError extends Error {
137
+ class InvalidCaveatsPropertyError extends CustomError {
130
138
  constructor(origin, target, caveatsProperty) {
131
139
  super(`The "caveats" property of permission for "${target}" of subject "${origin}" is invalid. It must be a non-empty array if specified.`);
132
140
  this.data = { origin, target, caveatsProperty };
133
141
  }
134
142
  }
135
143
  exports.InvalidCaveatsPropertyError = InvalidCaveatsPropertyError;
136
- class CaveatDoesNotExistError extends Error {
144
+ class CaveatDoesNotExistError extends CustomError {
137
145
  constructor(origin, target, caveatType) {
138
146
  super(`Permission for "${target}" of subject "${origin}" has no caveat of type "${caveatType}".`);
139
147
  }
140
148
  }
141
149
  exports.CaveatDoesNotExistError = CaveatDoesNotExistError;
142
- class CaveatAlreadyExistsError extends Error {
150
+ class CaveatAlreadyExistsError extends CustomError {
143
151
  constructor(origin, target, caveatType) {
144
152
  super(`Permission for "${target}" of subject "${origin}" already has a caveat of type "${caveatType}".`);
145
153
  }
@@ -152,63 +160,63 @@ class InvalidCaveatError extends rpc_errors_1.JsonRpcError {
152
160
  }
153
161
  }
154
162
  exports.InvalidCaveatError = InvalidCaveatError;
155
- class InvalidCaveatTypeError extends Error {
163
+ class InvalidCaveatTypeError extends CustomError {
156
164
  constructor(caveat, origin, target) {
157
165
  super(`Caveat types must be strings. Received: "${typeof caveat.type}"`);
158
166
  this.data = { caveat, origin, target };
159
167
  }
160
168
  }
161
169
  exports.InvalidCaveatTypeError = InvalidCaveatTypeError;
162
- class CaveatMissingValueError extends Error {
170
+ class CaveatMissingValueError extends CustomError {
163
171
  constructor(caveat, origin, target) {
164
172
  super(`Caveat is missing "value" field.`);
165
173
  this.data = { caveat, origin, target };
166
174
  }
167
175
  }
168
176
  exports.CaveatMissingValueError = CaveatMissingValueError;
169
- class CaveatInvalidJsonError extends Error {
177
+ class CaveatInvalidJsonError extends CustomError {
170
178
  constructor(caveat, origin, target) {
171
179
  super(`Caveat "value" is invalid JSON.`);
172
180
  this.data = { caveat, origin, target };
173
181
  }
174
182
  }
175
183
  exports.CaveatInvalidJsonError = CaveatInvalidJsonError;
176
- class InvalidCaveatFieldsError extends Error {
184
+ class InvalidCaveatFieldsError extends CustomError {
177
185
  constructor(caveat, origin, target) {
178
186
  super(`Caveat has unexpected number of fields: "${Object.keys(caveat).length}"`);
179
187
  this.data = { caveat, origin, target };
180
188
  }
181
189
  }
182
190
  exports.InvalidCaveatFieldsError = InvalidCaveatFieldsError;
183
- class ForbiddenCaveatError extends Error {
191
+ class ForbiddenCaveatError extends CustomError {
184
192
  constructor(caveatType, origin, targetName) {
185
193
  super(`Permissions for target "${targetName}" may not have caveats of type "${caveatType}".`);
186
194
  this.data = { caveatType, origin, target: targetName };
187
195
  }
188
196
  }
189
197
  exports.ForbiddenCaveatError = ForbiddenCaveatError;
190
- class DuplicateCaveatError extends Error {
198
+ class DuplicateCaveatError extends CustomError {
191
199
  constructor(caveatType, origin, targetName) {
192
200
  super(`Permissions for target "${targetName}" contains multiple caveats of type "${caveatType}".`);
193
201
  this.data = { caveatType, origin, target: targetName };
194
202
  }
195
203
  }
196
204
  exports.DuplicateCaveatError = DuplicateCaveatError;
197
- class CaveatMergeTypeMismatchError extends Error {
205
+ class CaveatMergeTypeMismatchError extends CustomError {
198
206
  constructor(leftCaveatType, rightCaveatType) {
199
207
  super(`Cannot merge caveats of different types: "${leftCaveatType}" and "${rightCaveatType}".`);
200
208
  this.data = { leftCaveatType, rightCaveatType };
201
209
  }
202
210
  }
203
211
  exports.CaveatMergeTypeMismatchError = CaveatMergeTypeMismatchError;
204
- class CaveatSpecificationMismatchError extends Error {
212
+ class CaveatSpecificationMismatchError extends CustomError {
205
213
  constructor(caveatSpec, permissionType) {
206
214
  super(`Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`);
207
215
  this.data = { caveatSpec, permissionType };
208
216
  }
209
217
  }
210
218
  exports.CaveatSpecificationMismatchError = CaveatSpecificationMismatchError;
211
- class PermissionsRequestNotFoundError extends Error {
219
+ class PermissionsRequestNotFoundError extends CustomError {
212
220
  constructor(id) {
213
221
  super(`Permissions request with id "${id}" not found.`);
214
222
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.cjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataWithOptionalCause } from '@metamask/rpc-errors';\nimport {\n errorCodes,\n providerErrors,\n rpcErrors,\n JsonRpcError,\n} from '@metamask/rpc-errors';\n\nimport type { CaveatConstraint } from './Caveat';\nimport type { PermissionType } from './Permission';\nimport type { PermissionDiffMap } from './PermissionController';\n\ntype UnauthorizedArg = {\n data?: Record<string, unknown>;\n message?: string;\n};\n\n/**\n * Utility function for building an \"unauthorized\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function unauthorized(opts: UnauthorizedArg) {\n return providerErrors.unauthorized({\n message:\n 'Unauthorized to perform action. Try requesting the required permission(s) first. For more information, see: https://docs.metamask.io/guide/rpc-api.html#permissions',\n data: opts.data,\n });\n}\n\n/**\n * Utility function for building a \"method not found\" error.\n *\n * @param method - The method in question.\n * @param data - Optional data for context.\n * @returns The built error\n */\nexport function methodNotFound(method: string, data?: DataWithOptionalCause) {\n const message = `The method \"${method}\" does not exist / is not available.`;\n\n const opts: Parameters<typeof rpcErrors.methodNotFound>[0] = { message };\n if (data !== undefined) {\n opts.data = data;\n }\n return rpcErrors.methodNotFound(opts);\n}\n\ntype InvalidParamsArg = {\n message?: string;\n data?: DataWithOptionalCause;\n};\n\n/**\n * Utility function for building an \"invalid params\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function invalidParams(opts: InvalidParamsArg) {\n return rpcErrors.invalidParams({\n data: opts.data,\n message: opts.message,\n });\n}\n\n/**\n * Utility function for building an \"user rejected request\" error.\n *\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function userRejectedRequest<Data extends Record<string, unknown>>(\n data?: Data,\n): JsonRpcError<Data> {\n return providerErrors.userRejectedRequest({ data });\n}\n\n/**\n * Utility function for building an internal error.\n *\n * @param message - The error message\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function internalError<Data extends Record<string, unknown>>(\n message: string,\n data?: Data,\n): JsonRpcError<Data> {\n return rpcErrors.internal({ message, data });\n}\n\nexport class InvalidSubjectIdentifierError extends Error {\n constructor(origin: unknown) {\n super(\n `Invalid subject identifier: \"${\n typeof origin === 'string' ? origin : typeof origin\n }\"`,\n );\n }\n}\n\nexport class UnrecognizedSubjectError extends Error {\n constructor(origin: string) {\n super(`Unrecognized subject: \"${origin}\" has no permissions.`);\n }\n}\n\nexport class CaveatMergerDoesNotExistError extends Error {\n constructor(caveatType: string) {\n super(`Caveat value merger does not exist for type: \"${caveatType}\"`);\n }\n}\n\nexport class InvalidMergedPermissionsError extends Error {\n public cause: Error;\n\n public data: {\n diff: PermissionDiffMap<string, CaveatConstraint>;\n };\n\n constructor(\n origin: string,\n cause: Error,\n diff: PermissionDiffMap<string, CaveatConstraint>,\n ) {\n super(\n `Invalid merged permissions for subject \"${origin}\":\\n${cause.message}`,\n );\n this.cause = cause;\n this.data = { diff };\n }\n}\n\nexport class InvalidApprovedPermissionError extends Error {\n public data: {\n origin: string;\n target: string;\n approvedPermission: Record<string, unknown>;\n };\n\n constructor(\n origin: string,\n target: string,\n approvedPermission: Record<string, unknown>,\n ) {\n super(\n `Invalid approved permission for origin \"${origin}\" and target \"${target}\".`,\n );\n this.data = { origin, target, approvedPermission };\n }\n}\nexport class PermissionDoesNotExistError extends Error {\n constructor(origin: string, target: string) {\n super(`Subject \"${origin}\" has no permission for \"${target}\".`);\n }\n}\n\nexport class EndowmentPermissionDoesNotExistError extends Error {\n public data?: { origin: string };\n\n constructor(target: string, origin?: string) {\n super(\n `${\n origin ? `Subject \"${origin}\"` : 'Unknown subject'\n } has no permission for \"${target}\".`,\n );\n if (origin) {\n this.data = { origin };\n }\n }\n}\n\nexport class UnrecognizedCaveatTypeError extends Error {\n public data: {\n caveatType: string;\n origin?: string;\n target?: string;\n };\n\n constructor(caveatType: string);\n\n constructor(caveatType: string, origin: string, target: string);\n\n constructor(caveatType: string, origin?: string, target?: string) {\n super(`Unrecognized caveat type: \"${caveatType}\"`);\n this.data = { caveatType };\n if (origin !== undefined) {\n this.data.origin = origin;\n }\n\n if (target !== undefined) {\n this.data.target = target;\n }\n }\n}\n\nexport class InvalidCaveatsPropertyError extends Error {\n public data: { origin: string; target: string; caveatsProperty: unknown };\n\n constructor(origin: string, target: string, caveatsProperty: unknown) {\n super(\n `The \"caveats\" property of permission for \"${target}\" of subject \"${origin}\" is invalid. It must be a non-empty array if specified.`,\n );\n this.data = { origin, target, caveatsProperty };\n }\n}\n\nexport class CaveatDoesNotExistError extends Error {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" has no caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class CaveatAlreadyExistsError extends Error {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" already has a caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class InvalidCaveatError extends JsonRpcError<\n DataWithOptionalCause | undefined\n> {\n public override data: { origin: string; target: string };\n\n constructor(receivedCaveat: unknown, origin: string, target: string) {\n super(\n errorCodes.rpc.invalidParams,\n `Invalid caveat. Caveats must be plain objects.`,\n { receivedCaveat },\n );\n this.data = { origin, target };\n }\n}\n\nexport class InvalidCaveatTypeError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat types must be strings. Received: \"${typeof caveat.type}\"`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatMissingValueError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat is missing \"value\" field.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatInvalidJsonError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat \"value\" is invalid JSON.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class InvalidCaveatFieldsError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(\n `Caveat has unexpected number of fields: \"${Object.keys(caveat).length}\"`,\n );\n this.data = { caveat, origin, target };\n }\n}\n\nexport class ForbiddenCaveatError extends Error {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" may not have caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class DuplicateCaveatError extends Error {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" contains multiple caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class CaveatMergeTypeMismatchError extends Error {\n public data: {\n leftCaveatType: string;\n rightCaveatType: string;\n };\n\n constructor(leftCaveatType: string, rightCaveatType: string) {\n super(\n `Cannot merge caveats of different types: \"${leftCaveatType}\" and \"${rightCaveatType}\".`,\n );\n this.data = { leftCaveatType, rightCaveatType };\n }\n}\n\nexport class CaveatSpecificationMismatchError extends Error {\n public data: {\n caveatSpec: Record<string, unknown>;\n permissionType: PermissionType;\n };\n\n constructor(\n caveatSpec: Record<string, unknown>,\n permissionType: PermissionType,\n ) {\n super(\n `Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`,\n );\n this.data = { caveatSpec, permissionType };\n }\n}\n\nexport class PermissionsRequestNotFoundError extends Error {\n constructor(id: string) {\n super(`Permissions request with id \"${id}\" not found.`);\n }\n}\n"]}
1
+ {"version":3,"file":"errors.cjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AACA,qDAK8B;AAW9B;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,IAAqB;IAChD,OAAO,2BAAc,CAAC,YAAY,CAAC;QACjC,OAAO,EACL,qKAAqK;QACvK,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAND,oCAMC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,MAAc,EAAE,IAA4B;IACzE,MAAM,OAAO,GAAG,eAAe,MAAM,sCAAsC,CAAC;IAE5E,MAAM,IAAI,GAAmD,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;IACD,OAAO,sBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AARD,wCAQC;AAOD;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAsB;IAClD,OAAO,sBAAS,CAAC,aAAa,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC;AALD,sCAKC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,IAAW;IAEX,OAAO,2BAAc,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAJD,kDAIC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,OAAe,EACf,IAAW;IAEX,OAAO,sBAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AALD,sCAKC;AAED,MAAM,WAAY,SAAQ,KAAK;IAC7B,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED,MAAa,6BAA8B,SAAQ,WAAW;IAC5D,YAAY,MAAe;QACzB,KAAK,CACH,gCACE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAC/C,GAAG,CACJ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AATD,sEASC;AAED,MAAa,wBAAyB,SAAQ,WAAW;IACvD,YAAY,MAAc;QACxB,KAAK,CAAC,0BAA0B,MAAM,uBAAuB,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AALD,4DAKC;AAED,MAAa,6BAA8B,SAAQ,WAAW;IAC5D,YAAY,UAAkB;QAC5B,KAAK,CAAC,iDAAiD,UAAU,GAAG,CAAC,CAAC;IACxE,CAAC;CACF;AAJD,sEAIC;AAED,MAAa,6BAA8B,SAAQ,KAAK;IAOtD,YACE,MAAc,EACd,KAAY,EACZ,IAAiD;QAEjD,KAAK,CACH,2CAA2C,MAAM,OAAO,KAAK,CAAC,OAAO,EAAE,CACxE,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;CACF;AAlBD,sEAkBC;AAED,MAAa,8BAA+B,SAAQ,WAAW;IAO7D,YACE,MAAc,EACd,MAAc,EACd,kBAA2C;QAE3C,KAAK,CACH,2CAA2C,MAAM,iBAAiB,MAAM,IAAI,CAC7E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IACrD,CAAC;CACF;AAjBD,wEAiBC;AACD,MAAa,2BAA4B,SAAQ,WAAW;IAC1D,YAAY,MAAc,EAAE,MAAc;QACxC,KAAK,CAAC,YAAY,MAAM,4BAA4B,MAAM,IAAI,CAAC,CAAC;IAClE,CAAC;CACF;AAJD,kEAIC;AAED,MAAa,oCAAqC,SAAQ,WAAW;IAGnE,YAAY,MAAc,EAAE,MAAe;QACzC,KAAK,CACH,GACE,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC,CAAC,iBACnC,2BAA2B,MAAM,IAAI,CACtC,CAAC;QACF,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;SACxB;IACH,CAAC;CACF;AAbD,oFAaC;AAED,MAAa,2BAA4B,SAAQ,WAAW;IAW1D,YAAY,UAAkB,EAAE,MAAe,EAAE,MAAe;QAC9D,KAAK,CAAC,8BAA8B,UAAU,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC;QAC3B,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;QAED,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;IACH,CAAC;CACF;AAtBD,kEAsBC;AAED,MAAa,2BAA4B,SAAQ,WAAW;IAG1D,YAAY,MAAc,EAAE,MAAc,EAAE,eAAwB;QAClE,KAAK,CACH,6CAA6C,MAAM,iBAAiB,MAAM,0DAA0D,CACrI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAClD,CAAC;CACF;AATD,kEASC;AAED,MAAa,uBAAwB,SAAQ,WAAW;IACtD,YAAY,MAAc,EAAE,MAAc,EAAE,UAAkB;QAC5D,KAAK,CACH,mBAAmB,MAAM,iBAAiB,MAAM,4BAA4B,UAAU,IAAI,CAC3F,CAAC;IACJ,CAAC;CACF;AAND,0DAMC;AAED,MAAa,wBAAyB,SAAQ,WAAW;IACvD,YAAY,MAAc,EAAE,MAAc,EAAE,UAAkB;QAC5D,KAAK,CACH,mBAAmB,MAAM,iBAAiB,MAAM,mCAAmC,UAAU,IAAI,CAClG,CAAC;IACJ,CAAC;CACF;AAND,4DAMC;AAED,MAAa,kBAAmB,SAAQ,yBAEvC;IAGC,YAAY,cAAuB,EAAE,MAAc,EAAE,MAAc;QACjE,KAAK,CACH,uBAAU,CAAC,GAAG,CAAC,aAAa,EAC5B,gDAAgD,EAChD,EAAE,cAAc,EAAE,CACnB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjC,CAAC;CACF;AAbD,gDAaC;AAED,MAAa,sBAAuB,SAAQ,WAAW;IAOrD,YAAY,MAA+B,EAAE,MAAc,EAAE,MAAc;QACzE,KAAK,CAAC,4CAA4C,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAXD,wDAWC;AAED,MAAa,uBAAwB,SAAQ,WAAW;IAOtD,YAAY,MAA+B,EAAE,MAAc,EAAE,MAAc;QACzE,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAXD,0DAWC;AAED,MAAa,sBAAuB,SAAQ,WAAW;IAOrD,YAAY,MAA+B,EAAE,MAAc,EAAE,MAAc;QACzE,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAXD,wDAWC;AAED,MAAa,wBAAyB,SAAQ,WAAW;IAOvD,YAAY,MAA+B,EAAE,MAAc,EAAE,MAAc;QACzE,KAAK,CACH,4CAA4C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAC1E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAbD,4DAaC;AAED,MAAa,oBAAqB,SAAQ,WAAW;IAOnD,YAAY,UAAkB,EAAE,MAAc,EAAE,UAAkB;QAChE,KAAK,CACH,2BAA2B,UAAU,mCAAmC,UAAU,IAAI,CACvF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACzD,CAAC;CACF;AAbD,oDAaC;AAED,MAAa,oBAAqB,SAAQ,WAAW;IAOnD,YAAY,UAAkB,EAAE,MAAc,EAAE,UAAkB;QAChE,KAAK,CACH,2BAA2B,UAAU,wCAAwC,UAAU,IAAI,CAC5F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACzD,CAAC;CACF;AAbD,oDAaC;AAED,MAAa,4BAA6B,SAAQ,WAAW;IAM3D,YAAY,cAAsB,EAAE,eAAuB;QACzD,KAAK,CACH,6CAA6C,cAAc,UAAU,eAAe,IAAI,CACzF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;IAClD,CAAC;CACF;AAZD,oEAYC;AAED,MAAa,gCAAiC,SAAQ,WAAW;IAM/D,YACE,UAAmC,EACnC,cAA8B;QAE9B,KAAK,CACH,qEAAqE,cAAc,EAAE,CACtF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7C,CAAC;CACF;AAfD,4EAeC;AAED,MAAa,+BAAgC,SAAQ,WAAW;IAC9D,YAAY,EAAU;QACpB,KAAK,CAAC,gCAAgC,EAAE,cAAc,CAAC,CAAC;IAC1D,CAAC;CACF;AAJD,0EAIC","sourcesContent":["import type { DataWithOptionalCause } from '@metamask/rpc-errors';\nimport {\n errorCodes,\n providerErrors,\n rpcErrors,\n JsonRpcError,\n} from '@metamask/rpc-errors';\n\nimport type { CaveatConstraint } from './Caveat';\nimport type { PermissionType } from './Permission';\nimport type { PermissionDiffMap } from './PermissionController';\n\ntype UnauthorizedArg = {\n data?: Record<string, unknown>;\n message?: string;\n};\n\n/**\n * Utility function for building an \"unauthorized\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function unauthorized(opts: UnauthorizedArg) {\n return providerErrors.unauthorized({\n message:\n 'Unauthorized to perform action. Try requesting the required permission(s) first. For more information, see: https://docs.metamask.io/guide/rpc-api.html#permissions',\n data: opts.data,\n });\n}\n\n/**\n * Utility function for building a \"method not found\" error.\n *\n * @param method - The method in question.\n * @param data - Optional data for context.\n * @returns The built error\n */\nexport function methodNotFound(method: string, data?: DataWithOptionalCause) {\n const message = `The method \"${method}\" does not exist / is not available.`;\n\n const opts: Parameters<typeof rpcErrors.methodNotFound>[0] = { message };\n if (data !== undefined) {\n opts.data = data;\n }\n return rpcErrors.methodNotFound(opts);\n}\n\ntype InvalidParamsArg = {\n message?: string;\n data?: DataWithOptionalCause;\n};\n\n/**\n * Utility function for building an \"invalid params\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function invalidParams(opts: InvalidParamsArg) {\n return rpcErrors.invalidParams({\n data: opts.data,\n message: opts.message,\n });\n}\n\n/**\n * Utility function for building an \"user rejected request\" error.\n *\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function userRejectedRequest<Data extends Record<string, unknown>>(\n data?: Data,\n): JsonRpcError<Data> {\n return providerErrors.userRejectedRequest({ data });\n}\n\n/**\n * Utility function for building an internal error.\n *\n * @param message - The error message\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function internalError<Data extends Record<string, unknown>>(\n message: string,\n data?: Data,\n): JsonRpcError<Data> {\n return rpcErrors.internal({ message, data });\n}\n\nclass CustomError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n\nexport class InvalidSubjectIdentifierError extends CustomError {\n constructor(origin: unknown) {\n super(\n `Invalid subject identifier: \"${\n typeof origin === 'string' ? origin : typeof origin\n }\"`,\n );\n this.name = this.constructor.name;\n }\n}\n\nexport class UnrecognizedSubjectError extends CustomError {\n constructor(origin: string) {\n super(`Unrecognized subject: \"${origin}\" has no permissions.`);\n this.name = this.constructor.name;\n }\n}\n\nexport class CaveatMergerDoesNotExistError extends CustomError {\n constructor(caveatType: string) {\n super(`Caveat value merger does not exist for type: \"${caveatType}\"`);\n }\n}\n\nexport class InvalidMergedPermissionsError extends Error {\n public cause: Error;\n\n public data: {\n diff: PermissionDiffMap<string, CaveatConstraint>;\n };\n\n constructor(\n origin: string,\n cause: Error,\n diff: PermissionDiffMap<string, CaveatConstraint>,\n ) {\n super(\n `Invalid merged permissions for subject \"${origin}\":\\n${cause.message}`,\n );\n this.cause = cause;\n this.data = { diff };\n }\n}\n\nexport class InvalidApprovedPermissionError extends CustomError {\n public data: {\n origin: string;\n target: string;\n approvedPermission: Record<string, unknown>;\n };\n\n constructor(\n origin: string,\n target: string,\n approvedPermission: Record<string, unknown>,\n ) {\n super(\n `Invalid approved permission for origin \"${origin}\" and target \"${target}\".`,\n );\n this.data = { origin, target, approvedPermission };\n }\n}\nexport class PermissionDoesNotExistError extends CustomError {\n constructor(origin: string, target: string) {\n super(`Subject \"${origin}\" has no permission for \"${target}\".`);\n }\n}\n\nexport class EndowmentPermissionDoesNotExistError extends CustomError {\n public data?: { origin: string };\n\n constructor(target: string, origin?: string) {\n super(\n `${\n origin ? `Subject \"${origin}\"` : 'Unknown subject'\n } has no permission for \"${target}\".`,\n );\n if (origin) {\n this.data = { origin };\n }\n }\n}\n\nexport class UnrecognizedCaveatTypeError extends CustomError {\n public data: {\n caveatType: string;\n origin?: string;\n target?: string;\n };\n\n constructor(caveatType: string);\n\n constructor(caveatType: string, origin: string, target: string);\n\n constructor(caveatType: string, origin?: string, target?: string) {\n super(`Unrecognized caveat type: \"${caveatType}\"`);\n this.data = { caveatType };\n if (origin !== undefined) {\n this.data.origin = origin;\n }\n\n if (target !== undefined) {\n this.data.target = target;\n }\n }\n}\n\nexport class InvalidCaveatsPropertyError extends CustomError {\n public data: { origin: string; target: string; caveatsProperty: unknown };\n\n constructor(origin: string, target: string, caveatsProperty: unknown) {\n super(\n `The \"caveats\" property of permission for \"${target}\" of subject \"${origin}\" is invalid. It must be a non-empty array if specified.`,\n );\n this.data = { origin, target, caveatsProperty };\n }\n}\n\nexport class CaveatDoesNotExistError extends CustomError {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" has no caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class CaveatAlreadyExistsError extends CustomError {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" already has a caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class InvalidCaveatError extends JsonRpcError<\n DataWithOptionalCause | undefined\n> {\n public override data: { origin: string; target: string };\n\n constructor(receivedCaveat: unknown, origin: string, target: string) {\n super(\n errorCodes.rpc.invalidParams,\n `Invalid caveat. Caveats must be plain objects.`,\n { receivedCaveat },\n );\n this.data = { origin, target };\n }\n}\n\nexport class InvalidCaveatTypeError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat types must be strings. Received: \"${typeof caveat.type}\"`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatMissingValueError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat is missing \"value\" field.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatInvalidJsonError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat \"value\" is invalid JSON.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class InvalidCaveatFieldsError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(\n `Caveat has unexpected number of fields: \"${Object.keys(caveat).length}\"`,\n );\n this.data = { caveat, origin, target };\n }\n}\n\nexport class ForbiddenCaveatError extends CustomError {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" may not have caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class DuplicateCaveatError extends CustomError {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" contains multiple caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class CaveatMergeTypeMismatchError extends CustomError {\n public data: {\n leftCaveatType: string;\n rightCaveatType: string;\n };\n\n constructor(leftCaveatType: string, rightCaveatType: string) {\n super(\n `Cannot merge caveats of different types: \"${leftCaveatType}\" and \"${rightCaveatType}\".`,\n );\n this.data = { leftCaveatType, rightCaveatType };\n }\n}\n\nexport class CaveatSpecificationMismatchError extends CustomError {\n public data: {\n caveatSpec: Record<string, unknown>;\n permissionType: PermissionType;\n };\n\n constructor(\n caveatSpec: Record<string, unknown>,\n permissionType: PermissionType,\n ) {\n super(\n `Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`,\n );\n this.data = { caveatSpec, permissionType };\n }\n}\n\nexport class PermissionsRequestNotFoundError extends CustomError {\n constructor(id: string) {\n super(`Permissions request with id \"${id}\" not found.`);\n }\n}\n"]}
package/dist/errors.d.cts CHANGED
@@ -53,13 +53,16 @@ export declare function userRejectedRequest<Data extends Record<string, unknown>
53
53
  * @returns The built error
54
54
  */
55
55
  export declare function internalError<Data extends Record<string, unknown>>(message: string, data?: Data): JsonRpcError<Data>;
56
- export declare class InvalidSubjectIdentifierError extends Error {
56
+ declare class CustomError extends Error {
57
+ constructor(message?: string);
58
+ }
59
+ export declare class InvalidSubjectIdentifierError extends CustomError {
57
60
  constructor(origin: unknown);
58
61
  }
59
- export declare class UnrecognizedSubjectError extends Error {
62
+ export declare class UnrecognizedSubjectError extends CustomError {
60
63
  constructor(origin: string);
61
64
  }
62
- export declare class CaveatMergerDoesNotExistError extends Error {
65
+ export declare class CaveatMergerDoesNotExistError extends CustomError {
63
66
  constructor(caveatType: string);
64
67
  }
65
68
  export declare class InvalidMergedPermissionsError extends Error {
@@ -69,7 +72,7 @@ export declare class InvalidMergedPermissionsError extends Error {
69
72
  };
70
73
  constructor(origin: string, cause: Error, diff: PermissionDiffMap<string, CaveatConstraint>);
71
74
  }
72
- export declare class InvalidApprovedPermissionError extends Error {
75
+ export declare class InvalidApprovedPermissionError extends CustomError {
73
76
  data: {
74
77
  origin: string;
75
78
  target: string;
@@ -77,16 +80,16 @@ export declare class InvalidApprovedPermissionError extends Error {
77
80
  };
78
81
  constructor(origin: string, target: string, approvedPermission: Record<string, unknown>);
79
82
  }
80
- export declare class PermissionDoesNotExistError extends Error {
83
+ export declare class PermissionDoesNotExistError extends CustomError {
81
84
  constructor(origin: string, target: string);
82
85
  }
83
- export declare class EndowmentPermissionDoesNotExistError extends Error {
86
+ export declare class EndowmentPermissionDoesNotExistError extends CustomError {
84
87
  data?: {
85
88
  origin: string;
86
89
  };
87
90
  constructor(target: string, origin?: string);
88
91
  }
89
- export declare class UnrecognizedCaveatTypeError extends Error {
92
+ export declare class UnrecognizedCaveatTypeError extends CustomError {
90
93
  data: {
91
94
  caveatType: string;
92
95
  origin?: string;
@@ -95,7 +98,7 @@ export declare class UnrecognizedCaveatTypeError extends Error {
95
98
  constructor(caveatType: string);
96
99
  constructor(caveatType: string, origin: string, target: string);
97
100
  }
98
- export declare class InvalidCaveatsPropertyError extends Error {
101
+ export declare class InvalidCaveatsPropertyError extends CustomError {
99
102
  data: {
100
103
  origin: string;
101
104
  target: string;
@@ -103,10 +106,10 @@ export declare class InvalidCaveatsPropertyError extends Error {
103
106
  };
104
107
  constructor(origin: string, target: string, caveatsProperty: unknown);
105
108
  }
106
- export declare class CaveatDoesNotExistError extends Error {
109
+ export declare class CaveatDoesNotExistError extends CustomError {
107
110
  constructor(origin: string, target: string, caveatType: string);
108
111
  }
109
- export declare class CaveatAlreadyExistsError extends Error {
112
+ export declare class CaveatAlreadyExistsError extends CustomError {
110
113
  constructor(origin: string, target: string, caveatType: string);
111
114
  }
112
115
  export declare class InvalidCaveatError extends JsonRpcError<DataWithOptionalCause | undefined> {
@@ -116,7 +119,7 @@ export declare class InvalidCaveatError extends JsonRpcError<DataWithOptionalCau
116
119
  };
117
120
  constructor(receivedCaveat: unknown, origin: string, target: string);
118
121
  }
119
- export declare class InvalidCaveatTypeError extends Error {
122
+ export declare class InvalidCaveatTypeError extends CustomError {
120
123
  data: {
121
124
  caveat: Record<string, unknown>;
122
125
  origin: string;
@@ -124,7 +127,7 @@ export declare class InvalidCaveatTypeError extends Error {
124
127
  };
125
128
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
126
129
  }
127
- export declare class CaveatMissingValueError extends Error {
130
+ export declare class CaveatMissingValueError extends CustomError {
128
131
  data: {
129
132
  caveat: Record<string, unknown>;
130
133
  origin: string;
@@ -132,7 +135,7 @@ export declare class CaveatMissingValueError extends Error {
132
135
  };
133
136
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
134
137
  }
135
- export declare class CaveatInvalidJsonError extends Error {
138
+ export declare class CaveatInvalidJsonError extends CustomError {
136
139
  data: {
137
140
  caveat: Record<string, unknown>;
138
141
  origin: string;
@@ -140,7 +143,7 @@ export declare class CaveatInvalidJsonError extends Error {
140
143
  };
141
144
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
142
145
  }
143
- export declare class InvalidCaveatFieldsError extends Error {
146
+ export declare class InvalidCaveatFieldsError extends CustomError {
144
147
  data: {
145
148
  caveat: Record<string, unknown>;
146
149
  origin: string;
@@ -148,7 +151,7 @@ export declare class InvalidCaveatFieldsError extends Error {
148
151
  };
149
152
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
150
153
  }
151
- export declare class ForbiddenCaveatError extends Error {
154
+ export declare class ForbiddenCaveatError extends CustomError {
152
155
  data: {
153
156
  caveatType: string;
154
157
  origin: string;
@@ -156,7 +159,7 @@ export declare class ForbiddenCaveatError extends Error {
156
159
  };
157
160
  constructor(caveatType: string, origin: string, targetName: string);
158
161
  }
159
- export declare class DuplicateCaveatError extends Error {
162
+ export declare class DuplicateCaveatError extends CustomError {
160
163
  data: {
161
164
  caveatType: string;
162
165
  origin: string;
@@ -164,21 +167,21 @@ export declare class DuplicateCaveatError extends Error {
164
167
  };
165
168
  constructor(caveatType: string, origin: string, targetName: string);
166
169
  }
167
- export declare class CaveatMergeTypeMismatchError extends Error {
170
+ export declare class CaveatMergeTypeMismatchError extends CustomError {
168
171
  data: {
169
172
  leftCaveatType: string;
170
173
  rightCaveatType: string;
171
174
  };
172
175
  constructor(leftCaveatType: string, rightCaveatType: string);
173
176
  }
174
- export declare class CaveatSpecificationMismatchError extends Error {
177
+ export declare class CaveatSpecificationMismatchError extends CustomError {
175
178
  data: {
176
179
  caveatSpec: Record<string, unknown>;
177
180
  permissionType: PermissionType;
178
181
  };
179
182
  constructor(caveatSpec: Record<string, unknown>, permissionType: PermissionType);
180
183
  }
181
- export declare class PermissionsRequestNotFoundError extends Error {
184
+ export declare class PermissionsRequestNotFoundError extends CustomError {
182
185
  constructor(id: string);
183
186
  }
184
187
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.cts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.cts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.mts CHANGED
@@ -53,13 +53,16 @@ export declare function userRejectedRequest<Data extends Record<string, unknown>
53
53
  * @returns The built error
54
54
  */
55
55
  export declare function internalError<Data extends Record<string, unknown>>(message: string, data?: Data): JsonRpcError<Data>;
56
- export declare class InvalidSubjectIdentifierError extends Error {
56
+ declare class CustomError extends Error {
57
+ constructor(message?: string);
58
+ }
59
+ export declare class InvalidSubjectIdentifierError extends CustomError {
57
60
  constructor(origin: unknown);
58
61
  }
59
- export declare class UnrecognizedSubjectError extends Error {
62
+ export declare class UnrecognizedSubjectError extends CustomError {
60
63
  constructor(origin: string);
61
64
  }
62
- export declare class CaveatMergerDoesNotExistError extends Error {
65
+ export declare class CaveatMergerDoesNotExistError extends CustomError {
63
66
  constructor(caveatType: string);
64
67
  }
65
68
  export declare class InvalidMergedPermissionsError extends Error {
@@ -69,7 +72,7 @@ export declare class InvalidMergedPermissionsError extends Error {
69
72
  };
70
73
  constructor(origin: string, cause: Error, diff: PermissionDiffMap<string, CaveatConstraint>);
71
74
  }
72
- export declare class InvalidApprovedPermissionError extends Error {
75
+ export declare class InvalidApprovedPermissionError extends CustomError {
73
76
  data: {
74
77
  origin: string;
75
78
  target: string;
@@ -77,16 +80,16 @@ export declare class InvalidApprovedPermissionError extends Error {
77
80
  };
78
81
  constructor(origin: string, target: string, approvedPermission: Record<string, unknown>);
79
82
  }
80
- export declare class PermissionDoesNotExistError extends Error {
83
+ export declare class PermissionDoesNotExistError extends CustomError {
81
84
  constructor(origin: string, target: string);
82
85
  }
83
- export declare class EndowmentPermissionDoesNotExistError extends Error {
86
+ export declare class EndowmentPermissionDoesNotExistError extends CustomError {
84
87
  data?: {
85
88
  origin: string;
86
89
  };
87
90
  constructor(target: string, origin?: string);
88
91
  }
89
- export declare class UnrecognizedCaveatTypeError extends Error {
92
+ export declare class UnrecognizedCaveatTypeError extends CustomError {
90
93
  data: {
91
94
  caveatType: string;
92
95
  origin?: string;
@@ -95,7 +98,7 @@ export declare class UnrecognizedCaveatTypeError extends Error {
95
98
  constructor(caveatType: string);
96
99
  constructor(caveatType: string, origin: string, target: string);
97
100
  }
98
- export declare class InvalidCaveatsPropertyError extends Error {
101
+ export declare class InvalidCaveatsPropertyError extends CustomError {
99
102
  data: {
100
103
  origin: string;
101
104
  target: string;
@@ -103,10 +106,10 @@ export declare class InvalidCaveatsPropertyError extends Error {
103
106
  };
104
107
  constructor(origin: string, target: string, caveatsProperty: unknown);
105
108
  }
106
- export declare class CaveatDoesNotExistError extends Error {
109
+ export declare class CaveatDoesNotExistError extends CustomError {
107
110
  constructor(origin: string, target: string, caveatType: string);
108
111
  }
109
- export declare class CaveatAlreadyExistsError extends Error {
112
+ export declare class CaveatAlreadyExistsError extends CustomError {
110
113
  constructor(origin: string, target: string, caveatType: string);
111
114
  }
112
115
  export declare class InvalidCaveatError extends JsonRpcError<DataWithOptionalCause | undefined> {
@@ -116,7 +119,7 @@ export declare class InvalidCaveatError extends JsonRpcError<DataWithOptionalCau
116
119
  };
117
120
  constructor(receivedCaveat: unknown, origin: string, target: string);
118
121
  }
119
- export declare class InvalidCaveatTypeError extends Error {
122
+ export declare class InvalidCaveatTypeError extends CustomError {
120
123
  data: {
121
124
  caveat: Record<string, unknown>;
122
125
  origin: string;
@@ -124,7 +127,7 @@ export declare class InvalidCaveatTypeError extends Error {
124
127
  };
125
128
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
126
129
  }
127
- export declare class CaveatMissingValueError extends Error {
130
+ export declare class CaveatMissingValueError extends CustomError {
128
131
  data: {
129
132
  caveat: Record<string, unknown>;
130
133
  origin: string;
@@ -132,7 +135,7 @@ export declare class CaveatMissingValueError extends Error {
132
135
  };
133
136
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
134
137
  }
135
- export declare class CaveatInvalidJsonError extends Error {
138
+ export declare class CaveatInvalidJsonError extends CustomError {
136
139
  data: {
137
140
  caveat: Record<string, unknown>;
138
141
  origin: string;
@@ -140,7 +143,7 @@ export declare class CaveatInvalidJsonError extends Error {
140
143
  };
141
144
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
142
145
  }
143
- export declare class InvalidCaveatFieldsError extends Error {
146
+ export declare class InvalidCaveatFieldsError extends CustomError {
144
147
  data: {
145
148
  caveat: Record<string, unknown>;
146
149
  origin: string;
@@ -148,7 +151,7 @@ export declare class InvalidCaveatFieldsError extends Error {
148
151
  };
149
152
  constructor(caveat: Record<string, unknown>, origin: string, target: string);
150
153
  }
151
- export declare class ForbiddenCaveatError extends Error {
154
+ export declare class ForbiddenCaveatError extends CustomError {
152
155
  data: {
153
156
  caveatType: string;
154
157
  origin: string;
@@ -156,7 +159,7 @@ export declare class ForbiddenCaveatError extends Error {
156
159
  };
157
160
  constructor(caveatType: string, origin: string, targetName: string);
158
161
  }
159
- export declare class DuplicateCaveatError extends Error {
162
+ export declare class DuplicateCaveatError extends CustomError {
160
163
  data: {
161
164
  caveatType: string;
162
165
  origin: string;
@@ -164,21 +167,21 @@ export declare class DuplicateCaveatError extends Error {
164
167
  };
165
168
  constructor(caveatType: string, origin: string, targetName: string);
166
169
  }
167
- export declare class CaveatMergeTypeMismatchError extends Error {
170
+ export declare class CaveatMergeTypeMismatchError extends CustomError {
168
171
  data: {
169
172
  leftCaveatType: string;
170
173
  rightCaveatType: string;
171
174
  };
172
175
  constructor(leftCaveatType: string, rightCaveatType: string);
173
176
  }
174
- export declare class CaveatSpecificationMismatchError extends Error {
177
+ export declare class CaveatSpecificationMismatchError extends CustomError {
175
178
  data: {
176
179
  caveatSpec: Record<string, unknown>;
177
180
  permissionType: PermissionType;
178
181
  };
179
182
  constructor(caveatSpec: Record<string, unknown>, permissionType: PermissionType);
180
183
  }
181
- export declare class PermissionsRequestNotFoundError extends Error {
184
+ export declare class PermissionsRequestNotFoundError extends CustomError {
182
185
  constructor(id: string);
183
186
  }
184
187
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.mts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.mts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.mjs CHANGED
@@ -57,17 +57,25 @@ export function userRejectedRequest(data) {
57
57
  export function internalError(message, data) {
58
58
  return rpcErrors.internal({ message, data });
59
59
  }
60
- export class InvalidSubjectIdentifierError extends Error {
60
+ class CustomError extends Error {
61
+ constructor(message) {
62
+ super(message);
63
+ this.name = this.constructor.name;
64
+ }
65
+ }
66
+ export class InvalidSubjectIdentifierError extends CustomError {
61
67
  constructor(origin) {
62
68
  super(`Invalid subject identifier: "${typeof origin === 'string' ? origin : typeof origin}"`);
69
+ this.name = this.constructor.name;
63
70
  }
64
71
  }
65
- export class UnrecognizedSubjectError extends Error {
72
+ export class UnrecognizedSubjectError extends CustomError {
66
73
  constructor(origin) {
67
74
  super(`Unrecognized subject: "${origin}" has no permissions.`);
75
+ this.name = this.constructor.name;
68
76
  }
69
77
  }
70
- export class CaveatMergerDoesNotExistError extends Error {
78
+ export class CaveatMergerDoesNotExistError extends CustomError {
71
79
  constructor(caveatType) {
72
80
  super(`Caveat value merger does not exist for type: "${caveatType}"`);
73
81
  }
@@ -79,18 +87,18 @@ export class InvalidMergedPermissionsError extends Error {
79
87
  this.data = { diff };
80
88
  }
81
89
  }
82
- export class InvalidApprovedPermissionError extends Error {
90
+ export class InvalidApprovedPermissionError extends CustomError {
83
91
  constructor(origin, target, approvedPermission) {
84
92
  super(`Invalid approved permission for origin "${origin}" and target "${target}".`);
85
93
  this.data = { origin, target, approvedPermission };
86
94
  }
87
95
  }
88
- export class PermissionDoesNotExistError extends Error {
96
+ export class PermissionDoesNotExistError extends CustomError {
89
97
  constructor(origin, target) {
90
98
  super(`Subject "${origin}" has no permission for "${target}".`);
91
99
  }
92
100
  }
93
- export class EndowmentPermissionDoesNotExistError extends Error {
101
+ export class EndowmentPermissionDoesNotExistError extends CustomError {
94
102
  constructor(target, origin) {
95
103
  super(`${origin ? `Subject "${origin}"` : 'Unknown subject'} has no permission for "${target}".`);
96
104
  if (origin) {
@@ -98,7 +106,7 @@ export class EndowmentPermissionDoesNotExistError extends Error {
98
106
  }
99
107
  }
100
108
  }
101
- export class UnrecognizedCaveatTypeError extends Error {
109
+ export class UnrecognizedCaveatTypeError extends CustomError {
102
110
  constructor(caveatType, origin, target) {
103
111
  super(`Unrecognized caveat type: "${caveatType}"`);
104
112
  this.data = { caveatType };
@@ -110,18 +118,18 @@ export class UnrecognizedCaveatTypeError extends Error {
110
118
  }
111
119
  }
112
120
  }
113
- export class InvalidCaveatsPropertyError extends Error {
121
+ export class InvalidCaveatsPropertyError extends CustomError {
114
122
  constructor(origin, target, caveatsProperty) {
115
123
  super(`The "caveats" property of permission for "${target}" of subject "${origin}" is invalid. It must be a non-empty array if specified.`);
116
124
  this.data = { origin, target, caveatsProperty };
117
125
  }
118
126
  }
119
- export class CaveatDoesNotExistError extends Error {
127
+ export class CaveatDoesNotExistError extends CustomError {
120
128
  constructor(origin, target, caveatType) {
121
129
  super(`Permission for "${target}" of subject "${origin}" has no caveat of type "${caveatType}".`);
122
130
  }
123
131
  }
124
- export class CaveatAlreadyExistsError extends Error {
132
+ export class CaveatAlreadyExistsError extends CustomError {
125
133
  constructor(origin, target, caveatType) {
126
134
  super(`Permission for "${target}" of subject "${origin}" already has a caveat of type "${caveatType}".`);
127
135
  }
@@ -132,55 +140,55 @@ export class InvalidCaveatError extends JsonRpcError {
132
140
  this.data = { origin, target };
133
141
  }
134
142
  }
135
- export class InvalidCaveatTypeError extends Error {
143
+ export class InvalidCaveatTypeError extends CustomError {
136
144
  constructor(caveat, origin, target) {
137
145
  super(`Caveat types must be strings. Received: "${typeof caveat.type}"`);
138
146
  this.data = { caveat, origin, target };
139
147
  }
140
148
  }
141
- export class CaveatMissingValueError extends Error {
149
+ export class CaveatMissingValueError extends CustomError {
142
150
  constructor(caveat, origin, target) {
143
151
  super(`Caveat is missing "value" field.`);
144
152
  this.data = { caveat, origin, target };
145
153
  }
146
154
  }
147
- export class CaveatInvalidJsonError extends Error {
155
+ export class CaveatInvalidJsonError extends CustomError {
148
156
  constructor(caveat, origin, target) {
149
157
  super(`Caveat "value" is invalid JSON.`);
150
158
  this.data = { caveat, origin, target };
151
159
  }
152
160
  }
153
- export class InvalidCaveatFieldsError extends Error {
161
+ export class InvalidCaveatFieldsError extends CustomError {
154
162
  constructor(caveat, origin, target) {
155
163
  super(`Caveat has unexpected number of fields: "${Object.keys(caveat).length}"`);
156
164
  this.data = { caveat, origin, target };
157
165
  }
158
166
  }
159
- export class ForbiddenCaveatError extends Error {
167
+ export class ForbiddenCaveatError extends CustomError {
160
168
  constructor(caveatType, origin, targetName) {
161
169
  super(`Permissions for target "${targetName}" may not have caveats of type "${caveatType}".`);
162
170
  this.data = { caveatType, origin, target: targetName };
163
171
  }
164
172
  }
165
- export class DuplicateCaveatError extends Error {
173
+ export class DuplicateCaveatError extends CustomError {
166
174
  constructor(caveatType, origin, targetName) {
167
175
  super(`Permissions for target "${targetName}" contains multiple caveats of type "${caveatType}".`);
168
176
  this.data = { caveatType, origin, target: targetName };
169
177
  }
170
178
  }
171
- export class CaveatMergeTypeMismatchError extends Error {
179
+ export class CaveatMergeTypeMismatchError extends CustomError {
172
180
  constructor(leftCaveatType, rightCaveatType) {
173
181
  super(`Cannot merge caveats of different types: "${leftCaveatType}" and "${rightCaveatType}".`);
174
182
  this.data = { leftCaveatType, rightCaveatType };
175
183
  }
176
184
  }
177
- export class CaveatSpecificationMismatchError extends Error {
185
+ export class CaveatSpecificationMismatchError extends CustomError {
178
186
  constructor(caveatSpec, permissionType) {
179
187
  super(`Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`);
180
188
  this.data = { caveatSpec, permissionType };
181
189
  }
182
190
  }
183
- export class PermissionsRequestNotFoundError extends Error {
191
+ export class PermissionsRequestNotFoundError extends CustomError {
184
192
  constructor(id) {
185
193
  super(`Permissions request with id "${id}" not found.`);
186
194
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataWithOptionalCause } from '@metamask/rpc-errors';\nimport {\n errorCodes,\n providerErrors,\n rpcErrors,\n JsonRpcError,\n} from '@metamask/rpc-errors';\n\nimport type { CaveatConstraint } from './Caveat';\nimport type { PermissionType } from './Permission';\nimport type { PermissionDiffMap } from './PermissionController';\n\ntype UnauthorizedArg = {\n data?: Record<string, unknown>;\n message?: string;\n};\n\n/**\n * Utility function for building an \"unauthorized\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function unauthorized(opts: UnauthorizedArg) {\n return providerErrors.unauthorized({\n message:\n 'Unauthorized to perform action. Try requesting the required permission(s) first. For more information, see: https://docs.metamask.io/guide/rpc-api.html#permissions',\n data: opts.data,\n });\n}\n\n/**\n * Utility function for building a \"method not found\" error.\n *\n * @param method - The method in question.\n * @param data - Optional data for context.\n * @returns The built error\n */\nexport function methodNotFound(method: string, data?: DataWithOptionalCause) {\n const message = `The method \"${method}\" does not exist / is not available.`;\n\n const opts: Parameters<typeof rpcErrors.methodNotFound>[0] = { message };\n if (data !== undefined) {\n opts.data = data;\n }\n return rpcErrors.methodNotFound(opts);\n}\n\ntype InvalidParamsArg = {\n message?: string;\n data?: DataWithOptionalCause;\n};\n\n/**\n * Utility function for building an \"invalid params\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function invalidParams(opts: InvalidParamsArg) {\n return rpcErrors.invalidParams({\n data: opts.data,\n message: opts.message,\n });\n}\n\n/**\n * Utility function for building an \"user rejected request\" error.\n *\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function userRejectedRequest<Data extends Record<string, unknown>>(\n data?: Data,\n): JsonRpcError<Data> {\n return providerErrors.userRejectedRequest({ data });\n}\n\n/**\n * Utility function for building an internal error.\n *\n * @param message - The error message\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function internalError<Data extends Record<string, unknown>>(\n message: string,\n data?: Data,\n): JsonRpcError<Data> {\n return rpcErrors.internal({ message, data });\n}\n\nexport class InvalidSubjectIdentifierError extends Error {\n constructor(origin: unknown) {\n super(\n `Invalid subject identifier: \"${\n typeof origin === 'string' ? origin : typeof origin\n }\"`,\n );\n }\n}\n\nexport class UnrecognizedSubjectError extends Error {\n constructor(origin: string) {\n super(`Unrecognized subject: \"${origin}\" has no permissions.`);\n }\n}\n\nexport class CaveatMergerDoesNotExistError extends Error {\n constructor(caveatType: string) {\n super(`Caveat value merger does not exist for type: \"${caveatType}\"`);\n }\n}\n\nexport class InvalidMergedPermissionsError extends Error {\n public cause: Error;\n\n public data: {\n diff: PermissionDiffMap<string, CaveatConstraint>;\n };\n\n constructor(\n origin: string,\n cause: Error,\n diff: PermissionDiffMap<string, CaveatConstraint>,\n ) {\n super(\n `Invalid merged permissions for subject \"${origin}\":\\n${cause.message}`,\n );\n this.cause = cause;\n this.data = { diff };\n }\n}\n\nexport class InvalidApprovedPermissionError extends Error {\n public data: {\n origin: string;\n target: string;\n approvedPermission: Record<string, unknown>;\n };\n\n constructor(\n origin: string,\n target: string,\n approvedPermission: Record<string, unknown>,\n ) {\n super(\n `Invalid approved permission for origin \"${origin}\" and target \"${target}\".`,\n );\n this.data = { origin, target, approvedPermission };\n }\n}\nexport class PermissionDoesNotExistError extends Error {\n constructor(origin: string, target: string) {\n super(`Subject \"${origin}\" has no permission for \"${target}\".`);\n }\n}\n\nexport class EndowmentPermissionDoesNotExistError extends Error {\n public data?: { origin: string };\n\n constructor(target: string, origin?: string) {\n super(\n `${\n origin ? `Subject \"${origin}\"` : 'Unknown subject'\n } has no permission for \"${target}\".`,\n );\n if (origin) {\n this.data = { origin };\n }\n }\n}\n\nexport class UnrecognizedCaveatTypeError extends Error {\n public data: {\n caveatType: string;\n origin?: string;\n target?: string;\n };\n\n constructor(caveatType: string);\n\n constructor(caveatType: string, origin: string, target: string);\n\n constructor(caveatType: string, origin?: string, target?: string) {\n super(`Unrecognized caveat type: \"${caveatType}\"`);\n this.data = { caveatType };\n if (origin !== undefined) {\n this.data.origin = origin;\n }\n\n if (target !== undefined) {\n this.data.target = target;\n }\n }\n}\n\nexport class InvalidCaveatsPropertyError extends Error {\n public data: { origin: string; target: string; caveatsProperty: unknown };\n\n constructor(origin: string, target: string, caveatsProperty: unknown) {\n super(\n `The \"caveats\" property of permission for \"${target}\" of subject \"${origin}\" is invalid. It must be a non-empty array if specified.`,\n );\n this.data = { origin, target, caveatsProperty };\n }\n}\n\nexport class CaveatDoesNotExistError extends Error {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" has no caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class CaveatAlreadyExistsError extends Error {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" already has a caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class InvalidCaveatError extends JsonRpcError<\n DataWithOptionalCause | undefined\n> {\n public override data: { origin: string; target: string };\n\n constructor(receivedCaveat: unknown, origin: string, target: string) {\n super(\n errorCodes.rpc.invalidParams,\n `Invalid caveat. Caveats must be plain objects.`,\n { receivedCaveat },\n );\n this.data = { origin, target };\n }\n}\n\nexport class InvalidCaveatTypeError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat types must be strings. Received: \"${typeof caveat.type}\"`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatMissingValueError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat is missing \"value\" field.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatInvalidJsonError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat \"value\" is invalid JSON.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class InvalidCaveatFieldsError extends Error {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(\n `Caveat has unexpected number of fields: \"${Object.keys(caveat).length}\"`,\n );\n this.data = { caveat, origin, target };\n }\n}\n\nexport class ForbiddenCaveatError extends Error {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" may not have caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class DuplicateCaveatError extends Error {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" contains multiple caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class CaveatMergeTypeMismatchError extends Error {\n public data: {\n leftCaveatType: string;\n rightCaveatType: string;\n };\n\n constructor(leftCaveatType: string, rightCaveatType: string) {\n super(\n `Cannot merge caveats of different types: \"${leftCaveatType}\" and \"${rightCaveatType}\".`,\n );\n this.data = { leftCaveatType, rightCaveatType };\n }\n}\n\nexport class CaveatSpecificationMismatchError extends Error {\n public data: {\n caveatSpec: Record<string, unknown>;\n permissionType: PermissionType;\n };\n\n constructor(\n caveatSpec: Record<string, unknown>,\n permissionType: PermissionType,\n ) {\n super(\n `Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`,\n );\n this.data = { caveatSpec, permissionType };\n }\n}\n\nexport class PermissionsRequestNotFoundError extends Error {\n constructor(id: string) {\n super(`Permissions request with id \"${id}\" not found.`);\n }\n}\n"]}
1
+ {"version":3,"file":"errors.mjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DataWithOptionalCause } from '@metamask/rpc-errors';\nimport {\n errorCodes,\n providerErrors,\n rpcErrors,\n JsonRpcError,\n} from '@metamask/rpc-errors';\n\nimport type { CaveatConstraint } from './Caveat';\nimport type { PermissionType } from './Permission';\nimport type { PermissionDiffMap } from './PermissionController';\n\ntype UnauthorizedArg = {\n data?: Record<string, unknown>;\n message?: string;\n};\n\n/**\n * Utility function for building an \"unauthorized\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function unauthorized(opts: UnauthorizedArg) {\n return providerErrors.unauthorized({\n message:\n 'Unauthorized to perform action. Try requesting the required permission(s) first. For more information, see: https://docs.metamask.io/guide/rpc-api.html#permissions',\n data: opts.data,\n });\n}\n\n/**\n * Utility function for building a \"method not found\" error.\n *\n * @param method - The method in question.\n * @param data - Optional data for context.\n * @returns The built error\n */\nexport function methodNotFound(method: string, data?: DataWithOptionalCause) {\n const message = `The method \"${method}\" does not exist / is not available.`;\n\n const opts: Parameters<typeof rpcErrors.methodNotFound>[0] = { message };\n if (data !== undefined) {\n opts.data = data;\n }\n return rpcErrors.methodNotFound(opts);\n}\n\ntype InvalidParamsArg = {\n message?: string;\n data?: DataWithOptionalCause;\n};\n\n/**\n * Utility function for building an \"invalid params\" error.\n *\n * @param opts - Optional arguments that add extra context\n * @returns The built error\n */\nexport function invalidParams(opts: InvalidParamsArg) {\n return rpcErrors.invalidParams({\n data: opts.data,\n message: opts.message,\n });\n}\n\n/**\n * Utility function for building an \"user rejected request\" error.\n *\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function userRejectedRequest<Data extends Record<string, unknown>>(\n data?: Data,\n): JsonRpcError<Data> {\n return providerErrors.userRejectedRequest({ data });\n}\n\n/**\n * Utility function for building an internal error.\n *\n * @param message - The error message\n * @param data - Optional data to add extra context\n * @returns The built error\n */\nexport function internalError<Data extends Record<string, unknown>>(\n message: string,\n data?: Data,\n): JsonRpcError<Data> {\n return rpcErrors.internal({ message, data });\n}\n\nclass CustomError extends Error {\n constructor(message?: string) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n\nexport class InvalidSubjectIdentifierError extends CustomError {\n constructor(origin: unknown) {\n super(\n `Invalid subject identifier: \"${\n typeof origin === 'string' ? origin : typeof origin\n }\"`,\n );\n this.name = this.constructor.name;\n }\n}\n\nexport class UnrecognizedSubjectError extends CustomError {\n constructor(origin: string) {\n super(`Unrecognized subject: \"${origin}\" has no permissions.`);\n this.name = this.constructor.name;\n }\n}\n\nexport class CaveatMergerDoesNotExistError extends CustomError {\n constructor(caveatType: string) {\n super(`Caveat value merger does not exist for type: \"${caveatType}\"`);\n }\n}\n\nexport class InvalidMergedPermissionsError extends Error {\n public cause: Error;\n\n public data: {\n diff: PermissionDiffMap<string, CaveatConstraint>;\n };\n\n constructor(\n origin: string,\n cause: Error,\n diff: PermissionDiffMap<string, CaveatConstraint>,\n ) {\n super(\n `Invalid merged permissions for subject \"${origin}\":\\n${cause.message}`,\n );\n this.cause = cause;\n this.data = { diff };\n }\n}\n\nexport class InvalidApprovedPermissionError extends CustomError {\n public data: {\n origin: string;\n target: string;\n approvedPermission: Record<string, unknown>;\n };\n\n constructor(\n origin: string,\n target: string,\n approvedPermission: Record<string, unknown>,\n ) {\n super(\n `Invalid approved permission for origin \"${origin}\" and target \"${target}\".`,\n );\n this.data = { origin, target, approvedPermission };\n }\n}\nexport class PermissionDoesNotExistError extends CustomError {\n constructor(origin: string, target: string) {\n super(`Subject \"${origin}\" has no permission for \"${target}\".`);\n }\n}\n\nexport class EndowmentPermissionDoesNotExistError extends CustomError {\n public data?: { origin: string };\n\n constructor(target: string, origin?: string) {\n super(\n `${\n origin ? `Subject \"${origin}\"` : 'Unknown subject'\n } has no permission for \"${target}\".`,\n );\n if (origin) {\n this.data = { origin };\n }\n }\n}\n\nexport class UnrecognizedCaveatTypeError extends CustomError {\n public data: {\n caveatType: string;\n origin?: string;\n target?: string;\n };\n\n constructor(caveatType: string);\n\n constructor(caveatType: string, origin: string, target: string);\n\n constructor(caveatType: string, origin?: string, target?: string) {\n super(`Unrecognized caveat type: \"${caveatType}\"`);\n this.data = { caveatType };\n if (origin !== undefined) {\n this.data.origin = origin;\n }\n\n if (target !== undefined) {\n this.data.target = target;\n }\n }\n}\n\nexport class InvalidCaveatsPropertyError extends CustomError {\n public data: { origin: string; target: string; caveatsProperty: unknown };\n\n constructor(origin: string, target: string, caveatsProperty: unknown) {\n super(\n `The \"caveats\" property of permission for \"${target}\" of subject \"${origin}\" is invalid. It must be a non-empty array if specified.`,\n );\n this.data = { origin, target, caveatsProperty };\n }\n}\n\nexport class CaveatDoesNotExistError extends CustomError {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" has no caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class CaveatAlreadyExistsError extends CustomError {\n constructor(origin: string, target: string, caveatType: string) {\n super(\n `Permission for \"${target}\" of subject \"${origin}\" already has a caveat of type \"${caveatType}\".`,\n );\n }\n}\n\nexport class InvalidCaveatError extends JsonRpcError<\n DataWithOptionalCause | undefined\n> {\n public override data: { origin: string; target: string };\n\n constructor(receivedCaveat: unknown, origin: string, target: string) {\n super(\n errorCodes.rpc.invalidParams,\n `Invalid caveat. Caveats must be plain objects.`,\n { receivedCaveat },\n );\n this.data = { origin, target };\n }\n}\n\nexport class InvalidCaveatTypeError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat types must be strings. Received: \"${typeof caveat.type}\"`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatMissingValueError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat is missing \"value\" field.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class CaveatInvalidJsonError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(`Caveat \"value\" is invalid JSON.`);\n this.data = { caveat, origin, target };\n }\n}\n\nexport class InvalidCaveatFieldsError extends CustomError {\n public data: {\n caveat: Record<string, unknown>;\n origin: string;\n target: string;\n };\n\n constructor(caveat: Record<string, unknown>, origin: string, target: string) {\n super(\n `Caveat has unexpected number of fields: \"${Object.keys(caveat).length}\"`,\n );\n this.data = { caveat, origin, target };\n }\n}\n\nexport class ForbiddenCaveatError extends CustomError {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" may not have caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class DuplicateCaveatError extends CustomError {\n public data: {\n caveatType: string;\n origin: string;\n target: string;\n };\n\n constructor(caveatType: string, origin: string, targetName: string) {\n super(\n `Permissions for target \"${targetName}\" contains multiple caveats of type \"${caveatType}\".`,\n );\n this.data = { caveatType, origin, target: targetName };\n }\n}\n\nexport class CaveatMergeTypeMismatchError extends CustomError {\n public data: {\n leftCaveatType: string;\n rightCaveatType: string;\n };\n\n constructor(leftCaveatType: string, rightCaveatType: string) {\n super(\n `Cannot merge caveats of different types: \"${leftCaveatType}\" and \"${rightCaveatType}\".`,\n );\n this.data = { leftCaveatType, rightCaveatType };\n }\n}\n\nexport class CaveatSpecificationMismatchError extends CustomError {\n public data: {\n caveatSpec: Record<string, unknown>;\n permissionType: PermissionType;\n };\n\n constructor(\n caveatSpec: Record<string, unknown>,\n permissionType: PermissionType,\n ) {\n super(\n `Caveat specification uses a mismatched type. Expected caveats for ${permissionType}`,\n );\n this.data = { caveatSpec, permissionType };\n }\n}\n\nexport class PermissionsRequestNotFoundError extends CustomError {\n constructor(id: string) {\n super(`Permissions request with id \"${id}\" not found.`);\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/permission-controller",
3
- "version": "12.0.0",
3
+ "version": "12.1.0",
4
4
  "description": "Mediates access to JSON-RPC methods, used to interact with pieces of the MetaMask stack, via middleware for json-rpc-engine",
5
5
  "keywords": [
6
6
  "MetaMask",