each-package
Advanced tools
+6
-6
@@ -11,3 +11,3 @@ "use strict"; | ||
| }); | ||
| var _exit = /*#__PURE__*/ _interop_require_default(require("exit")); | ||
| var _exitcompat = /*#__PURE__*/ _interop_require_default(require("exit-compat")); | ||
| var _fs = /*#__PURE__*/ _interop_require_default(require("fs")); | ||
@@ -75,3 +75,3 @@ var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat")); | ||
| console.log(getVersion()); | ||
| (0, _exit.default)(0); | ||
| (0, _exitcompat.default)(0); | ||
| return; | ||
@@ -81,3 +81,3 @@ } | ||
| showHelp(name); | ||
| (0, _exit.default)(0); | ||
| (0, _exitcompat.default)(0); | ||
| return; | ||
@@ -88,3 +88,3 @@ } | ||
| console.log("Missing command. Example usage: ".concat(name, " [command]")); | ||
| (0, _exit.default)(ERROR_CODE); | ||
| (0, _exitcompat.default)(ERROR_CODE); | ||
| return; | ||
@@ -96,3 +96,3 @@ } | ||
| console.log(err.message); | ||
| (0, _exit.default)(ERROR_CODE); | ||
| (0, _exitcompat.default)(ERROR_CODE); | ||
| return; | ||
@@ -116,5 +116,5 @@ } | ||
| } | ||
| (0, _exit.default)(err || errors.length ? ERROR_CODE : 0); | ||
| (0, _exitcompat.default)(err || errors.length ? ERROR_CODE : 0); | ||
| }); | ||
| }; | ||
| /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/monorepo/each-package/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport { createSession, figures, formatArguments } from 'spawn-term';\nimport url from 'url';\nimport run from './index.ts';\n\nconst ERROR_CODE = 5;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { EachError, EachOptions, EachResult } from './types.ts';\n\nfunction getVersion(): string {\n const packagePath = path.resolve(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction showHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <command> [args...]\n\nRun commands in each package folder within a monorepo.\n\nOptions:\n -d, --depth <n> Maximum depth to search for packages (default: Infinity)\n -c, --concurrency <n> Number of packages to process in parallel (default: Infinity)\n -t, --topological Process packages in topological order based on dependencies\n -fd, --fail-dependents Skip packages whose dependencies failed (use with -t)\n -e, --expanded Use expanded terminal UI for output\n -s, --streaming Stream output as it happens\n -si, --silent Suppress output\n -p, --private Include private packages\n -i, --ignore <pattern> Ignore packages matching pattern (default: node_modules,.git)\n -r, --root Include the root package\n -I, --interactive Enable interactive mode (default: true)\n -v, --version Show version number\n -h, --help Show this help message\n\nExamples:\n ${name} npm install Run 'npm install' in each package\n ${name} -t npm test Run 'npm test' in topological order\n ${name} -c 4 npm build Run 'npm build' with concurrency of 4`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { depth: 'd', concurrency: 'c', topological: 't', failDependents: 'fd', expanded: 'e', streaming: 's', silent: 'si', private: 'p', ignore: 'i', root: 'r', interactive: 'I', version: 'v', help: 'h' },\n boolean: ['topological', 'failDependents', 'expanded', 'streaming', 'silent', 'private', 'root', 'interactive', 'version', 'help'],\n default: { depth: Infinity, concurrency: Infinity, interactive: true },\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n showHelp(name);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing command. Example usage: ${name} [command]`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args.slice(1), options as EachOptions, (err?: EachError, results?: EachResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.path}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args)}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["ERROR_CODE","__dirname","path","dirname","__filename","url","fileURLToPath","getVersion","packagePath","resolve","packageJson","JSON","parse","fs","readFileSync","version","showHelp","name","console","log","argv","options","getopts","alias","depth","concurrency","topological","failDependents","expanded","streaming","silent","private","ignore","root","interactive","help","boolean","default","Infinity","stopEarly","exit","args","_","length","stdio","run","slice","err","results","message","errors","filter","result","error","createSession","forEach","res","figures","cross","tick","formatArguments"],"mappings":"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"} | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/monorepo/each-package/src/cli.ts"],"sourcesContent":["import exit from 'exit-compat';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport { createSession, figures, formatArguments } from 'spawn-term';\nimport url from 'url';\nimport run from './index.ts';\n\nconst ERROR_CODE = 5;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { EachError, EachOptions, EachResult } from './types.ts';\n\nfunction getVersion(): string {\n const packagePath = path.resolve(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction showHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <command> [args...]\n\nRun commands in each package folder within a monorepo.\n\nOptions:\n -d, --depth <n> Maximum depth to search for packages (default: Infinity)\n -c, --concurrency <n> Number of packages to process in parallel (default: Infinity)\n -t, --topological Process packages in topological order based on dependencies\n -fd, --fail-dependents Skip packages whose dependencies failed (use with -t)\n -e, --expanded Use expanded terminal UI for output\n -s, --streaming Stream output as it happens\n -si, --silent Suppress output\n -p, --private Include private packages\n -i, --ignore <pattern> Ignore packages matching pattern (default: node_modules,.git)\n -r, --root Include the root package\n -I, --interactive Enable interactive mode (default: true)\n -v, --version Show version number\n -h, --help Show this help message\n\nExamples:\n ${name} npm install Run 'npm install' in each package\n ${name} -t npm test Run 'npm test' in topological order\n ${name} -c 4 npm build Run 'npm build' with concurrency of 4`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { depth: 'd', concurrency: 'c', topological: 't', failDependents: 'fd', expanded: 'e', streaming: 's', silent: 'si', private: 'p', ignore: 'i', root: 'r', interactive: 'I', version: 'v', help: 'h' },\n boolean: ['topological', 'failDependents', 'expanded', 'streaming', 'silent', 'private', 'root', 'interactive', 'version', 'help'],\n default: { depth: Infinity, concurrency: Infinity, interactive: true },\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n showHelp(name);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing command. Example usage: ${name} [command]`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args.slice(1), options as EachOptions, (err?: EachError, results?: EachResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.path}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args)}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["ERROR_CODE","__dirname","path","dirname","__filename","url","fileURLToPath","getVersion","packagePath","resolve","packageJson","JSON","parse","fs","readFileSync","version","showHelp","name","console","log","argv","options","getopts","alias","depth","concurrency","topological","failDependents","expanded","streaming","silent","private","ignore","root","interactive","help","boolean","default","Infinity","stopEarly","exit","args","_","length","stdio","run","slice","err","results","message","errors","filter","result","error","createSession","forEach","res","figures","cross","tick","formatArguments"],"mappings":"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"} |
+1
-1
@@ -1,2 +0,2 @@ | ||
| import exit from 'exit'; | ||
| import exit from 'exit-compat'; | ||
| import fs from 'fs'; | ||
@@ -3,0 +3,0 @@ import getopts from 'getopts-compat'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/monorepo/each-package/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport { createSession, figures, formatArguments } from 'spawn-term';\nimport url from 'url';\nimport run from './index.ts';\n\nconst ERROR_CODE = 5;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { EachError, EachOptions, EachResult } from './types.ts';\n\nfunction getVersion(): string {\n const packagePath = path.resolve(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction showHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <command> [args...]\n\nRun commands in each package folder within a monorepo.\n\nOptions:\n -d, --depth <n> Maximum depth to search for packages (default: Infinity)\n -c, --concurrency <n> Number of packages to process in parallel (default: Infinity)\n -t, --topological Process packages in topological order based on dependencies\n -fd, --fail-dependents Skip packages whose dependencies failed (use with -t)\n -e, --expanded Use expanded terminal UI for output\n -s, --streaming Stream output as it happens\n -si, --silent Suppress output\n -p, --private Include private packages\n -i, --ignore <pattern> Ignore packages matching pattern (default: node_modules,.git)\n -r, --root Include the root package\n -I, --interactive Enable interactive mode (default: true)\n -v, --version Show version number\n -h, --help Show this help message\n\nExamples:\n ${name} npm install Run 'npm install' in each package\n ${name} -t npm test Run 'npm test' in topological order\n ${name} -c 4 npm build Run 'npm build' with concurrency of 4`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { depth: 'd', concurrency: 'c', topological: 't', failDependents: 'fd', expanded: 'e', streaming: 's', silent: 'si', private: 'p', ignore: 'i', root: 'r', interactive: 'I', version: 'v', help: 'h' },\n boolean: ['topological', 'failDependents', 'expanded', 'streaming', 'silent', 'private', 'root', 'interactive', 'version', 'help'],\n default: { depth: Infinity, concurrency: Infinity, interactive: true },\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n showHelp(name);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing command. Example usage: ${name} [command]`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args.slice(1), options as EachOptions, (err?: EachError, results?: EachResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.path}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args)}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["exit","fs","getopts","path","createSession","figures","formatArguments","url","run","ERROR_CODE","__dirname","dirname","__filename","fileURLToPath","getVersion","packagePath","resolve","packageJson","JSON","parse","readFileSync","version","showHelp","name","console","log","argv","options","alias","depth","concurrency","topological","failDependents","expanded","streaming","silent","private","ignore","root","interactive","help","boolean","default","Infinity","stopEarly","args","_","length","stdio","slice","err","results","message","errors","filter","result","error","forEach","res","cross","tick"],"mappings":"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"} | ||
| {"version":3,"sources":["/Users/kevin/Dev/OpenSource/monorepo/each-package/src/cli.ts"],"sourcesContent":["import exit from 'exit-compat';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport { createSession, figures, formatArguments } from 'spawn-term';\nimport url from 'url';\nimport run from './index.ts';\n\nconst ERROR_CODE = 5;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nimport type { EachError, EachOptions, EachResult } from './types.ts';\n\nfunction getVersion(): string {\n const packagePath = path.resolve(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction showHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <command> [args...]\n\nRun commands in each package folder within a monorepo.\n\nOptions:\n -d, --depth <n> Maximum depth to search for packages (default: Infinity)\n -c, --concurrency <n> Number of packages to process in parallel (default: Infinity)\n -t, --topological Process packages in topological order based on dependencies\n -fd, --fail-dependents Skip packages whose dependencies failed (use with -t)\n -e, --expanded Use expanded terminal UI for output\n -s, --streaming Stream output as it happens\n -si, --silent Suppress output\n -p, --private Include private packages\n -i, --ignore <pattern> Ignore packages matching pattern (default: node_modules,.git)\n -r, --root Include the root package\n -I, --interactive Enable interactive mode (default: true)\n -v, --version Show version number\n -h, --help Show this help message\n\nExamples:\n ${name} npm install Run 'npm install' in each package\n ${name} -t npm test Run 'npm test' in topological order\n ${name} -c 4 npm build Run 'npm build' with concurrency of 4`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { depth: 'd', concurrency: 'c', topological: 't', failDependents: 'fd', expanded: 'e', streaming: 's', silent: 'si', private: 'p', ignore: 'i', root: 'r', interactive: 'I', version: 'v', help: 'h' },\n boolean: ['topological', 'failDependents', 'expanded', 'streaming', 'silent', 'private', 'root', 'interactive', 'version', 'help'],\n default: { depth: Infinity, concurrency: Infinity, interactive: true },\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n showHelp(name);\n exit(0);\n return;\n }\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing command. Example usage: ${name} [command]`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args.slice(1), options as EachOptions, (err?: EachError, results?: EachResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.path}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args)}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["exit","fs","getopts","path","createSession","figures","formatArguments","url","run","ERROR_CODE","__dirname","dirname","__filename","fileURLToPath","getVersion","packagePath","resolve","packageJson","JSON","parse","readFileSync","version","showHelp","name","console","log","argv","options","alias","depth","concurrency","topological","failDependents","expanded","streaming","silent","private","ignore","root","interactive","help","boolean","default","Infinity","stopEarly","args","_","length","stdio","slice","err","results","message","errors","filter","result","error","forEach","res","cross","tick"],"mappings":"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"} |
+3
-3
| { | ||
| "name": "each-package", | ||
| "version": "1.4.9", | ||
| "version": "1.4.10", | ||
| "description": "Run commands in each package folder starting with cwd skipping node_modules folders", | ||
@@ -44,3 +44,3 @@ "keywords": [ | ||
| "cross-spawn-cb": "^2.4.10", | ||
| "exit": "^0.1.2", | ||
| "exit-compat": "^1.0.0", | ||
| "fs-iterator": "^6.1.10", | ||
@@ -61,3 +61,3 @@ "getopts-compat": "^2.2.6", | ||
| "is-version": "^1.0.7", | ||
| "node-version-use": "^2.0.0", | ||
| "node-version-use": "^2.1.0", | ||
| "pinkie-promise": "^2.0.1", | ||
@@ -64,0 +64,0 @@ "ts-dev-stack": "^1.21.2", |
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
99153
0.08%+ Added
- Removed
- Removed