@metamask/snaps-webpack-plugin 2.0.0 → 2.0.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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [2.0.1]
10
+ ### Changed
11
+ - Improve error messaging ([#1798](https://github.com/MetaMask/snaps/pull/1798))
12
+
9
13
  ## [2.0.0]
10
14
  ### Changed
11
15
  - Initial stable release from main branch ([#1757](https://github.com/MetaMask/snaps/pull/1757))
@@ -24,7 +28,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
24
28
  - The version of the package no longer needs to match the version of all other
25
29
  MetaMask Snaps packages.
26
30
 
27
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@2.0.0...HEAD
31
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@2.0.1...HEAD
32
+ [2.0.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@2.0.0...@metamask/snaps-webpack-plugin@2.0.1
28
33
  [2.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@0.37.4-flask.1...@metamask/snaps-webpack-plugin@2.0.0
29
34
  [0.37.4-flask.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@0.37.3-flask.1...@metamask/snaps-webpack-plugin@0.37.4-flask.1
30
35
  [0.37.3-flask.1]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-webpack-plugin@0.37.2-flask.1...@metamask/snaps-webpack-plugin@0.37.3-flask.1
@@ -51,18 +51,22 @@ class SnapsWebpackPlugin {
51
51
  const asset = assets[assetName];
52
52
  const source = asset.source();
53
53
  const sourceMap = asset.map();
54
- const processed = (0, _snapsutils.postProcessBundle)(source, {
55
- ...this.options,
56
- sourceMap: Boolean(devtool),
57
- inputSourceMap: devtool ? sourceMap : undefined
58
- });
59
- if (processed.warnings.length > 0) {
60
- compilation.warnings.push(new _webpack.WebpackError(`${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\n${processed.warnings.join('\n')}`));
54
+ try {
55
+ const processed = (0, _snapsutils.postProcessBundle)(source, {
56
+ ...this.options,
57
+ sourceMap: Boolean(devtool),
58
+ inputSourceMap: devtool ? sourceMap : undefined
59
+ });
60
+ if (processed.warnings.length > 0) {
61
+ compilation.warnings.push(new _webpack.WebpackError(`${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\n${processed.warnings.join('\n')}`));
62
+ }
63
+ const replacement = processed.sourceMap ? new _webpacksources.SourceMapSource(processed.code, assetName, processed.sourceMap, source, sourceMap) : new _webpacksources.RawSource(processed.code);
64
+ // For some reason the type of `RawSource` is not compatible with
65
+ // Webpack's own `Source`, but works fine when casting it to `any`.
66
+ compilation.updateAsset(assetName, replacement);
67
+ } catch (error) {
68
+ compilation.errors.push(new _webpack.WebpackError((0, _snapsutils.getErrorMessage)(error)));
61
69
  }
62
- const replacement = processed.sourceMap ? new _webpacksources.SourceMapSource(processed.code, assetName, processed.sourceMap, source, sourceMap) : new _webpacksources.RawSource(processed.code);
63
- // For some reason the type of `RawSource` is not compatible with
64
- // Webpack's own `Source`, but works fine when casting it to `any`.
65
- compilation.updateAsset(assetName, replacement);
66
70
  });
67
71
  });
68
72
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugin.ts"],"sourcesContent":["import type { PostProcessOptions, SourceMap } from '@metamask/snaps-utils';\nimport {\n checkManifest,\n evalBundle,\n postProcessBundle,\n useTemporaryFile,\n} from '@metamask/snaps-utils';\nimport { assert } from '@metamask/utils';\nimport pathUtils from 'path';\nimport { promisify } from 'util';\nimport type { Compiler } from 'webpack';\nimport { Compilation, WebpackError } from 'webpack';\nimport { RawSource, SourceMapSource } from 'webpack-sources';\n\nconst PLUGIN_NAME = 'SnapsWebpackPlugin';\n\ntype PluginOptions = {\n eval?: boolean;\n manifestPath?: string;\n writeManifest?: boolean;\n};\n\nexport type Options = PluginOptions &\n Omit<PostProcessOptions, 'sourceMap' | 'inputSourceMap'>;\n\nexport default class SnapsWebpackPlugin {\n public readonly options: Partial<Options>;\n\n /**\n * Construct an instance of the plugin.\n *\n * @param options - The post-process options.\n * @param options.stripComments - Whether to strip comments. Defaults to\n * `true`.\n * @param options.eval - Whether to evaluate the bundle to test SES\n * compatibility. Defaults to `true`.\n * @param options.manifestPath - The path to the manifest file. If provided,\n * the manifest will be validated. Defaults to\n * `process.cwd() + '/snap.manifest.json'`.\n * @param options.writeManifest - Whether to fix the manifest.\n * Defaults to `true`.\n */\n constructor(options?: Partial<Options>) {\n this.options = {\n eval: true,\n manifestPath: pathUtils.join(process.cwd(), 'snap.manifest.json'),\n writeManifest: true,\n ...options,\n };\n }\n\n /**\n * Apply the plugin to the Webpack compiler. Hooks into the `processAssets`\n * stage to process the bundle.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n const { devtool } = compiler.options;\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: PLUGIN_NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY,\n additionalAssets: true,\n },\n (assets) => {\n Object.keys(assets)\n .filter((assetName) => assetName.endsWith('.js'))\n .forEach((assetName) => {\n const asset = assets[assetName];\n const source = asset.source() as string;\n const sourceMap = asset.map();\n\n const processed = postProcessBundle(source, {\n ...this.options,\n sourceMap: Boolean(devtool),\n inputSourceMap: devtool ? (sourceMap as SourceMap) : undefined,\n });\n\n if (processed.warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\\n${processed.warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n\n const replacement = processed.sourceMap\n ? new SourceMapSource(\n processed.code,\n assetName,\n processed.sourceMap,\n source,\n sourceMap as SourceMap,\n )\n : new RawSource(processed.code);\n\n // For some reason the type of `RawSource` is not compatible with\n // Webpack's own `Source`, but works fine when casting it to `any`.\n compilation.updateAsset(assetName, replacement as any);\n });\n },\n );\n });\n\n compiler.hooks.afterEmit.tapPromise(PLUGIN_NAME, async (compilation) => {\n const file = compilation\n .getAssets()\n .find((asset) => asset.name.endsWith('.js'));\n\n assert(file);\n\n assert(compilation.outputOptions.path);\n const outputPath = compilation.outputOptions.path;\n\n const filePath = pathUtils.join(outputPath, file.name);\n\n const bundleFile = await promisify(\n compiler.outputFileSystem.readFile.bind(compiler.outputFileSystem),\n )(filePath);\n assert(bundleFile);\n\n const bundleContent = bundleFile.toString();\n\n if (this.options.eval) {\n await useTemporaryFile('snaps-bundle.js', bundleContent, (path) =>\n evalBundle(path),\n );\n }\n\n if (this.options.manifestPath) {\n const { errors, warnings } = await checkManifest(\n pathUtils.dirname(this.options.manifestPath),\n this.options.writeManifest,\n bundleContent,\n promisify(\n compiler.outputFileSystem.writeFile.bind(compiler.outputFileSystem),\n ),\n );\n\n if (!this.options.writeManifest && errors.length > 0) {\n throw new Error(\n `Manifest Error: The manifest is invalid.\\n${errors.join('\\n')}`,\n );\n }\n\n if (warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Manifest Warning: Validation of snap.manifest.json completed with warnings.\\n${warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n }\n });\n }\n}\n"],"names":["SnapsWebpackPlugin","PLUGIN_NAME","apply","compiler","devtool","options","hooks","compilation","tap","processAssets","name","stage","Compilation","PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY","additionalAssets","assets","Object","keys","filter","assetName","endsWith","forEach","asset","source","sourceMap","map","processed","postProcessBundle","Boolean","inputSourceMap","undefined","warnings","length","push","WebpackError","join","replacement","SourceMapSource","code","RawSource","updateAsset","afterEmit","tapPromise","file","getAssets","find","assert","outputOptions","path","outputPath","filePath","pathUtils","bundleFile","promisify","outputFileSystem","readFile","bind","bundleContent","toString","eval","useTemporaryFile","evalBundle","manifestPath","errors","checkManifest","dirname","writeManifest","writeFile","Error","constructor","process","cwd"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/plugin.ts"],"sourcesContent":["import type { PostProcessOptions, SourceMap } from '@metamask/snaps-utils';\nimport {\n checkManifest,\n evalBundle,\n getErrorMessage,\n postProcessBundle,\n useTemporaryFile,\n} from '@metamask/snaps-utils';\nimport { assert } from '@metamask/utils';\nimport pathUtils from 'path';\nimport { promisify } from 'util';\nimport type { Compiler } from 'webpack';\nimport { Compilation, WebpackError } from 'webpack';\nimport { RawSource, SourceMapSource } from 'webpack-sources';\n\nconst PLUGIN_NAME = 'SnapsWebpackPlugin';\n\ntype PluginOptions = {\n eval?: boolean;\n manifestPath?: string;\n writeManifest?: boolean;\n};\n\nexport type Options = PluginOptions &\n Omit<PostProcessOptions, 'sourceMap' | 'inputSourceMap'>;\n\nexport default class SnapsWebpackPlugin {\n public readonly options: Partial<Options>;\n\n /**\n * Construct an instance of the plugin.\n *\n * @param options - The post-process options.\n * @param options.stripComments - Whether to strip comments. Defaults to\n * `true`.\n * @param options.eval - Whether to evaluate the bundle to test SES\n * compatibility. Defaults to `true`.\n * @param options.manifestPath - The path to the manifest file. If provided,\n * the manifest will be validated. Defaults to\n * `process.cwd() + '/snap.manifest.json'`.\n * @param options.writeManifest - Whether to fix the manifest.\n * Defaults to `true`.\n */\n constructor(options?: Partial<Options>) {\n this.options = {\n eval: true,\n manifestPath: pathUtils.join(process.cwd(), 'snap.manifest.json'),\n writeManifest: true,\n ...options,\n };\n }\n\n /**\n * Apply the plugin to the Webpack compiler. Hooks into the `processAssets`\n * stage to process the bundle.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n const { devtool } = compiler.options;\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: PLUGIN_NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY,\n additionalAssets: true,\n },\n (assets) => {\n Object.keys(assets)\n .filter((assetName) => assetName.endsWith('.js'))\n .forEach((assetName) => {\n const asset = assets[assetName];\n const source = asset.source() as string;\n const sourceMap = asset.map();\n\n try {\n const processed = postProcessBundle(source, {\n ...this.options,\n sourceMap: Boolean(devtool),\n inputSourceMap: devtool\n ? (sourceMap as SourceMap)\n : undefined,\n });\n\n if (processed.warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\\n${processed.warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n\n const replacement = processed.sourceMap\n ? new SourceMapSource(\n processed.code,\n assetName,\n processed.sourceMap,\n source,\n sourceMap as SourceMap,\n )\n : new RawSource(processed.code);\n\n // For some reason the type of `RawSource` is not compatible with\n // Webpack's own `Source`, but works fine when casting it to `any`.\n compilation.updateAsset(assetName, replacement as any);\n } catch (error) {\n compilation.errors.push(\n new WebpackError(getErrorMessage(error)),\n );\n }\n });\n },\n );\n });\n\n compiler.hooks.afterEmit.tapPromise(PLUGIN_NAME, async (compilation) => {\n const file = compilation\n .getAssets()\n .find((asset) => asset.name.endsWith('.js'));\n\n assert(file);\n\n assert(compilation.outputOptions.path);\n const outputPath = compilation.outputOptions.path;\n\n const filePath = pathUtils.join(outputPath, file.name);\n\n const bundleFile = await promisify(\n compiler.outputFileSystem.readFile.bind(compiler.outputFileSystem),\n )(filePath);\n assert(bundleFile);\n\n const bundleContent = bundleFile.toString();\n\n if (this.options.eval) {\n await useTemporaryFile('snaps-bundle.js', bundleContent, (path) =>\n evalBundle(path),\n );\n }\n\n if (this.options.manifestPath) {\n const { errors, warnings } = await checkManifest(\n pathUtils.dirname(this.options.manifestPath),\n this.options.writeManifest,\n bundleContent,\n promisify(\n compiler.outputFileSystem.writeFile.bind(compiler.outputFileSystem),\n ),\n );\n\n if (!this.options.writeManifest && errors.length > 0) {\n throw new Error(\n `Manifest Error: The manifest is invalid.\\n${errors.join('\\n')}`,\n );\n }\n\n if (warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Manifest Warning: Validation of snap.manifest.json completed with warnings.\\n${warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n }\n });\n }\n}\n"],"names":["SnapsWebpackPlugin","PLUGIN_NAME","apply","compiler","devtool","options","hooks","compilation","tap","processAssets","name","stage","Compilation","PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY","additionalAssets","assets","Object","keys","filter","assetName","endsWith","forEach","asset","source","sourceMap","map","processed","postProcessBundle","Boolean","inputSourceMap","undefined","warnings","length","push","WebpackError","join","replacement","SourceMapSource","code","RawSource","updateAsset","error","errors","getErrorMessage","afterEmit","tapPromise","file","getAssets","find","assert","outputOptions","path","outputPath","filePath","pathUtils","bundleFile","promisify","outputFileSystem","readFile","bind","bundleContent","toString","eval","useTemporaryFile","evalBundle","manifestPath","checkManifest","dirname","writeManifest","writeFile","Error","constructor","process","cwd"],"mappings":"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"}
@@ -11,7 +11,7 @@ function _define_property(obj, key, value) {
11
11
  }
12
12
  return obj;
13
13
  }
14
- import { checkManifest, evalBundle, postProcessBundle, useTemporaryFile } from '@metamask/snaps-utils';
14
+ import { checkManifest, evalBundle, getErrorMessage, postProcessBundle, useTemporaryFile } from '@metamask/snaps-utils';
15
15
  import { assert } from '@metamask/utils';
16
16
  import pathUtils from 'path';
17
17
  import { promisify } from 'util';
@@ -36,18 +36,22 @@ class SnapsWebpackPlugin {
36
36
  const asset = assets[assetName];
37
37
  const source = asset.source();
38
38
  const sourceMap = asset.map();
39
- const processed = postProcessBundle(source, {
40
- ...this.options,
41
- sourceMap: Boolean(devtool),
42
- inputSourceMap: devtool ? sourceMap : undefined
43
- });
44
- if (processed.warnings.length > 0) {
45
- compilation.warnings.push(new WebpackError(`${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\n${processed.warnings.join('\n')}`));
39
+ try {
40
+ const processed = postProcessBundle(source, {
41
+ ...this.options,
42
+ sourceMap: Boolean(devtool),
43
+ inputSourceMap: devtool ? sourceMap : undefined
44
+ });
45
+ if (processed.warnings.length > 0) {
46
+ compilation.warnings.push(new WebpackError(`${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\n${processed.warnings.join('\n')}`));
47
+ }
48
+ const replacement = processed.sourceMap ? new SourceMapSource(processed.code, assetName, processed.sourceMap, source, sourceMap) : new RawSource(processed.code);
49
+ // For some reason the type of `RawSource` is not compatible with
50
+ // Webpack's own `Source`, but works fine when casting it to `any`.
51
+ compilation.updateAsset(assetName, replacement);
52
+ } catch (error) {
53
+ compilation.errors.push(new WebpackError(getErrorMessage(error)));
46
54
  }
47
- const replacement = processed.sourceMap ? new SourceMapSource(processed.code, assetName, processed.sourceMap, source, sourceMap) : new RawSource(processed.code);
48
- // For some reason the type of `RawSource` is not compatible with
49
- // Webpack's own `Source`, but works fine when casting it to `any`.
50
- compilation.updateAsset(assetName, replacement);
51
55
  });
52
56
  });
53
57
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugin.ts"],"sourcesContent":["import type { PostProcessOptions, SourceMap } from '@metamask/snaps-utils';\nimport {\n checkManifest,\n evalBundle,\n postProcessBundle,\n useTemporaryFile,\n} from '@metamask/snaps-utils';\nimport { assert } from '@metamask/utils';\nimport pathUtils from 'path';\nimport { promisify } from 'util';\nimport type { Compiler } from 'webpack';\nimport { Compilation, WebpackError } from 'webpack';\nimport { RawSource, SourceMapSource } from 'webpack-sources';\n\nconst PLUGIN_NAME = 'SnapsWebpackPlugin';\n\ntype PluginOptions = {\n eval?: boolean;\n manifestPath?: string;\n writeManifest?: boolean;\n};\n\nexport type Options = PluginOptions &\n Omit<PostProcessOptions, 'sourceMap' | 'inputSourceMap'>;\n\nexport default class SnapsWebpackPlugin {\n public readonly options: Partial<Options>;\n\n /**\n * Construct an instance of the plugin.\n *\n * @param options - The post-process options.\n * @param options.stripComments - Whether to strip comments. Defaults to\n * `true`.\n * @param options.eval - Whether to evaluate the bundle to test SES\n * compatibility. Defaults to `true`.\n * @param options.manifestPath - The path to the manifest file. If provided,\n * the manifest will be validated. Defaults to\n * `process.cwd() + '/snap.manifest.json'`.\n * @param options.writeManifest - Whether to fix the manifest.\n * Defaults to `true`.\n */\n constructor(options?: Partial<Options>) {\n this.options = {\n eval: true,\n manifestPath: pathUtils.join(process.cwd(), 'snap.manifest.json'),\n writeManifest: true,\n ...options,\n };\n }\n\n /**\n * Apply the plugin to the Webpack compiler. Hooks into the `processAssets`\n * stage to process the bundle.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n const { devtool } = compiler.options;\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: PLUGIN_NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY,\n additionalAssets: true,\n },\n (assets) => {\n Object.keys(assets)\n .filter((assetName) => assetName.endsWith('.js'))\n .forEach((assetName) => {\n const asset = assets[assetName];\n const source = asset.source() as string;\n const sourceMap = asset.map();\n\n const processed = postProcessBundle(source, {\n ...this.options,\n sourceMap: Boolean(devtool),\n inputSourceMap: devtool ? (sourceMap as SourceMap) : undefined,\n });\n\n if (processed.warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\\n${processed.warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n\n const replacement = processed.sourceMap\n ? new SourceMapSource(\n processed.code,\n assetName,\n processed.sourceMap,\n source,\n sourceMap as SourceMap,\n )\n : new RawSource(processed.code);\n\n // For some reason the type of `RawSource` is not compatible with\n // Webpack's own `Source`, but works fine when casting it to `any`.\n compilation.updateAsset(assetName, replacement as any);\n });\n },\n );\n });\n\n compiler.hooks.afterEmit.tapPromise(PLUGIN_NAME, async (compilation) => {\n const file = compilation\n .getAssets()\n .find((asset) => asset.name.endsWith('.js'));\n\n assert(file);\n\n assert(compilation.outputOptions.path);\n const outputPath = compilation.outputOptions.path;\n\n const filePath = pathUtils.join(outputPath, file.name);\n\n const bundleFile = await promisify(\n compiler.outputFileSystem.readFile.bind(compiler.outputFileSystem),\n )(filePath);\n assert(bundleFile);\n\n const bundleContent = bundleFile.toString();\n\n if (this.options.eval) {\n await useTemporaryFile('snaps-bundle.js', bundleContent, (path) =>\n evalBundle(path),\n );\n }\n\n if (this.options.manifestPath) {\n const { errors, warnings } = await checkManifest(\n pathUtils.dirname(this.options.manifestPath),\n this.options.writeManifest,\n bundleContent,\n promisify(\n compiler.outputFileSystem.writeFile.bind(compiler.outputFileSystem),\n ),\n );\n\n if (!this.options.writeManifest && errors.length > 0) {\n throw new Error(\n `Manifest Error: The manifest is invalid.\\n${errors.join('\\n')}`,\n );\n }\n\n if (warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Manifest Warning: Validation of snap.manifest.json completed with warnings.\\n${warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n }\n });\n }\n}\n"],"names":["checkManifest","evalBundle","postProcessBundle","useTemporaryFile","assert","pathUtils","promisify","Compilation","WebpackError","RawSource","SourceMapSource","PLUGIN_NAME","SnapsWebpackPlugin","apply","compiler","devtool","options","hooks","compilation","tap","processAssets","name","stage","PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY","additionalAssets","assets","Object","keys","filter","assetName","endsWith","forEach","asset","source","sourceMap","map","processed","Boolean","inputSourceMap","undefined","warnings","length","push","join","replacement","code","updateAsset","afterEmit","tapPromise","file","getAssets","find","outputOptions","path","outputPath","filePath","bundleFile","outputFileSystem","readFile","bind","bundleContent","toString","eval","manifestPath","errors","dirname","writeManifest","writeFile","Error","constructor","process","cwd"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/plugin.ts"],"sourcesContent":["import type { PostProcessOptions, SourceMap } from '@metamask/snaps-utils';\nimport {\n checkManifest,\n evalBundle,\n getErrorMessage,\n postProcessBundle,\n useTemporaryFile,\n} from '@metamask/snaps-utils';\nimport { assert } from '@metamask/utils';\nimport pathUtils from 'path';\nimport { promisify } from 'util';\nimport type { Compiler } from 'webpack';\nimport { Compilation, WebpackError } from 'webpack';\nimport { RawSource, SourceMapSource } from 'webpack-sources';\n\nconst PLUGIN_NAME = 'SnapsWebpackPlugin';\n\ntype PluginOptions = {\n eval?: boolean;\n manifestPath?: string;\n writeManifest?: boolean;\n};\n\nexport type Options = PluginOptions &\n Omit<PostProcessOptions, 'sourceMap' | 'inputSourceMap'>;\n\nexport default class SnapsWebpackPlugin {\n public readonly options: Partial<Options>;\n\n /**\n * Construct an instance of the plugin.\n *\n * @param options - The post-process options.\n * @param options.stripComments - Whether to strip comments. Defaults to\n * `true`.\n * @param options.eval - Whether to evaluate the bundle to test SES\n * compatibility. Defaults to `true`.\n * @param options.manifestPath - The path to the manifest file. If provided,\n * the manifest will be validated. Defaults to\n * `process.cwd() + '/snap.manifest.json'`.\n * @param options.writeManifest - Whether to fix the manifest.\n * Defaults to `true`.\n */\n constructor(options?: Partial<Options>) {\n this.options = {\n eval: true,\n manifestPath: pathUtils.join(process.cwd(), 'snap.manifest.json'),\n writeManifest: true,\n ...options,\n };\n }\n\n /**\n * Apply the plugin to the Webpack compiler. Hooks into the `processAssets`\n * stage to process the bundle.\n *\n * @param compiler - The Webpack compiler.\n */\n apply(compiler: Compiler) {\n const { devtool } = compiler.options;\n\n compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: PLUGIN_NAME,\n stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY,\n additionalAssets: true,\n },\n (assets) => {\n Object.keys(assets)\n .filter((assetName) => assetName.endsWith('.js'))\n .forEach((assetName) => {\n const asset = assets[assetName];\n const source = asset.source() as string;\n const sourceMap = asset.map();\n\n try {\n const processed = postProcessBundle(source, {\n ...this.options,\n sourceMap: Boolean(devtool),\n inputSourceMap: devtool\n ? (sourceMap as SourceMap)\n : undefined,\n });\n\n if (processed.warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Bundle Warning: Processing of the Snap bundle completed with warnings.\\n${processed.warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n\n const replacement = processed.sourceMap\n ? new SourceMapSource(\n processed.code,\n assetName,\n processed.sourceMap,\n source,\n sourceMap as SourceMap,\n )\n : new RawSource(processed.code);\n\n // For some reason the type of `RawSource` is not compatible with\n // Webpack's own `Source`, but works fine when casting it to `any`.\n compilation.updateAsset(assetName, replacement as any);\n } catch (error) {\n compilation.errors.push(\n new WebpackError(getErrorMessage(error)),\n );\n }\n });\n },\n );\n });\n\n compiler.hooks.afterEmit.tapPromise(PLUGIN_NAME, async (compilation) => {\n const file = compilation\n .getAssets()\n .find((asset) => asset.name.endsWith('.js'));\n\n assert(file);\n\n assert(compilation.outputOptions.path);\n const outputPath = compilation.outputOptions.path;\n\n const filePath = pathUtils.join(outputPath, file.name);\n\n const bundleFile = await promisify(\n compiler.outputFileSystem.readFile.bind(compiler.outputFileSystem),\n )(filePath);\n assert(bundleFile);\n\n const bundleContent = bundleFile.toString();\n\n if (this.options.eval) {\n await useTemporaryFile('snaps-bundle.js', bundleContent, (path) =>\n evalBundle(path),\n );\n }\n\n if (this.options.manifestPath) {\n const { errors, warnings } = await checkManifest(\n pathUtils.dirname(this.options.manifestPath),\n this.options.writeManifest,\n bundleContent,\n promisify(\n compiler.outputFileSystem.writeFile.bind(compiler.outputFileSystem),\n ),\n );\n\n if (!this.options.writeManifest && errors.length > 0) {\n throw new Error(\n `Manifest Error: The manifest is invalid.\\n${errors.join('\\n')}`,\n );\n }\n\n if (warnings.length > 0) {\n compilation.warnings.push(\n new WebpackError(\n `${PLUGIN_NAME}: Manifest Warning: Validation of snap.manifest.json completed with warnings.\\n${warnings.join(\n '\\n',\n )}`,\n ),\n );\n }\n }\n });\n }\n}\n"],"names":["checkManifest","evalBundle","getErrorMessage","postProcessBundle","useTemporaryFile","assert","pathUtils","promisify","Compilation","WebpackError","RawSource","SourceMapSource","PLUGIN_NAME","SnapsWebpackPlugin","apply","compiler","devtool","options","hooks","compilation","tap","processAssets","name","stage","PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY","additionalAssets","assets","Object","keys","filter","assetName","endsWith","forEach","asset","source","sourceMap","map","processed","Boolean","inputSourceMap","undefined","warnings","length","push","join","replacement","code","updateAsset","error","errors","afterEmit","tapPromise","file","getAssets","find","outputOptions","path","outputPath","filePath","bundleFile","outputFileSystem","readFile","bind","bundleContent","toString","eval","manifestPath","dirname","writeManifest","writeFile","Error","constructor","process","cwd"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-webpack-plugin",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "keywords": [
5
5
  "webpack",
6
6
  "plugin"
@@ -40,12 +40,12 @@
40
40
  "lint:dependencies": "depcheck"
41
41
  },
42
42
  "dependencies": {
43
- "@metamask/snaps-utils": "^2.0.0",
43
+ "@metamask/snaps-utils": "^2.0.1",
44
44
  "@metamask/utils": "^8.1.0",
45
45
  "webpack-sources": "^3.2.3"
46
46
  },
47
47
  "devDependencies": {
48
- "@lavamoat/allow-scripts": "^2.3.1",
48
+ "@lavamoat/allow-scripts": "^2.5.1",
49
49
  "@metamask/auto-changelog": "^3.1.0",
50
50
  "@metamask/eslint-config": "^12.1.0",
51
51
  "@metamask/eslint-config-jest": "^12.1.0",