@commitlint/load
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"AAIA,OAAuB,EACtB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,WAAW,EAEX,eAAe,EAEf,UAAU,EACV,MAAM,mBAAmB,CAAC;AAmB3B,wBAA8B,IAAI,CACjC,IAAI,GAAE,UAAe,EACrB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAoG1B;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"} | ||
| {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"AAIA,OAAuB,EACtB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,WAAW,EAEX,eAAe,EAEf,UAAU,EACV,MAAM,mBAAmB,CAAC;AAmB3B,wBAA8B,IAAI,CACjC,IAAI,GAAE,UAAe,EACrB,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,eAAe,CAAC,CAkG1B;AAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC"} |
+3
-1
@@ -59,3 +59,5 @@ import path from "node:path"; | ||
| if (typeof plugin === "string") { | ||
| plugins = await loadPlugin(plugins, plugin, process.env.DEBUG === "true"); | ||
| plugins = await loadPlugin(plugins, plugin, { | ||
| debug: process.env.DEBUG === "true", | ||
| }); | ||
| } | ||
@@ -62,0 +64,0 @@ else { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"} |
| import { PluginRecords } from "@commitlint/types"; | ||
| export default function loadPlugin(plugins: PluginRecords, pluginName: string, debug?: boolean): Promise<PluginRecords>; | ||
| export interface LoadPluginOptions { | ||
| debug?: boolean; | ||
| searchPaths?: string[]; | ||
| } | ||
| export default function loadPlugin(plugins: PluginRecords, pluginName: string, options?: LoadPluginOptions | boolean): Promise<PluginRecords>; | ||
| //# sourceMappingURL=load-plugin.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"load-plugin.d.ts","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAU,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAiB1D,wBAA8B,UAAU,CACvC,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,OAAe,GACpB,OAAO,CAAC,aAAa,CAAC,CA8DxB"} | ||
| {"version":3,"file":"load-plugin.d.ts","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAqC1D,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAWD,wBAA8B,UAAU,CACvC,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAiB,GAAG,OAAY,GACvC,OAAO,CAAC,aAAa,CAAC,CAuJxB"} |
+119
-25
| import { createRequire } from "node:module"; | ||
| import fs from "node:fs"; | ||
| import path from "node:path"; | ||
@@ -7,2 +8,3 @@ import { fileURLToPath, pathToFileURL } from "node:url"; | ||
| import { WhitespacePluginError, MissingPluginError } from "./plugin-errors.js"; | ||
| import { resolveFromNpxCache } from "@commitlint/resolve-extends"; | ||
| const require = createRequire(import.meta.url); | ||
@@ -14,6 +16,41 @@ const __dirname = path.resolve(fileURLToPath(import.meta.url), ".."); | ||
| }; | ||
| export default async function loadPlugin(plugins, pluginName, debug = false) { | ||
| function sanitizeErrorMessage(message) { | ||
| return message | ||
| .replace(/\/[^/]+\/node_modules/g, "...") | ||
| .replace(/\\[^\\]+\\node_modules/g, "..."); | ||
| } | ||
| function findPackageJson(dir) { | ||
| let current = dir; | ||
| const root = path.parse(dir).root; | ||
| while (current !== root) { | ||
| const pkgPath = path.join(current, "package.json"); | ||
| if (fs.existsSync(pkgPath)) { | ||
| return pkgPath; | ||
| } | ||
| current = path.dirname(current); | ||
| } | ||
| return null; | ||
| } | ||
| function normalizeOptions(options) { | ||
| if (typeof options === "boolean") { | ||
| return { debug: options }; | ||
| } | ||
| return options; | ||
| } | ||
| export default async function loadPlugin(plugins, pluginName, options = {}) { | ||
| const normalized = normalizeOptions(options); | ||
| const { debug = false, searchPaths = [] } = normalized; | ||
| for (const searchPath of searchPaths) { | ||
| if (typeof searchPath !== "string" || !path.isAbsolute(searchPath)) { | ||
| throw new Error(`Invalid searchPath "${searchPath}": must be an absolute path`); | ||
| } | ||
| if (!fs.existsSync(searchPath)) { | ||
| throw new Error(`Invalid searchPath "${searchPath}": directory does not exist`); | ||
| } | ||
| if (!fs.statSync(searchPath).isDirectory()) { | ||
| throw new Error(`Invalid searchPath "${searchPath}": must be a directory, not a file`); | ||
| } | ||
| } | ||
| const longName = normalizePackageName(pluginName); | ||
| const shortName = getShorthandName(longName); | ||
| let plugin; | ||
| if (pluginName.match(/\s+/u)) { | ||
@@ -26,38 +63,95 @@ throw new WhitespacePluginError(pluginName, { | ||
| if (!plugins[pluginKey]) { | ||
| try { | ||
| plugin = await dynamicImport(longName); | ||
| let plugin; | ||
| let resolvedPath; | ||
| // Try to load from npx cache directories using require.resolve | ||
| const npxResolvedPath = resolveFromNpxCache(longName); | ||
| if (npxResolvedPath) { | ||
| try { | ||
| plugin = await dynamicImport(npxResolvedPath); | ||
| resolvedPath = npxResolvedPath; | ||
| } | ||
| catch (err) { | ||
| if (debug) { | ||
| console.debug(`Failed to load plugin ${longName} from npx cache: ${err.message}`); | ||
| } | ||
| } | ||
| } | ||
| catch (pluginLoadErr) { | ||
| // Try to load from additional search paths (extended config's node_modules) | ||
| if (!plugin) { | ||
| for (const searchPath of searchPaths) { | ||
| try { | ||
| resolvedPath = require.resolve(longName, { paths: [searchPath] }); | ||
| plugin = await dynamicImport(resolvedPath); | ||
| break; | ||
| } | ||
| catch (err) { | ||
| if (debug) { | ||
| console.debug(`Failed to load plugin ${longName} from ${searchPath}: ${err.message}`); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // Try default resolution as last resort | ||
| if (!plugin) { | ||
| try { | ||
| // Check whether the plugin exists | ||
| require.resolve(longName); | ||
| plugin = await dynamicImport(longName); | ||
| // Try to resolve path for debug logging | ||
| try { | ||
| resolvedPath = require.resolve(longName); | ||
| } | ||
| catch { | ||
| // Ignore - path not critical | ||
| } | ||
| } | ||
| catch (error) { | ||
| // If the plugin can't be resolved, display the missing plugin error (usually a config or install error) | ||
| console.error(pc.red(`Failed to load plugin ${longName}.`)); | ||
| const message = error?.message || "Unknown error occurred"; | ||
| throw new MissingPluginError(pluginName, message, { | ||
| pluginName: longName, | ||
| commitlintPath: path.resolve(__dirname, "../.."), | ||
| }); | ||
| catch (err) { | ||
| let resolutionError; | ||
| try { | ||
| resolvedPath = require.resolve(longName); | ||
| } | ||
| catch (resolveErr) { | ||
| resolutionError = resolveErr; | ||
| } | ||
| if (resolutionError) { | ||
| // Resolution failed - throw MissingPluginError | ||
| if (debug) { | ||
| console.debug(`Failed to resolve plugin ${longName}: ${resolutionError.message}`); | ||
| } | ||
| throw new MissingPluginError(pluginName, sanitizeErrorMessage(resolutionError.message), { | ||
| pluginName: longName, | ||
| commitlintPath: path.resolve(__dirname, "../.."), | ||
| }); | ||
| } | ||
| // Resolution succeeded but import failed - rethrow original error | ||
| throw err; | ||
| } | ||
| // Otherwise, the plugin exists and is throwing on module load for some reason, so print the stack trace. | ||
| throw pluginLoadErr; | ||
| } | ||
| // This step is costly, so skip if debug is disabled | ||
| if (debug) { | ||
| const resolvedPath = require.resolve(longName); | ||
| let version = null; | ||
| try { | ||
| version = require(`${longName}/package.json`).version; | ||
| if (resolvedPath) { | ||
| try { | ||
| const pkgPath = findPackageJson(path.dirname(resolvedPath)); | ||
| if (pkgPath) { | ||
| version = require(pkgPath).version; | ||
| } | ||
| } | ||
| catch { | ||
| // Do nothing | ||
| } | ||
| } | ||
| catch (e) { | ||
| // Do nothing | ||
| } | ||
| const loadedPluginAndVersion = version | ||
| ? `${longName}@${version}` | ||
| : `${longName}, version unknown`; | ||
| console.log(pc.blue(`Loaded plugin ${pluginName} (${loadedPluginAndVersion}) (from ${resolvedPath})`)); | ||
| const fromPath = resolvedPath ? ` (from ${resolvedPath})` : ""; | ||
| console.log(pc.blue(`Loaded plugin ${pluginName} (${loadedPluginAndVersion})${fromPath}`)); | ||
| } | ||
| plugins[pluginKey] = plugin; | ||
| if (plugin) { | ||
| plugins[pluginKey] = plugin; | ||
| } | ||
| else { | ||
| throw new MissingPluginError(pluginName, "Plugin loaded but is undefined", { | ||
| pluginName: longName, | ||
| commitlintPath: path.resolve(__dirname, "../.."), | ||
| }); | ||
| } | ||
| } | ||
@@ -64,0 +158,0 @@ return plugins; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"load-plugin.js","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"load-plugin.js","sourceRoot":"","sources":["../../src/utils/load-plugin.ts"],"names":[],"mappings":"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"} |
+7
-7
| { | ||
| "name": "@commitlint/load", | ||
| "type": "module", | ||
| "version": "20.4.0", | ||
| "version": "20.4.3", | ||
| "description": "Load shared commitlint configuration", | ||
@@ -39,3 +39,3 @@ "main": "lib/load.js", | ||
| "devDependencies": { | ||
| "@commitlint/test": "^20.4.0", | ||
| "@commitlint/test": "^20.4.3", | ||
| "@types/lodash.mergewith": "^4.6.8", | ||
@@ -47,7 +47,7 @@ "@types/node": "^18.19.17", | ||
| "dependencies": { | ||
| "@commitlint/config-validator": "^20.4.0", | ||
| "@commitlint/config-validator": "^20.4.3", | ||
| "@commitlint/execute-rule": "^20.0.0", | ||
| "@commitlint/resolve-extends": "^20.4.0", | ||
| "@commitlint/types": "^20.4.0", | ||
| "cosmiconfig": "^9.0.0", | ||
| "@commitlint/resolve-extends": "^20.4.3", | ||
| "@commitlint/types": "^20.4.3", | ||
| "cosmiconfig": "^9.0.1", | ||
| "cosmiconfig-typescript-loader": "^6.1.0", | ||
@@ -58,3 +58,3 @@ "is-plain-obj": "^4.1.0", | ||
| }, | ||
| "gitHead": "c68de5e24b010e38eac171f35ba18d31bb1fd3dd" | ||
| "gitHead": "a7469817974796a6e89f55911bb66b7bffa44099" | ||
| } |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
42989
17.82%541
22.68%3
50%