@metamask-previews/permission-controller 4.1.0-preview.d32a7cc
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 +86 -0
- package/LICENSE +20 -0
- package/README.md +19 -0
- package/dist/Caveat.d.ts +183 -0
- package/dist/Caveat.d.ts.map +1 -0
- package/dist/Caveat.js +57 -0
- package/dist/Caveat.js.map +1 -0
- package/dist/Permission.d.ts +417 -0
- package/dist/Permission.d.ts.map +1 -0
- package/dist/Permission.js +66 -0
- package/dist/Permission.js.map +1 -0
- package/dist/PermissionController.d.ts +897 -0
- package/dist/PermissionController.d.ts.map +1 -0
- package/dist/PermissionController.js +1287 -0
- package/dist/PermissionController.js.map +1 -0
- package/dist/SubjectMetadataController.d.ts +110 -0
- package/dist/SubjectMetadataController.d.ts.map +1 -0
- package/dist/SubjectMetadataController.js +139 -0
- package/dist/SubjectMetadataController.js.map +1 -0
- package/dist/errors.d.ts +159 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +196 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/permission-middleware.d.ts +33 -0
- package/dist/permission-middleware.d.ts.map +1 -0
- package/dist/permission-middleware.js +64 -0
- package/dist/permission-middleware.js.map +1 -0
- package/dist/rpc-methods/getPermissions.d.ts +8 -0
- package/dist/rpc-methods/getPermissions.d.ts.map +1 -0
- package/dist/rpc-methods/getPermissions.js +38 -0
- package/dist/rpc-methods/getPermissions.js.map +1 -0
- package/dist/rpc-methods/index.d.ts +5 -0
- package/dist/rpc-methods/index.d.ts.map +1 -0
- package/dist/rpc-methods/index.js +10 -0
- package/dist/rpc-methods/index.js.map +1 -0
- package/dist/rpc-methods/requestPermissions.d.ts +17 -0
- package/dist/rpc-methods/requestPermissions.d.ts.map +1 -0
- package/dist/rpc-methods/requestPermissions.js +55 -0
- package/dist/rpc-methods/requestPermissions.js.map +1 -0
- package/dist/utils.d.ts +39 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +9 -0
- package/dist/utils.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc-methods/index.ts"],"names":[],"mappings":";;;AACA,qDAAyD;AAEzD,6DAAiE;AAKpD,QAAA,QAAQ,GAAG;IACtB,8CAAyB;IACzB,sCAAqB;CACb,CAAC","sourcesContent":["import type { GetPermissionsHooks } from './getPermissions';\nimport { getPermissionsHandler } from './getPermissions';\nimport type { RequestPermissionsHooks } from './requestPermissions';\nimport { requestPermissionsHandler } from './requestPermissions';\n\nexport type PermittedRpcMethodHooks = RequestPermissionsHooks &\n GetPermissionsHooks;\n\nexport const handlers = [\n requestPermissionsHandler,\n getPermissionsHandler,\n] as const;\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { PermissionConstraint, RequestedPermissions } from '../Permission';
|
|
2
|
+
import type { PermittedHandlerExport } from '../utils';
|
|
3
|
+
export declare const requestPermissionsHandler: PermittedHandlerExport<RequestPermissionsHooks, [
|
|
4
|
+
RequestedPermissions
|
|
5
|
+
], PermissionConstraint[]>;
|
|
6
|
+
declare type RequestPermissions = (requestedPermissions: RequestedPermissions, id: string) => Promise<[
|
|
7
|
+
Record<string, PermissionConstraint>,
|
|
8
|
+
{
|
|
9
|
+
id: string;
|
|
10
|
+
origin: string;
|
|
11
|
+
}
|
|
12
|
+
]>;
|
|
13
|
+
export declare type RequestPermissionsHooks = {
|
|
14
|
+
requestPermissionsForOrigin: RequestPermissions;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=requestPermissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestPermissions.d.ts","sourceRoot":"","sources":["../../src/rpc-methods/requestPermissions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,eAAO,MAAM,yBAAyB,EAAE,sBAAsB,CAC5D,uBAAuB,EACvB;IAAC,oBAAoB;CAAC,EACtB,oBAAoB,EAAE,CAOvB,CAAC;AAEF,aAAK,kBAAkB,GAAG,CACxB,oBAAoB,EAAE,oBAAoB,EAC1C,EAAE,EAAE,MAAM,KACP,OAAO,CACV;IAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAAC,CACvE,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,2BAA2B,EAAE,kBAAkB,CAAC;CACjD,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.requestPermissionsHandler = void 0;
|
|
13
|
+
const controller_utils_1 = require("@metamask/controller-utils");
|
|
14
|
+
const eth_rpc_errors_1 = require("eth-rpc-errors");
|
|
15
|
+
const errors_1 = require("../errors");
|
|
16
|
+
const utils_1 = require("../utils");
|
|
17
|
+
exports.requestPermissionsHandler = {
|
|
18
|
+
methodNames: [utils_1.MethodNames.requestPermissions],
|
|
19
|
+
implementation: requestPermissionsImplementation,
|
|
20
|
+
hookNames: {
|
|
21
|
+
requestPermissionsForOrigin: true,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Request Permissions implementation to be used in JsonRpcEngine middleware.
|
|
26
|
+
*
|
|
27
|
+
* @param req - The JsonRpcEngine request
|
|
28
|
+
* @param res - The JsonRpcEngine result object
|
|
29
|
+
* @param _next - JsonRpcEngine next() callback - unused
|
|
30
|
+
* @param end - JsonRpcEngine end() callback
|
|
31
|
+
* @param options - Method hooks passed to the method implementation
|
|
32
|
+
* @param options.requestPermissionsForOrigin - The specific method hook needed for this method implementation
|
|
33
|
+
* @returns A promise that resolves to nothing
|
|
34
|
+
*/
|
|
35
|
+
function requestPermissionsImplementation(req, res, _next, end, { requestPermissionsForOrigin }) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
const { id, params } = req;
|
|
38
|
+
if ((typeof id !== 'number' && typeof id !== 'string') ||
|
|
39
|
+
(typeof id === 'string' && !id)) {
|
|
40
|
+
return end(eth_rpc_errors_1.ethErrors.rpc.invalidRequest({
|
|
41
|
+
message: 'Invalid request: Must specify a valid id.',
|
|
42
|
+
data: { request: req },
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
if (!Array.isArray(params) || !(0, controller_utils_1.isPlainObject)(params[0])) {
|
|
46
|
+
return end((0, errors_1.invalidParams)({ data: { request: req } }));
|
|
47
|
+
}
|
|
48
|
+
const [requestedPermissions] = params;
|
|
49
|
+
const [grantedPermissions] = yield requestPermissionsForOrigin(requestedPermissions, String(id));
|
|
50
|
+
// `wallet_requestPermission` is specified to return an array.
|
|
51
|
+
res.result = Object.values(grantedPermissions);
|
|
52
|
+
return end();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=requestPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestPermissions.js","sourceRoot":"","sources":["../../src/rpc-methods/requestPermissions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA2D;AAE3D,mDAA2C;AAG3C,sCAA0C;AAG1C,oCAAuC;AAE1B,QAAA,yBAAyB,GAIlC;IACF,WAAW,EAAE,CAAC,mBAAW,CAAC,kBAAkB,CAAC;IAC7C,cAAc,EAAE,gCAAgC;IAChD,SAAS,EAAE;QACT,2BAA2B,EAAE,IAAI;KAClC;CACF,CAAC;AAaF;;;;;;;;;;GAUG;AACH,SAAe,gCAAgC,CAC7C,GAA2C,EAC3C,GAAmD,EACnD,KAAc,EACd,GAA6B,EAC7B,EAAE,2BAA2B,EAA2B;;QAExD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;QAE3B,IACE,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;YAClD,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,EAC/B;YACA,OAAO,GAAG,CACR,0BAAS,CAAC,GAAG,CAAC,cAAc,CAAC;gBAC3B,OAAO,EAAE,2CAA2C;gBACpD,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;aACvB,CAAC,CACH,CAAC;SACH;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,gCAAa,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,OAAO,GAAG,CAAC,IAAA,sBAAa,EAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACvD;QAED,MAAM,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC;QACtC,MAAM,CAAC,kBAAkB,CAAC,GAAG,MAAM,2BAA2B,CAC5D,oBAAoB,EACpB,MAAM,CAAC,EAAE,CAAC,CACX,CAAC;QAEF,8DAA8D;QAC9D,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;CAAA","sourcesContent":["import { isPlainObject } from '@metamask/controller-utils';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\nimport { ethErrors } from 'eth-rpc-errors';\nimport type { JsonRpcEngineEndCallback } from 'json-rpc-engine';\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 id: string,\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 { id, params } = req;\n\n if (\n (typeof id !== 'number' && typeof id !== 'string') ||\n (typeof id === 'string' && !id)\n ) {\n return end(\n ethErrors.rpc.invalidRequest({\n message: 'Invalid request: Must specify a valid id.',\n data: { request: req },\n }),\n );\n }\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 String(id),\n );\n\n // `wallet_requestPermission` is specified to return an array.\n res.result = Object.values(grantedPermissions);\n return end();\n}\n"]}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Json, JsonRpcParams, JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';
|
|
2
|
+
import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from 'json-rpc-engine';
|
|
3
|
+
import type { CaveatSpecificationConstraint, CaveatSpecificationMap } from './Caveat';
|
|
4
|
+
import type { PermissionSpecificationConstraint, PermissionSpecificationMap } from './Permission';
|
|
5
|
+
export declare enum MethodNames {
|
|
6
|
+
requestPermissions = "wallet_requestPermissions",
|
|
7
|
+
getPermissions = "wallet_getPermissions"
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Utility type for extracting a union of all individual caveat or permission
|
|
11
|
+
* specification types from a {@link CaveatSpecificationMap} or
|
|
12
|
+
* {@link PermissionSpecificationMap}.
|
|
13
|
+
*
|
|
14
|
+
* @template SpecificationsMap - The caveat or permission specifications map
|
|
15
|
+
* whose specification type union to extract.
|
|
16
|
+
*/
|
|
17
|
+
export declare type ExtractSpecifications<SpecificationsMap extends CaveatSpecificationMap<CaveatSpecificationConstraint> | PermissionSpecificationMap<PermissionSpecificationConstraint>> = SpecificationsMap[keyof SpecificationsMap];
|
|
18
|
+
/**
|
|
19
|
+
* A middleware function for handling a permitted method.
|
|
20
|
+
*/
|
|
21
|
+
export declare type HandlerMiddlewareFunction<T, U extends JsonRpcParams, V extends Json> = (req: JsonRpcRequest<U>, res: PendingJsonRpcResponse<V>, next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: T) => void | Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* We use a mapped object type in order to create a type that requires the
|
|
24
|
+
* presence of the names of all hooks for the given handler.
|
|
25
|
+
* This can then be used to select only the necessary hooks whenever a method
|
|
26
|
+
* is called for purposes of POLA.
|
|
27
|
+
*/
|
|
28
|
+
export declare type HookNames<T> = {
|
|
29
|
+
[Property in keyof T]: true;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* A handler for a permitted method.
|
|
33
|
+
*/
|
|
34
|
+
export declare type PermittedHandlerExport<T, U extends JsonRpcParams, V extends Json> = {
|
|
35
|
+
implementation: HandlerMiddlewareFunction<T, U, V>;
|
|
36
|
+
hookNames: HookNames<T>;
|
|
37
|
+
methodNames: string[];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,aAAa,EACb,cAAc,EACd,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,oBAAY,WAAW;IACrB,kBAAkB,8BAA8B;IAChD,cAAc,0BAA0B;CACzC;AAED;;;;;;;GAOG;AACH,oBAAY,qBAAqB,CAC/B,iBAAiB,SACb,sBAAsB,CAAC,6BAA6B,CAAC,GACrD,0BAA0B,CAAC,iCAAiC,CAAC,IAC/D,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,CAAC;AAE/C;;GAEG;AACH,oBAAY,yBAAyB,CACnC,CAAC,EACD,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,IAAI,IACZ,CACF,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,EACtB,GAAG,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAC9B,IAAI,EAAE,yBAAyB,EAC/B,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,CAAC,KACL,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;GAKG;AACH,oBAAY,SAAS,CAAC,CAAC,IAAI;KACxB,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI;CAC5B,CAAC;AAEF;;GAEG;AACH,oBAAY,sBAAsB,CAChC,CAAC,EACD,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,IAAI,IACZ;IACF,cAAc,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MethodNames = void 0;
|
|
4
|
+
var MethodNames;
|
|
5
|
+
(function (MethodNames) {
|
|
6
|
+
MethodNames["requestPermissions"] = "wallet_requestPermissions";
|
|
7
|
+
MethodNames["getPermissions"] = "wallet_getPermissions";
|
|
8
|
+
})(MethodNames = exports.MethodNames || (exports.MethodNames = {}));
|
|
9
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AAoBA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,+DAAgD,CAAA;IAChD,uDAAwC,CAAA;AAC1C,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB","sourcesContent":["import type {\n Json,\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\nimport type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from 'json-rpc-engine';\n\nimport type {\n CaveatSpecificationConstraint,\n CaveatSpecificationMap,\n} from './Caveat';\nimport type {\n PermissionSpecificationConstraint,\n PermissionSpecificationMap,\n} from './Permission';\n\nexport enum MethodNames {\n requestPermissions = 'wallet_requestPermissions',\n getPermissions = 'wallet_getPermissions',\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 T,\n U extends JsonRpcParams,\n V extends Json,\n> = (\n req: JsonRpcRequest<U>,\n res: PendingJsonRpcResponse<V>,\n next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: T,\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<T> = {\n [Property in keyof T]: true;\n};\n\n/**\n * A handler for a permitted method.\n */\nexport type PermittedHandlerExport<\n T,\n U extends JsonRpcParams,\n V extends Json,\n> = {\n implementation: HandlerMiddlewareFunction<T, U, V>;\n hookNames: HookNames<T>;\n methodNames: string[];\n};\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metamask-previews/permission-controller",
|
|
3
|
+
"version": "4.1.0-preview.d32a7cc",
|
|
4
|
+
"description": "Mediates access to JSON-RPC methods, used to interact with pieces of the MetaMask stack, via middleware for json-rpc-engine",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"MetaMask",
|
|
7
|
+
"Ethereum"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/MetaMask/core/tree/main/packages/permission-controller#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/MetaMask/core/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/MetaMask/core.git"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build:docs": "typedoc",
|
|
25
|
+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/permission-controller",
|
|
26
|
+
"publish:preview": "yarn npm publish --tag preview",
|
|
27
|
+
"test": "jest",
|
|
28
|
+
"test:watch": "jest --watch"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@metamask-previews/approval-controller": "3.5.0-preview.d32a7cc",
|
|
32
|
+
"@metamask-previews/base-controller": "3.2.0-preview.d32a7cc",
|
|
33
|
+
"@metamask-previews/controller-utils": "4.3.1-preview.d32a7cc",
|
|
34
|
+
"@metamask/utils": "^6.2.0",
|
|
35
|
+
"@types/deep-freeze-strict": "^1.1.0",
|
|
36
|
+
"deep-freeze-strict": "^1.1.1",
|
|
37
|
+
"eth-rpc-errors": "^4.0.2",
|
|
38
|
+
"immer": "^9.0.6",
|
|
39
|
+
"json-rpc-engine": "^6.1.0",
|
|
40
|
+
"nanoid": "^3.1.31"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@metamask/auto-changelog": "^3.1.0",
|
|
44
|
+
"@types/jest": "^27.4.1",
|
|
45
|
+
"deepmerge": "^4.2.2",
|
|
46
|
+
"jest": "^27.5.1",
|
|
47
|
+
"ts-jest": "^27.1.4",
|
|
48
|
+
"typedoc": "^0.22.15",
|
|
49
|
+
"typedoc-plugin-missing-exports": "^0.22.6",
|
|
50
|
+
"typescript": "~4.6.3"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@metamask-previews/approval-controller": "3.5.0-preview.d32a7cc"
|
|
54
|
+
},
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=16.0.0"
|
|
57
|
+
},
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"access": "public",
|
|
60
|
+
"registry": "https://registry.npmjs.org/"
|
|
61
|
+
}
|
|
62
|
+
}
|