eto-dev-cli 1.1.0 → 1.3.0
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/dist/local-npm-registry/install-packages.d.ts.map +1 -1
- package/dist/local-npm-registry/install-packages.js +128 -40
- package/dist/local-npm-registry/install-packages.js.map +1 -1
- package/dist/utils/promisified-spawn.d.ts +1 -1
- package/dist/utils/promisified-spawn.d.ts.map +1 -1
- package/dist/utils/promisified-spawn.js +15 -3
- package/dist/utils/promisified-spawn.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-packages.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-packages.d.ts","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"AAKA;;;;;kBA6OC"}
|
|
@@ -4,30 +4,61 @@ const { promisifiedSpawn } = require(`../utils/promisified-spawn`);
|
|
|
4
4
|
const { registryUrl } = require(`./verdaccio-config`);
|
|
5
5
|
const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPublishedPackageVersions, externalRegistry, }) => {
|
|
6
6
|
console.log(`Installing packages from local registry:\n${packagesToInstall
|
|
7
|
-
.map((
|
|
7
|
+
.map((p) => ` - ${p}`)
|
|
8
8
|
.join(`\n`)}`);
|
|
9
|
+
// Detect package manager
|
|
10
|
+
const lockFiles = {
|
|
11
|
+
yarn: "yarn.lock",
|
|
12
|
+
npm: "package-lock.json",
|
|
13
|
+
pnpm: "pnpm-lock.yaml",
|
|
14
|
+
};
|
|
15
|
+
const rootDir = yarnWorkspaceRoot || process.cwd();
|
|
16
|
+
let packageManager = "yarn";
|
|
17
|
+
if (fs.existsSync(path.join(rootDir, lockFiles.npm)))
|
|
18
|
+
packageManager = "npm";
|
|
19
|
+
else if (fs.existsSync(path.join(rootDir, lockFiles.pnpm)))
|
|
20
|
+
packageManager = "pnpm";
|
|
21
|
+
console.log("Detected package manager:", packageManager);
|
|
22
|
+
// Yarn version check
|
|
23
|
+
let isYarn1 = false;
|
|
24
|
+
if (packageManager === "yarn") {
|
|
25
|
+
const { stdout: yarnVersion } = await promisifiedSpawn([
|
|
26
|
+
`yarn`,
|
|
27
|
+
[`--version`],
|
|
28
|
+
{ stdio: `pipe` },
|
|
29
|
+
]);
|
|
30
|
+
isYarn1 = yarnVersion.startsWith("1");
|
|
31
|
+
console.log("Yarn version:", yarnVersion);
|
|
32
|
+
}
|
|
9
33
|
let installCmd;
|
|
10
|
-
if (yarnWorkspaceRoot) {
|
|
34
|
+
if (yarnWorkspaceRoot && packageManager !== "npm") {
|
|
11
35
|
// this is very hacky - given root, we run `yarn workspaces info`
|
|
12
36
|
// to get list of all workspaces and their locations, and manually
|
|
13
37
|
// edit package.json file for packages we want to install
|
|
14
38
|
// to make sure there are no mismatched versions of same package
|
|
15
39
|
// in workspaces which should preserve node_modules structure
|
|
16
40
|
// (packages being mostly hoisted to top-level node_modules)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
// npm doesn't support workspaces
|
|
42
|
+
const workspaceCommand = packageManager === "yarn"
|
|
43
|
+
? isYarn1
|
|
44
|
+
? "info"
|
|
45
|
+
: "list"
|
|
46
|
+
: "workspaces info";
|
|
23
47
|
const { stdout } = await promisifiedSpawn([
|
|
24
|
-
|
|
25
|
-
[
|
|
48
|
+
packageManager,
|
|
49
|
+
[
|
|
50
|
+
packageManager === "yarn" ? `workspaces` : `ws`,
|
|
51
|
+
workspaceCommand,
|
|
52
|
+
`--json`,
|
|
53
|
+
],
|
|
26
54
|
{ stdio: `pipe` },
|
|
27
55
|
]);
|
|
28
56
|
let workspacesLayout;
|
|
29
57
|
try {
|
|
30
|
-
workspacesLayout =
|
|
58
|
+
workspacesLayout =
|
|
59
|
+
packageManager === "yarn" && isYarn1
|
|
60
|
+
? JSON.parse(JSON.parse(stdout).data)
|
|
61
|
+
: JSON.parse(stdout);
|
|
31
62
|
}
|
|
32
63
|
catch (e) {
|
|
33
64
|
/*
|
|
@@ -55,25 +86,21 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
|
|
|
55
86
|
const regex = /^[^{]*({.*})[^}]*$/gs;
|
|
56
87
|
const sanitizedStdOut = regex.exec(stdout);
|
|
57
88
|
if (sanitizedStdOut?.length >= 2) {
|
|
58
|
-
// pick content of first (and only) capturing group
|
|
59
|
-
const jsonString = sanitizedStdOut[1];
|
|
60
89
|
try {
|
|
61
|
-
workspacesLayout = JSON.parse(
|
|
90
|
+
workspacesLayout = JSON.parse(sanitizedStdOut[1]);
|
|
62
91
|
}
|
|
63
92
|
catch (e) {
|
|
64
|
-
console.error(`Failed to parse
|
|
65
|
-
// not exitting here, because we have general check for `workspacesLayout` being set below
|
|
93
|
+
console.error(`Failed to parse sanitized workspaces output`);
|
|
66
94
|
}
|
|
67
95
|
}
|
|
68
96
|
}
|
|
69
97
|
if (!workspacesLayout) {
|
|
70
|
-
console.error(`Couldn't parse
|
|
98
|
+
console.error(`Couldn't parse workspaces output`, stdout);
|
|
71
99
|
process.exit(1);
|
|
72
100
|
}
|
|
73
101
|
const handleDeps = (deps) => {
|
|
74
|
-
if (!deps)
|
|
102
|
+
if (!deps)
|
|
75
103
|
return false;
|
|
76
|
-
}
|
|
77
104
|
let changed = false;
|
|
78
105
|
Object.keys(deps).forEach((depName) => {
|
|
79
106
|
if (packagesToInstall.includes(depName)) {
|
|
@@ -87,6 +114,7 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
|
|
|
87
114
|
const { location } = workspacesLayout[workspaceName];
|
|
88
115
|
const pkgJsonPath = path.join(yarnWorkspaceRoot, location, `package.json`);
|
|
89
116
|
if (!fs.existsSync(pkgJsonPath)) {
|
|
117
|
+
console.warn(`Package.json not found at ${pkgJsonPath}, skipping.`);
|
|
90
118
|
return;
|
|
91
119
|
}
|
|
92
120
|
const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, `utf8`));
|
|
@@ -95,42 +123,102 @@ const installPackages = async ({ packagesToInstall, yarnWorkspaceRoot, newlyPubl
|
|
|
95
123
|
changed |= handleDeps(pkg.devDependencies);
|
|
96
124
|
changed |= handleDeps(pkg.peerDependencies);
|
|
97
125
|
if (changed) {
|
|
98
|
-
console.log(`
|
|
99
|
-
fs.outputJSONSync(pkgJsonPath, pkg, {
|
|
100
|
-
spaces: 2,
|
|
101
|
-
});
|
|
126
|
+
console.log(`Updating dependencies in ${pkgJsonPath} to use @eto-dev`);
|
|
127
|
+
fs.outputJSONSync(pkgJsonPath, pkg, { spaces: 2 });
|
|
102
128
|
}
|
|
103
129
|
});
|
|
104
130
|
// package.json files are changed - so we just want to install
|
|
105
131
|
// using verdaccio registry
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
132
|
+
const commands = {
|
|
133
|
+
yarn: [
|
|
134
|
+
`install`,
|
|
135
|
+
...(packageManager === "yarn" && !isYarn1
|
|
136
|
+
? [`--mode`, `update-lockfile`]
|
|
137
|
+
: []),
|
|
138
|
+
],
|
|
139
|
+
pnpm: [`install`],
|
|
140
|
+
};
|
|
141
|
+
if (!externalRegistry && registryUrl) {
|
|
142
|
+
if (packageManager === "yarn") {
|
|
143
|
+
if (isYarn1)
|
|
144
|
+
commands.yarn.push(`--registry`, registryUrl);
|
|
145
|
+
else
|
|
146
|
+
await promisifiedSpawn([
|
|
147
|
+
`yarn`,
|
|
148
|
+
[`config`, `set`, `npmRegistryServer`, registryUrl],
|
|
149
|
+
{ stdio: `pipe` },
|
|
150
|
+
]);
|
|
151
|
+
}
|
|
152
|
+
else if (packageManager === "pnpm") {
|
|
153
|
+
commands.pnpm.push(`--registry`, registryUrl);
|
|
154
|
+
}
|
|
109
155
|
}
|
|
110
|
-
installCmd = [
|
|
156
|
+
installCmd = [packageManager, commands[packageManager]];
|
|
111
157
|
}
|
|
112
158
|
else {
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
159
|
+
const packages = packagesToInstall
|
|
160
|
+
.map((packageName) => {
|
|
161
|
+
const packageVersion = newlyPublishedPackageVersions[packageName];
|
|
162
|
+
if (!packageVersion) {
|
|
163
|
+
console.warn(`Skipping ${packageName}: No version specified`);
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
return `${packageName}@${packageVersion}`;
|
|
167
|
+
})
|
|
168
|
+
.filter(Boolean);
|
|
169
|
+
const commands = {
|
|
170
|
+
yarn: [
|
|
171
|
+
`add`,
|
|
172
|
+
...packages,
|
|
173
|
+
`--exact`,
|
|
174
|
+
...(packageManager === "yarn" && !isYarn1
|
|
175
|
+
? [`--mode`, `update-lockfile`]
|
|
176
|
+
: []),
|
|
177
|
+
],
|
|
178
|
+
npm: [`install`, ...packages, `--save-exact`],
|
|
179
|
+
pnpm: [`add`, ...packages, `--save-exact`],
|
|
180
|
+
};
|
|
181
|
+
if (!externalRegistry && registryUrl) {
|
|
182
|
+
if (packageManager === "yarn") {
|
|
183
|
+
if (isYarn1)
|
|
184
|
+
commands.yarn.push(`--registry`, registryUrl);
|
|
185
|
+
else
|
|
186
|
+
await promisifiedSpawn([
|
|
187
|
+
`yarn`,
|
|
188
|
+
[`config`, `set`, `npmRegistryServer`, registryUrl],
|
|
189
|
+
{ stdio: `pipe` },
|
|
190
|
+
]);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
commands[packageManager].push(`--registry=${registryUrl}`);
|
|
194
|
+
}
|
|
123
195
|
}
|
|
124
|
-
installCmd = [
|
|
196
|
+
installCmd = [packageManager, commands[packageManager]];
|
|
125
197
|
}
|
|
126
198
|
try {
|
|
127
|
-
await promisifiedSpawn(installCmd);
|
|
199
|
+
const result = await promisifiedSpawn(installCmd, { stdio: `pipe` });
|
|
128
200
|
console.log(`Installation complete`);
|
|
129
201
|
}
|
|
130
202
|
catch (error) {
|
|
131
|
-
console.error(
|
|
203
|
+
console.error("Installation failed:", {
|
|
204
|
+
message: error.message,
|
|
205
|
+
command: error.command,
|
|
206
|
+
stdout: error.stdout,
|
|
207
|
+
stderr: error.stderr,
|
|
208
|
+
});
|
|
132
209
|
process.exit(1);
|
|
133
210
|
}
|
|
211
|
+
// Restore Yarn 2+/3 registry
|
|
212
|
+
if (!externalRegistry &&
|
|
213
|
+
registryUrl &&
|
|
214
|
+
packageManager === "yarn" &&
|
|
215
|
+
!isYarn1) {
|
|
216
|
+
await promisifiedSpawn([
|
|
217
|
+
`yarn`,
|
|
218
|
+
[`config`, `set`, `npmRegistryServer`, `https://registry.yarnpkg.com`],
|
|
219
|
+
{ stdio: `pipe` },
|
|
220
|
+
]);
|
|
221
|
+
}
|
|
134
222
|
};
|
|
135
223
|
exports.installPackages = installPackages;
|
|
136
224
|
//# sourceMappingURL=install-packages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-packages.js","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"install-packages.js","sourceRoot":"","sources":["../../src/local-npm-registry/install-packages.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export function setDefaultSpawnStdio(stdio: any): void;
|
|
2
|
-
export function promisifiedSpawn([cmd, args, spawnArgs]: [any, (
|
|
2
|
+
export function promisifiedSpawn([cmd, args, spawnArgs]: [any, (never[] | undefined)?, ({} | undefined)?]): Promise<execa.ExecaReturnValue<string> & execa.ExecaReturnValue<Buffer<ArrayBufferLike>>>;
|
|
3
3
|
import execa = require("execa");
|
|
4
4
|
//# sourceMappingURL=promisified-spawn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promisified-spawn.d.ts","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAO+B,uDAE9B;
|
|
1
|
+
{"version":3,"file":"promisified-spawn.d.ts","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAO+B,uDAE9B;AAC0B,sMAgC1B"}
|
|
@@ -11,12 +11,24 @@ exports.promisifiedSpawn = async ([cmd, args = [], spawnArgs = {}]) => {
|
|
|
11
11
|
...defaultSpawnArgs,
|
|
12
12
|
...spawnArgs,
|
|
13
13
|
};
|
|
14
|
+
const cleanArgs = args.filter((arg) => typeof arg === "string" && arg.trim() !== "");
|
|
15
|
+
if (cleanArgs.length !== args.length) {
|
|
16
|
+
console.warn("Invalid arguments filtered out:", args);
|
|
17
|
+
}
|
|
14
18
|
try {
|
|
15
|
-
|
|
19
|
+
const result = await execa(cmd, args, spawnOptions);
|
|
20
|
+
return result;
|
|
16
21
|
}
|
|
17
22
|
catch (e) {
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
console.error('Command failed:', {
|
|
24
|
+
command: `${cmd} ${args.join(' ')}`,
|
|
25
|
+
exitCode: e.exitCode,
|
|
26
|
+
stdout: e.stdout,
|
|
27
|
+
stderr: e.stderr,
|
|
28
|
+
message: e.message,
|
|
29
|
+
});
|
|
30
|
+
if (spawnOptions.stdio === 'ignore') {
|
|
31
|
+
console.log(`\nCommand "${cmd} ${args.join(' ')}" failed.\nTo see details, rerun "eto-dev" without "--quiet" or "-q".\n`);
|
|
20
32
|
}
|
|
21
33
|
throw e;
|
|
22
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promisified-spawn.js","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;AAChC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"promisified-spawn.js","sourceRoot":"","sources":["../../src/utils/promisified-spawn.js"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,CAAC,oBAAoB,GAAG,CAAC,KAAK,EAAE,EAAE;IACvC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;AAChC,CAAC,CAAA;AACD,OAAO,CAAC,gBAAgB,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,YAAY,GAAG;QACnB,GAAG,gBAAgB;QACnB,GAAG,SAAS;KACb,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CACtD,CAAA;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC/B,OAAO,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACnC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACT,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,CAC5B,GAAG,CACJ,yEAAyE,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eto-dev-cli",
|
|
3
3
|
"description": "CLI helpers for contributors working on Eto",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"author": "Emmanuel Okanlawon <okanlawon@obig.tech>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eto-dev": "./dist/index.js"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"jest": "^29.7.0",
|
|
31
31
|
"ts-node": "^10.9.1",
|
|
32
32
|
"tsconfig-paths": "^4.2.0",
|
|
33
|
-
"typescript": "^5.
|
|
33
|
+
"typescript": "^5.8.3"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"ts-node": "^10.9.2",
|