@metamask/snaps-cli 0.34.1-flask.1 → 0.35.0-flask.1

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 (143) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/cjs/builders.js +149 -0
  3. package/dist/{builders.js.map → cjs/builders.js.map} +1 -1
  4. package/dist/cjs/cli.js +35 -0
  5. package/dist/cjs/cli.js.map +1 -0
  6. package/dist/cjs/cmds/build/buildHandler.js +36 -0
  7. package/dist/cjs/cmds/build/buildHandler.js.map +1 -0
  8. package/dist/cjs/cmds/build/bundle.js +83 -0
  9. package/dist/{cmds → cjs/cmds}/build/bundle.js.map +1 -1
  10. package/dist/cjs/cmds/build/index.js +32 -0
  11. package/dist/cjs/cmds/build/index.js.map +1 -0
  12. package/dist/cjs/cmds/build/utils.js +79 -0
  13. package/dist/cjs/cmds/build/utils.js.map +1 -0
  14. package/dist/cjs/cmds/eval/evalHandler.js +24 -0
  15. package/dist/cjs/cmds/eval/evalHandler.js.map +1 -0
  16. package/dist/cjs/cmds/eval/index.js +31 -0
  17. package/dist/cjs/cmds/eval/index.js.map +1 -0
  18. package/dist/cjs/cmds/index.js +30 -0
  19. package/dist/cjs/cmds/index.js.map +1 -0
  20. package/dist/cjs/cmds/manifest/index.js +44 -0
  21. package/dist/cjs/cmds/manifest/index.js.map +1 -0
  22. package/dist/cjs/cmds/manifest/manifestHandler.js +46 -0
  23. package/dist/cjs/cmds/manifest/manifestHandler.js.map +1 -0
  24. package/dist/cjs/cmds/serve/index.js +31 -0
  25. package/dist/cjs/cmds/serve/index.js.map +1 -0
  26. package/dist/cjs/cmds/serve/serveHandler.js +62 -0
  27. package/dist/cjs/cmds/serve/serveHandler.js.map +1 -0
  28. package/dist/cjs/cmds/serve/serveUtils.js +37 -0
  29. package/dist/cjs/cmds/serve/serveUtils.js.map +1 -0
  30. package/dist/cjs/cmds/watch/index.js +32 -0
  31. package/dist/cjs/cmds/watch/index.js.map +1 -0
  32. package/dist/cjs/cmds/watch/watchHandler.js +91 -0
  33. package/dist/cjs/cmds/watch/watchHandler.js.map +1 -0
  34. package/dist/cjs/index.js +52 -0
  35. package/dist/cjs/index.js.map +1 -0
  36. package/dist/cjs/main.js +20 -0
  37. package/dist/cjs/main.js.map +1 -0
  38. package/dist/cjs/utils/index.js +21 -0
  39. package/dist/cjs/utils/index.js.map +1 -0
  40. package/dist/cjs/utils/misc.js +141 -0
  41. package/dist/cjs/utils/misc.js.map +1 -0
  42. package/dist/cjs/utils/snap-config.js +101 -0
  43. package/dist/cjs/utils/snap-config.js.map +1 -0
  44. package/dist/{builders.js → esm/builders.js} +27 -29
  45. package/dist/esm/builders.js.map +1 -0
  46. package/dist/esm/cli.js +26 -0
  47. package/dist/esm/cli.js.map +1 -0
  48. package/dist/esm/cmds/build/buildHandler.js +36 -0
  49. package/dist/esm/cmds/build/buildHandler.js.map +1 -0
  50. package/dist/{cmds → esm/cmds}/build/bundle.js +40 -39
  51. package/dist/esm/cmds/build/bundle.js.map +1 -0
  52. package/dist/esm/cmds/build/index.js +17 -0
  53. package/dist/esm/cmds/build/index.js.map +1 -0
  54. package/dist/{cmds → esm/cmds}/build/utils.js +22 -34
  55. package/dist/esm/cmds/build/utils.js.map +1 -0
  56. package/dist/esm/cmds/eval/evalHandler.js +20 -0
  57. package/dist/esm/cmds/eval/evalHandler.js.map +1 -0
  58. package/dist/esm/cmds/eval/index.js +16 -0
  59. package/dist/esm/cmds/eval/index.js.map +1 -0
  60. package/dist/esm/cmds/index.js +15 -0
  61. package/dist/esm/cmds/index.js.map +1 -0
  62. package/dist/esm/cmds/manifest/index.js +29 -0
  63. package/dist/esm/cmds/manifest/index.js.map +1 -0
  64. package/dist/esm/cmds/manifest/manifestHandler.js +43 -0
  65. package/dist/esm/cmds/manifest/manifestHandler.js.map +1 -0
  66. package/dist/esm/cmds/serve/index.js +16 -0
  67. package/dist/esm/cmds/serve/index.js.map +1 -0
  68. package/dist/esm/cmds/serve/serveHandler.js +54 -0
  69. package/dist/esm/cmds/serve/serveHandler.js.map +1 -0
  70. package/dist/esm/cmds/serve/serveUtils.js +30 -0
  71. package/dist/esm/cmds/serve/serveUtils.js.map +1 -0
  72. package/dist/esm/cmds/watch/index.js +17 -0
  73. package/dist/esm/cmds/watch/index.js.map +1 -0
  74. package/dist/esm/cmds/watch/watchHandler.js +87 -0
  75. package/dist/esm/cmds/watch/watchHandler.js.map +1 -0
  76. package/dist/esm/index.js +3 -0
  77. package/dist/esm/index.js.map +1 -0
  78. package/dist/esm/main.js +11 -0
  79. package/dist/esm/main.js.map +1 -0
  80. package/dist/esm/utils/index.js +4 -0
  81. package/dist/esm/utils/index.js.map +1 -0
  82. package/dist/{utils → esm/utils}/misc.js +32 -50
  83. package/dist/esm/utils/misc.js.map +1 -0
  84. package/dist/{utils → esm/utils}/snap-config.js +26 -39
  85. package/dist/esm/utils/snap-config.js.map +1 -0
  86. package/dist/{cmds → types/cmds}/build/bundle.d.ts +0 -1
  87. package/dist/{cmds/serve → types/cmds/build}/index.d.ts +2 -2
  88. package/dist/{cmds/build → types/cmds/eval}/index.d.ts +2 -2
  89. package/dist/{cmds → types/cmds}/manifest/index.d.ts +2 -2
  90. package/dist/{cmds/eval → types/cmds/serve}/index.d.ts +2 -2
  91. package/dist/types/cmds/watch/index.d.ts +9 -0
  92. package/dist/{utils → types/utils}/snap-config.d.ts +0 -1
  93. package/package.json +50 -14
  94. package/dist/cli.js +0 -51
  95. package/dist/cli.js.map +0 -1
  96. package/dist/cmds/build/buildHandler.js +0 -37
  97. package/dist/cmds/build/buildHandler.js.map +0 -1
  98. package/dist/cmds/build/index.js +0 -29
  99. package/dist/cmds/build/index.js.map +0 -1
  100. package/dist/cmds/build/utils.js.map +0 -1
  101. package/dist/cmds/eval/evalHandler.js +0 -25
  102. package/dist/cmds/eval/evalHandler.js.map +0 -1
  103. package/dist/cmds/eval/index.js +0 -15
  104. package/dist/cmds/eval/index.js.map +0 -1
  105. package/dist/cmds/index.js +0 -13
  106. package/dist/cmds/index.js.map +0 -1
  107. package/dist/cmds/manifest/index.js +0 -24
  108. package/dist/cmds/manifest/index.js.map +0 -1
  109. package/dist/cmds/manifest/manifestHandler.js +0 -50
  110. package/dist/cmds/manifest/manifestHandler.js.map +0 -1
  111. package/dist/cmds/serve/index.js +0 -15
  112. package/dist/cmds/serve/index.js.map +0 -1
  113. package/dist/cmds/serve/serveHandler.js +0 -59
  114. package/dist/cmds/serve/serveHandler.js.map +0 -1
  115. package/dist/cmds/serve/serveUtils.js +0 -39
  116. package/dist/cmds/serve/serveUtils.js.map +0 -1
  117. package/dist/cmds/watch/index.d.ts +0 -9
  118. package/dist/cmds/watch/index.js +0 -32
  119. package/dist/cmds/watch/index.js.map +0 -1
  120. package/dist/cmds/watch/watchHandler.js +0 -99
  121. package/dist/cmds/watch/watchHandler.js.map +0 -1
  122. package/dist/index.js +0 -28
  123. package/dist/index.js.map +0 -1
  124. package/dist/main.js +0 -15
  125. package/dist/main.js.map +0 -1
  126. package/dist/utils/index.js +0 -19
  127. package/dist/utils/index.js.map +0 -1
  128. package/dist/utils/misc.js.map +0 -1
  129. package/dist/utils/snap-config.js.map +0 -1
  130. /package/dist/{builders.d.ts → types/builders.d.ts} +0 -0
  131. /package/dist/{cli.d.ts → types/cli.d.ts} +0 -0
  132. /package/dist/{cmds → types/cmds}/build/buildHandler.d.ts +0 -0
  133. /package/dist/{cmds → types/cmds}/build/utils.d.ts +0 -0
  134. /package/dist/{cmds → types/cmds}/eval/evalHandler.d.ts +0 -0
  135. /package/dist/{cmds → types/cmds}/index.d.ts +0 -0
  136. /package/dist/{cmds → types/cmds}/manifest/manifestHandler.d.ts +0 -0
  137. /package/dist/{cmds → types/cmds}/serve/serveHandler.d.ts +0 -0
  138. /package/dist/{cmds → types/cmds}/serve/serveUtils.d.ts +0 -0
  139. /package/dist/{cmds → types/cmds}/watch/watchHandler.d.ts +0 -0
  140. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  141. /package/dist/{main.d.ts → types/main.d.ts} +0 -0
  142. /package/dist/{utils → types/utils}/index.d.ts +0 -0
  143. /package/dist/{utils → types/utils}/misc.d.ts +0 -0
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processInvalidTranspilation = exports.sanitizeDependencyPaths = exports.getDependencyRegExp = exports.processDependencies = exports.writeBundleFile = void 0;
4
- const snaps_utils_1 = require("@metamask/snaps-utils");
5
- const fs_1 = require("fs");
6
- const builders_1 = require("../../builders");
7
- const utils_1 = require("../../utils");
1
+ import { logInfo } from '@metamask/snaps-utils';
2
+ import { promises as fs } from 'fs';
3
+ import { TranspilationModes } from '../../builders';
4
+ import { writeError } from '../../utils';
8
5
  /**
9
6
  * Performs postprocessing on the bundle contents and writes them to disk.
10
7
  * Intended to be used in the callback passed to the Browserify `.bundle()`
@@ -18,69 +15,62 @@ const utils_1 = require("../../utils");
18
15
  * @param options.dest - The destination file path.
19
16
  * @param options.resolve - A {@link Promise} resolution function, so that we
20
17
  * can use promises and `async`/`await` even though Browserify uses callbacks.
21
- */
22
- async function writeBundleFile({ bundleError, bundleBuffer, src, dest, resolve, }) {
18
+ */ export async function writeBundleFile({ bundleError, bundleBuffer, src, dest, resolve }) {
23
19
  if (bundleError) {
24
- await (0, utils_1.writeError)('Build error:', bundleError.message, bundleError);
20
+ await writeError('Build error:', bundleError.message, bundleError);
25
21
  }
26
22
  try {
27
- await fs_1.promises.writeFile(dest, bundleBuffer?.toString());
28
- (0, snaps_utils_1.logInfo)(`Build success: '${src}' bundled as '${dest}'!`);
23
+ await fs.writeFile(dest, bundleBuffer?.toString());
24
+ logInfo(`Build success: '${src}' bundled as '${dest}'!`);
29
25
  resolve(true);
30
- }
31
- catch (error) {
32
- await (0, utils_1.writeError)('Write error:', error.message, error, dest);
26
+ } catch (error) {
27
+ await writeError('Write error:', error.message, error, dest);
33
28
  }
34
29
  }
35
- exports.writeBundleFile = writeBundleFile;
36
30
  /**
37
31
  * Processes dependencies and updates `argv` with an options object.
38
32
  *
39
33
  * @param argv - The Yargs arguments object.
40
34
  * @returns An object with options that can be passed to Babelify.
41
- */
42
- function processDependencies(argv) {
35
+ */ export function processDependencies(argv) {
43
36
  const { depsToTranspile, transpilationMode } = argv;
44
37
  const babelifyOptions = {};
45
- if (transpilationMode === builders_1.TranspilationModes.LocalAndDeps) {
38
+ if (transpilationMode === TranspilationModes.LocalAndDeps) {
46
39
  const regexpStr = getDependencyRegExp(depsToTranspile);
47
40
  if (regexpStr !== null) {
48
- babelifyOptions.ignore = [regexpStr];
41
+ babelifyOptions.ignore = [
42
+ regexpStr
43
+ ];
49
44
  }
50
45
  }
51
46
  return babelifyOptions;
52
47
  }
53
- exports.processDependencies = processDependencies;
54
48
  /**
55
49
  * Processes a string of space delimited dependencies into one RegExp string.
56
50
  *
57
51
  * @param dependencies - An array of dependencies to add to the RegExp.
58
52
  * @returns A RegExp object.
59
- */
60
- function getDependencyRegExp(dependencies) {
53
+ */ export function getDependencyRegExp(dependencies) {
61
54
  let regexp = null;
62
55
  if (!dependencies || dependencies.includes('.') || !dependencies.length) {
63
56
  return regexp;
64
57
  }
65
58
  const paths = sanitizeDependencyPaths(dependencies);
66
59
  regexp = `/node_modules/(?!${paths.shift() ?? ''}`;
67
- paths.forEach((path) => (regexp += `|${path}`));
60
+ paths.forEach((path)=>regexp += `|${path}`);
68
61
  regexp += '/)';
69
62
  return RegExp(regexp, 'u');
70
63
  }
71
- exports.getDependencyRegExp = getDependencyRegExp;
72
64
  /**
73
65
  * Helper function remove any leading and trailing slashes from dependency list.
74
66
  *
75
67
  * @param dependencies - An array of dependencies to sanitize.
76
68
  * @returns An array of sanitized paths.
77
- */
78
- function sanitizeDependencyPaths(dependencies) {
79
- return dependencies.map((dependency) => {
69
+ */ export function sanitizeDependencyPaths(dependencies) {
70
+ return dependencies.map((dependency)=>{
80
71
  return dependency.replace(/^[/\\]+/u, '').replace(/[/\\]+$/u, '');
81
72
  });
82
73
  }
83
- exports.sanitizeDependencyPaths = sanitizeDependencyPaths;
84
74
  /**
85
75
  * Check the Yargs argv object, to see if the provided options are valid. The
86
76
  * options are invalid if both `depsToTranspile` are provided, and
@@ -89,12 +79,10 @@ exports.sanitizeDependencyPaths = sanitizeDependencyPaths;
89
79
  * @param argv - The Yargs arguments object.
90
80
  * @throws If the `depsToTranspile` is set, and `transpilationMode` is not set
91
81
  * to `localAndDeps`.
92
- */
93
- function processInvalidTranspilation(argv) {
94
- if (argv.depsToTranspile &&
95
- argv.transpilationMode !== builders_1.TranspilationModes.LocalAndDeps) {
82
+ */ export function processInvalidTranspilation(argv) {
83
+ if (argv.depsToTranspile && argv.transpilationMode !== TranspilationModes.LocalAndDeps) {
96
84
  throw new Error('"depsToTranspile" can only be specified if "transpilationMode" is set to "localAndDeps" .');
97
85
  }
98
86
  }
99
- exports.processInvalidTranspilation = processInvalidTranspilation;
87
+
100
88
  //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/build/utils.ts"],"sourcesContent":["import { logInfo } from '@metamask/snaps-utils';\nimport { promises as fs } from 'fs';\n\nimport { TranspilationModes } from '../../builders';\nimport { YargsArgs } from '../../types/yargs';\nimport { writeError } from '../../utils';\n\ntype WriteBundleFileArgs = {\n bundleError: Error;\n bundleBuffer: Buffer;\n src: string;\n dest: string;\n resolve: (value: boolean) => void;\n};\n\n/**\n * Performs postprocessing on the bundle contents and writes them to disk.\n * Intended to be used in the callback passed to the Browserify `.bundle()`\n * call.\n *\n * @param options - Options bag.\n * @param options.bundleError - Any error received from Browserify.\n * @param options.bundleBuffer - The {@link Buffer} with the bundle contents\n * from Browserify.\n * @param options.src - The source file path.\n * @param options.dest - The destination file path.\n * @param options.resolve - A {@link Promise} resolution function, so that we\n * can use promises and `async`/`await` even though Browserify uses callbacks.\n */\nexport async function writeBundleFile({\n bundleError,\n bundleBuffer,\n src,\n dest,\n resolve,\n}: WriteBundleFileArgs) {\n if (bundleError) {\n await writeError('Build error:', bundleError.message, bundleError);\n }\n\n try {\n await fs.writeFile(dest, bundleBuffer?.toString());\n logInfo(`Build success: '${src}' bundled as '${dest}'!`);\n resolve(true);\n } catch (error) {\n await writeError('Write error:', error.message, error, dest);\n }\n}\n\n/**\n * Processes dependencies and updates `argv` with an options object.\n *\n * @param argv - The Yargs arguments object.\n * @returns An object with options that can be passed to Babelify.\n */\nexport function processDependencies(argv: YargsArgs) {\n const { depsToTranspile, transpilationMode } = argv;\n const babelifyOptions: Record<string, any> = {};\n if (transpilationMode === TranspilationModes.LocalAndDeps) {\n const regexpStr = getDependencyRegExp(depsToTranspile as string[]);\n if (regexpStr !== null) {\n babelifyOptions.ignore = [regexpStr];\n }\n }\n return babelifyOptions;\n}\n\n/**\n * Processes a string of space delimited dependencies into one RegExp string.\n *\n * @param dependencies - An array of dependencies to add to the RegExp.\n * @returns A RegExp object.\n */\nexport function getDependencyRegExp(dependencies: string[]): RegExp | null {\n let regexp: string | null = null;\n if (!dependencies || dependencies.includes('.') || !dependencies.length) {\n return regexp;\n }\n const paths: string[] = sanitizeDependencyPaths(dependencies);\n regexp = `/node_modules/(?!${paths.shift() ?? ''}`;\n paths.forEach((path) => (regexp += `|${path}`));\n regexp += '/)';\n return RegExp(regexp, 'u');\n}\n\n/**\n * Helper function remove any leading and trailing slashes from dependency list.\n *\n * @param dependencies - An array of dependencies to sanitize.\n * @returns An array of sanitized paths.\n */\nexport function sanitizeDependencyPaths(dependencies: string[]): string[] {\n return dependencies.map((dependency) => {\n return dependency.replace(/^[/\\\\]+/u, '').replace(/[/\\\\]+$/u, '');\n });\n}\n\n/**\n * Check the Yargs argv object, to see if the provided options are valid. The\n * options are invalid if both `depsToTranspile` are provided, and\n * `transpilationMode` is not set to `localAndDeps`.\n *\n * @param argv - The Yargs arguments object.\n * @throws If the `depsToTranspile` is set, and `transpilationMode` is not set\n * to `localAndDeps`.\n */\nexport function processInvalidTranspilation(argv: YargsArgs) {\n if (\n argv.depsToTranspile &&\n argv.transpilationMode !== TranspilationModes.LocalAndDeps\n ) {\n throw new Error(\n '\"depsToTranspile\" can only be specified if \"transpilationMode\" is set to \"localAndDeps\" .',\n );\n }\n}\n"],"names":["logInfo","promises","fs","TranspilationModes","writeError","writeBundleFile","bundleError","bundleBuffer","src","dest","resolve","message","writeFile","toString","error","processDependencies","argv","depsToTranspile","transpilationMode","babelifyOptions","LocalAndDeps","regexpStr","getDependencyRegExp","ignore","dependencies","regexp","includes","length","paths","sanitizeDependencyPaths","shift","forEach","path","RegExp","map","dependency","replace","processInvalidTranspilation","Error"],"mappings":"AAAA,SAASA,OAAO,QAAQ,wBAAwB;AAChD,SAASC,YAAYC,EAAE,QAAQ,KAAK;AAEpC,SAASC,kBAAkB,QAAQ,iBAAiB;AAEpD,SAASC,UAAU,QAAQ,cAAc;AAUzC;;;;;;;;;;;;;CAaC,GACD,OAAO,eAAeC,gBAAgB,EACpCC,WAAW,EACXC,YAAY,EACZC,GAAG,EACHC,IAAI,EACJC,OAAO,EACa;IACpB,IAAIJ,aAAa;QACf,MAAMF,WAAW,gBAAgBE,YAAYK,OAAO,EAAEL;IACxD;IAEA,IAAI;QACF,MAAMJ,GAAGU,SAAS,CAACH,MAAMF,cAAcM;QACvCb,QAAQ,CAAC,gBAAgB,EAAEQ,IAAI,cAAc,EAAEC,KAAK,EAAE,CAAC;QACvDC,QAAQ;IACV,EAAE,OAAOI,OAAO;QACd,MAAMV,WAAW,gBAAgBU,MAAMH,OAAO,EAAEG,OAAOL;IACzD;AACF;AAEA;;;;;CAKC,GACD,OAAO,SAASM,oBAAoBC,IAAe;IACjD,MAAM,EAAEC,eAAe,EAAEC,iBAAiB,EAAE,GAAGF;IAC/C,MAAMG,kBAAuC,CAAC;IAC9C,IAAID,sBAAsBf,mBAAmBiB,YAAY,EAAE;QACzD,MAAMC,YAAYC,oBAAoBL;QACtC,IAAII,cAAc,MAAM;YACtBF,gBAAgBI,MAAM,GAAG;gBAACF;aAAU;QACtC;IACF;IACA,OAAOF;AACT;AAEA;;;;;CAKC,GACD,OAAO,SAASG,oBAAoBE,YAAsB;IACxD,IAAIC,SAAwB;IAC5B,IAAI,CAACD,gBAAgBA,aAAaE,QAAQ,CAAC,QAAQ,CAACF,aAAaG,MAAM,EAAE;QACvE,OAAOF;IACT;IACA,MAAMG,QAAkBC,wBAAwBL;IAChDC,SAAS,CAAC,iBAAiB,EAAEG,MAAME,KAAK,MAAM,GAAG,CAAC;IAClDF,MAAMG,OAAO,CAAC,CAACC,OAAUP,UAAU,CAAC,CAAC,EAAEO,KAAK,CAAC;IAC7CP,UAAU;IACV,OAAOQ,OAAOR,QAAQ;AACxB;AAEA;;;;;CAKC,GACD,OAAO,SAASI,wBAAwBL,YAAsB;IAC5D,OAAOA,aAAaU,GAAG,CAAC,CAACC;QACvB,OAAOA,WAAWC,OAAO,CAAC,YAAY,IAAIA,OAAO,CAAC,YAAY;IAChE;AACF;AAEA;;;;;;;;CAQC,GACD,OAAO,SAASC,4BAA4BrB,IAAe;IACzD,IACEA,KAAKC,eAAe,IACpBD,KAAKE,iBAAiB,KAAKf,mBAAmBiB,YAAY,EAC1D;QACA,MAAM,IAAIkB,MACR;IAEJ;AACF"}
@@ -0,0 +1,20 @@
1
+ import { evalBundle, logInfo } from '@metamask/snaps-utils';
2
+ import { assert } from '@metamask/utils';
3
+ /**
4
+ * Runs the snap in a worker, to ensure SES compatibility.
5
+ *
6
+ * @param argv - The Yargs arguments object.
7
+ * @returns A promise that resolves once the eval has finished.
8
+ * @throws If the eval failed.
9
+ */ export async function evalHandler(argv) {
10
+ const { bundle: bundlePath } = argv;
11
+ assert(typeof bundlePath === 'string');
12
+ try {
13
+ await evalBundle(bundlePath);
14
+ logInfo(`Eval Success: evaluated '${bundlePath}' in SES!`);
15
+ } catch (error) {
16
+ throw new Error(`Snap evaluation error: ${error.message}`);
17
+ }
18
+ }
19
+
20
+ //# sourceMappingURL=evalHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/eval/evalHandler.ts"],"sourcesContent":["import { evalBundle, logInfo } from '@metamask/snaps-utils';\nimport { assert } from '@metamask/utils';\n\nimport { YargsArgs } from '../../types/yargs';\n\n/**\n * Runs the snap in a worker, to ensure SES compatibility.\n *\n * @param argv - The Yargs arguments object.\n * @returns A promise that resolves once the eval has finished.\n * @throws If the eval failed.\n */\nexport async function evalHandler(argv: YargsArgs): Promise<void> {\n const { bundle: bundlePath } = argv;\n\n assert(typeof bundlePath === 'string');\n\n try {\n await evalBundle(bundlePath);\n logInfo(`Eval Success: evaluated '${bundlePath}' in SES!`);\n } catch (error) {\n throw new Error(`Snap evaluation error: ${error.message}`);\n }\n}\n"],"names":["evalBundle","logInfo","assert","evalHandler","argv","bundle","bundlePath","error","Error","message"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,wBAAwB;AAC5D,SAASC,MAAM,QAAQ,kBAAkB;AAIzC;;;;;;CAMC,GACD,OAAO,eAAeC,YAAYC,IAAe;IAC/C,MAAM,EAAEC,QAAQC,UAAU,EAAE,GAAGF;IAE/BF,OAAO,OAAOI,eAAe;IAE7B,IAAI;QACF,MAAMN,WAAWM;QACjBL,QAAQ,CAAC,yBAAyB,EAAEK,WAAW,SAAS,CAAC;IAC3D,EAAE,OAAOC,OAAO;QACd,MAAM,IAAIC,MAAM,CAAC,uBAAuB,EAAED,MAAME,OAAO,CAAC,CAAC;IAC3D;AACF"}
@@ -0,0 +1,16 @@
1
+ import builders from '../../builders';
2
+ import { evalHandler } from './evalHandler';
3
+ const command = {
4
+ command: [
5
+ 'eval',
6
+ 'e'
7
+ ],
8
+ desc: 'Attempt to evaluate Snap bundle in SES',
9
+ builder: (yarg)=>{
10
+ yarg.option('bundle', builders.bundle);
11
+ },
12
+ handler: async (argv)=>evalHandler(argv)
13
+ };
14
+ export default command;
15
+
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/eval/index.ts"],"sourcesContent":["import yargs from 'yargs';\n\nimport builders from '../../builders';\nimport { YargsArgs } from '../../types/yargs';\nimport { evalHandler } from './evalHandler';\n\nconst command = {\n command: ['eval', 'e'],\n desc: 'Attempt to evaluate Snap bundle in SES',\n builder: (yarg: yargs.Argv) => {\n yarg.option('bundle', builders.bundle);\n },\n handler: async (argv: YargsArgs) => evalHandler(argv),\n};\n\nexport default command;\n"],"names":["builders","evalHandler","command","desc","builder","yarg","option","bundle","handler","argv"],"mappings":"AAEA,OAAOA,cAAc,iBAAiB;AAEtC,SAASC,WAAW,QAAQ,gBAAgB;AAE5C,MAAMC,UAAU;IACdA,SAAS;QAAC;QAAQ;KAAI;IACtBC,MAAM;IACNC,SAAS,CAACC;QACRA,KAAKC,MAAM,CAAC,UAAUN,SAASO,MAAM;IACvC;IACAC,SAAS,OAAOC,OAAoBR,YAAYQ;AAClD;AAEA,eAAeP,QAAQ"}
@@ -0,0 +1,15 @@
1
+ import build from './build';
2
+ import evaluate from './eval';
3
+ import manifest from './manifest';
4
+ import serve from './serve';
5
+ import watch from './watch';
6
+ const commands = [
7
+ build,
8
+ evaluate,
9
+ manifest,
10
+ serve,
11
+ watch
12
+ ];
13
+ export default commands;
14
+
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cmds/index.ts"],"sourcesContent":["import build from './build';\nimport evaluate from './eval';\nimport manifest from './manifest';\nimport serve from './serve';\nimport watch from './watch';\n\nconst commands = [build, evaluate, manifest, serve, watch];\nexport default commands;\n"],"names":["build","evaluate","manifest","serve","watch","commands"],"mappings":"AAAA,OAAOA,WAAW,UAAU;AAC5B,OAAOC,cAAc,SAAS;AAC9B,OAAOC,cAAc,aAAa;AAClC,OAAOC,WAAW,UAAU;AAC5B,OAAOC,WAAW,UAAU;AAE5B,MAAMC,WAAW;IAACL;IAAOC;IAAUC;IAAUC;IAAOC;CAAM;AAC1D,eAAeC,SAAS"}
@@ -0,0 +1,29 @@
1
+ import builders from '../../builders';
2
+ import { logError } from '../../utils';
3
+ import { manifestHandler } from './manifestHandler';
4
+ const command = {
5
+ command: [
6
+ 'manifest',
7
+ 'm'
8
+ ],
9
+ desc: 'Validate the snap.manifest.json file',
10
+ builder: (yarg)=>{
11
+ yarg.option('writeManifest', {
12
+ ...builders.writeManifest,
13
+ alias: [
14
+ 'fix'
15
+ ]
16
+ });
17
+ },
18
+ handler: async (argv)=>{
19
+ try {
20
+ await manifestHandler(argv);
21
+ } catch (error) {
22
+ logError(error.message, error);
23
+ throw error;
24
+ }
25
+ }
26
+ };
27
+ export default command;
28
+
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/manifest/index.ts"],"sourcesContent":["import yargs from 'yargs';\n\nimport builders from '../../builders';\nimport { YargsArgs } from '../../types/yargs';\nimport { logError } from '../../utils';\nimport { manifestHandler } from './manifestHandler';\n\nconst command = {\n command: ['manifest', 'm'],\n desc: 'Validate the snap.manifest.json file',\n builder: (yarg: yargs.Argv) => {\n yarg.option('writeManifest', { ...builders.writeManifest, alias: ['fix'] });\n },\n handler: async (argv: YargsArgs) => {\n try {\n await manifestHandler(argv);\n } catch (error) {\n logError(error.message, error);\n throw error;\n }\n },\n};\n\nexport default command;\n"],"names":["builders","logError","manifestHandler","command","desc","builder","yarg","option","writeManifest","alias","handler","argv","error","message"],"mappings":"AAEA,OAAOA,cAAc,iBAAiB;AAEtC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,MAAMC,UAAU;IACdA,SAAS;QAAC;QAAY;KAAI;IAC1BC,MAAM;IACNC,SAAS,CAACC;QACRA,KAAKC,MAAM,CAAC,iBAAiB;YAAE,GAAGP,SAASQ,aAAa;YAAEC,OAAO;gBAAC;aAAM;QAAC;IAC3E;IACAC,SAAS,OAAOC;QACd,IAAI;YACF,MAAMT,gBAAgBS;QACxB,EAAE,OAAOC,OAAO;YACdX,SAASW,MAAMC,OAAO,EAAED;YACxB,MAAMA;QACR;IACF;AACF;AAEA,eAAeT,QAAQ"}
@@ -0,0 +1,43 @@
1
+ import { checkManifest, logError, logWarning } from '@metamask/snaps-utils';
2
+ const ERROR_PREFIX = 'Manifest Error: ';
3
+ /**
4
+ * Validates a snap.manifest.json file. Attempts to fix the manifest and write
5
+ * the fixed version to disk if `writeManifest` is true. Throws if validation
6
+ * fails.
7
+ *
8
+ * @param argv - The Yargs `argv` object.
9
+ * @param argv.writeManifest - Whether to write the fixed manifest to disk.
10
+ */ export async function manifestHandler({ writeManifest }) {
11
+ try {
12
+ const { warnings, errors } = await checkManifest(process.cwd(), Boolean(writeManifest));
13
+ if (!writeManifest && errors.length > 0) {
14
+ logError(`${ERROR_PREFIX}The manifest is invalid.`);
15
+ errors.forEach(logManifestError);
16
+ process.exit(1);
17
+ }
18
+ if (warnings.length > 0) {
19
+ logWarning('Manifest Warning: Validation of snap.manifest.json completed with warnings.');
20
+ warnings.forEach(logManifestWarning);
21
+ }
22
+ } catch (error) {
23
+ throw new Error(`${ERROR_PREFIX}${error}`);
24
+ }
25
+ }
26
+ /**
27
+ * Logs a manifest warning, if `suppressWarnings` is not enabled.
28
+ *
29
+ * @param message - The message to log.
30
+ */ function logManifestWarning(message) {
31
+ if (!global.snaps.suppressWarnings) {
32
+ logWarning(`Manifest Warning: ${message}`);
33
+ }
34
+ }
35
+ /**
36
+ * Logs a manifest error.
37
+ *
38
+ * @param message - The message to log.
39
+ */ function logManifestError(message) {
40
+ logError(`${ERROR_PREFIX}${message}`);
41
+ }
42
+
43
+ //# sourceMappingURL=manifestHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/manifest/manifestHandler.ts"],"sourcesContent":["import { checkManifest, logError, logWarning } from '@metamask/snaps-utils';\n\nimport { YargsArgs } from '../../types/yargs';\n\nconst ERROR_PREFIX = 'Manifest Error: ';\n\n/**\n * Validates a snap.manifest.json file. Attempts to fix the manifest and write\n * the fixed version to disk if `writeManifest` is true. Throws if validation\n * fails.\n *\n * @param argv - The Yargs `argv` object.\n * @param argv.writeManifest - Whether to write the fixed manifest to disk.\n */\nexport async function manifestHandler({ writeManifest }: YargsArgs) {\n try {\n const { warnings, errors } = await checkManifest(\n process.cwd(),\n Boolean(writeManifest),\n );\n\n if (!writeManifest && errors.length > 0) {\n logError(`${ERROR_PREFIX}The manifest is invalid.`);\n errors.forEach(logManifestError);\n\n process.exit(1);\n }\n\n if (warnings.length > 0) {\n logWarning(\n 'Manifest Warning: Validation of snap.manifest.json completed with warnings.',\n );\n warnings.forEach(logManifestWarning);\n }\n } catch (error) {\n throw new Error(`${ERROR_PREFIX}${error}`);\n }\n}\n\n/**\n * Logs a manifest warning, if `suppressWarnings` is not enabled.\n *\n * @param message - The message to log.\n */\nfunction logManifestWarning(message: string) {\n if (!global.snaps.suppressWarnings) {\n logWarning(`Manifest Warning: ${message}`);\n }\n}\n\n/**\n * Logs a manifest error.\n *\n * @param message - The message to log.\n */\nfunction logManifestError(message: string) {\n logError(`${ERROR_PREFIX}${message}`);\n}\n"],"names":["checkManifest","logError","logWarning","ERROR_PREFIX","manifestHandler","writeManifest","warnings","errors","process","cwd","Boolean","length","forEach","logManifestError","exit","logManifestWarning","error","Error","message","global","snaps","suppressWarnings"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,wBAAwB;AAI5E,MAAMC,eAAe;AAErB;;;;;;;CAOC,GACD,OAAO,eAAeC,gBAAgB,EAAEC,aAAa,EAAa;IAChE,IAAI;QACF,MAAM,EAAEC,QAAQ,EAAEC,MAAM,EAAE,GAAG,MAAMP,cACjCQ,QAAQC,GAAG,IACXC,QAAQL;QAGV,IAAI,CAACA,iBAAiBE,OAAOI,MAAM,GAAG,GAAG;YACvCV,SAAS,CAAC,EAAEE,aAAa,wBAAwB,CAAC;YAClDI,OAAOK,OAAO,CAACC;YAEfL,QAAQM,IAAI,CAAC;QACf;QAEA,IAAIR,SAASK,MAAM,GAAG,GAAG;YACvBT,WACE;YAEFI,SAASM,OAAO,CAACG;QACnB;IACF,EAAE,OAAOC,OAAO;QACd,MAAM,IAAIC,MAAM,CAAC,EAAEd,aAAa,EAAEa,MAAM,CAAC;IAC3C;AACF;AAEA;;;;CAIC,GACD,SAASD,mBAAmBG,OAAe;IACzC,IAAI,CAACC,OAAOC,KAAK,CAACC,gBAAgB,EAAE;QAClCnB,WAAW,CAAC,kBAAkB,EAAEgB,QAAQ,CAAC;IAC3C;AACF;AAEA;;;;CAIC,GACD,SAASL,iBAAiBK,OAAe;IACvCjB,SAAS,CAAC,EAAEE,aAAa,EAAEe,QAAQ,CAAC;AACtC"}
@@ -0,0 +1,16 @@
1
+ import builders from '../../builders';
2
+ import { serve } from './serveHandler';
3
+ const command = {
4
+ command: [
5
+ 'serve',
6
+ 's'
7
+ ],
8
+ desc: 'Locally serve Snap file(s) for testing',
9
+ builder: (yarg)=>{
10
+ yarg.option('root', builders.root).option('port', builders.port);
11
+ },
12
+ handler: async (argv)=>serve(argv)
13
+ };
14
+ export default command;
15
+
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/serve/index.ts"],"sourcesContent":["import yargs from 'yargs';\n\nimport builders from '../../builders';\nimport { YargsArgs } from '../../types/yargs';\nimport { serve } from './serveHandler';\n\nconst command = {\n command: ['serve', 's'],\n desc: 'Locally serve Snap file(s) for testing',\n builder: (yarg: yargs.Argv) => {\n yarg.option('root', builders.root).option('port', builders.port);\n },\n handler: async (argv: YargsArgs) => serve(argv),\n};\n\nexport default command;\n"],"names":["builders","serve","command","desc","builder","yarg","option","root","port","handler","argv"],"mappings":"AAEA,OAAOA,cAAc,iBAAiB;AAEtC,SAASC,KAAK,QAAQ,iBAAiB;AAEvC,MAAMC,UAAU;IACdA,SAAS;QAAC;QAAS;KAAI;IACvBC,MAAM;IACNC,SAAS,CAACC;QACRA,KAAKC,MAAM,CAAC,QAAQN,SAASO,IAAI,EAAED,MAAM,CAAC,QAAQN,SAASQ,IAAI;IACjE;IACAC,SAAS,OAAOC,OAAoBT,MAAMS;AAC5C;AAEA,eAAeR,QAAQ"}
@@ -0,0 +1,54 @@
1
+ import { logInfo, validateDirPath } from '@metamask/snaps-utils';
2
+ import http from 'http';
3
+ import serveHandler from 'serve-handler';
4
+ import { logRequest, logServerError, logServerListening } from './serveUtils';
5
+ /**
6
+ * Starts a local, static HTTP server on the given port with the given root
7
+ * directory.
8
+ *
9
+ * @param argv - Arguments as an object generated by Yargs.
10
+ * @param argv.root - The root directory path string.
11
+ * @param argv.port - The server port.
12
+ */ export async function serve(argv) {
13
+ const { port, root: rootDir } = argv;
14
+ await validateDirPath(rootDir, true);
15
+ logInfo(`\nStarting server...`);
16
+ const server = http.createServer((req, res)=>{
17
+ serveHandler(req, res, {
18
+ public: rootDir,
19
+ headers: [
20
+ {
21
+ source: '**/*',
22
+ headers: [
23
+ {
24
+ key: 'Cache-Control',
25
+ value: 'no-cache'
26
+ },
27
+ {
28
+ key: 'Access-Control-Allow-Origin',
29
+ value: '*'
30
+ }
31
+ ]
32
+ }
33
+ ]
34
+ })?.catch((error)=>{
35
+ logServerError(error, argv.port);
36
+ res.statusCode = 500;
37
+ res.end();
38
+ });
39
+ });
40
+ server.listen({
41
+ port
42
+ }, ()=>logServerListening(port));
43
+ server.on('request', (request)=>logRequest(request));
44
+ server.on('error', (error)=>{
45
+ logServerError(error, argv.port);
46
+ process.exitCode = 1;
47
+ });
48
+ server.on('close', ()=>{
49
+ logInfo('Server closed');
50
+ process.exitCode = 1;
51
+ });
52
+ }
53
+
54
+ //# sourceMappingURL=serveHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/serve/serveHandler.ts"],"sourcesContent":["import { logInfo, validateDirPath } from '@metamask/snaps-utils';\nimport http from 'http';\nimport serveHandler from 'serve-handler';\n\nimport { YargsArgs } from '../../types/yargs';\nimport { logRequest, logServerError, logServerListening } from './serveUtils';\n\n/**\n * Starts a local, static HTTP server on the given port with the given root\n * directory.\n *\n * @param argv - Arguments as an object generated by Yargs.\n * @param argv.root - The root directory path string.\n * @param argv.port - The server port.\n */\nexport async function serve(argv: YargsArgs): Promise<void> {\n const { port, root: rootDir } = argv;\n\n await validateDirPath(rootDir as string, true);\n\n logInfo(`\\nStarting server...`);\n\n const server = http.createServer((req, res) => {\n serveHandler(req, res, {\n public: rootDir as string,\n headers: [\n {\n source: '**/*',\n headers: [\n {\n key: 'Cache-Control',\n value: 'no-cache',\n },\n {\n key: 'Access-Control-Allow-Origin',\n value: '*',\n },\n ],\n },\n ],\n })?.catch((error) => {\n logServerError(error, argv.port);\n res.statusCode = 500;\n res.end();\n });\n });\n\n server.listen({ port }, () => logServerListening(port));\n\n server.on('request', (request) => logRequest(request));\n\n server.on('error', (error) => {\n logServerError(error, argv.port);\n process.exitCode = 1;\n });\n\n server.on('close', () => {\n logInfo('Server closed');\n process.exitCode = 1;\n });\n}\n"],"names":["logInfo","validateDirPath","http","serveHandler","logRequest","logServerError","logServerListening","serve","argv","port","root","rootDir","server","createServer","req","res","public","headers","source","key","value","catch","error","statusCode","end","listen","on","request","process","exitCode"],"mappings":"AAAA,SAASA,OAAO,EAAEC,eAAe,QAAQ,wBAAwB;AACjE,OAAOC,UAAU,OAAO;AACxB,OAAOC,kBAAkB,gBAAgB;AAGzC,SAASC,UAAU,EAAEC,cAAc,EAAEC,kBAAkB,QAAQ,eAAe;AAE9E;;;;;;;CAOC,GACD,OAAO,eAAeC,MAAMC,IAAe;IACzC,MAAM,EAAEC,IAAI,EAAEC,MAAMC,OAAO,EAAE,GAAGH;IAEhC,MAAMP,gBAAgBU,SAAmB;IAEzCX,QAAQ,CAAC,oBAAoB,CAAC;IAE9B,MAAMY,SAASV,KAAKW,YAAY,CAAC,CAACC,KAAKC;QACrCZ,aAAaW,KAAKC,KAAK;YACrBC,QAAQL;YACRM,SAAS;gBACP;oBACEC,QAAQ;oBACRD,SAAS;wBACP;4BACEE,KAAK;4BACLC,OAAO;wBACT;wBACA;4BACED,KAAK;4BACLC,OAAO;wBACT;qBACD;gBACH;aACD;QACH,IAAIC,MAAM,CAACC;YACTjB,eAAeiB,OAAOd,KAAKC,IAAI;YAC/BM,IAAIQ,UAAU,GAAG;YACjBR,IAAIS,GAAG;QACT;IACF;IAEAZ,OAAOa,MAAM,CAAC;QAAEhB;IAAK,GAAG,IAAMH,mBAAmBG;IAEjDG,OAAOc,EAAE,CAAC,WAAW,CAACC,UAAYvB,WAAWuB;IAE7Cf,OAAOc,EAAE,CAAC,SAAS,CAACJ;QAClBjB,eAAeiB,OAAOd,KAAKC,IAAI;QAC/BmB,QAAQC,QAAQ,GAAG;IACrB;IAEAjB,OAAOc,EAAE,CAAC,SAAS;QACjB1B,QAAQ;QACR4B,QAAQC,QAAQ,GAAG;IACrB;AACF"}
@@ -0,0 +1,30 @@
1
+ import { logError, logInfo } from '@metamask/snaps-utils';
2
+ /**
3
+ * Log a message with the URL and port of the server.
4
+ *
5
+ * @param port - The port that the server is running on.
6
+ */ export function logServerListening(port) {
7
+ logInfo(`Server listening on: http://localhost:${port}`);
8
+ }
9
+ /**
10
+ * Log a message with the request URL.
11
+ *
12
+ * @param request - The request object.
13
+ * @param request.url - The URL of the request.
14
+ */ export function logRequest(request) {
15
+ logInfo(`Handling incoming request for: ${request.url ?? 'unknown'}`);
16
+ }
17
+ /**
18
+ * Log an error message.
19
+ *
20
+ * @param error - The error to log.
21
+ * @param port - The port that the server is running on.
22
+ */ export function logServerError(error, port) {
23
+ if (error.code === 'EADDRINUSE') {
24
+ logError(`Server error: Port ${port} already in use.`);
25
+ } else {
26
+ logError(`Server error: ${error.message}`);
27
+ }
28
+ }
29
+
30
+ //# sourceMappingURL=serveUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/serve/serveUtils.ts"],"sourcesContent":["import { logError, logInfo } from '@metamask/snaps-utils';\n\n/**\n * Log a message with the URL and port of the server.\n *\n * @param port - The port that the server is running on.\n */\nexport function logServerListening(port: number) {\n logInfo(`Server listening on: http://localhost:${port}`);\n}\n\n/**\n * Log a message with the request URL.\n *\n * @param request - The request object.\n * @param request.url - The URL of the request.\n */\nexport function logRequest(request: { url?: string }) {\n logInfo(`Handling incoming request for: ${request.url ?? 'unknown'}`);\n}\n\n/**\n * Log an error message.\n *\n * @param error - The error to log.\n * @param port - The port that the server is running on.\n */\nexport function logServerError(error: Error, port: number) {\n if ((error as any).code === 'EADDRINUSE') {\n logError(`Server error: Port ${port} already in use.`);\n } else {\n logError(`Server error: ${error.message}`);\n }\n}\n"],"names":["logError","logInfo","logServerListening","port","logRequest","request","url","logServerError","error","code","message"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,OAAO,QAAQ,wBAAwB;AAE1D;;;;CAIC,GACD,OAAO,SAASC,mBAAmBC,IAAY;IAC7CF,QAAQ,CAAC,sCAAsC,EAAEE,KAAK,CAAC;AACzD;AAEA;;;;;CAKC,GACD,OAAO,SAASC,WAAWC,OAAyB;IAClDJ,QAAQ,CAAC,+BAA+B,EAAEI,QAAQC,GAAG,IAAI,UAAU,CAAC;AACtE;AAEA;;;;;CAKC,GACD,OAAO,SAASC,eAAeC,KAAY,EAAEL,IAAY;IACvD,IAAI,AAACK,MAAcC,IAAI,KAAK,cAAc;QACxCT,SAAS,CAAC,mBAAmB,EAAEG,KAAK,gBAAgB,CAAC;IACvD,OAAO;QACLH,SAAS,CAAC,cAAc,EAAEQ,MAAME,OAAO,CAAC,CAAC;IAC3C;AACF"}
@@ -0,0 +1,17 @@
1
+ import builders from '../../builders';
2
+ import { processInvalidTranspilation } from '../build/utils';
3
+ import { watch } from './watchHandler';
4
+ const command = {
5
+ command: [
6
+ 'watch',
7
+ 'w'
8
+ ],
9
+ desc: 'Build Snap on change',
10
+ builder: (yarg)=>{
11
+ yarg.option('src', builders.src).option('eval', builders.eval).option('dist', builders.dist).option('outfileName', builders.outfileName).option('sourceMaps', builders.sourceMaps).option('stripComments', builders.stripComments).option('transpilationMode', builders.transpilationMode).option('depsToTranspile', builders.depsToTranspile).option('manifest', builders.manifest).option('writeManifest', builders.writeManifest).option('serve', builders.serve).option('root', builders.root).option('port', builders.port).implies('writeManifest', 'manifest').implies('depsToTranspile', 'transpilationMode').middleware((argv)=>processInvalidTranspilation(argv));
12
+ },
13
+ handler: async (argv)=>watch(argv)
14
+ };
15
+ export default command;
16
+
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/watch/index.ts"],"sourcesContent":["import yargs from 'yargs';\n\nimport builders from '../../builders';\nimport { YargsArgs } from '../../types/yargs';\nimport { processInvalidTranspilation } from '../build/utils';\nimport { watch } from './watchHandler';\n\nconst command = {\n command: ['watch', 'w'],\n desc: 'Build Snap on change',\n builder: (yarg: yargs.Argv) => {\n yarg\n .option('src', builders.src)\n .option('eval', builders.eval)\n .option('dist', builders.dist)\n .option('outfileName', builders.outfileName)\n .option('sourceMaps', builders.sourceMaps)\n .option('stripComments', builders.stripComments)\n .option('transpilationMode', builders.transpilationMode)\n .option('depsToTranspile', builders.depsToTranspile)\n .option('manifest', builders.manifest)\n .option('writeManifest', builders.writeManifest)\n .option('serve', builders.serve)\n .option('root', builders.root)\n .option('port', builders.port)\n .implies('writeManifest', 'manifest')\n .implies('depsToTranspile', 'transpilationMode')\n .middleware((argv) => processInvalidTranspilation(argv as any));\n },\n handler: async (argv: YargsArgs) => watch(argv),\n};\n\nexport default command;\n"],"names":["builders","processInvalidTranspilation","watch","command","desc","builder","yarg","option","src","eval","dist","outfileName","sourceMaps","stripComments","transpilationMode","depsToTranspile","manifest","writeManifest","serve","root","port","implies","middleware","argv","handler"],"mappings":"AAEA,OAAOA,cAAc,iBAAiB;AAEtC,SAASC,2BAA2B,QAAQ,iBAAiB;AAC7D,SAASC,KAAK,QAAQ,iBAAiB;AAEvC,MAAMC,UAAU;IACdA,SAAS;QAAC;QAAS;KAAI;IACvBC,MAAM;IACNC,SAAS,CAACC;QACRA,KACGC,MAAM,CAAC,OAAOP,SAASQ,GAAG,EAC1BD,MAAM,CAAC,QAAQP,SAASS,IAAI,EAC5BF,MAAM,CAAC,QAAQP,SAASU,IAAI,EAC5BH,MAAM,CAAC,eAAeP,SAASW,WAAW,EAC1CJ,MAAM,CAAC,cAAcP,SAASY,UAAU,EACxCL,MAAM,CAAC,iBAAiBP,SAASa,aAAa,EAC9CN,MAAM,CAAC,qBAAqBP,SAASc,iBAAiB,EACtDP,MAAM,CAAC,mBAAmBP,SAASe,eAAe,EAClDR,MAAM,CAAC,YAAYP,SAASgB,QAAQ,EACpCT,MAAM,CAAC,iBAAiBP,SAASiB,aAAa,EAC9CV,MAAM,CAAC,SAASP,SAASkB,KAAK,EAC9BX,MAAM,CAAC,QAAQP,SAASmB,IAAI,EAC5BZ,MAAM,CAAC,QAAQP,SAASoB,IAAI,EAC5BC,OAAO,CAAC,iBAAiB,YACzBA,OAAO,CAAC,mBAAmB,qBAC3BC,UAAU,CAAC,CAACC,OAAStB,4BAA4BsB;IACtD;IACAC,SAAS,OAAOD,OAAoBrB,MAAMqB;AAC5C;AAEA,eAAepB,QAAQ"}
@@ -0,0 +1,87 @@
1
+ import { getOutfilePath, logError, logInfo, validateDirPath, validateFilePath, validateOutfileName, NpmSnapFileNames } from '@metamask/snaps-utils';
2
+ import chokidar from 'chokidar';
3
+ import pathUtils from 'path';
4
+ import { CONFIG_FILE, loadConfig } from '../../utils';
5
+ import { bundle } from '../build/bundle';
6
+ import { evalHandler } from '../eval/evalHandler';
7
+ import { manifestHandler } from '../manifest/manifestHandler';
8
+ import { serve } from '../serve/serveHandler';
9
+ /**
10
+ * Watch a directory and its subdirectories for changes, and build when files
11
+ * are added or changed.
12
+ *
13
+ * Ignores 'node_modules' and dotfiles.
14
+ * Creates destination directory if it doesn't exist.
15
+ *
16
+ * @param argv - Arguments as an object generated by Yargs.
17
+ * @param argv.src - The source file path.
18
+ * @param argv.dist - The output directory path.
19
+ * @param argv.'outfileName' - The output file name.
20
+ */ export async function watch(argv) {
21
+ const { dist, eval: shouldEval, manifest, outfileName, src, serve: shouldServe } = argv;
22
+ if (outfileName) {
23
+ validateOutfileName(outfileName);
24
+ }
25
+ await validateFilePath(src);
26
+ await validateDirPath(dist, true);
27
+ const srcDir = pathUtils.dirname(src);
28
+ const watchDirs = [
29
+ srcDir,
30
+ NpmSnapFileNames.Manifest,
31
+ CONFIG_FILE
32
+ ];
33
+ const outfilePath = getOutfilePath(dist, outfileName);
34
+ const buildSnap = async (path, logMessage)=>{
35
+ if (logMessage !== undefined) {
36
+ logInfo(logMessage);
37
+ }
38
+ try {
39
+ await bundle(src, outfilePath, argv, loadConfig().bundlerCustomizer);
40
+ if (manifest) {
41
+ await manifestHandler(argv);
42
+ }
43
+ if (shouldEval) {
44
+ await evalHandler({
45
+ ...argv,
46
+ bundle: outfilePath
47
+ });
48
+ }
49
+ } catch (error) {
50
+ logError(`Error ${path === undefined ? 'during initial build' : `while processing "${path}"`}.`, error);
51
+ }
52
+ };
53
+ chokidar.watch(watchDirs, {
54
+ ignoreInitial: true,
55
+ ignored: [
56
+ '**/node_modules/**',
57
+ `**/${dist}/**`,
58
+ `**/test/**`,
59
+ `**/tests/**`,
60
+ `**/*.test.js`,
61
+ `**/*.test.ts`,
62
+ /* istanbul ignore next */ (str)=>str !== '.' && str.startsWith('.')
63
+ ]
64
+ }).on('ready', ()=>{
65
+ buildSnap().then(()=>{
66
+ if (shouldServe) {
67
+ return serve(argv);
68
+ }
69
+ return undefined;
70
+ }).catch((error)=>{
71
+ logError('Error during initial build.', error);
72
+ });
73
+ }).on('add', (path)=>{
74
+ buildSnap(path, `File added: ${path}`).catch((error)=>{
75
+ logError(`Error while processing "${path}".`, error);
76
+ });
77
+ }).on('change', (path)=>{
78
+ buildSnap(path, `File changed: ${path}`).catch((error)=>{
79
+ logError(`Error while processing "${path}".`, error);
80
+ });
81
+ }).on('unlink', (path)=>logInfo(`File removed: ${path}`)).on('error', (error)=>{
82
+ logError(`Watcher error: ${error.message}`, error);
83
+ });
84
+ logInfo(`Watching ${watchDirs.map((dir)=>`'${dir}'`).join(', ')} for changes...`);
85
+ }
86
+
87
+ //# sourceMappingURL=watchHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/cmds/watch/watchHandler.ts"],"sourcesContent":["import {\n getOutfilePath,\n logError,\n logInfo,\n validateDirPath,\n validateFilePath,\n validateOutfileName,\n NpmSnapFileNames,\n} from '@metamask/snaps-utils';\nimport chokidar from 'chokidar';\nimport pathUtils from 'path';\n\nimport { YargsArgs } from '../../types/yargs';\nimport { CONFIG_FILE, loadConfig } from '../../utils';\nimport { bundle } from '../build/bundle';\nimport { evalHandler } from '../eval/evalHandler';\nimport { manifestHandler } from '../manifest/manifestHandler';\nimport { serve } from '../serve/serveHandler';\n\n/**\n * Watch a directory and its subdirectories for changes, and build when files\n * are added or changed.\n *\n * Ignores 'node_modules' and dotfiles.\n * Creates destination directory if it doesn't exist.\n *\n * @param argv - Arguments as an object generated by Yargs.\n * @param argv.src - The source file path.\n * @param argv.dist - The output directory path.\n * @param argv.'outfileName' - The output file name.\n */\nexport async function watch(argv: YargsArgs): Promise<void> {\n const {\n dist,\n eval: shouldEval,\n manifest,\n outfileName,\n src,\n serve: shouldServe,\n } = argv;\n if (outfileName) {\n validateOutfileName(outfileName);\n }\n await validateFilePath(src);\n await validateDirPath(dist, true);\n const srcDir = pathUtils.dirname(src);\n const watchDirs = [srcDir, NpmSnapFileNames.Manifest, CONFIG_FILE];\n const outfilePath = getOutfilePath(dist, outfileName);\n\n const buildSnap = async (path?: string, logMessage?: string) => {\n if (logMessage !== undefined) {\n logInfo(logMessage);\n }\n\n try {\n await bundle(src, outfilePath, argv, loadConfig().bundlerCustomizer);\n\n if (manifest) {\n await manifestHandler(argv);\n }\n\n if (shouldEval) {\n await evalHandler({ ...argv, bundle: outfilePath });\n }\n } catch (error) {\n logError(\n `Error ${\n path === undefined\n ? 'during initial build'\n : `while processing \"${path}\"`\n }.`,\n error,\n );\n }\n };\n\n chokidar\n .watch(watchDirs, {\n ignoreInitial: true,\n ignored: [\n '**/node_modules/**',\n `**/${dist}/**`,\n `**/test/**`,\n `**/tests/**`,\n `**/*.test.js`,\n `**/*.test.ts`,\n /* istanbul ignore next */\n (str: string) => str !== '.' && str.startsWith('.'),\n ],\n })\n\n .on('ready', () => {\n buildSnap()\n .then(() => {\n if (shouldServe) {\n return serve(argv);\n }\n\n return undefined;\n })\n .catch((error) => {\n logError('Error during initial build.', error);\n });\n })\n .on('add', (path) => {\n buildSnap(path, `File added: ${path}`).catch((error) => {\n logError(`Error while processing \"${path}\".`, error);\n });\n })\n .on('change', (path) => {\n buildSnap(path, `File changed: ${path}`).catch((error) => {\n logError(`Error while processing \"${path}\".`, error);\n });\n })\n .on('unlink', (path) => logInfo(`File removed: ${path}`))\n .on('error', (error: Error) => {\n logError(`Watcher error: ${error.message}`, error);\n });\n\n logInfo(\n `Watching ${watchDirs.map((dir) => `'${dir}'`).join(', ')} for changes...`,\n );\n}\n"],"names":["getOutfilePath","logError","logInfo","validateDirPath","validateFilePath","validateOutfileName","NpmSnapFileNames","chokidar","pathUtils","CONFIG_FILE","loadConfig","bundle","evalHandler","manifestHandler","serve","watch","argv","dist","eval","shouldEval","manifest","outfileName","src","shouldServe","srcDir","dirname","watchDirs","Manifest","outfilePath","buildSnap","path","logMessage","undefined","bundlerCustomizer","error","ignoreInitial","ignored","str","startsWith","on","then","catch","message","map","dir","join"],"mappings":"AAAA,SACEA,cAAc,EACdC,QAAQ,EACRC,OAAO,EACPC,eAAe,EACfC,gBAAgB,EAChBC,mBAAmB,EACnBC,gBAAgB,QACX,wBAAwB;AAC/B,OAAOC,cAAc,WAAW;AAChC,OAAOC,eAAe,OAAO;AAG7B,SAASC,WAAW,EAAEC,UAAU,QAAQ,cAAc;AACtD,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,KAAK,QAAQ,wBAAwB;AAE9C;;;;;;;;;;;CAWC,GACD,OAAO,eAAeC,MAAMC,IAAe;IACzC,MAAM,EACJC,IAAI,EACJC,MAAMC,UAAU,EAChBC,QAAQ,EACRC,WAAW,EACXC,GAAG,EACHR,OAAOS,WAAW,EACnB,GAAGP;IACJ,IAAIK,aAAa;QACfhB,oBAAoBgB;IACtB;IACA,MAAMjB,iBAAiBkB;IACvB,MAAMnB,gBAAgBc,MAAM;IAC5B,MAAMO,SAAShB,UAAUiB,OAAO,CAACH;IACjC,MAAMI,YAAY;QAACF;QAAQlB,iBAAiBqB,QAAQ;QAAElB;KAAY;IAClE,MAAMmB,cAAc5B,eAAeiB,MAAMI;IAEzC,MAAMQ,YAAY,OAAOC,MAAeC;QACtC,IAAIA,eAAeC,WAAW;YAC5B9B,QAAQ6B;QACV;QAEA,IAAI;YACF,MAAMpB,OAAOW,KAAKM,aAAaZ,MAAMN,aAAauB,iBAAiB;YAEnE,IAAIb,UAAU;gBACZ,MAAMP,gBAAgBG;YACxB;YAEA,IAAIG,YAAY;gBACd,MAAMP,YAAY;oBAAE,GAAGI,IAAI;oBAAEL,QAAQiB;gBAAY;YACnD;QACF,EAAE,OAAOM,OAAO;YACdjC,SACE,CAAC,MAAM,EACL6B,SAASE,YACL,yBACA,CAAC,kBAAkB,EAAEF,KAAK,CAAC,CAAC,CACjC,CAAC,CAAC,EACHI;QAEJ;IACF;IAEA3B,SACGQ,KAAK,CAACW,WAAW;QAChBS,eAAe;QACfC,SAAS;YACP;YACA,CAAC,GAAG,EAAEnB,KAAK,GAAG,CAAC;YACf,CAAC,UAAU,CAAC;YACZ,CAAC,WAAW,CAAC;YACb,CAAC,YAAY,CAAC;YACd,CAAC,YAAY,CAAC;YACd,wBAAwB,GACxB,CAACoB,MAAgBA,QAAQ,OAAOA,IAAIC,UAAU,CAAC;SAChD;IACH,GAECC,EAAE,CAAC,SAAS;QACXV,YACGW,IAAI,CAAC;YACJ,IAAIjB,aAAa;gBACf,OAAOT,MAAME;YACf;YAEA,OAAOgB;QACT,GACCS,KAAK,CAAC,CAACP;YACNjC,SAAS,+BAA+BiC;QAC1C;IACJ,GACCK,EAAE,CAAC,OAAO,CAACT;QACVD,UAAUC,MAAM,CAAC,YAAY,EAAEA,KAAK,CAAC,EAAEW,KAAK,CAAC,CAACP;YAC5CjC,SAAS,CAAC,wBAAwB,EAAE6B,KAAK,EAAE,CAAC,EAAEI;QAChD;IACF,GACCK,EAAE,CAAC,UAAU,CAACT;QACbD,UAAUC,MAAM,CAAC,cAAc,EAAEA,KAAK,CAAC,EAAEW,KAAK,CAAC,CAACP;YAC9CjC,SAAS,CAAC,wBAAwB,EAAE6B,KAAK,EAAE,CAAC,EAAEI;QAChD;IACF,GACCK,EAAE,CAAC,UAAU,CAACT,OAAS5B,QAAQ,CAAC,cAAc,EAAE4B,KAAK,CAAC,GACtDS,EAAE,CAAC,SAAS,CAACL;QACZjC,SAAS,CAAC,eAAe,EAAEiC,MAAMQ,OAAO,CAAC,CAAC,EAAER;IAC9C;IAEFhC,QACE,CAAC,SAAS,EAAEwB,UAAUiB,GAAG,CAAC,CAACC,MAAQ,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,MAAM,eAAe,CAAC;AAE9E"}
@@ -0,0 +1,3 @@
1
+ export * as utils from './utils';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export * as utils from './utils';\n"],"names":["utils"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,UAAU"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import { cli } from './cli';
3
+ import commands from './cmds';
4
+ global.snaps = {
5
+ verboseErrors: false,
6
+ suppressWarnings: false,
7
+ isWatching: false
8
+ };
9
+ cli(process.argv, commands);
10
+
11
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { cli } from './cli';\nimport commands from './cmds';\n\nglobal.snaps = {\n verboseErrors: false,\n suppressWarnings: false,\n isWatching: false,\n};\n\ncli(process.argv, commands);\n"],"names":["cli","commands","global","snaps","verboseErrors","suppressWarnings","isWatching","process","argv"],"mappings":";AAEA,SAASA,GAAG,QAAQ,QAAQ;AAC5B,OAAOC,cAAc,SAAS;AAE9BC,OAAOC,KAAK,GAAG;IACbC,eAAe;IACfC,kBAAkB;IAClBC,YAAY;AACd;AAEAN,IAAIO,QAAQC,IAAI,EAAEP"}
@@ -0,0 +1,4 @@
1
+ export * from './misc';
2
+ export * from './snap-config';
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from './misc';\nexport * from './snap-config';\n"],"names":[],"mappings":"AAAA,cAAc,SAAS;AACvB,cAAc,gBAAgB"}