unipm 1.1.36 → 1.1.38

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.
@@ -0,0 +1,114 @@
1
+ import { checkChildProcessResult, commandInPath } from '@idlebox/node';
2
+ import { execa } from 'execa';
3
+ import { stat } from 'node:fs';
4
+ export var PackageManagerType;
5
+ (function (PackageManagerType) {
6
+ PackageManagerType[PackageManagerType["NPM"] = 0] = "NPM";
7
+ PackageManagerType[PackageManagerType["PNPM"] = 1] = "PNPM";
8
+ PackageManagerType[PackageManagerType["RUSH"] = 2] = "RUSH";
9
+ PackageManagerType[PackageManagerType["YARN"] = 3] = "YARN";
10
+ })(PackageManagerType || (PackageManagerType = {}));
11
+ export class PackageManager {
12
+ cwd;
13
+ runCommand = 'run';
14
+ initCommand = 'run';
15
+ showCommand = 'show';
16
+ /** if set to true, debug info will print to stderr, default is process.stderr.isTTY */
17
+ displayBeforeCommandRun = process.stderr.isTTY;
18
+ /** detect if this package manager is used by current project */
19
+ detect() {
20
+ return this._detect().then((found) => {
21
+ return found ? this : undefined;
22
+ }, (e) => {
23
+ console.error('Exception of detect() package manager %s\n%s', this.friendlyName, e.stack);
24
+ return undefined;
25
+ });
26
+ }
27
+ constructor(cwd) {
28
+ this.cwd = cwd;
29
+ }
30
+ _detectFile(file) {
31
+ return new Promise((resolve) => {
32
+ const wrappedCallback = (err, data) => (err ? resolve(false) : resolve(!!data));
33
+ stat(file, wrappedCallback);
34
+ });
35
+ }
36
+ /** spawn package manager binary, with inherit stdio */
37
+ invokeCli(cmd, ...args) {
38
+ const aa = [cmd, ...args].filter((v) => !!v);
39
+ return this._invoke(this.cliName, aa);
40
+ }
41
+ /** spawn package manager binary, mute output */
42
+ async _invokeErrorLater(cmd, args, spawnOptions = {}) {
43
+ const p = this.__invoke(cmd, args, {
44
+ ...spawnOptions,
45
+ stdio: ['ignore', 'pipe', 'pipe'],
46
+ all: true,
47
+ encoding: 'utf8',
48
+ reject: false,
49
+ });
50
+ return p.then((ret) => {
51
+ try {
52
+ checkChildProcessResult(ret);
53
+ }
54
+ catch (e) {
55
+ console.error(ret.all);
56
+ throw e;
57
+ }
58
+ });
59
+ }
60
+ async _invoke(cmd, args, spawnOptions = {}) {
61
+ await this.__invoke(cmd, args, spawnOptions);
62
+ }
63
+ __invoke(cmd, args, spawnOptions) {
64
+ this.displayBeforeCommandRun && console.error('\x1B[38;5;14m%s %s\x1B[0m', cmd, args.join(' '));
65
+ return execa(cmd, args, {
66
+ stdio: 'inherit',
67
+ cwd: this.cwd,
68
+ reject: true,
69
+ ...spawnOptions,
70
+ });
71
+ }
72
+ /** run scripts in package.json, by package manager */
73
+ run(script, ...args) {
74
+ // TODO: run node_modules/.bin
75
+ return this.invokeCli(this.runCommand, script, ...args);
76
+ }
77
+ /** install packages
78
+ * * add packages into package.json
79
+ * * if "-D" or "--dev" in `packages`, add them to devDependencies
80
+ **/
81
+ install(...packages) {
82
+ const i1 = packages.indexOf('-D');
83
+ if (i1 !== -1) {
84
+ packages.splice(i1, 1);
85
+ packages.unshift(this.installDevFlag);
86
+ }
87
+ const i2 = packages.indexOf('--dev');
88
+ if (i2 !== -1) {
89
+ packages.splice(i2, 1);
90
+ packages.unshift(this.installDevFlag);
91
+ }
92
+ return this.invokeCli(this.installCommand, ...packages);
93
+ }
94
+ uninstall(...packages) {
95
+ return this.invokeCli(this.uninstallCommand, ...packages);
96
+ }
97
+ /** run package init command, normally this will create a new package.json, and maybe ask some questions */
98
+ init(...args) {
99
+ return this.invokeCli(this.initCommand, ...args);
100
+ }
101
+ /** detect this package manager callable (installed and in PATH) */
102
+ exists() {
103
+ return commandInPath(this.cliName);
104
+ }
105
+ /** sync package.json to node_modules, eg: npm i */
106
+ sync(...args) {
107
+ return this.invokeCli(this.syncCommand, ...args);
108
+ }
109
+ /** show package info from NPM registry */
110
+ show(...args) {
111
+ return this.invokeCli(this.showCommand, ...args);
112
+ }
113
+ }
114
+ //# sourceMappingURL=packageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/common/packageManager.ts"],"names":[],"mappings":"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"}
package/lib/index.js ADDED
@@ -0,0 +1,69 @@
1
+ import { findUpUntil } from '@idlebox/node';
2
+ import { getPackageManager } from './common/getPackageManager.js';
3
+ import { formatPackageJson } from './local/formatPackageJson.js';
4
+ function getArgs() {
5
+ const args = process.argv.slice(2);
6
+ const cmdAt = args.findIndex((e) => !e.startsWith('-'));
7
+ if (cmdAt === -1) {
8
+ return { cmd: '', args: [] };
9
+ }
10
+ const cmd = args.splice(cmdAt, 1)[0];
11
+ return { cmd, args };
12
+ }
13
+ /** @internal */
14
+ export default async function () {
15
+ const { cmd, args } = getArgs();
16
+ const packageJson = (await findUpUntil({ from: process.cwd(), file: 'package.json' })) || undefined;
17
+ // console.error('finding package manager');
18
+ const pm = await getPackageManager({ packageJson });
19
+ // console.error('detected package manager: %s', pm.friendlyName);
20
+ const requirePackage = () => {
21
+ if (!packageJson) {
22
+ console.error('missing package.json');
23
+ process.exit(1);
24
+ }
25
+ return packageJson;
26
+ };
27
+ if (!cmd) {
28
+ console.error('Usage: unpm <command> <...packages>');
29
+ console.error(' * install, add, i, a - install package (can follow --dev/-D)');
30
+ console.error(' * uninstall, un, remove, rm, erase - remove package');
31
+ console.error(' * run - run npm script or node_modules/.bin');
32
+ console.error(' * init - run init script');
33
+ console.error(' * show, view - get and show package info from registry');
34
+ console.error(' * format-package - format package.json (-i write back)');
35
+ console.error('other command: direct pass to package manager.');
36
+ process.exit(1);
37
+ }
38
+ if (cmd === 'install' || cmd === 'add' || cmd === 'i' || cmd === 'a') {
39
+ await pm.install(...args);
40
+ }
41
+ else if (cmd === 'uninstall' || cmd === 'un' || cmd === 'remove' || cmd === 'rm' || cmd === 'erase') {
42
+ await pm.uninstall(...args);
43
+ }
44
+ else if (cmd === 'run' || cmd === 'r') {
45
+ requirePackage();
46
+ await pm.run(args[0], ...args.slice(1));
47
+ }
48
+ else if (cmd === 'init') {
49
+ // TODO: rush init
50
+ await pm.init(...args);
51
+ }
52
+ else if (cmd === 'show' || cmd === 'view') {
53
+ await pm.show(...args);
54
+ }
55
+ else if (cmd === 'publish') {
56
+ requirePackage();
57
+ // TODO: publish config files
58
+ await pm.invokeCli(cmd, ...args);
59
+ }
60
+ else if (cmd === 'format-package') {
61
+ const packageJson = requirePackage();
62
+ await formatPackageJson(packageJson, args);
63
+ }
64
+ else {
65
+ requirePackage();
66
+ await pm.invokeCli(cmd, ...args);
67
+ }
68
+ }
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { loadJsonFile } from '@idlebox/json-edit';
2
+ import { findUpUntil } from '@idlebox/node';
3
+ import json5 from 'json5';
4
+ import { readFile as readFileAsync } from 'node:fs';
5
+ import { dirname, relative, resolve } from 'node:path';
6
+ import { promisify } from 'node:util';
7
+ import { deletePackageDependency, resortPackage } from '../common/packageJson.js';
8
+ import { PackageManager, PackageManagerType } from '../common/packageManager.js';
9
+ const readFile = promisify(readFileAsync);
10
+ const subCommands = ['run', 'init', 'show', 'view'];
11
+ /** @internal */
12
+ export class Rush extends PackageManager {
13
+ type = PackageManagerType.RUSH;
14
+ friendlyName = 'rush';
15
+ cliName = 'rush';
16
+ installCommand = 'add';
17
+ packageName = '@microsoft/rush';
18
+ uninstallCommand = '!!';
19
+ installDevFlag = '--dev';
20
+ syncCommand = 'update';
21
+ showCommand = '';
22
+ rushRoot;
23
+ subPackageManager;
24
+ async _detect(sub = false) {
25
+ const found = await findUpUntil({ from: this.cwd, file: 'rush.json' });
26
+ if (!found) {
27
+ return false;
28
+ }
29
+ this.rushRoot = dirname(found);
30
+ const data = json5.parse(await readFile(found, 'utf-8'));
31
+ let pm = '';
32
+ for (const key of ['pnpm', 'npm', 'yarn']) {
33
+ if (data[`${key}Version`]) {
34
+ pm = key;
35
+ break;
36
+ }
37
+ }
38
+ if (pm) {
39
+ if (pm === 'pnpm') {
40
+ this.showCommand = 'view';
41
+ }
42
+ this.subPackageManager = resolve(this.rushRoot, 'common/temp', `${pm}-local`, 'node_modules/.bin', pm);
43
+ }
44
+ else {
45
+ if (sub) {
46
+ throw new Error('can not determine sub package manager of rush');
47
+ }
48
+ this.subPackageManager = '';
49
+ console.warn('Warn: can not determine sub package manager of rush.');
50
+ }
51
+ return true;
52
+ }
53
+ async uninstall(...packages) {
54
+ const pkgJson = await findUpUntil({ from: this.cwd, file: 'package.json' });
55
+ if (pkgJson) {
56
+ await deletePackageDependency(pkgJson, ...packages);
57
+ }
58
+ await super._invoke(this.cliName, ['update']);
59
+ }
60
+ async install(..._packages) {
61
+ const packages = _packages.filter((item) => !item.startsWith('-'));
62
+ const flags = ['--caret', '--skip-update', '--make-consistent'];
63
+ if (_packages.includes('-D') || _packages.includes('--dev')) {
64
+ flags.push('--dev');
65
+ }
66
+ for (const pkg of packages) {
67
+ await super._invokeErrorLater(this.cliName, [this.installCommand, ...flags, '-p', pkg]);
68
+ }
69
+ const pkgJson = await findUpUntil({ from: this.cwd, file: 'package.json' });
70
+ if (pkgJson) {
71
+ await resortPackage(pkgJson);
72
+ }
73
+ const env = { npm_config_prefer_frozen_lockfile: 'false', npm_config_prefer_offline: 'false' };
74
+ await super._invoke(this.cliName, ['update'], { env });
75
+ }
76
+ async init() {
77
+ await super.init();
78
+ const data = await loadJsonFile(resolve(this.rushRoot, 'rush.json'));
79
+ const pkg = require(resolve(this.cwd, 'package.json'));
80
+ const alreadyExists = data.projects.some(({ packageName }) => {
81
+ return packageName === pkg.name;
82
+ });
83
+ if (alreadyExists) {
84
+ return;
85
+ }
86
+ data.projects.push({
87
+ packageName: pkg.name,
88
+ projectFolder: relative(this.rushRoot, this.cwd),
89
+ shouldPublish: !pkg.private,
90
+ });
91
+ }
92
+ async invokeCli(cmd, ...args) {
93
+ if (subCommands.includes(cmd)) {
94
+ if (!this.subPackageManager) {
95
+ await this._detect(true);
96
+ }
97
+ const aa = [cmd, ...args].filter((v) => !!v);
98
+ return this._invoke(this.subPackageManager, aa);
99
+ }
100
+ return super.invokeCli(cmd, ...args);
101
+ }
102
+ }
103
+ //# sourceMappingURL=rush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rush.js","sourceRoot":"","sources":["../../src/package-managers/rush.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unipm",
3
3
  "type": "module",
4
- "version": "1.1.36",
4
+ "version": "1.1.38",
5
5
  "exports": {
6
6
  "./package.json": "./package.json"
7
7
  },
@@ -14,20 +14,20 @@
14
14
  "execa": "^9.6.0",
15
15
  "json5": "^2.2.3",
16
16
  "pacote": "^21.0.0",
17
- "source-map-support": "^0.5.21",
18
- "@idlebox/common": "^1.4.18",
19
- "@idlebox/json-edit": "^0.0.5",
20
- "@idlebox/node": "^1.4.11"
17
+ "@idlebox/common": "^1.4.21",
18
+ "@idlebox/source-map-support": "^0.0.8",
19
+ "@idlebox/node": "^1.4.14",
20
+ "@idlebox/json-edit": "^0.0.5"
21
21
  },
22
22
  "devDependencies": {
23
- "@rushstack/heft": "^0.74.0",
24
23
  "@types/node": "^24.0.14",
25
24
  "@types/pacote": "^11.1.8",
25
+ "@build-script/single-dog-asset": "^1.0.39",
26
26
  "@internal/local-rig": "^1.0.1",
27
- "@build-script/single-dog-asset": "^1.0.38",
28
- "@mpis/run": "^0.0.6"
27
+ "@mpis/run": "^0.0.9"
29
28
  },
30
29
  "monorepo": true,
30
+ "sideEffects": false,
31
31
  "license": "MIT",
32
32
  "author": "GongT <admin@gongt.me>",
33
33
  "repository": "https://github.com/GongT/baobao",