@metamask-previews/eth-json-rpc-middleware 21.0.0-preview-468843ab

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 (164) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +15 -0
  3. package/README.md +23 -0
  4. package/dist/block-cache.cjs +165 -0
  5. package/dist/block-cache.cjs.map +1 -0
  6. package/dist/block-cache.d.cts +9 -0
  7. package/dist/block-cache.d.cts.map +1 -0
  8. package/dist/block-cache.d.mts +9 -0
  9. package/dist/block-cache.d.mts.map +1 -0
  10. package/dist/block-cache.mjs +161 -0
  11. package/dist/block-cache.mjs.map +1 -0
  12. package/dist/block-ref-rewrite.cjs +33 -0
  13. package/dist/block-ref-rewrite.cjs.map +1 -0
  14. package/dist/block-ref-rewrite.d.cts +9 -0
  15. package/dist/block-ref-rewrite.d.cts.map +1 -0
  16. package/dist/block-ref-rewrite.d.mts +9 -0
  17. package/dist/block-ref-rewrite.d.mts.map +1 -0
  18. package/dist/block-ref-rewrite.mjs +29 -0
  19. package/dist/block-ref-rewrite.mjs.map +1 -0
  20. package/dist/block-ref.cjs +46 -0
  21. package/dist/block-ref.cjs.map +1 -0
  22. package/dist/block-ref.d.cts +11 -0
  23. package/dist/block-ref.d.cts.map +1 -0
  24. package/dist/block-ref.d.mts +11 -0
  25. package/dist/block-ref.d.mts.map +1 -0
  26. package/dist/block-ref.mjs +42 -0
  27. package/dist/block-ref.mjs.map +1 -0
  28. package/dist/block-tracker-inspector.cjs +58 -0
  29. package/dist/block-tracker-inspector.cjs.map +1 -0
  30. package/dist/block-tracker-inspector.d.cts +9 -0
  31. package/dist/block-tracker-inspector.d.cts.map +1 -0
  32. package/dist/block-tracker-inspector.d.mts +9 -0
  33. package/dist/block-tracker-inspector.d.mts.map +1 -0
  34. package/dist/block-tracker-inspector.mjs +54 -0
  35. package/dist/block-tracker-inspector.mjs.map +1 -0
  36. package/dist/fetch.cjs +48 -0
  37. package/dist/fetch.cjs.map +1 -0
  38. package/dist/fetch.d.cts +22 -0
  39. package/dist/fetch.d.cts.map +1 -0
  40. package/dist/fetch.d.mts +22 -0
  41. package/dist/fetch.d.mts.map +1 -0
  42. package/dist/fetch.mjs +44 -0
  43. package/dist/fetch.mjs.map +1 -0
  44. package/dist/index.cjs +28 -0
  45. package/dist/index.cjs.map +1 -0
  46. package/dist/index.d.cts +12 -0
  47. package/dist/index.d.cts.map +1 -0
  48. package/dist/index.d.mts +12 -0
  49. package/dist/index.d.mts.map +1 -0
  50. package/dist/index.mjs +10 -0
  51. package/dist/index.mjs.map +1 -0
  52. package/dist/inflight-cache.cjs +80 -0
  53. package/dist/inflight-cache.cjs.map +1 -0
  54. package/dist/inflight-cache.d.cts +4 -0
  55. package/dist/inflight-cache.d.cts.map +1 -0
  56. package/dist/inflight-cache.d.mts +4 -0
  57. package/dist/inflight-cache.d.mts.map +1 -0
  58. package/dist/inflight-cache.mjs +76 -0
  59. package/dist/inflight-cache.mjs.map +1 -0
  60. package/dist/logging-utils.cjs +7 -0
  61. package/dist/logging-utils.cjs.map +1 -0
  62. package/dist/logging-utils.d.cts +5 -0
  63. package/dist/logging-utils.d.cts.map +1 -0
  64. package/dist/logging-utils.d.mts +5 -0
  65. package/dist/logging-utils.d.mts.map +1 -0
  66. package/dist/logging-utils.mjs +4 -0
  67. package/dist/logging-utils.mjs.map +1 -0
  68. package/dist/methods/wallet-request-execution-permissions.cjs +41 -0
  69. package/dist/methods/wallet-request-execution-permissions.cjs.map +1 -0
  70. package/dist/methods/wallet-request-execution-permissions.d.cts +131 -0
  71. package/dist/methods/wallet-request-execution-permissions.d.cts.map +1 -0
  72. package/dist/methods/wallet-request-execution-permissions.d.mts +131 -0
  73. package/dist/methods/wallet-request-execution-permissions.d.mts.map +1 -0
  74. package/dist/methods/wallet-request-execution-permissions.mjs +37 -0
  75. package/dist/methods/wallet-request-execution-permissions.mjs.map +1 -0
  76. package/dist/methods/wallet-revoke-execution-permission.cjs +20 -0
  77. package/dist/methods/wallet-revoke-execution-permission.cjs.map +1 -0
  78. package/dist/methods/wallet-revoke-execution-permission.d.cts +13 -0
  79. package/dist/methods/wallet-revoke-execution-permission.d.cts.map +1 -0
  80. package/dist/methods/wallet-revoke-execution-permission.d.mts +13 -0
  81. package/dist/methods/wallet-revoke-execution-permission.d.mts.map +1 -0
  82. package/dist/methods/wallet-revoke-execution-permission.mjs +16 -0
  83. package/dist/methods/wallet-revoke-execution-permission.mjs.map +1 -0
  84. package/dist/providerAsMiddleware.cjs +11 -0
  85. package/dist/providerAsMiddleware.cjs.map +1 -0
  86. package/dist/providerAsMiddleware.d.cts +5 -0
  87. package/dist/providerAsMiddleware.d.cts.map +1 -0
  88. package/dist/providerAsMiddleware.d.mts +5 -0
  89. package/dist/providerAsMiddleware.d.mts.map +1 -0
  90. package/dist/providerAsMiddleware.mjs +7 -0
  91. package/dist/providerAsMiddleware.mjs.map +1 -0
  92. package/dist/retryOnEmpty.cjs +100 -0
  93. package/dist/retryOnEmpty.cjs.map +1 -0
  94. package/dist/retryOnEmpty.d.cts +11 -0
  95. package/dist/retryOnEmpty.d.cts.map +1 -0
  96. package/dist/retryOnEmpty.d.mts +11 -0
  97. package/dist/retryOnEmpty.d.mts.map +1 -0
  98. package/dist/retryOnEmpty.mjs +96 -0
  99. package/dist/retryOnEmpty.mjs.map +1 -0
  100. package/dist/types.cjs +3 -0
  101. package/dist/types.cjs.map +1 -0
  102. package/dist/types.d.cts +25 -0
  103. package/dist/types.d.cts.map +1 -0
  104. package/dist/types.d.mts +25 -0
  105. package/dist/types.d.mts.map +1 -0
  106. package/dist/types.mjs +2 -0
  107. package/dist/types.mjs.map +1 -0
  108. package/dist/utils/cache.cjs +186 -0
  109. package/dist/utils/cache.cjs.map +1 -0
  110. package/dist/utils/cache.d.cts +68 -0
  111. package/dist/utils/cache.d.cts.map +1 -0
  112. package/dist/utils/cache.d.mts +68 -0
  113. package/dist/utils/cache.d.mts.map +1 -0
  114. package/dist/utils/cache.mjs +178 -0
  115. package/dist/utils/cache.mjs.map +1 -0
  116. package/dist/utils/common.cjs +17 -0
  117. package/dist/utils/common.cjs.map +1 -0
  118. package/dist/utils/common.d.cts +8 -0
  119. package/dist/utils/common.d.cts.map +1 -0
  120. package/dist/utils/common.d.mts +8 -0
  121. package/dist/utils/common.d.mts.map +1 -0
  122. package/dist/utils/common.mjs +13 -0
  123. package/dist/utils/common.mjs.map +1 -0
  124. package/dist/utils/error.cjs +12 -0
  125. package/dist/utils/error.cjs.map +1 -0
  126. package/dist/utils/error.d.cts +3 -0
  127. package/dist/utils/error.d.cts.map +1 -0
  128. package/dist/utils/error.d.mts +3 -0
  129. package/dist/utils/error.d.mts.map +1 -0
  130. package/dist/utils/error.mjs +8 -0
  131. package/dist/utils/error.mjs.map +1 -0
  132. package/dist/utils/normalize.cjs +52 -0
  133. package/dist/utils/normalize.cjs.map +1 -0
  134. package/dist/utils/normalize.d.cts +26 -0
  135. package/dist/utils/normalize.d.cts.map +1 -0
  136. package/dist/utils/normalize.d.mts +26 -0
  137. package/dist/utils/normalize.d.mts.map +1 -0
  138. package/dist/utils/normalize.mjs +47 -0
  139. package/dist/utils/normalize.mjs.map +1 -0
  140. package/dist/utils/timeout.cjs +14 -0
  141. package/dist/utils/timeout.cjs.map +1 -0
  142. package/dist/utils/timeout.d.cts +8 -0
  143. package/dist/utils/timeout.d.cts.map +1 -0
  144. package/dist/utils/timeout.d.mts +8 -0
  145. package/dist/utils/timeout.d.mts.map +1 -0
  146. package/dist/utils/timeout.mjs +10 -0
  147. package/dist/utils/timeout.mjs.map +1 -0
  148. package/dist/utils/validation.cjs +43 -0
  149. package/dist/utils/validation.cjs.map +1 -0
  150. package/dist/utils/validation.d.cts +8 -0
  151. package/dist/utils/validation.d.cts.map +1 -0
  152. package/dist/utils/validation.d.mts +8 -0
  153. package/dist/utils/validation.d.mts.map +1 -0
  154. package/dist/utils/validation.mjs +37 -0
  155. package/dist/utils/validation.mjs.map +1 -0
  156. package/dist/wallet.cjs +327 -0
  157. package/dist/wallet.cjs.map +1 -0
  158. package/dist/wallet.d.cts +33 -0
  159. package/dist/wallet.d.cts.map +1 -0
  160. package/dist/wallet.d.mts +33 -0
  161. package/dist/wallet.d.mts.map +1 -0
  162. package/dist/wallet.mjs +300 -0
  163. package/dist/wallet.mjs.map +1 -0
  164. package/package.json +95 -0
@@ -0,0 +1,4 @@
1
+ import type { JsonRpcParams, Json } from "@metamask/utils";
2
+ import type { JsonRpcCacheMiddleware } from "./types.cjs";
3
+ export declare function createInflightCacheMiddleware(): JsonRpcCacheMiddleware<JsonRpcParams, Json>;
4
+ //# sourceMappingURL=inflight-cache.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflight-cache.d.cts","sourceRoot":"","sources":["../src/inflight-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,IAAI,EAEL,wBAAwB;AAIzB,OAAO,KAAK,EAAyB,sBAAsB,EAAE,oBAAgB;AAU7E,wBAAgB,6BAA6B,IAAI,sBAAsB,CACrE,aAAa,EACb,IAAI,CACL,CAiFA"}
@@ -0,0 +1,4 @@
1
+ import type { JsonRpcParams, Json } from "@metamask/utils";
2
+ import type { JsonRpcCacheMiddleware } from "./types.mjs";
3
+ export declare function createInflightCacheMiddleware(): JsonRpcCacheMiddleware<JsonRpcParams, Json>;
4
+ //# sourceMappingURL=inflight-cache.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflight-cache.d.mts","sourceRoot":"","sources":["../src/inflight-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,IAAI,EAEL,wBAAwB;AAIzB,OAAO,KAAK,EAAyB,sBAAsB,EAAE,oBAAgB;AAU7E,wBAAgB,6BAA6B,IAAI,sBAAsB,CACrE,aAAa,EACb,IAAI,CACL,CAiFA"}
@@ -0,0 +1,76 @@
1
+ import { createAsyncMiddleware } from "@metamask/json-rpc-engine";
2
+ import { klona } from "klona/full";
3
+ import { projectLogger, createModuleLogger } from "./logging-utils.mjs";
4
+ import { cacheIdentifierForRequest } from "./utils/cache.mjs";
5
+ const log = createModuleLogger(projectLogger, 'inflight-cache');
6
+ export function createInflightCacheMiddleware() {
7
+ const inflightRequests = {};
8
+ return createAsyncMiddleware(async (req, res, next) => {
9
+ // allow cach to be skipped if so specified
10
+ if (req.skipCache) {
11
+ return next();
12
+ }
13
+ // get cacheId, if cacheable
14
+ const cacheId = cacheIdentifierForRequest(req);
15
+ // if not cacheable, skip
16
+ if (!cacheId) {
17
+ log('Request is not cacheable, proceeding. req = %o', req);
18
+ return next();
19
+ }
20
+ // check for matching requests
21
+ let activeRequestHandlers = inflightRequests[cacheId];
22
+ // if found, wait for the active request to be handled
23
+ if (activeRequestHandlers) {
24
+ // setup the response listener and wait for it to be called
25
+ // it will handle copying the result and request fields
26
+ log('Running %i handler(s) for request %o', activeRequestHandlers.length, req);
27
+ await createActiveRequestHandler(res, activeRequestHandlers);
28
+ return undefined;
29
+ }
30
+ // setup response handler array for subsequent requests
31
+ activeRequestHandlers = [];
32
+ inflightRequests[cacheId] = activeRequestHandlers;
33
+ // allow request to be handled normally
34
+ log('Carrying original request forward %o', req);
35
+ await next();
36
+ // clear inflight requests
37
+ delete inflightRequests[cacheId];
38
+ // schedule activeRequestHandlers to be handled
39
+ log('Running %i collected handler(s) for request %o', activeRequestHandlers.length, req);
40
+ handleActiveRequest(res, activeRequestHandlers);
41
+ // complete
42
+ return undefined;
43
+ });
44
+ async function createActiveRequestHandler(res, activeRequestHandlers) {
45
+ const { resolve, promise } = deferredPromise();
46
+ activeRequestHandlers.push((handledRes) => {
47
+ // append a copy of the result and error to the response
48
+ res.result = klona(handledRes.result);
49
+ res.error = klona(handledRes.error);
50
+ resolve();
51
+ });
52
+ return promise;
53
+ }
54
+ function handleActiveRequest(res, activeRequestHandlers) {
55
+ // use setTimeout so we can resolve our original request first
56
+ setTimeout(() => {
57
+ activeRequestHandlers.forEach((handler) => {
58
+ try {
59
+ handler(res);
60
+ }
61
+ catch (err) {
62
+ // catch error so all requests are handled correctly
63
+ console.error(err);
64
+ }
65
+ });
66
+ });
67
+ }
68
+ }
69
+ function deferredPromise() {
70
+ let resolve;
71
+ const promise = new Promise((_resolve) => {
72
+ resolve = _resolve;
73
+ });
74
+ return { resolve, promise };
75
+ }
76
+ //# sourceMappingURL=inflight-cache.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflight-cache.mjs","sourceRoot":"","sources":["../src/inflight-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kCAAkC;AAMlE,OAAO,EAAE,KAAK,EAAE,mBAAmB;AAEnC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,4BAAwB;AAEpE,OAAO,EAAE,yBAAyB,EAAE,0BAAsB;AAO1D,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAEhE,MAAM,UAAU,6BAA6B;IAI3C,MAAM,gBAAgB,GAAoB,EAAE,CAAC;IAE7C,OAAO,qBAAqB,CAC1B,KAAK,EAAE,GAAyC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7D,2CAA2C;QAC3C,IAAI,GAAG,CAAC,SAAS,EAAE;YACjB,OAAO,IAAI,EAAE,CAAC;SACf;QACD,4BAA4B;QAC5B,MAAM,OAAO,GAAkB,yBAAyB,CAAC,GAAG,CAAC,CAAC;QAC9D,yBAAyB;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,GAAG,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,IAAI,EAAE,CAAC;SACf;QACD,8BAA8B;QAC9B,IAAI,qBAAqB,GAAsB,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzE,sDAAsD;QACtD,IAAI,qBAAqB,EAAE;YACzB,2DAA2D;YAC3D,uDAAuD;YACvD,GAAG,CACD,sCAAsC,EACtC,qBAAqB,CAAC,MAAM,EAC5B,GAAG,CACJ,CAAC;YACF,MAAM,0BAA0B,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;YAC7D,OAAO,SAAS,CAAC;SAClB;QACD,uDAAuD;QACvD,qBAAqB,GAAG,EAAE,CAAC;QAC3B,gBAAgB,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAAC;QAClD,uCAAuC;QACvC,GAAG,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,IAAI,EAAE,CAAC;QAEb,0BAA0B;QAC1B,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjC,+CAA+C;QAC/C,GAAG,CACD,gDAAgD,EAChD,qBAAqB,CAAC,MAAM,EAC5B,GAAG,CACJ,CAAC;QACF,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAChD,WAAW;QACX,OAAO,SAAS,CAAC;IACnB,CAAC,CACF,CAAC;IAEF,KAAK,UAAU,0BAA0B,CACvC,GAA2B,EAC3B,qBAAwC;QAExC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;QAC/C,qBAAqB,CAAC,IAAI,CAAC,CAAC,UAAkC,EAAE,EAAE;YAChE,wDAAwD;YACxD,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,mBAAmB,CAC1B,GAA2B,EAC3B,qBAAwC;QAExC,8DAA8D;QAC9D,UAAU,CAAC,GAAG,EAAE;YACd,qBAAqB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxC,IAAI;oBACF,OAAO,CAAC,GAAG,CAAC,CAAC;iBACd;gBAAC,OAAO,GAAG,EAAE;oBACZ,oDAAoD;oBACpD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACpB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAY,CAAC;IACjB,MAAM,OAAO,GAAkB,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACtD,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC","sourcesContent":["import { createAsyncMiddleware } from '@metamask/json-rpc-engine';\nimport type {\n JsonRpcParams,\n Json,\n PendingJsonRpcResponse,\n} from '@metamask/utils';\nimport { klona } from 'klona/full';\n\nimport { projectLogger, createModuleLogger } from './logging-utils';\nimport type { JsonRpcRequestToCache, JsonRpcCacheMiddleware } from './types';\nimport { cacheIdentifierForRequest } from './utils/cache';\n\ntype RequestHandlers = (handledRes: PendingJsonRpcResponse) => void;\ninterface InflightRequest {\n [cacheId: string]: RequestHandlers[];\n}\n\nconst log = createModuleLogger(projectLogger, 'inflight-cache');\n\nexport function createInflightCacheMiddleware(): JsonRpcCacheMiddleware<\n JsonRpcParams,\n Json\n> {\n const inflightRequests: InflightRequest = {};\n\n return createAsyncMiddleware(\n async (req: JsonRpcRequestToCache<JsonRpcParams>, res, next) => {\n // allow cach to be skipped if so specified\n if (req.skipCache) {\n return next();\n }\n // get cacheId, if cacheable\n const cacheId: string | null = cacheIdentifierForRequest(req);\n // if not cacheable, skip\n if (!cacheId) {\n log('Request is not cacheable, proceeding. req = %o', req);\n return next();\n }\n // check for matching requests\n let activeRequestHandlers: RequestHandlers[] = inflightRequests[cacheId];\n // if found, wait for the active request to be handled\n if (activeRequestHandlers) {\n // setup the response listener and wait for it to be called\n // it will handle copying the result and request fields\n log(\n 'Running %i handler(s) for request %o',\n activeRequestHandlers.length,\n req,\n );\n await createActiveRequestHandler(res, activeRequestHandlers);\n return undefined;\n }\n // setup response handler array for subsequent requests\n activeRequestHandlers = [];\n inflightRequests[cacheId] = activeRequestHandlers;\n // allow request to be handled normally\n log('Carrying original request forward %o', req);\n await next();\n\n // clear inflight requests\n delete inflightRequests[cacheId];\n // schedule activeRequestHandlers to be handled\n log(\n 'Running %i collected handler(s) for request %o',\n activeRequestHandlers.length,\n req,\n );\n handleActiveRequest(res, activeRequestHandlers);\n // complete\n return undefined;\n },\n );\n\n async function createActiveRequestHandler(\n res: PendingJsonRpcResponse,\n activeRequestHandlers: RequestHandlers[],\n ): Promise<void> {\n const { resolve, promise } = deferredPromise();\n activeRequestHandlers.push((handledRes: PendingJsonRpcResponse) => {\n // append a copy of the result and error to the response\n res.result = klona(handledRes.result);\n res.error = klona(handledRes.error);\n resolve();\n });\n return promise;\n }\n\n function handleActiveRequest(\n res: PendingJsonRpcResponse,\n activeRequestHandlers: RequestHandlers[],\n ): void {\n // use setTimeout so we can resolve our original request first\n setTimeout(() => {\n activeRequestHandlers.forEach((handler) => {\n try {\n handler(res);\n } catch (err) {\n // catch error so all requests are handled correctly\n console.error(err);\n }\n });\n });\n }\n}\n\nfunction deferredPromise() {\n let resolve: any;\n const promise: Promise<void> = new Promise((_resolve) => {\n resolve = _resolve;\n });\n return { resolve, promise };\n}\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createModuleLogger = exports.projectLogger = void 0;
4
+ const utils_1 = require("@metamask/utils");
5
+ Object.defineProperty(exports, "createModuleLogger", { enumerable: true, get: function () { return utils_1.createModuleLogger; } });
6
+ exports.projectLogger = (0, utils_1.createProjectLogger)('eth-json-rpc-middleware');
7
+ //# sourceMappingURL=logging-utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-utils.cjs","sourceRoot":"","sources":["../src/logging-utils.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAIjE,mGAJqB,0BAAkB,OAIrB;AAFd,QAAA,aAAa,GAAG,IAAA,2BAAmB,EAAC,yBAAyB,CAAC,CAAC","sourcesContent":["import { createProjectLogger, createModuleLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger('eth-json-rpc-middleware');\n\nexport { createModuleLogger };\n"]}
@@ -0,0 +1,5 @@
1
+ /// <reference types="debug" />
2
+ import { createModuleLogger } from "@metamask/utils";
3
+ export declare const projectLogger: import("debug").Debugger;
4
+ export { createModuleLogger };
5
+ //# sourceMappingURL=logging-utils.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-utils.d.cts","sourceRoot":"","sources":["../src/logging-utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAiD,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="debug" />
2
+ import { createModuleLogger } from "@metamask/utils";
3
+ export declare const projectLogger: import("debug").Debugger;
4
+ export { createModuleLogger };
5
+ //# sourceMappingURL=logging-utils.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-utils.d.mts","sourceRoot":"","sources":["../src/logging-utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAiD,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { createProjectLogger, createModuleLogger } from "@metamask/utils";
2
+ export const projectLogger = createProjectLogger('eth-json-rpc-middleware');
3
+ export { createModuleLogger };
4
+ //# sourceMappingURL=logging-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-utils.mjs","sourceRoot":"","sources":["../src/logging-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,wBAAwB;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAC","sourcesContent":["import { createProjectLogger, createModuleLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger('eth-json-rpc-middleware');\n\nexport { createModuleLogger };\n"]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.walletRequestExecutionPermissions = exports.RequestExecutionPermissionsStruct = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const superstruct_1 = require("@metamask/superstruct");
6
+ const utils_1 = require("@metamask/utils");
7
+ const validation_1 = require("../utils/validation.cjs");
8
+ const PermissionStruct = (0, superstruct_1.object)({
9
+ type: (0, superstruct_1.string)(),
10
+ isAdjustmentAllowed: (0, superstruct_1.boolean)(),
11
+ data: (0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.unknown)()),
12
+ });
13
+ const RuleStruct = (0, superstruct_1.object)({
14
+ type: (0, superstruct_1.string)(),
15
+ isAdjustmentAllowed: (0, superstruct_1.boolean)(),
16
+ data: (0, superstruct_1.record)((0, superstruct_1.string)(), (0, superstruct_1.unknown)()),
17
+ });
18
+ const AccountSignerStruct = (0, superstruct_1.object)({
19
+ type: (0, superstruct_1.literal)('account'),
20
+ data: (0, superstruct_1.object)({
21
+ address: utils_1.HexChecksumAddressStruct,
22
+ }),
23
+ });
24
+ const PermissionRequestStruct = (0, superstruct_1.object)({
25
+ chainId: utils_1.StrictHexStruct,
26
+ address: (0, superstruct_1.optional)(utils_1.HexChecksumAddressStruct),
27
+ signer: AccountSignerStruct,
28
+ permission: PermissionStruct,
29
+ rules: (0, superstruct_1.optional)((0, superstruct_1.union)([(0, superstruct_1.array)(RuleStruct), (0, superstruct_1.literal)(null)])),
30
+ });
31
+ exports.RequestExecutionPermissionsStruct = (0, superstruct_1.array)(PermissionRequestStruct);
32
+ async function walletRequestExecutionPermissions(req, res, { processRequestExecutionPermissions, }) {
33
+ if (!processRequestExecutionPermissions) {
34
+ throw rpc_errors_1.rpcErrors.methodNotSupported('wallet_requestExecutionPermissions - no middleware configured');
35
+ }
36
+ const { params } = req;
37
+ (0, validation_1.validateParams)(params, exports.RequestExecutionPermissionsStruct);
38
+ res.result = await processRequestExecutionPermissions(params, req);
39
+ }
40
+ exports.walletRequestExecutionPermissions = walletRequestExecutionPermissions;
41
+ //# sourceMappingURL=wallet-request-execution-permissions.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-request-execution-permissions.cjs","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD,uDAU+B;AAC/B,2CAOyB;AAEzB,wDAAqD;AAErD,MAAM,gBAAgB,GAAG,IAAA,oBAAM,EAAC;IAC9B,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,mBAAmB,EAAE,IAAA,qBAAO,GAAE;IAC9B,IAAI,EAAE,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,qBAAO,GAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAA,oBAAM,EAAC;IACxB,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,mBAAmB,EAAE,IAAA,qBAAO,GAAE;IAC9B,IAAI,EAAE,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,IAAA,qBAAO,GAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,IAAA,oBAAM,EAAC;IACjC,IAAI,EAAE,IAAA,qBAAO,EAAC,SAAS,CAAC;IACxB,IAAI,EAAE,IAAA,oBAAM,EAAC;QACX,OAAO,EAAE,gCAAwB;KAClC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,IAAA,oBAAM,EAAC;IACrC,OAAO,EAAE,uBAAe;IACxB,OAAO,EAAE,IAAA,sBAAQ,EAAC,gCAAwB,CAAC;IAC3C,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,IAAA,sBAAQ,EAAC,IAAA,mBAAK,EAAC,CAAC,IAAA,mBAAK,EAAC,UAAU,CAAC,EAAE,IAAA,qBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEU,QAAA,iCAAiC,GAAG,IAAA,mBAAK,EAAC,uBAAuB,CAAC,CAAC;AAiBzE,KAAK,UAAU,iCAAiC,CACrD,GAAmB,EACnB,GAA2B,EAC3B,EACE,kCAAkC,GAGnC;IAED,IAAI,CAAC,kCAAkC,EAAE;QACvC,MAAM,sBAAS,CAAC,kBAAkB,CAChC,+DAA+D,CAChE,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAA,2BAAc,EAAC,MAAM,EAAE,yCAAiC,CAAC,CAAC;IAE1D,GAAG,CAAC,MAAM,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AApBD,8EAoBC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n array,\n boolean,\n literal,\n object,\n optional,\n record,\n string,\n union,\n unknown,\n} from '@metamask/superstruct';\nimport {\n HexChecksumAddressStruct,\n type Hex,\n type Json,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nconst PermissionStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst RuleStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst AccountSignerStruct = object({\n type: literal('account'),\n data: object({\n address: HexChecksumAddressStruct,\n }),\n});\n\nconst PermissionRequestStruct = object({\n chainId: StrictHexStruct,\n address: optional(HexChecksumAddressStruct),\n signer: AccountSignerStruct,\n permission: PermissionStruct,\n rules: optional(union([array(RuleStruct), literal(null)])),\n});\n\nexport const RequestExecutionPermissionsStruct = array(PermissionRequestStruct);\n\n// RequestExecutionPermissions API types\nexport type RequestExecutionPermissionsRequestParams = Infer<\n typeof RequestExecutionPermissionsStruct\n>;\n\nexport type RequestExecutionPermissionsResult = Json &\n (Infer<typeof PermissionRequestStruct> & {\n context: Hex;\n })[];\n\nexport type ProcessRequestExecutionPermissionsHook = (\n request: RequestExecutionPermissionsRequestParams,\n req: JsonRpcRequest,\n) => Promise<RequestExecutionPermissionsResult>;\n\nexport async function walletRequestExecutionPermissions(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRequestExecutionPermissions,\n }: {\n processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;\n },\n): Promise<void> {\n if (!processRequestExecutionPermissions) {\n throw rpcErrors.methodNotSupported(\n 'wallet_requestExecutionPermissions - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RequestExecutionPermissionsStruct);\n\n res.result = await processRequestExecutionPermissions(params, req);\n}\n"]}
@@ -0,0 +1,131 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ import { type Hex, type Json, type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ declare const PermissionRequestStruct: import("@metamask/superstruct").Struct<{
4
+ chainId: `0x${string}`;
5
+ signer: {
6
+ type: "account";
7
+ data: {
8
+ address: `0x${string}`;
9
+ };
10
+ };
11
+ permission: {
12
+ type: string;
13
+ data: Record<string, unknown>;
14
+ isAdjustmentAllowed: boolean;
15
+ };
16
+ address?: `0x${string}` | undefined;
17
+ rules?: {
18
+ type: string;
19
+ data: Record<string, unknown>;
20
+ isAdjustmentAllowed: boolean;
21
+ }[] | null | undefined;
22
+ }, {
23
+ chainId: import("@metamask/superstruct").Struct<`0x${string}`, null>;
24
+ address: import("@metamask/superstruct").Struct<`0x${string}` | undefined, null>;
25
+ signer: import("@metamask/superstruct").Struct<{
26
+ type: "account";
27
+ data: {
28
+ address: `0x${string}`;
29
+ };
30
+ }, {
31
+ type: import("@metamask/superstruct").Struct<"account", "account">;
32
+ data: import("@metamask/superstruct").Struct<{
33
+ address: `0x${string}`;
34
+ }, {
35
+ address: import("@metamask/superstruct").Struct<`0x${string}`, null>;
36
+ }>;
37
+ }>;
38
+ permission: import("@metamask/superstruct").Struct<{
39
+ type: string;
40
+ data: Record<string, unknown>;
41
+ isAdjustmentAllowed: boolean;
42
+ }, {
43
+ type: import("@metamask/superstruct").Struct<string, null>;
44
+ isAdjustmentAllowed: import("@metamask/superstruct").Struct<boolean, null>;
45
+ data: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
46
+ }>;
47
+ rules: import("@metamask/superstruct").Struct<{
48
+ type: string;
49
+ data: Record<string, unknown>;
50
+ isAdjustmentAllowed: boolean;
51
+ }[] | null | undefined, null>;
52
+ }>;
53
+ export declare const RequestExecutionPermissionsStruct: import("@metamask/superstruct").Struct<{
54
+ chainId: `0x${string}`;
55
+ signer: {
56
+ type: "account";
57
+ data: {
58
+ address: `0x${string}`;
59
+ };
60
+ };
61
+ permission: {
62
+ type: string;
63
+ data: Record<string, unknown>;
64
+ isAdjustmentAllowed: boolean;
65
+ };
66
+ address?: `0x${string}` | undefined;
67
+ rules?: {
68
+ type: string;
69
+ data: Record<string, unknown>;
70
+ isAdjustmentAllowed: boolean;
71
+ }[] | null | undefined;
72
+ }[], import("@metamask/superstruct").Struct<{
73
+ chainId: `0x${string}`;
74
+ signer: {
75
+ type: "account";
76
+ data: {
77
+ address: `0x${string}`;
78
+ };
79
+ };
80
+ permission: {
81
+ type: string;
82
+ data: Record<string, unknown>;
83
+ isAdjustmentAllowed: boolean;
84
+ };
85
+ address?: `0x${string}` | undefined;
86
+ rules?: {
87
+ type: string;
88
+ data: Record<string, unknown>;
89
+ isAdjustmentAllowed: boolean;
90
+ }[] | null | undefined;
91
+ }, {
92
+ chainId: import("@metamask/superstruct").Struct<`0x${string}`, null>;
93
+ address: import("@metamask/superstruct").Struct<`0x${string}` | undefined, null>;
94
+ signer: import("@metamask/superstruct").Struct<{
95
+ type: "account";
96
+ data: {
97
+ address: `0x${string}`;
98
+ };
99
+ }, {
100
+ type: import("@metamask/superstruct").Struct<"account", "account">;
101
+ data: import("@metamask/superstruct").Struct<{
102
+ address: `0x${string}`;
103
+ }, {
104
+ address: import("@metamask/superstruct").Struct<`0x${string}`, null>;
105
+ }>;
106
+ }>;
107
+ permission: import("@metamask/superstruct").Struct<{
108
+ type: string;
109
+ data: Record<string, unknown>;
110
+ isAdjustmentAllowed: boolean;
111
+ }, {
112
+ type: import("@metamask/superstruct").Struct<string, null>;
113
+ isAdjustmentAllowed: import("@metamask/superstruct").Struct<boolean, null>;
114
+ data: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
115
+ }>;
116
+ rules: import("@metamask/superstruct").Struct<{
117
+ type: string;
118
+ data: Record<string, unknown>;
119
+ isAdjustmentAllowed: boolean;
120
+ }[] | null | undefined, null>;
121
+ }>>;
122
+ export type RequestExecutionPermissionsRequestParams = Infer<typeof RequestExecutionPermissionsStruct>;
123
+ export type RequestExecutionPermissionsResult = Json & (Infer<typeof PermissionRequestStruct> & {
124
+ context: Hex;
125
+ })[];
126
+ export type ProcessRequestExecutionPermissionsHook = (request: RequestExecutionPermissionsRequestParams, req: JsonRpcRequest) => Promise<RequestExecutionPermissionsResult>;
127
+ export declare function walletRequestExecutionPermissions(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRequestExecutionPermissions, }: {
128
+ processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;
129
+ }): Promise<void>;
130
+ export {};
131
+ //# sourceMappingURL=wallet-request-execution-permissions.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-request-execution-permissions.d.cts","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAYnD,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAuBzB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC;AAGhF,MAAM,MAAM,wCAAwC,GAAG,KAAK,CAC1D,OAAO,iCAAiC,CACzC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,IAAI,GAClD,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAAG;IACvC,OAAO,EAAE,GAAG,CAAC;CACd,CAAC,EAAE,CAAC;AAEP,MAAM,MAAM,sCAAsC,GAAG,CACnD,OAAO,EAAE,wCAAwC,EACjD,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,kCAAkC,GACnC,EAAE;IACD,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;CAC7E,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,131 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ import { type Hex, type Json, type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ declare const PermissionRequestStruct: import("@metamask/superstruct").Struct<{
4
+ chainId: `0x${string}`;
5
+ signer: {
6
+ type: "account";
7
+ data: {
8
+ address: `0x${string}`;
9
+ };
10
+ };
11
+ permission: {
12
+ type: string;
13
+ data: Record<string, unknown>;
14
+ isAdjustmentAllowed: boolean;
15
+ };
16
+ address?: `0x${string}` | undefined;
17
+ rules?: {
18
+ type: string;
19
+ data: Record<string, unknown>;
20
+ isAdjustmentAllowed: boolean;
21
+ }[] | null | undefined;
22
+ }, {
23
+ chainId: import("@metamask/superstruct").Struct<`0x${string}`, null>;
24
+ address: import("@metamask/superstruct").Struct<`0x${string}` | undefined, null>;
25
+ signer: import("@metamask/superstruct").Struct<{
26
+ type: "account";
27
+ data: {
28
+ address: `0x${string}`;
29
+ };
30
+ }, {
31
+ type: import("@metamask/superstruct").Struct<"account", "account">;
32
+ data: import("@metamask/superstruct").Struct<{
33
+ address: `0x${string}`;
34
+ }, {
35
+ address: import("@metamask/superstruct").Struct<`0x${string}`, null>;
36
+ }>;
37
+ }>;
38
+ permission: import("@metamask/superstruct").Struct<{
39
+ type: string;
40
+ data: Record<string, unknown>;
41
+ isAdjustmentAllowed: boolean;
42
+ }, {
43
+ type: import("@metamask/superstruct").Struct<string, null>;
44
+ isAdjustmentAllowed: import("@metamask/superstruct").Struct<boolean, null>;
45
+ data: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
46
+ }>;
47
+ rules: import("@metamask/superstruct").Struct<{
48
+ type: string;
49
+ data: Record<string, unknown>;
50
+ isAdjustmentAllowed: boolean;
51
+ }[] | null | undefined, null>;
52
+ }>;
53
+ export declare const RequestExecutionPermissionsStruct: import("@metamask/superstruct").Struct<{
54
+ chainId: `0x${string}`;
55
+ signer: {
56
+ type: "account";
57
+ data: {
58
+ address: `0x${string}`;
59
+ };
60
+ };
61
+ permission: {
62
+ type: string;
63
+ data: Record<string, unknown>;
64
+ isAdjustmentAllowed: boolean;
65
+ };
66
+ address?: `0x${string}` | undefined;
67
+ rules?: {
68
+ type: string;
69
+ data: Record<string, unknown>;
70
+ isAdjustmentAllowed: boolean;
71
+ }[] | null | undefined;
72
+ }[], import("@metamask/superstruct").Struct<{
73
+ chainId: `0x${string}`;
74
+ signer: {
75
+ type: "account";
76
+ data: {
77
+ address: `0x${string}`;
78
+ };
79
+ };
80
+ permission: {
81
+ type: string;
82
+ data: Record<string, unknown>;
83
+ isAdjustmentAllowed: boolean;
84
+ };
85
+ address?: `0x${string}` | undefined;
86
+ rules?: {
87
+ type: string;
88
+ data: Record<string, unknown>;
89
+ isAdjustmentAllowed: boolean;
90
+ }[] | null | undefined;
91
+ }, {
92
+ chainId: import("@metamask/superstruct").Struct<`0x${string}`, null>;
93
+ address: import("@metamask/superstruct").Struct<`0x${string}` | undefined, null>;
94
+ signer: import("@metamask/superstruct").Struct<{
95
+ type: "account";
96
+ data: {
97
+ address: `0x${string}`;
98
+ };
99
+ }, {
100
+ type: import("@metamask/superstruct").Struct<"account", "account">;
101
+ data: import("@metamask/superstruct").Struct<{
102
+ address: `0x${string}`;
103
+ }, {
104
+ address: import("@metamask/superstruct").Struct<`0x${string}`, null>;
105
+ }>;
106
+ }>;
107
+ permission: import("@metamask/superstruct").Struct<{
108
+ type: string;
109
+ data: Record<string, unknown>;
110
+ isAdjustmentAllowed: boolean;
111
+ }, {
112
+ type: import("@metamask/superstruct").Struct<string, null>;
113
+ isAdjustmentAllowed: import("@metamask/superstruct").Struct<boolean, null>;
114
+ data: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
115
+ }>;
116
+ rules: import("@metamask/superstruct").Struct<{
117
+ type: string;
118
+ data: Record<string, unknown>;
119
+ isAdjustmentAllowed: boolean;
120
+ }[] | null | undefined, null>;
121
+ }>>;
122
+ export type RequestExecutionPermissionsRequestParams = Infer<typeof RequestExecutionPermissionsStruct>;
123
+ export type RequestExecutionPermissionsResult = Json & (Infer<typeof PermissionRequestStruct> & {
124
+ context: Hex;
125
+ })[];
126
+ export type ProcessRequestExecutionPermissionsHook = (request: RequestExecutionPermissionsRequestParams, req: JsonRpcRequest) => Promise<RequestExecutionPermissionsResult>;
127
+ export declare function walletRequestExecutionPermissions(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRequestExecutionPermissions, }: {
128
+ processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;
129
+ }): Promise<void>;
130
+ export {};
131
+ //# sourceMappingURL=wallet-request-execution-permissions.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-request-execution-permissions.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAYnD,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAuBzB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC;AAGhF,MAAM,MAAM,wCAAwC,GAAG,KAAK,CAC1D,OAAO,iCAAiC,CACzC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,IAAI,GAClD,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAAG;IACvC,OAAO,EAAE,GAAG,CAAC;CACd,CAAC,EAAE,CAAC;AAEP,MAAM,MAAM,sCAAsC,GAAG,CACnD,OAAO,EAAE,wCAAwC,EACjD,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,kCAAkC,GACnC,EAAE;IACD,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;CAC7E,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,37 @@
1
+ import { rpcErrors } from "@metamask/rpc-errors";
2
+ import { array, boolean, literal, object, optional, record, string, union, unknown } from "@metamask/superstruct";
3
+ import { HexChecksumAddressStruct, StrictHexStruct } from "@metamask/utils";
4
+ import { validateParams } from "../utils/validation.mjs";
5
+ const PermissionStruct = object({
6
+ type: string(),
7
+ isAdjustmentAllowed: boolean(),
8
+ data: record(string(), unknown()),
9
+ });
10
+ const RuleStruct = object({
11
+ type: string(),
12
+ isAdjustmentAllowed: boolean(),
13
+ data: record(string(), unknown()),
14
+ });
15
+ const AccountSignerStruct = object({
16
+ type: literal('account'),
17
+ data: object({
18
+ address: HexChecksumAddressStruct,
19
+ }),
20
+ });
21
+ const PermissionRequestStruct = object({
22
+ chainId: StrictHexStruct,
23
+ address: optional(HexChecksumAddressStruct),
24
+ signer: AccountSignerStruct,
25
+ permission: PermissionStruct,
26
+ rules: optional(union([array(RuleStruct), literal(null)])),
27
+ });
28
+ export const RequestExecutionPermissionsStruct = array(PermissionRequestStruct);
29
+ export async function walletRequestExecutionPermissions(req, res, { processRequestExecutionPermissions, }) {
30
+ if (!processRequestExecutionPermissions) {
31
+ throw rpcErrors.methodNotSupported('wallet_requestExecutionPermissions - no middleware configured');
32
+ }
33
+ const { params } = req;
34
+ validateParams(params, RequestExecutionPermissionsStruct);
35
+ res.result = await processRequestExecutionPermissions(params, req);
36
+ }
37
+ //# sourceMappingURL=wallet-request-execution-permissions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-request-execution-permissions.mjs","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAEjD,OAAO,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACR,8BAA8B;AAC/B,OAAO,EACL,wBAAwB,EAKxB,eAAe,EAChB,wBAAwB;AAEzB,OAAO,EAAE,cAAc,EAAE,gCAA4B;AAErD,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,EAAE;IACd,mBAAmB,EAAE,OAAO,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE;IACd,mBAAmB,EAAE,OAAO,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,wBAAwB;KAClC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,MAAM,CAAC;IACrC,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAC3C,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAiBhF,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,GAAmB,EACnB,GAA2B,EAC3B,EACE,kCAAkC,GAGnC;IAED,IAAI,CAAC,kCAAkC,EAAE;QACvC,MAAM,SAAS,CAAC,kBAAkB,CAChC,+DAA+D,CAChE,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,cAAc,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IAE1D,GAAG,CAAC,MAAM,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n array,\n boolean,\n literal,\n object,\n optional,\n record,\n string,\n union,\n unknown,\n} from '@metamask/superstruct';\nimport {\n HexChecksumAddressStruct,\n type Hex,\n type Json,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nconst PermissionStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst RuleStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst AccountSignerStruct = object({\n type: literal('account'),\n data: object({\n address: HexChecksumAddressStruct,\n }),\n});\n\nconst PermissionRequestStruct = object({\n chainId: StrictHexStruct,\n address: optional(HexChecksumAddressStruct),\n signer: AccountSignerStruct,\n permission: PermissionStruct,\n rules: optional(union([array(RuleStruct), literal(null)])),\n});\n\nexport const RequestExecutionPermissionsStruct = array(PermissionRequestStruct);\n\n// RequestExecutionPermissions API types\nexport type RequestExecutionPermissionsRequestParams = Infer<\n typeof RequestExecutionPermissionsStruct\n>;\n\nexport type RequestExecutionPermissionsResult = Json &\n (Infer<typeof PermissionRequestStruct> & {\n context: Hex;\n })[];\n\nexport type ProcessRequestExecutionPermissionsHook = (\n request: RequestExecutionPermissionsRequestParams,\n req: JsonRpcRequest,\n) => Promise<RequestExecutionPermissionsResult>;\n\nexport async function walletRequestExecutionPermissions(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRequestExecutionPermissions,\n }: {\n processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;\n },\n): Promise<void> {\n if (!processRequestExecutionPermissions) {\n throw rpcErrors.methodNotSupported(\n 'wallet_requestExecutionPermissions - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RequestExecutionPermissionsStruct);\n\n res.result = await processRequestExecutionPermissions(params, req);\n}\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.walletRevokeExecutionPermission = exports.RevokeExecutionPermissionRequestParamsStruct = exports.RevokeExecutionPermissionResultStruct = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const utils_1 = require("@metamask/utils");
6
+ const validation_1 = require("../utils/validation.cjs");
7
+ exports.RevokeExecutionPermissionResultStruct = (0, utils_1.object)({});
8
+ exports.RevokeExecutionPermissionRequestParamsStruct = (0, utils_1.object)({
9
+ permissionContext: utils_1.StrictHexStruct,
10
+ });
11
+ async function walletRevokeExecutionPermission(req, res, { processRevokeExecutionPermission, }) {
12
+ if (!processRevokeExecutionPermission) {
13
+ throw rpc_errors_1.rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
14
+ }
15
+ const { params } = req;
16
+ (0, validation_1.validateParams)(params, exports.RevokeExecutionPermissionRequestParamsStruct);
17
+ res.result = await processRevokeExecutionPermission(params, req);
18
+ }
19
+ exports.walletRevokeExecutionPermission = walletRevokeExecutionPermission;
20
+ //# sourceMappingURL=wallet-revoke-execution-permission.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-revoke-execution-permission.cjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD,2CAKyB;AAEzB,wDAAqD;AAExC,QAAA,qCAAqC,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAC;AAMnD,QAAA,4CAA4C,GAAG,IAAA,cAAM,EAAC;IACjE,iBAAiB,EAAE,uBAAe;CACnC,CAAC,CAAC;AAWI,KAAK,UAAU,+BAA+B,CACnD,GAAmB,EACnB,GAA2B,EAC3B,EACE,gCAAgC,GAGjC;IAED,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,sBAAS,CAAC,kBAAkB,CAChC,6DAA6D,CAC9D,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAA,2BAAc,EAAC,MAAM,EAAE,oDAA4C,CAAC,CAAC;IAErE,GAAG,CAAC,MAAM,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC;AApBD,0EAoBC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n type JsonRpcRequest,\n object,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nexport const RevokeExecutionPermissionResultStruct = object({});\n\nexport type RevokeExecutionPermissionResult = Infer<\n typeof RevokeExecutionPermissionResultStruct\n>;\n\nexport const RevokeExecutionPermissionRequestParamsStruct = object({\n permissionContext: StrictHexStruct,\n});\n\nexport type RevokeExecutionPermissionRequestParams = Infer<\n typeof RevokeExecutionPermissionRequestParamsStruct\n>;\n\nexport type ProcessRevokeExecutionPermissionHook = (\n request: RevokeExecutionPermissionRequestParams,\n req: JsonRpcRequest,\n) => Promise<RevokeExecutionPermissionResult>;\n\nexport async function walletRevokeExecutionPermission(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRevokeExecutionPermission,\n }: {\n processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;\n },\n): Promise<void> {\n if (!processRevokeExecutionPermission) {\n throw rpcErrors.methodNotSupported(\n 'wallet_revokeExecutionPermission - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RevokeExecutionPermissionRequestParamsStruct);\n\n res.result = await processRevokeExecutionPermission(params, req);\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ import { type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, unknown>;
4
+ export type RevokeExecutionPermissionResult = Infer<typeof RevokeExecutionPermissionResultStruct>;
5
+ export declare const RevokeExecutionPermissionRequestParamsStruct: import("@metamask/superstruct").Struct<{
6
+ permissionContext: `0x${string}`;
7
+ }, unknown>;
8
+ export type RevokeExecutionPermissionRequestParams = Infer<typeof RevokeExecutionPermissionRequestParamsStruct>;
9
+ export type ProcessRevokeExecutionPermissionHook = (request: RevokeExecutionPermissionRequestParams, req: JsonRpcRequest) => Promise<RevokeExecutionPermissionResult>;
10
+ export declare function walletRevokeExecutionPermission(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRevokeExecutionPermission, }: {
11
+ processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=wallet-revoke-execution-permission.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-revoke-execution-permission.d.cts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAIzB,eAAO,MAAM,qCAAqC,qDAAa,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4CAA4C;;WAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,KAAK,CACxD,OAAO,4CAA4C,CACpD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,CACjD,OAAO,EAAE,sCAAsC,EAC/C,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE9C,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,gCAAgC,GACjC,EAAE;IACD,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,13 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ import { type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, unknown>;
4
+ export type RevokeExecutionPermissionResult = Infer<typeof RevokeExecutionPermissionResultStruct>;
5
+ export declare const RevokeExecutionPermissionRequestParamsStruct: import("@metamask/superstruct").Struct<{
6
+ permissionContext: `0x${string}`;
7
+ }, unknown>;
8
+ export type RevokeExecutionPermissionRequestParams = Infer<typeof RevokeExecutionPermissionRequestParamsStruct>;
9
+ export type ProcessRevokeExecutionPermissionHook = (request: RevokeExecutionPermissionRequestParams, req: JsonRpcRequest) => Promise<RevokeExecutionPermissionResult>;
10
+ export declare function walletRevokeExecutionPermission(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRevokeExecutionPermission, }: {
11
+ processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=wallet-revoke-execution-permission.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-revoke-execution-permission.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAIzB,eAAO,MAAM,qCAAqC,qDAAa,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4CAA4C;;WAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,KAAK,CACxD,OAAO,4CAA4C,CACpD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,CACjD,OAAO,EAAE,sCAAsC,EAC/C,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE9C,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,gCAAgC,GACjC,EAAE;IACD,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
@@ -0,0 +1,16 @@
1
+ import { rpcErrors } from "@metamask/rpc-errors";
2
+ import { object, StrictHexStruct } from "@metamask/utils";
3
+ import { validateParams } from "../utils/validation.mjs";
4
+ export const RevokeExecutionPermissionResultStruct = object({});
5
+ export const RevokeExecutionPermissionRequestParamsStruct = object({
6
+ permissionContext: StrictHexStruct,
7
+ });
8
+ export async function walletRevokeExecutionPermission(req, res, { processRevokeExecutionPermission, }) {
9
+ if (!processRevokeExecutionPermission) {
10
+ throw rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
11
+ }
12
+ const { params } = req;
13
+ validateParams(params, RevokeExecutionPermissionRequestParamsStruct);
14
+ res.result = await processRevokeExecutionPermission(params, req);
15
+ }
16
+ //# sourceMappingURL=wallet-revoke-execution-permission.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-revoke-execution-permission.mjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAEjD,OAAO,EAEL,MAAM,EAEN,eAAe,EAChB,wBAAwB;AAEzB,OAAO,EAAE,cAAc,EAAE,gCAA4B;AAErD,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAMhE,MAAM,CAAC,MAAM,4CAA4C,GAAG,MAAM,CAAC;IACjE,iBAAiB,EAAE,eAAe;CACnC,CAAC,CAAC;AAWH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAmB,EACnB,GAA2B,EAC3B,EACE,gCAAgC,GAGjC;IAED,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,SAAS,CAAC,kBAAkB,CAChC,6DAA6D,CAC9D,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,cAAc,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAErE,GAAG,CAAC,MAAM,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n type JsonRpcRequest,\n object,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nexport const RevokeExecutionPermissionResultStruct = object({});\n\nexport type RevokeExecutionPermissionResult = Infer<\n typeof RevokeExecutionPermissionResultStruct\n>;\n\nexport const RevokeExecutionPermissionRequestParamsStruct = object({\n permissionContext: StrictHexStruct,\n});\n\nexport type RevokeExecutionPermissionRequestParams = Infer<\n typeof RevokeExecutionPermissionRequestParamsStruct\n>;\n\nexport type ProcessRevokeExecutionPermissionHook = (\n request: RevokeExecutionPermissionRequestParams,\n req: JsonRpcRequest,\n) => Promise<RevokeExecutionPermissionResult>;\n\nexport async function walletRevokeExecutionPermission(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRevokeExecutionPermission,\n }: {\n processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;\n },\n): Promise<void> {\n if (!processRevokeExecutionPermission) {\n throw rpcErrors.methodNotSupported(\n 'wallet_revokeExecutionPermission - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RevokeExecutionPermissionRequestParamsStruct);\n\n res.result = await processRevokeExecutionPermission(params, req);\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.providerAsMiddleware = void 0;
4
+ const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
5
+ function providerAsMiddleware(provider) {
6
+ return (0, json_rpc_engine_1.createAsyncMiddleware)(async (req, res) => {
7
+ res.result = await provider.request(req);
8
+ });
9
+ }
10
+ exports.providerAsMiddleware = providerAsMiddleware;
11
+ //# sourceMappingURL=providerAsMiddleware.cjs.map