@metamask-previews/json-rpc-engine 9.0.2-preview-cf09c0a → 9.0.2-preview-09a2ffd5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/JsonRpcEngine.js +8 -0
  2. package/dist/JsonRpcEngine.js.map +1 -0
  3. package/dist/JsonRpcEngine.mjs +6 -346
  4. package/dist/JsonRpcEngine.mjs.map +1 -1
  5. package/dist/chunk-2LXAFMJD.js +416 -0
  6. package/dist/chunk-2LXAFMJD.js.map +1 -0
  7. package/dist/chunk-3AC2MIND.js +19 -0
  8. package/dist/chunk-3AC2MIND.js.map +1 -0
  9. package/dist/chunk-5HCYV4FV.mjs +416 -0
  10. package/dist/chunk-5HCYV4FV.mjs.map +1 -0
  11. package/dist/chunk-6XXPTZV6.mjs +12 -0
  12. package/dist/chunk-6XXPTZV6.mjs.map +1 -0
  13. package/dist/chunk-KFRJCTOQ.mjs +15 -0
  14. package/dist/chunk-KFRJCTOQ.mjs.map +1 -0
  15. package/dist/chunk-KNT3O2VO.mjs +39 -0
  16. package/dist/chunk-KNT3O2VO.mjs.map +1 -0
  17. package/dist/chunk-KZ5RA76F.mjs +19 -0
  18. package/dist/chunk-KZ5RA76F.mjs.map +1 -0
  19. package/dist/chunk-PBQXMZM5.js +23 -0
  20. package/dist/chunk-PBQXMZM5.js.map +1 -0
  21. package/dist/chunk-R7LKI5H5.mjs +23 -0
  22. package/dist/chunk-R7LKI5H5.mjs.map +1 -0
  23. package/dist/chunk-VK4MHWJV.js +15 -0
  24. package/dist/chunk-VK4MHWJV.js.map +1 -0
  25. package/dist/chunk-XDGWQHNY.js +12 -0
  26. package/dist/chunk-XDGWQHNY.js.map +1 -0
  27. package/dist/chunk-XUI43LEZ.mjs +30 -0
  28. package/dist/chunk-XUI43LEZ.mjs.map +1 -0
  29. package/dist/chunk-Z4BLTVTB.js +30 -0
  30. package/dist/chunk-Z4BLTVTB.js.map +1 -0
  31. package/dist/chunk-ZYXL5TCS.js +39 -0
  32. package/dist/chunk-ZYXL5TCS.js.map +1 -0
  33. package/dist/createAsyncMiddleware.js +8 -0
  34. package/dist/createAsyncMiddleware.js.map +1 -0
  35. package/dist/createAsyncMiddleware.mjs +7 -65
  36. package/dist/createAsyncMiddleware.mjs.map +1 -1
  37. package/dist/createScaffoldMiddleware.js +8 -0
  38. package/dist/createScaffoldMiddleware.js.map +1 -0
  39. package/dist/createScaffoldMiddleware.mjs +7 -25
  40. package/dist/createScaffoldMiddleware.mjs.map +1 -1
  41. package/dist/getUniqueId.js +8 -0
  42. package/dist/getUniqueId.js.map +1 -0
  43. package/dist/getUniqueId.mjs +7 -15
  44. package/dist/getUniqueId.mjs.map +1 -1
  45. package/dist/idRemapMiddleware.js +9 -0
  46. package/dist/idRemapMiddleware.js.map +1 -0
  47. package/dist/idRemapMiddleware.mjs +8 -23
  48. package/dist/idRemapMiddleware.mjs.map +1 -1
  49. package/dist/index.js +28 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/index.mjs +27 -6
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/mergeMiddleware.js +9 -0
  54. package/dist/mergeMiddleware.js.map +1 -0
  55. package/dist/mergeMiddleware.mjs +8 -12
  56. package/dist/mergeMiddleware.mjs.map +1 -1
  57. package/dist/tsconfig.build.tsbuildinfo +1 -0
  58. package/dist/{JsonRpcEngine.d.mts → types/JsonRpcEngine.d.ts} +3 -3
  59. package/dist/types/JsonRpcEngine.d.ts.map +1 -0
  60. package/dist/{createAsyncMiddleware.d.cts → types/createAsyncMiddleware.d.ts} +3 -3
  61. package/dist/types/createAsyncMiddleware.d.ts.map +1 -0
  62. package/dist/{createScaffoldMiddleware.d.mts → types/createScaffoldMiddleware.d.ts} +3 -3
  63. package/dist/types/createScaffoldMiddleware.d.ts.map +1 -0
  64. package/dist/{getUniqueId.d.cts → types/getUniqueId.d.ts} +1 -1
  65. package/dist/types/getUniqueId.d.ts.map +1 -0
  66. package/dist/{idRemapMiddleware.d.mts → types/idRemapMiddleware.d.ts} +3 -3
  67. package/dist/types/idRemapMiddleware.d.ts.map +1 -0
  68. package/dist/types/index.d.ts +9 -0
  69. package/dist/types/index.d.ts.map +1 -0
  70. package/dist/{mergeMiddleware.d.mts → types/mergeMiddleware.d.ts} +3 -3
  71. package/dist/types/mergeMiddleware.d.ts.map +1 -0
  72. package/package.json +7 -12
  73. package/dist/JsonRpcEngine.cjs +0 -355
  74. package/dist/JsonRpcEngine.cjs.map +0 -1
  75. package/dist/JsonRpcEngine.d.cts +0 -114
  76. package/dist/JsonRpcEngine.d.cts.map +0 -1
  77. package/dist/JsonRpcEngine.d.mts.map +0 -1
  78. package/dist/createAsyncMiddleware.cjs +0 -70
  79. package/dist/createAsyncMiddleware.cjs.map +0 -1
  80. package/dist/createAsyncMiddleware.d.cts.map +0 -1
  81. package/dist/createAsyncMiddleware.d.mts +0 -27
  82. package/dist/createAsyncMiddleware.d.mts.map +0 -1
  83. package/dist/createScaffoldMiddleware.cjs +0 -30
  84. package/dist/createScaffoldMiddleware.cjs.map +0 -1
  85. package/dist/createScaffoldMiddleware.d.cts +0 -17
  86. package/dist/createScaffoldMiddleware.d.cts.map +0 -1
  87. package/dist/createScaffoldMiddleware.d.mts.map +0 -1
  88. package/dist/getUniqueId.cjs +0 -20
  89. package/dist/getUniqueId.cjs.map +0 -1
  90. package/dist/getUniqueId.d.cts.map +0 -1
  91. package/dist/getUniqueId.d.mts +0 -9
  92. package/dist/getUniqueId.d.mts.map +0 -1
  93. package/dist/idRemapMiddleware.cjs +0 -28
  94. package/dist/idRemapMiddleware.cjs.map +0 -1
  95. package/dist/idRemapMiddleware.d.cts +0 -13
  96. package/dist/idRemapMiddleware.d.cts.map +0 -1
  97. package/dist/idRemapMiddleware.d.mts.map +0 -1
  98. package/dist/index.cjs +0 -16
  99. package/dist/index.cjs.map +0 -1
  100. package/dist/index.d.cts +0 -9
  101. package/dist/index.d.cts.map +0 -1
  102. package/dist/index.d.mts +0 -9
  103. package/dist/index.d.mts.map +0 -1
  104. package/dist/mergeMiddleware.cjs +0 -17
  105. package/dist/mergeMiddleware.cjs.map +0 -1
  106. package/dist/mergeMiddleware.d.cts +0 -10
  107. package/dist/mergeMiddleware.d.cts.map +0 -1
  108. package/dist/mergeMiddleware.d.mts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mergeMiddleware.ts"],"names":[],"mappings":";;;;;AAWO,SAAS,gBACd,iBACA;AACA,QAAM,SAAS,IAAI,cAAc;AACjC,kBAAgB,QAAQ,CAAC,eAAe,OAAO,KAAK,UAAU,CAAC;AAC/D,SAAO,OAAO,aAAa;AAC7B","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"]}
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/getUniqueId.ts
2
+ var MAX = 4294967295;
3
+ var idCounter = Math.floor(Math.random() * MAX);
4
+ function getUniqueId() {
5
+ idCounter = (idCounter + 1) % MAX;
6
+ return idCounter;
7
+ }
8
+
9
+
10
+
11
+ exports.getUniqueId = getUniqueId;
12
+ //# sourceMappingURL=chunk-XDGWQHNY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/getUniqueId.ts"],"names":[],"mappings":";AAEA,IAAM,MAAM;AACZ,IAAI,YAAY,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG;AASvC,SAAS,cAAsB;AACpC,eAAa,YAAY,KAAK;AAC9B,SAAO;AACT","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,30 @@
1
+ var __accessCheck = (obj, member, msg) => {
2
+ if (!member.has(obj))
3
+ throw TypeError("Cannot " + msg);
4
+ };
5
+ var __privateGet = (obj, member, getter) => {
6
+ __accessCheck(obj, member, "read from private field");
7
+ return getter ? getter.call(obj) : member.get(obj);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+ var __privateSet = (obj, member, value, setter) => {
15
+ __accessCheck(obj, member, "write to private field");
16
+ setter ? setter.call(obj, value) : member.set(obj, value);
17
+ return value;
18
+ };
19
+ var __privateMethod = (obj, member, method) => {
20
+ __accessCheck(obj, member, "access private method");
21
+ return method;
22
+ };
23
+
24
+ export {
25
+ __privateGet,
26
+ __privateAdd,
27
+ __privateSet,
28
+ __privateMethod
29
+ };
30
+ //# sourceMappingURL=chunk-XUI43LEZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __accessCheck = (obj, member, msg) => {
2
+ if (!member.has(obj))
3
+ throw TypeError("Cannot " + msg);
4
+ };
5
+ var __privateGet = (obj, member, getter) => {
6
+ __accessCheck(obj, member, "read from private field");
7
+ return getter ? getter.call(obj) : member.get(obj);
8
+ };
9
+ var __privateAdd = (obj, member, value) => {
10
+ if (member.has(obj))
11
+ throw TypeError("Cannot add the same private member more than once");
12
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
13
+ };
14
+ var __privateSet = (obj, member, value, setter) => {
15
+ __accessCheck(obj, member, "write to private field");
16
+ setter ? setter.call(obj, value) : member.set(obj, value);
17
+ return value;
18
+ };
19
+ var __privateMethod = (obj, member, method) => {
20
+ __accessCheck(obj, member, "access private method");
21
+ return method;
22
+ };
23
+
24
+
25
+
26
+
27
+
28
+
29
+ exports.__privateGet = __privateGet; exports.__privateAdd = __privateAdd; exports.__privateSet = __privateSet; exports.__privateMethod = __privateMethod;
30
+ //# sourceMappingURL=chunk-Z4BLTVTB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/createAsyncMiddleware.ts
2
+ function createAsyncMiddleware(asyncMiddleware) {
3
+ return async (request, response, next, end) => {
4
+ let resolveNextPromise;
5
+ const nextPromise = new Promise((resolve) => {
6
+ resolveNextPromise = resolve;
7
+ });
8
+ let returnHandlerCallback = null;
9
+ let nextWasCalled = false;
10
+ const asyncNext = async () => {
11
+ nextWasCalled = true;
12
+ next((runReturnHandlersCallback) => {
13
+ returnHandlerCallback = runReturnHandlersCallback;
14
+ resolveNextPromise();
15
+ });
16
+ return nextPromise;
17
+ };
18
+ try {
19
+ await asyncMiddleware(request, response, asyncNext);
20
+ if (nextWasCalled) {
21
+ await nextPromise;
22
+ returnHandlerCallback(null);
23
+ } else {
24
+ end(null);
25
+ }
26
+ } catch (error) {
27
+ if (returnHandlerCallback) {
28
+ returnHandlerCallback(error);
29
+ } else {
30
+ end(error);
31
+ }
32
+ }
33
+ };
34
+ }
35
+
36
+
37
+
38
+ exports.createAsyncMiddleware = createAsyncMiddleware;
39
+ //# sourceMappingURL=chunk-ZYXL5TCS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/createAsyncMiddleware.ts"],"names":[],"mappings":";AA8CO,SAAS,sBAId,iBACmC;AAEnC,SAAO,OAAO,SAAS,UAAU,MAAM,QAAQ;AAI7C,QAAI;AACJ,UAAM,cAAc,IAAI,QAAc,CAAC,YAAY;AACjD,2BAAqB;AAAA,IACvB,CAAC;AAED,QAAI,wBAAiC;AACrC,QAAI,gBAAgB;AAGpB,UAAM,YAAY,YAAY;AAC5B,sBAAgB;AAIhB,WAAK,CAAC,8BAA8B;AAElC,gCAAwB;AACxB,2BAAmB;AAAA,MACrB,CAAC;AACD,aAAO;AAAA,IACT;AAEA,QAAI;AACF,YAAM,gBAAgB,SAAS,UAAU,SAAS;AAElD,UAAI,eAAe;AACjB,cAAM;AACN,QAAC,sBAAgD,IAAI;AAAA,MACvD,OAAO;AACL,YAAI,IAAI;AAAA,MACV;AAAA,IACF,SAAS,OAAO;AACd,UAAI,uBAAuB;AACzB,QAAC,sBAAgD,KAAK;AAAA,MACxD,OAAO;AACL,YAAI,KAAK;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF","sourcesContent":["import type {\n Json,\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type {\n JsonRpcEngineReturnHandler,\n JsonRpcMiddleware,\n} from './JsonRpcEngine';\n\nexport type AsyncJsonRpcEngineNextCallback = () => Promise<void>;\n\nexport type AsyncJsonrpcMiddleware<\n Params extends JsonRpcParams,\n Result extends Json,\n> = (\n request: JsonRpcRequest<Params>,\n response: PendingJsonRpcResponse<Result>,\n next: AsyncJsonRpcEngineNextCallback,\n) => Promise<void>;\n\ntype ReturnHandlerCallback = Parameters<JsonRpcEngineReturnHandler>[0];\n\n/**\n * JsonRpcEngine only accepts callback-based middleware directly.\n * createAsyncMiddleware exists to enable consumers to pass in async middleware\n * functions.\n *\n * Async middleware have no \"end\" function. Instead, they \"end\" if they return\n * without calling \"next\". Rather than passing in explicit return handlers,\n * async middleware can simply await \"next\", and perform operations on the\n * response object when execution resumes.\n *\n * To accomplish this, createAsyncMiddleware passes the async middleware a\n * wrapped \"next\" function. That function calls the internal JsonRpcEngine\n * \"next\" function with a return handler that resolves a promise when called.\n *\n * The return handler will always be called. Its resolution of the promise\n * enables the control flow described above.\n *\n * @param asyncMiddleware - The asynchronous middleware function to wrap.\n * @returns The wrapped asynchronous middleware function, ready to be consumed\n * by JsonRpcEngine.\n */\nexport function createAsyncMiddleware<\n Params extends JsonRpcParams,\n Result extends Json,\n>(\n asyncMiddleware: AsyncJsonrpcMiddleware<Params, Result>,\n): JsonRpcMiddleware<Params, Result> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async (request, response, next, end) => {\n // nextPromise is the key to the implementation\n // it is resolved by the return handler passed to the\n // \"next\" function\n let resolveNextPromise: () => void;\n const nextPromise = new Promise<void>((resolve) => {\n resolveNextPromise = resolve;\n });\n\n let returnHandlerCallback: unknown = null;\n let nextWasCalled = false;\n\n // This will be called by the consumer's async middleware.\n const asyncNext = async () => {\n nextWasCalled = true;\n\n // We pass a return handler to next(). When it is called by the engine,\n // the consumer's async middleware will resume executing.\n next((runReturnHandlersCallback) => {\n // This callback comes from JsonRpcEngine._runReturnHandlers\n returnHandlerCallback = runReturnHandlersCallback;\n resolveNextPromise();\n });\n return nextPromise;\n };\n\n try {\n await asyncMiddleware(request, response, asyncNext);\n\n if (nextWasCalled) {\n await nextPromise; // we must wait until the return handler is called\n (returnHandlerCallback as ReturnHandlerCallback)(null);\n } else {\n end(null);\n }\n } catch (error) {\n if (returnHandlerCallback) {\n (returnHandlerCallback as ReturnHandlerCallback)(error);\n } else {\n end(error);\n }\n }\n };\n}\n"]}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkZYXL5TCSjs = require('./chunk-ZYXL5TCS.js');
4
+ require('./chunk-Z4BLTVTB.js');
5
+
6
+
7
+ exports.createAsyncMiddleware = _chunkZYXL5TCSjs.createAsyncMiddleware;
8
+ //# sourceMappingURL=createAsyncMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,66 +1,8 @@
1
- /**
2
- * JsonRpcEngine only accepts callback-based middleware directly.
3
- * createAsyncMiddleware exists to enable consumers to pass in async middleware
4
- * functions.
5
- *
6
- * Async middleware have no "end" function. Instead, they "end" if they return
7
- * without calling "next". Rather than passing in explicit return handlers,
8
- * async middleware can simply await "next", and perform operations on the
9
- * response object when execution resumes.
10
- *
11
- * To accomplish this, createAsyncMiddleware passes the async middleware a
12
- * wrapped "next" function. That function calls the internal JsonRpcEngine
13
- * "next" function with a return handler that resolves a promise when called.
14
- *
15
- * The return handler will always be called. Its resolution of the promise
16
- * enables the control flow described above.
17
- *
18
- * @param asyncMiddleware - The asynchronous middleware function to wrap.
19
- * @returns The wrapped asynchronous middleware function, ready to be consumed
20
- * by JsonRpcEngine.
21
- */
22
- export function createAsyncMiddleware(asyncMiddleware) {
23
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
24
- return async (request, response, next, end) => {
25
- // nextPromise is the key to the implementation
26
- // it is resolved by the return handler passed to the
27
- // "next" function
28
- let resolveNextPromise;
29
- const nextPromise = new Promise((resolve) => {
30
- resolveNextPromise = resolve;
31
- });
32
- let returnHandlerCallback = null;
33
- let nextWasCalled = false;
34
- // This will be called by the consumer's async middleware.
35
- const asyncNext = async () => {
36
- nextWasCalled = true;
37
- // We pass a return handler to next(). When it is called by the engine,
38
- // the consumer's async middleware will resume executing.
39
- next((runReturnHandlersCallback) => {
40
- // This callback comes from JsonRpcEngine._runReturnHandlers
41
- returnHandlerCallback = runReturnHandlersCallback;
42
- resolveNextPromise();
43
- });
44
- return nextPromise;
45
- };
46
- try {
47
- await asyncMiddleware(request, response, asyncNext);
48
- if (nextWasCalled) {
49
- await nextPromise; // we must wait until the return handler is called
50
- returnHandlerCallback(null);
51
- }
52
- else {
53
- end(null);
54
- }
55
- }
56
- catch (error) {
57
- if (returnHandlerCallback) {
58
- returnHandlerCallback(error);
59
- }
60
- else {
61
- end(error);
62
- }
63
- }
64
- };
65
- }
1
+ import {
2
+ createAsyncMiddleware
3
+ } from "./chunk-KNT3O2VO.mjs";
4
+ import "./chunk-XUI43LEZ.mjs";
5
+ export {
6
+ createAsyncMiddleware
7
+ };
66
8
  //# sourceMappingURL=createAsyncMiddleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAsyncMiddleware.mjs","sourceRoot":"","sources":["../src/createAsyncMiddleware.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CAInC,eAAuD;IAEvD,kEAAkE;IAClE,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5C,+CAA+C;QAC/C,qDAAqD;QACrD,kBAAkB;QAClB,IAAI,kBAA8B,CAAC;QACnC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChD,kBAAkB,GAAG,OAAO,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,qBAAqB,GAAY,IAAI,CAAC;QAC1C,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,0DAA0D;QAC1D,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,aAAa,GAAG,IAAI,CAAC;YAErB,uEAAuE;YACvE,yDAAyD;YACzD,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAE;gBACjC,4DAA4D;gBAC5D,qBAAqB,GAAG,yBAAyB,CAAC;gBAClD,kBAAkB,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEF,IAAI;YACF,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEpD,IAAI,aAAa,EAAE;gBACjB,MAAM,WAAW,CAAC,CAAC,kDAAkD;gBACpE,qBAA+C,CAAC,IAAI,CAAC,CAAC;aACxD;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,CAAC;aACX;SACF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,qBAAqB,EAAE;gBACxB,qBAA+C,CAAC,KAAK,CAAC,CAAC;aACzD;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,CAAC;aACZ;SACF;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type {\n Json,\n JsonRpcParams,\n JsonRpcRequest,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type {\n JsonRpcEngineReturnHandler,\n JsonRpcMiddleware,\n} from './JsonRpcEngine';\n\nexport type AsyncJsonRpcEngineNextCallback = () => Promise<void>;\n\nexport type AsyncJsonrpcMiddleware<\n Params extends JsonRpcParams,\n Result extends Json,\n> = (\n request: JsonRpcRequest<Params>,\n response: PendingJsonRpcResponse<Result>,\n next: AsyncJsonRpcEngineNextCallback,\n) => Promise<void>;\n\ntype ReturnHandlerCallback = Parameters<JsonRpcEngineReturnHandler>[0];\n\n/**\n * JsonRpcEngine only accepts callback-based middleware directly.\n * createAsyncMiddleware exists to enable consumers to pass in async middleware\n * functions.\n *\n * Async middleware have no \"end\" function. Instead, they \"end\" if they return\n * without calling \"next\". Rather than passing in explicit return handlers,\n * async middleware can simply await \"next\", and perform operations on the\n * response object when execution resumes.\n *\n * To accomplish this, createAsyncMiddleware passes the async middleware a\n * wrapped \"next\" function. That function calls the internal JsonRpcEngine\n * \"next\" function with a return handler that resolves a promise when called.\n *\n * The return handler will always be called. Its resolution of the promise\n * enables the control flow described above.\n *\n * @param asyncMiddleware - The asynchronous middleware function to wrap.\n * @returns The wrapped asynchronous middleware function, ready to be consumed\n * by JsonRpcEngine.\n */\nexport function createAsyncMiddleware<\n Params extends JsonRpcParams,\n Result extends Json,\n>(\n asyncMiddleware: AsyncJsonrpcMiddleware<Params, Result>,\n): JsonRpcMiddleware<Params, Result> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async (request, response, next, end) => {\n // nextPromise is the key to the implementation\n // it is resolved by the return handler passed to the\n // \"next\" function\n let resolveNextPromise: () => void;\n const nextPromise = new Promise<void>((resolve) => {\n resolveNextPromise = resolve;\n });\n\n let returnHandlerCallback: unknown = null;\n let nextWasCalled = false;\n\n // This will be called by the consumer's async middleware.\n const asyncNext = async () => {\n nextWasCalled = true;\n\n // We pass a return handler to next(). When it is called by the engine,\n // the consumer's async middleware will resume executing.\n next((runReturnHandlersCallback) => {\n // This callback comes from JsonRpcEngine._runReturnHandlers\n returnHandlerCallback = runReturnHandlersCallback;\n resolveNextPromise();\n });\n return nextPromise;\n };\n\n try {\n await asyncMiddleware(request, response, asyncNext);\n\n if (nextWasCalled) {\n await nextPromise; // we must wait until the return handler is called\n (returnHandlerCallback as ReturnHandlerCallback)(null);\n } else {\n end(null);\n }\n } catch (error) {\n if (returnHandlerCallback) {\n (returnHandlerCallback as ReturnHandlerCallback)(error);\n } else {\n end(error);\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk3AC2MINDjs = require('./chunk-3AC2MIND.js');
4
+ require('./chunk-Z4BLTVTB.js');
5
+
6
+
7
+ exports.createScaffoldMiddleware = _chunk3AC2MINDjs.createScaffoldMiddleware;
8
+ //# sourceMappingURL=createScaffoldMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,26 +1,8 @@
1
- /**
2
- * Creates a middleware function from an object of RPC method handler functions,
3
- * keyed to particular method names. If a method corresponding to a key of this
4
- * object is requested, this middleware will pass it to the corresponding
5
- * handler and return the result.
6
- *
7
- * @param handlers - The RPC method handler functions.
8
- * @returns The scaffold middleware function.
9
- */
10
- export function createScaffoldMiddleware(handlers) {
11
- return (req, res, next, end) => {
12
- const handler = handlers[req.method];
13
- // if no handler, return
14
- if (handler === undefined) {
15
- return next();
16
- }
17
- // if handler is fn, call as middleware
18
- if (typeof handler === 'function') {
19
- return handler(req, res, next, end);
20
- }
21
- // if handler is some other value, use as result
22
- res.result = handler;
23
- return end();
24
- };
25
- }
1
+ import {
2
+ createScaffoldMiddleware
3
+ } from "./chunk-KZ5RA76F.mjs";
4
+ import "./chunk-XUI43LEZ.mjs";
5
+ export {
6
+ createScaffoldMiddleware
7
+ };
26
8
  //# sourceMappingURL=createScaffoldMiddleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"createScaffoldMiddleware.mjs","sourceRoot":"","sources":["../src/createScaffoldMiddleware.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAExC;IACC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,wBAAwB;QACxB,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,EAAE,CAAC;SACf;QAED,uCAAuC;QACvC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;QACD,gDAAgD;QAC/C,GAA4B,CAAC,MAAM,GAAG,OAAO,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC;IACf,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { Json, JsonRpcParams, JsonRpcSuccess } from '@metamask/utils';\n\nimport type { JsonRpcMiddleware } from './JsonRpcEngine';\n\ntype ScaffoldMiddlewareHandler<\n Params extends JsonRpcParams,\n Result extends Json,\n> = JsonRpcMiddleware<Params, Result> | Json;\n\n/**\n * Creates a middleware function from an object of RPC method handler functions,\n * keyed to particular method names. If a method corresponding to a key of this\n * object is requested, this middleware will pass it to the corresponding\n * handler and return the result.\n *\n * @param handlers - The RPC method handler functions.\n * @returns The scaffold middleware function.\n */\nexport function createScaffoldMiddleware(handlers: {\n [methodName: string]: ScaffoldMiddlewareHandler<JsonRpcParams, Json>;\n}): JsonRpcMiddleware<JsonRpcParams, Json> {\n return (req, res, next, end) => {\n const handler = handlers[req.method];\n // if no handler, return\n if (handler === undefined) {\n return next();\n }\n\n // if handler is fn, call as middleware\n if (typeof handler === 'function') {\n return handler(req, res, next, end);\n }\n // if handler is some other value, use as result\n (res as JsonRpcSuccess<Json>).result = handler;\n return end();\n };\n}\n"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkXDGWQHNYjs = require('./chunk-XDGWQHNY.js');
4
+ require('./chunk-Z4BLTVTB.js');
5
+
6
+
7
+ exports.getUniqueId = _chunkXDGWQHNYjs.getUniqueId;
8
+ //# sourceMappingURL=getUniqueId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,16 +1,8 @@
1
- // uint32 (two's complement) max
2
- // more conservative than Number.MAX_SAFE_INTEGER
3
- const MAX = 4294967295;
4
- let idCounter = Math.floor(Math.random() * MAX);
5
- /**
6
- * Gets an ID that is guaranteed to be unique so long as no more than
7
- * 4_294_967_295 (uint32 max) IDs are created, or the IDs are rapidly turned
8
- * over.
9
- *
10
- * @returns The unique ID.
11
- */
12
- export function getUniqueId() {
13
- idCounter = (idCounter + 1) % MAX;
14
- return idCounter;
15
- }
1
+ import {
2
+ getUniqueId
3
+ } from "./chunk-6XXPTZV6.mjs";
4
+ import "./chunk-XUI43LEZ.mjs";
5
+ export {
6
+ getUniqueId
7
+ };
16
8
  //# sourceMappingURL=getUniqueId.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"getUniqueId.mjs","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,MAAM,UAAU,WAAW;IACzB,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClC,OAAO,SAAS,CAAC;AACnB,CAAC","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"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkPBQXMZM5js = require('./chunk-PBQXMZM5.js');
4
+ require('./chunk-XDGWQHNY.js');
5
+ require('./chunk-Z4BLTVTB.js');
6
+
7
+
8
+ exports.createIdRemapMiddleware = _chunkPBQXMZM5js.createIdRemapMiddleware;
9
+ //# sourceMappingURL=idRemapMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,24 +1,9 @@
1
- import { getUniqueId } from "./getUniqueId.mjs";
2
- /**
3
- * Returns a middleware function that overwrites the `id` property of each
4
- * request with an ID that is guaranteed to be unique, and restores the original
5
- * ID in a return handler.
6
- *
7
- * If used, should be the first middleware in the stack.
8
- *
9
- * @returns The ID remap middleware function.
10
- */
11
- export function createIdRemapMiddleware() {
12
- return (request, response, next, _end) => {
13
- const originalId = request.id;
14
- const newId = getUniqueId();
15
- request.id = newId;
16
- response.id = newId;
17
- next((done) => {
18
- request.id = originalId;
19
- response.id = originalId;
20
- done();
21
- });
22
- };
23
- }
1
+ import {
2
+ createIdRemapMiddleware
3
+ } from "./chunk-R7LKI5H5.mjs";
4
+ import "./chunk-6XXPTZV6.mjs";
5
+ import "./chunk-XUI43LEZ.mjs";
6
+ export {
7
+ createIdRemapMiddleware
8
+ };
24
9
  //# sourceMappingURL=idRemapMiddleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"idRemapMiddleware.mjs","sourceRoot":"","sources":["../src/idRemapMiddleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,0BAAsB;AAG5C;;;;;;;;GAQG;AACH,MAAM,UAAU,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,WAAW,EAAE,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","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"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkZYXL5TCSjs = require('./chunk-ZYXL5TCS.js');
4
+
5
+
6
+ var _chunk3AC2MINDjs = require('./chunk-3AC2MIND.js');
7
+
8
+
9
+ var _chunkPBQXMZM5js = require('./chunk-PBQXMZM5.js');
10
+
11
+
12
+ var _chunkXDGWQHNYjs = require('./chunk-XDGWQHNY.js');
13
+
14
+
15
+ var _chunkVK4MHWJVjs = require('./chunk-VK4MHWJV.js');
16
+
17
+
18
+ var _chunk2LXAFMJDjs = require('./chunk-2LXAFMJD.js');
19
+ require('./chunk-Z4BLTVTB.js');
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+ exports.JsonRpcEngine = _chunk2LXAFMJDjs.JsonRpcEngine; exports.createAsyncMiddleware = _chunkZYXL5TCSjs.createAsyncMiddleware; exports.createIdRemapMiddleware = _chunkPBQXMZM5js.createIdRemapMiddleware; exports.createScaffoldMiddleware = _chunk3AC2MINDjs.createScaffoldMiddleware; exports.getUniqueId = _chunkXDGWQHNYjs.getUniqueId; exports.mergeMiddleware = _chunkVK4MHWJVjs.mergeMiddleware;
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/dist/index.mjs CHANGED
@@ -1,7 +1,28 @@
1
- export { createAsyncMiddleware } from "./createAsyncMiddleware.mjs";
2
- export { createScaffoldMiddleware } from "./createScaffoldMiddleware.mjs";
3
- export { getUniqueId } from "./getUniqueId.mjs";
4
- export { createIdRemapMiddleware } from "./idRemapMiddleware.mjs";
5
- export { JsonRpcEngine } from "./JsonRpcEngine.mjs";
6
- export { mergeMiddleware } from "./mergeMiddleware.mjs";
1
+ import {
2
+ createAsyncMiddleware
3
+ } from "./chunk-KNT3O2VO.mjs";
4
+ import {
5
+ createScaffoldMiddleware
6
+ } from "./chunk-KZ5RA76F.mjs";
7
+ import {
8
+ createIdRemapMiddleware
9
+ } from "./chunk-R7LKI5H5.mjs";
10
+ import {
11
+ getUniqueId
12
+ } from "./chunk-6XXPTZV6.mjs";
13
+ import {
14
+ mergeMiddleware
15
+ } from "./chunk-KFRJCTOQ.mjs";
16
+ import {
17
+ JsonRpcEngine
18
+ } from "./chunk-5HCYV4FV.mjs";
19
+ import "./chunk-XUI43LEZ.mjs";
20
+ export {
21
+ JsonRpcEngine,
22
+ createAsyncMiddleware,
23
+ createIdRemapMiddleware,
24
+ createScaffoldMiddleware,
25
+ getUniqueId,
26
+ mergeMiddleware
27
+ };
7
28
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,oCAAgC;AAChE,OAAO,EAAE,wBAAwB,EAAE,uCAAmC;AACtE,OAAO,EAAE,WAAW,EAAE,0BAAsB;AAC5C,OAAO,EAAE,uBAAuB,EAAE,gCAA4B;AAS9D,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAChD,OAAO,EAAE,eAAe,EAAE,8BAA0B","sourcesContent":["export type {\n AsyncJsonRpcEngineNextCallback,\n AsyncJsonrpcMiddleware,\n} from './createAsyncMiddleware';\nexport { createAsyncMiddleware } from './createAsyncMiddleware';\nexport { createScaffoldMiddleware } from './createScaffoldMiddleware';\nexport { getUniqueId } from './getUniqueId';\nexport { createIdRemapMiddleware } from './idRemapMiddleware';\nexport type {\n JsonRpcEngineCallbackError,\n JsonRpcEngineReturnHandler,\n JsonRpcEngineNextCallback,\n JsonRpcEngineEndCallback,\n JsonRpcMiddleware,\n JsonRpcNotificationHandler,\n} from './JsonRpcEngine';\nexport { JsonRpcEngine } from './JsonRpcEngine';\nexport { mergeMiddleware } from './mergeMiddleware';\n"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkVK4MHWJVjs = require('./chunk-VK4MHWJV.js');
4
+ require('./chunk-2LXAFMJD.js');
5
+ require('./chunk-Z4BLTVTB.js');
6
+
7
+
8
+ exports.mergeMiddleware = _chunkVK4MHWJVjs.mergeMiddleware;
9
+ //# sourceMappingURL=mergeMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,13 +1,9 @@
1
- import { JsonRpcEngine } from "./JsonRpcEngine.mjs";
2
- /**
3
- * Takes a stack of middleware and joins them into a single middleware function.
4
- *
5
- * @param middlewareStack - The middleware stack to merge.
6
- * @returns The merged middleware function.
7
- */
8
- export function mergeMiddleware(middlewareStack) {
9
- const engine = new JsonRpcEngine();
10
- middlewareStack.forEach((middleware) => engine.push(middleware));
11
- return engine.asMiddleware();
12
- }
1
+ import {
2
+ mergeMiddleware
3
+ } from "./chunk-KFRJCTOQ.mjs";
4
+ import "./chunk-5HCYV4FV.mjs";
5
+ import "./chunk-XUI43LEZ.mjs";
6
+ export {
7
+ mergeMiddleware
8
+ };
13
9
  //# sourceMappingURL=mergeMiddleware.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeMiddleware.mjs","sourceRoot":"","sources":["../src/mergeMiddleware.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,eAAyD;IAEzD,MAAM,MAAM,GAAG,IAAI,aAAa,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","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"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}