@mongodb-js/sbom-tools 0.4.0 → 0.5.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.
@@ -13,7 +13,8 @@ export declare class WebpackDependenciesPlugin implements WebpackPluginInstance
13
13
  includePackages: string[];
14
14
  constructor(options?: WebpackDependenciesPluginOptions);
15
15
  private isThirdPartyModule;
16
- private handleTap;
16
+ private getWebpackModulePath;
17
+ private addIncludedPackages;
17
18
  apply(compiler: Compiler): void;
18
19
  }
19
20
  export default WebpackDependenciesPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-dependencies-plugin.d.ts","sourceRoot":"","sources":["../src/webpack-dependencies-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAW5E,oBAAY,gCAAgC,GAAG;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD,CAAC;AAMF,qBAAa,yBAA0B,YAAW,qBAAqB;IAOzD,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,cAAqB;IACpC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAM;gBAEX,OAAO,GAAE,gCAAqC;IAOlE,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS,CA8Bf;IAEF,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CA4BhC;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"webpack-dependencies-plugin.d.ts","sourceRoot":"","sources":["../src/webpack-dependencies-plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAa/D,oBAAY,gCAAgC,GAAG;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD,CAAC;AAMF,qBAAa,yBAA0B,YAAW,qBAAqB;IAOzD,OAAO,CAAC,OAAO;IAN3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,cAAqB;IACpC,qCAAqC,EAAE,OAAO,CAAC;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAM;gBAEX,OAAO,GAAE,gCAAqC;IAOlE,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,mBAAmB;IAmB3B,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAwDhC;AAED,eAAe,yBAAyB,CAAC"}
@@ -7,6 +7,7 @@ exports.WebpackDependenciesPlugin = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const fs_1 = require("fs");
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
+ const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
10
11
  const production_deps_1 = require("./production-deps");
11
12
  const get_package_info_1 = require("./get-package-info");
12
13
  const PLUGIN_NAME = 'WebpackDependenciesPlugin';
@@ -17,30 +18,6 @@ class WebpackDependenciesPlugin {
17
18
  this.pluginName = PLUGIN_NAME;
18
19
  this.resolvedModules = new Set();
19
20
  this.includePackages = [];
20
- this.handleTap = (compilation) => {
21
- for (const module of compilation.modules) {
22
- const resource = module.resource;
23
- if (resource) {
24
- const modulePath = resource;
25
- if (typeof modulePath === 'string' &&
26
- this.isThirdPartyModule(modulePath)) {
27
- this.resolvedModules.add(modulePath);
28
- }
29
- }
30
- }
31
- const includePackages = [
32
- ...(this.includeExternalProductionDependencies
33
- ? (0, production_deps_1.findAllProdDepsTreeLocations)(compilation.compiler.context)
34
- : []),
35
- ...(this.includePackages || []).map((packageName) => (0, production_deps_1.findPackageLocation)(packageName, compilation.compiler.context)),
36
- ];
37
- for (const includedPackagePath of includePackages) {
38
- const packageJsonPath = path_1.default.join(includedPackagePath, 'package.json');
39
- if (packageJsonPath) {
40
- this.resolvedModules.add(packageJsonPath);
41
- }
42
- }
43
- };
44
21
  this.includeExternalProductionDependencies =
45
22
  (_a = options.includeExternalProductionDependencies) !== null && _a !== void 0 ? _a : false;
46
23
  this.includePackages = (_b = options.includePackages) !== null && _b !== void 0 ? _b : [];
@@ -49,7 +26,46 @@ class WebpackDependenciesPlugin {
49
26
  isThirdPartyModule(modulePath) {
50
27
  return modulePath.split(path_1.default.sep).includes('node_modules');
51
28
  }
29
+ getWebpackModulePath(error) {
30
+ const stack = error_stack_parser_1.default.parse(error);
31
+ const webpackEntry = stack.find((entry) => {
32
+ var _a;
33
+ return (_a = entry.fileName) === null || _a === void 0 ? void 0 : _a.split(path_1.default.win32.sep).join(path_1.default.posix.sep).includes('node_modules/webpack');
34
+ });
35
+ return webpackEntry === null || webpackEntry === void 0 ? void 0 : webpackEntry.fileName;
36
+ }
37
+ addIncludedPackages(compiler) {
38
+ const includePackages = [
39
+ ...(this.includeExternalProductionDependencies
40
+ ? (0, production_deps_1.findAllProdDepsTreeLocations)(compiler.context)
41
+ : []),
42
+ ...(this.includePackages || []).map((packageName) => (0, production_deps_1.findPackageLocation)(packageName, compiler.context)),
43
+ ];
44
+ for (const includedPackagePath of includePackages) {
45
+ const packageJsonPath = path_1.default.join(includedPackagePath, 'package.json');
46
+ if (packageJsonPath) {
47
+ this.resolvedModules.add(packageJsonPath);
48
+ }
49
+ }
50
+ }
52
51
  apply(compiler) {
52
+ const webpackModulePath = this.getWebpackModulePath(new Error());
53
+ this.addIncludedPackages(compiler);
54
+ compiler.hooks.done.tapAsync(PLUGIN_NAME, (stats, done) => {
55
+ const { modules } = stats.toJson();
56
+ modules === null || modules === void 0 ? void 0 : modules.forEach(({ type, nameForCondition }) => {
57
+ if (type === 'module' &&
58
+ nameForCondition &&
59
+ this.isThirdPartyModule(nameForCondition)) {
60
+ this.resolvedModules.add(nameForCondition);
61
+ }
62
+ });
63
+ if ((modules === null || modules === void 0 ? void 0 : modules.find((m) => { var _a; return m.moduleType === 'runtime' && ((_a = m.name) === null || _a === void 0 ? void 0 : _a.startsWith('webpack/runtime')); })) &&
64
+ webpackModulePath) {
65
+ this.resolvedModules.add(webpackModulePath);
66
+ }
67
+ done();
68
+ });
53
69
  compiler.hooks.shutdown.tapPromise(PLUGIN_NAME, async () => {
54
70
  var _a;
55
71
  const dependencyList = await Promise.all(Array.from(this.resolvedModules).map(get_package_info_1.getPackageInfo));
@@ -61,7 +77,6 @@ class WebpackDependenciesPlugin {
61
77
  });
62
78
  await fs_1.promises.writeFile(outputPath, JSON.stringify(sortedList, null, 2));
63
79
  });
64
- compiler.hooks.emit.tap(PLUGIN_NAME, this.handleTap);
65
80
  }
66
81
  }
67
82
  exports.WebpackDependenciesPlugin = WebpackDependenciesPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"webpack-dependencies-plugin.js","sourceRoot":"","sources":["../src/webpack-dependencies-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webpack-dependencies-plugin.js","sourceRoot":"","sources":["../src/webpack-dependencies-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "email": "compass@mongodb.com"
17
17
  },
18
18
  "homepage": "https://github.com/mongodb-js/devtools-shared",
19
- "version": "0.4.0",
19
+ "version": "0.5.1",
20
20
  "repository": {
21
21
  "type": "git",
22
22
  "url": "https://github.com/mongodb-js/devtools-shared.git"
@@ -49,7 +49,7 @@
49
49
  "reformat": "npm run prettier -- --write ."
50
50
  },
51
51
  "devDependencies": {
52
- "@mongodb-js/eslint-config-devtools": "0.9.3",
52
+ "@mongodb-js/eslint-config-devtools": "0.9.4",
53
53
  "@mongodb-js/mocha-config-compass": "^0.10.0",
54
54
  "@mongodb-js/prettier-config-compass": "^0.5.0",
55
55
  "@mongodb-js/tsconfig-compass": "^0.6.0",
@@ -76,6 +76,7 @@
76
76
  "dependencies": {
77
77
  "@pkgjs/nv": "^0.2.1",
78
78
  "commander": "^10.0.1",
79
+ "error-stack-parser": "^2.1.4",
79
80
  "find-up": "^4.1.0",
80
81
  "lodash": "^4.17.21",
81
82
  "node-fetch": "^2.6.7",
@@ -83,5 +84,5 @@
83
84
  "snyk-policy": "^2.0.4",
84
85
  "spdx-satisfies": "^5.0.1"
85
86
  },
86
- "gitHead": "cd9624abfc2402784b0b97b146631bdd5d2e822d"
87
+ "gitHead": "a9af956a4aa2737d3b50ff34ecf8b11d349ddf70"
87
88
  }