@metamask-previews/json-rpc-engine 7.2.0-preview.4ae7d84
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 +95 -0
- package/LICENSE +15 -0
- package/README.md +204 -0
- package/dist/JsonRpcEngine.d.ts +114 -0
- package/dist/JsonRpcEngine.d.ts.map +1 -0
- package/dist/JsonRpcEngine.js +357 -0
- package/dist/JsonRpcEngine.js.map +1 -0
- package/dist/createAsyncMiddleware.d.ts +27 -0
- package/dist/createAsyncMiddleware.d.ts.map +1 -0
- package/dist/createAsyncMiddleware.js +79 -0
- package/dist/createAsyncMiddleware.js.map +1 -0
- package/dist/createScaffoldMiddleware.d.ts +17 -0
- package/dist/createScaffoldMiddleware.d.ts.map +1 -0
- package/dist/createScaffoldMiddleware.js +30 -0
- package/dist/createScaffoldMiddleware.js.map +1 -0
- package/dist/getUniqueId.d.ts +9 -0
- package/dist/getUniqueId.d.ts.map +1 -0
- package/dist/getUniqueId.js +20 -0
- package/dist/getUniqueId.js.map +1 -0
- package/dist/idRemapMiddleware.d.ts +13 -0
- package/dist/idRemapMiddleware.d.ts.map +1 -0
- package/dist/idRemapMiddleware.js +28 -0
- package/dist/idRemapMiddleware.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/mergeMiddleware.d.ts +10 -0
- package/dist/mergeMiddleware.d.ts.map +1 -0
- package/dist/mergeMiddleware.js +17 -0
- package/dist/mergeMiddleware.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUniqueId.js","sourceRoot":"","sources":["../src/getUniqueId.ts"],"names":[],"mappings":";;;AAAA,gCAAgC;AAChC,iDAAiD;AACjD,MAAM,GAAG,GAAG,UAAa,CAAC;AAC1B,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;AAEhD;;;;;;GAMG;AACH,SAAgB,WAAW;IACzB,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC;AAHD,kCAGC","sourcesContent":["// uint32 (two's complement) max\n// more conservative than Number.MAX_SAFE_INTEGER\nconst MAX = 4_294_967_295;\nlet idCounter = Math.floor(Math.random() * MAX);\n\n/**\n * Gets an ID that is guaranteed to be unique so long as no more than\n * 4_294_967_295 (uint32 max) IDs are created, or the IDs are rapidly turned\n * over.\n *\n * @returns The unique ID.\n */\nexport function getUniqueId(): number {\n idCounter = (idCounter + 1) % MAX;\n return idCounter;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Json, JsonRpcParams } from '@metamask/utils';
|
|
2
|
+
import type { JsonRpcMiddleware } from './JsonRpcEngine';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a middleware function that overwrites the `id` property of each
|
|
5
|
+
* request with an ID that is guaranteed to be unique, and restores the original
|
|
6
|
+
* ID in a return handler.
|
|
7
|
+
*
|
|
8
|
+
* If used, should be the first middleware in the stack.
|
|
9
|
+
*
|
|
10
|
+
* @returns The ID remap middleware function.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createIdRemapMiddleware(): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
13
|
+
//# sourceMappingURL=idRemapMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idRemapMiddleware.d.ts","sourceRoot":"","sources":["../src/idRemapMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAC1D,aAAa,EACb,IAAI,CACL,CAYA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createIdRemapMiddleware = void 0;
|
|
4
|
+
const getUniqueId_1 = require("./getUniqueId");
|
|
5
|
+
/**
|
|
6
|
+
* Returns a middleware function that overwrites the `id` property of each
|
|
7
|
+
* request with an ID that is guaranteed to be unique, and restores the original
|
|
8
|
+
* ID in a return handler.
|
|
9
|
+
*
|
|
10
|
+
* If used, should be the first middleware in the stack.
|
|
11
|
+
*
|
|
12
|
+
* @returns The ID remap middleware function.
|
|
13
|
+
*/
|
|
14
|
+
function createIdRemapMiddleware() {
|
|
15
|
+
return (request, response, next, _end) => {
|
|
16
|
+
const originalId = request.id;
|
|
17
|
+
const newId = (0, getUniqueId_1.getUniqueId)();
|
|
18
|
+
request.id = newId;
|
|
19
|
+
response.id = newId;
|
|
20
|
+
next((done) => {
|
|
21
|
+
request.id = originalId;
|
|
22
|
+
response.id = originalId;
|
|
23
|
+
done();
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.createIdRemapMiddleware = createIdRemapMiddleware;
|
|
28
|
+
//# sourceMappingURL=idRemapMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idRemapMiddleware.js","sourceRoot":"","sources":["../src/idRemapMiddleware.ts"],"names":[],"mappings":";;;AAEA,+CAA4C;AAG5C;;;;;;;;GAQG;AACH,SAAgB,uBAAuB;IAIrC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC;QACnB,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC;YACxB,QAAQ,CAAC,EAAE,GAAG,UAAU,CAAC;YACzB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,0DAeC","sourcesContent":["import type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getUniqueId } from './getUniqueId';\nimport type { JsonRpcMiddleware } from './JsonRpcEngine';\n\n/**\n * Returns a middleware function that overwrites the `id` property of each\n * request with an ID that is guaranteed to be unique, and restores the original\n * ID in a return handler.\n *\n * If used, should be the first middleware in the stack.\n *\n * @returns The ID remap middleware function.\n */\nexport function createIdRemapMiddleware(): JsonRpcMiddleware<\n JsonRpcParams,\n Json\n> {\n return (request, response, next, _end) => {\n const originalId = request.id;\n const newId = getUniqueId();\n request.id = newId;\n response.id = newId;\n next((done) => {\n request.id = originalId;\n response.id = originalId;\n done();\n });\n };\n}\n"]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './createAsyncMiddleware';
|
|
2
|
+
export * from './createScaffoldMiddleware';
|
|
3
|
+
export * from './getUniqueId';
|
|
4
|
+
export * from './idRemapMiddleware';
|
|
5
|
+
export * from './JsonRpcEngine';
|
|
6
|
+
export * from './mergeMiddleware';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./createAsyncMiddleware"), exports);
|
|
18
|
+
__exportStar(require("./createScaffoldMiddleware"), exports);
|
|
19
|
+
__exportStar(require("./getUniqueId"), exports);
|
|
20
|
+
__exportStar(require("./idRemapMiddleware"), exports);
|
|
21
|
+
__exportStar(require("./JsonRpcEngine"), exports);
|
|
22
|
+
__exportStar(require("./mergeMiddleware"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,6DAA2C;AAC3C,gDAA8B;AAC9B,sDAAoC;AACpC,kDAAgC;AAChC,oDAAkC","sourcesContent":["export * from './createAsyncMiddleware';\nexport * from './createScaffoldMiddleware';\nexport * from './getUniqueId';\nexport * from './idRemapMiddleware';\nexport * from './JsonRpcEngine';\nexport * from './mergeMiddleware';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Json, JsonRpcParams } from '@metamask/utils';
|
|
2
|
+
import type { JsonRpcMiddleware } from './JsonRpcEngine';
|
|
3
|
+
/**
|
|
4
|
+
* Takes a stack of middleware and joins them into a single middleware function.
|
|
5
|
+
*
|
|
6
|
+
* @param middlewareStack - The middleware stack to merge.
|
|
7
|
+
* @returns The merged middleware function.
|
|
8
|
+
*/
|
|
9
|
+
export declare function mergeMiddleware(middlewareStack: JsonRpcMiddleware<JsonRpcParams, Json>[]): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
10
|
+
//# sourceMappingURL=mergeMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeMiddleware.d.ts","sourceRoot":"","sources":["../src/mergeMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,0CAK1D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeMiddleware = void 0;
|
|
4
|
+
const JsonRpcEngine_1 = require("./JsonRpcEngine");
|
|
5
|
+
/**
|
|
6
|
+
* Takes a stack of middleware and joins them into a single middleware function.
|
|
7
|
+
*
|
|
8
|
+
* @param middlewareStack - The middleware stack to merge.
|
|
9
|
+
* @returns The merged middleware function.
|
|
10
|
+
*/
|
|
11
|
+
function mergeMiddleware(middlewareStack) {
|
|
12
|
+
const engine = new JsonRpcEngine_1.JsonRpcEngine();
|
|
13
|
+
middlewareStack.forEach((middleware) => engine.push(middleware));
|
|
14
|
+
return engine.asMiddleware();
|
|
15
|
+
}
|
|
16
|
+
exports.mergeMiddleware = mergeMiddleware;
|
|
17
|
+
//# sourceMappingURL=mergeMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeMiddleware.js","sourceRoot":"","sources":["../src/mergeMiddleware.ts"],"names":[],"mappings":";;;AAGA,mDAAgD;AAEhD;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,eAAyD;IAEzD,MAAM,MAAM,GAAG,IAAI,6BAAa,EAAE,CAAC;IACnC,eAAe,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;AAC/B,CAAC;AAND,0CAMC","sourcesContent":["import type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { JsonRpcMiddleware } from './JsonRpcEngine';\nimport { JsonRpcEngine } from './JsonRpcEngine';\n\n/**\n * Takes a stack of middleware and joins them into a single middleware function.\n *\n * @param middlewareStack - The middleware stack to merge.\n * @returns The merged middleware function.\n */\nexport function mergeMiddleware(\n middlewareStack: JsonRpcMiddleware<JsonRpcParams, Json>[],\n) {\n const engine = new JsonRpcEngine();\n middlewareStack.forEach((middleware) => engine.push(middleware));\n return engine.asMiddleware();\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metamask-previews/json-rpc-engine",
|
|
3
|
+
"version": "7.2.0-preview.4ae7d84",
|
|
4
|
+
"description": "A tool for processing JSON-RPC messages",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"MetaMask",
|
|
7
|
+
"Ethereum"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/MetaMask/core/tree/main/packages/json-rpc-engine#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": "ISC",
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"directories": {
|
|
21
|
+
"test": "test"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist/"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "tsc --project tsconfig.build.json",
|
|
28
|
+
"build:clean": "rimraf dist && yarn build",
|
|
29
|
+
"build:docs": "typedoc",
|
|
30
|
+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/json-rpc-engine --tag-prefix-before-package-rename json-rpc-engine@ --version-before-package-rename 6.1.0",
|
|
31
|
+
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:dependencies && yarn lint:changelog",
|
|
32
|
+
"lint:changelog": "auto-changelog validate",
|
|
33
|
+
"lint:dependencies": "depcheck",
|
|
34
|
+
"lint:eslint": "eslint . --cache --ext js,ts",
|
|
35
|
+
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write && yarn lint:dependencies && yarn lint:changelog",
|
|
36
|
+
"lint:misc": "prettier '**/*.json' '**/*.md' '!CHANGELOG.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern",
|
|
37
|
+
"publish:preview": "yarn npm publish --tag preview",
|
|
38
|
+
"test": "jest --reporters=jest-silent-reporter",
|
|
39
|
+
"test:clean": "jest --clearCache",
|
|
40
|
+
"test:verbose": "jest --verbose",
|
|
41
|
+
"test:watch": "jest --watch"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@metamask/rpc-errors": "^6.1.0",
|
|
45
|
+
"@metamask/safe-event-emitter": "^3.0.0",
|
|
46
|
+
"@metamask/utils": "^8.2.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@lavamoat/allow-scripts": "^2.3.1",
|
|
50
|
+
"@metamask/auto-changelog": "^3.4.3",
|
|
51
|
+
"@types/jest": "^27.4.1",
|
|
52
|
+
"deepmerge": "^4.2.2",
|
|
53
|
+
"depcheck": "^1.4.3",
|
|
54
|
+
"jest": "^27.5.1",
|
|
55
|
+
"jest-it-up": "^2.0.2",
|
|
56
|
+
"ts-jest": "^27.1.4",
|
|
57
|
+
"typedoc": "^0.24.8",
|
|
58
|
+
"typescript": "~4.8.4"
|
|
59
|
+
},
|
|
60
|
+
"packageManager": "yarn@3.3.0",
|
|
61
|
+
"engines": {
|
|
62
|
+
"node": ">=16.0.0"
|
|
63
|
+
},
|
|
64
|
+
"publishConfig": {
|
|
65
|
+
"access": "public",
|
|
66
|
+
"registry": "https://registry.npmjs.org/"
|
|
67
|
+
},
|
|
68
|
+
"lavamoat": {
|
|
69
|
+
"allowScripts": {
|
|
70
|
+
"@lavamoat/preinstall-always-fail": false
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|