@nemo-cli/shared 0.1.4 → 0.1.5
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/adapters-C49sidhk.js +246 -0
- package/dist/adapters-C49sidhk.js.map +1 -0
- package/dist/adapters-CRVRGWT9.js +246 -0
- package/dist/adapters-CRVRGWT9.js.map +1 -0
- package/dist/adapters-VexOYXht.js +234 -0
- package/dist/adapters-VexOYXht.js.map +1 -0
- package/dist/index.d.ts +322 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1327 -268
- package/dist/index.js.map +1 -1
- package/dist/prompts-BpcevOrt.js +380 -0
- package/dist/prompts-BpcevOrt.js.map +1 -0
- package/package.json +5 -6
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
//#region src/package-manager/adapters/bun.ts
|
|
2
|
+
/**
|
|
3
|
+
* Bun adapter - translates operations to bun-specific commands
|
|
4
|
+
*/
|
|
5
|
+
var BunAdapter = class {
|
|
6
|
+
name = "bun";
|
|
7
|
+
supportsWorkspaces = true;
|
|
8
|
+
command = "bun";
|
|
9
|
+
buildAddCommand(packages, options) {
|
|
10
|
+
const args = ["add"];
|
|
11
|
+
args.push(...packages);
|
|
12
|
+
if (options.saveDev) args.push("--development");
|
|
13
|
+
if (options.exact) args.push("--exact");
|
|
14
|
+
if (options.root) args.push("--workspace");
|
|
15
|
+
else if (options.workspaces && options.workspaces.length > 0) options.workspaces.forEach((ws) => {
|
|
16
|
+
args.push("--workspace", ws);
|
|
17
|
+
});
|
|
18
|
+
return args;
|
|
19
|
+
}
|
|
20
|
+
buildRemoveCommand(packages, options) {
|
|
21
|
+
const args = ["remove", ...packages];
|
|
22
|
+
if (options.root) args.push("--workspace");
|
|
23
|
+
else if (options.workspaces && options.workspaces.length > 0) options.workspaces.forEach((ws) => {
|
|
24
|
+
args.push("--workspace", ws);
|
|
25
|
+
});
|
|
26
|
+
return args;
|
|
27
|
+
}
|
|
28
|
+
buildUpgradeCommand(packages, options) {
|
|
29
|
+
const target = options.target || "latest";
|
|
30
|
+
const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`);
|
|
31
|
+
return this.buildAddCommand(packagesWithTarget, {});
|
|
32
|
+
}
|
|
33
|
+
parsePackageSpec(packageSpec) {
|
|
34
|
+
const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/);
|
|
35
|
+
if (!match) return { name: packageSpec };
|
|
36
|
+
return {
|
|
37
|
+
name: match[1] ?? packageSpec,
|
|
38
|
+
version: match[2]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/package-manager/adapters/deno.ts
|
|
45
|
+
/**
|
|
46
|
+
* Deno adapter - translates operations to deno-specific commands
|
|
47
|
+
*
|
|
48
|
+
* Note: Deno has a different model (URL-based imports) so some operations
|
|
49
|
+
* are limited or not applicable.
|
|
50
|
+
*/
|
|
51
|
+
var DenoAdapter = class {
|
|
52
|
+
name = "deno";
|
|
53
|
+
supportsWorkspaces = false;
|
|
54
|
+
command = "deno";
|
|
55
|
+
buildAddCommand(packages, options) {
|
|
56
|
+
const args = ["add", ...packages];
|
|
57
|
+
if (options.saveDev) args.push("--dev");
|
|
58
|
+
return args;
|
|
59
|
+
}
|
|
60
|
+
buildRemoveCommand(packages, options) {
|
|
61
|
+
return ["remove", ...packages];
|
|
62
|
+
}
|
|
63
|
+
buildUpgradeCommand(packages, options) {
|
|
64
|
+
return this.buildAddCommand(packages, {});
|
|
65
|
+
}
|
|
66
|
+
parsePackageSpec(packageSpec) {
|
|
67
|
+
const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/);
|
|
68
|
+
if (!match) return { name: packageSpec };
|
|
69
|
+
return {
|
|
70
|
+
name: match[1] ?? packageSpec,
|
|
71
|
+
version: match[2]
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
//#endregion
|
|
77
|
+
//#region src/package-manager/adapters/npm.ts
|
|
78
|
+
/**
|
|
79
|
+
* NPM adapter - translates operations to npm-specific commands
|
|
80
|
+
*/
|
|
81
|
+
var NpmAdapter = class {
|
|
82
|
+
name = "npm";
|
|
83
|
+
supportsWorkspaces = true;
|
|
84
|
+
command = "npm";
|
|
85
|
+
buildAddCommand(packages, options) {
|
|
86
|
+
const args = ["install"];
|
|
87
|
+
args.push(...packages);
|
|
88
|
+
if (options.saveDev) args.push("--save-dev");
|
|
89
|
+
if (options.exact) args.push("--save-exact");
|
|
90
|
+
if (options.savePeer) args.push("--save-peer");
|
|
91
|
+
if (options.saveOptional) args.push("--save-optional");
|
|
92
|
+
if (options.root) args.push("-w");
|
|
93
|
+
else if (options.workspaces && options.workspaces.length > 0) if (options.workspaces.length === 1) args.push("--workspace", options.workspaces[0] ?? "");
|
|
94
|
+
else options.workspaces.forEach((ws) => {
|
|
95
|
+
args.push("--workspace", ws);
|
|
96
|
+
});
|
|
97
|
+
return args;
|
|
98
|
+
}
|
|
99
|
+
buildRemoveCommand(packages, options) {
|
|
100
|
+
const args = ["uninstall", ...packages];
|
|
101
|
+
if (options.root) args.push("-w");
|
|
102
|
+
else if (options.workspaces && options.workspaces.length > 0) if (options.workspaces.length === 1) args.push("--workspace", options.workspaces[0] ?? "");
|
|
103
|
+
else options.workspaces.forEach((ws) => {
|
|
104
|
+
args.push("--workspace", ws);
|
|
105
|
+
});
|
|
106
|
+
return args;
|
|
107
|
+
}
|
|
108
|
+
buildUpgradeCommand(packages, options) {
|
|
109
|
+
const target = options.target || "latest";
|
|
110
|
+
const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`);
|
|
111
|
+
return this.buildAddCommand(packagesWithTarget, {});
|
|
112
|
+
}
|
|
113
|
+
parsePackageSpec(packageSpec) {
|
|
114
|
+
const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/);
|
|
115
|
+
if (!match) return { name: packageSpec };
|
|
116
|
+
return {
|
|
117
|
+
name: match[1] ?? packageSpec,
|
|
118
|
+
version: match[2]
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/package-manager/adapters/pnpm.ts
|
|
125
|
+
/**
|
|
126
|
+
* pnpm adapter - translates operations to pnpm-specific commands
|
|
127
|
+
*/
|
|
128
|
+
var PnpmAdapter = class {
|
|
129
|
+
name = "pnpm";
|
|
130
|
+
supportsWorkspaces = true;
|
|
131
|
+
command = "pnpm";
|
|
132
|
+
buildAddCommand(packages, options) {
|
|
133
|
+
const args = ["add"];
|
|
134
|
+
args.push(...packages);
|
|
135
|
+
if (options.saveDev) args.push("--save-dev");
|
|
136
|
+
if (options.exact) args.push("--save-exact");
|
|
137
|
+
if (options.savePeer) args.push("--save-peer");
|
|
138
|
+
if (options.saveOptional) args.push("--save-optional");
|
|
139
|
+
if (options.root) args.push("-w");
|
|
140
|
+
else if (options.workspaces && options.workspaces.length > 0) options.workspaces.forEach((ws) => {
|
|
141
|
+
args.push("--filter", ws);
|
|
142
|
+
});
|
|
143
|
+
return args;
|
|
144
|
+
}
|
|
145
|
+
buildRemoveCommand(packages, options) {
|
|
146
|
+
const args = ["remove", ...packages];
|
|
147
|
+
if (options.root) args.push("-w");
|
|
148
|
+
else if (options.workspaces && options.workspaces.length > 0) options.workspaces.forEach((ws) => {
|
|
149
|
+
args.push("--filter", ws);
|
|
150
|
+
});
|
|
151
|
+
return args;
|
|
152
|
+
}
|
|
153
|
+
buildUpgradeCommand(packages, options) {
|
|
154
|
+
const target = options.target || "latest";
|
|
155
|
+
const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`);
|
|
156
|
+
return this.buildAddCommand(packagesWithTarget, {});
|
|
157
|
+
}
|
|
158
|
+
parsePackageSpec(packageSpec) {
|
|
159
|
+
const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/);
|
|
160
|
+
if (!match) return { name: packageSpec };
|
|
161
|
+
return {
|
|
162
|
+
name: match[1] ?? packageSpec,
|
|
163
|
+
version: match[2]
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/package-manager/adapters/yarn.ts
|
|
170
|
+
/**
|
|
171
|
+
* Yarn adapter - translates operations to yarn-specific commands
|
|
172
|
+
*/
|
|
173
|
+
var YarnAdapter = class {
|
|
174
|
+
name = "yarn";
|
|
175
|
+
supportsWorkspaces = true;
|
|
176
|
+
command = "yarn";
|
|
177
|
+
buildAddCommand(packages, options) {
|
|
178
|
+
const args = ["add"];
|
|
179
|
+
args.push(...packages);
|
|
180
|
+
if (options.saveDev) args.push("--dev");
|
|
181
|
+
if (options.exact) args.push("--exact");
|
|
182
|
+
if (options.savePeer) args.push("--peer");
|
|
183
|
+
if (options.saveOptional) args.push("--optional");
|
|
184
|
+
if (options.root) args.push("-W");
|
|
185
|
+
else if (options.workspaces && options.workspaces.length > 0) {
|
|
186
|
+
if (options.workspaces.length === 1) args.unshift("-c", "--", `workspace:${options.workspaces[0]}`);
|
|
187
|
+
}
|
|
188
|
+
return args;
|
|
189
|
+
}
|
|
190
|
+
buildRemoveCommand(packages, options) {
|
|
191
|
+
const args = ["remove", ...packages];
|
|
192
|
+
if (options.root) args.push("-W");
|
|
193
|
+
else if (options.workspaces && options.workspaces.length > 0) {
|
|
194
|
+
if (options.workspaces.length === 1) args.unshift("-c", "--", `workspace:${options.workspaces[0]}`);
|
|
195
|
+
}
|
|
196
|
+
return args;
|
|
197
|
+
}
|
|
198
|
+
buildUpgradeCommand(packages, options) {
|
|
199
|
+
const target = options.target || "latest";
|
|
200
|
+
const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`);
|
|
201
|
+
return this.buildAddCommand(packagesWithTarget, {});
|
|
202
|
+
}
|
|
203
|
+
parsePackageSpec(packageSpec) {
|
|
204
|
+
const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/);
|
|
205
|
+
if (!match) return { name: packageSpec };
|
|
206
|
+
return {
|
|
207
|
+
name: match[1] ?? packageSpec,
|
|
208
|
+
version: match[2]
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region src/package-manager/adapters/index.ts
|
|
215
|
+
/**
|
|
216
|
+
* Adapter registry
|
|
217
|
+
*/
|
|
218
|
+
const adapters = {
|
|
219
|
+
npm: new NpmAdapter(),
|
|
220
|
+
pnpm: new PnpmAdapter(),
|
|
221
|
+
yarn: new YarnAdapter(),
|
|
222
|
+
bun: new BunAdapter(),
|
|
223
|
+
deno: new DenoAdapter()
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Get adapter for a specific package manager
|
|
227
|
+
*/
|
|
228
|
+
function getAdapter(packageManager) {
|
|
229
|
+
return adapters[packageManager];
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
//#endregion
|
|
233
|
+
export { getAdapter };
|
|
234
|
+
//# sourceMappingURL=adapters-VexOYXht.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters-VexOYXht.js","names":[],"sources":["../src/package-manager/adapters/bun.ts","../src/package-manager/adapters/deno.ts","../src/package-manager/adapters/npm.ts","../src/package-manager/adapters/pnpm.ts","../src/package-manager/adapters/yarn.ts","../src/package-manager/adapters/index.ts"],"sourcesContent":["import type { PackageManagerAdapter } from '../adapter'\nimport type { AddOptions, PackageManager, RemoveOptions, UpgradeOptions } from '../types'\n\n/**\n * Bun adapter - translates operations to bun-specific commands\n */\nexport class BunAdapter implements PackageManagerAdapter {\n readonly name: PackageManager = 'bun'\n readonly supportsWorkspaces = true\n readonly command = 'bun'\n\n buildAddCommand(packages: string[], options: AddOptions): string[] {\n const args: string[] = ['add']\n\n // Add packages\n args.push(...packages)\n\n // Add flags\n if (options.saveDev) {\n args.push('--development')\n }\n\n if (options.exact) {\n args.push('--exact')\n }\n\n // Workspace support\n if (options.root) {\n args.push('--workspace')\n } else if (options.workspaces && options.workspaces.length > 0) {\n options.workspaces.forEach((ws) => {\n args.push('--workspace', ws)\n })\n }\n\n return args\n }\n\n buildRemoveCommand(packages: string[], options: RemoveOptions): string[] {\n const args: string[] = ['remove', ...packages]\n\n // Workspace support\n if (options.root) {\n args.push('--workspace')\n } else if (options.workspaces && options.workspaces.length > 0) {\n options.workspaces.forEach((ws) => {\n args.push('--workspace', ws)\n })\n }\n\n return args\n }\n\n buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[] {\n // Bun uses add with @latest for upgrades\n const target = options.target || 'latest'\n const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`)\n return this.buildAddCommand(packagesWithTarget, {})\n }\n\n parsePackageSpec(packageSpec: string): { name: string; version?: string } {\n const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/)\n if (!match) {\n return { name: packageSpec }\n }\n return {\n name: match[1] ?? packageSpec,\n version: match[2],\n }\n }\n}\n","import type { PackageManagerAdapter } from '../adapter'\nimport type { AddOptions, PackageManager, RemoveOptions, UpgradeOptions } from '../types'\n\n/**\n * Deno adapter - translates operations to deno-specific commands\n *\n * Note: Deno has a different model (URL-based imports) so some operations\n * are limited or not applicable.\n */\nexport class DenoAdapter implements PackageManagerAdapter {\n readonly name: PackageManager = 'deno'\n readonly supportsWorkspaces = false\n readonly command = 'deno'\n\n buildAddCommand(packages: string[], options: AddOptions): string[] {\n // Deno doesn't have a traditional package.json dependency system\n // Using deno add (new in Deno 2) for npm packages\n const args: string[] = ['add', ...packages]\n\n if (options.saveDev) {\n args.push('--dev')\n }\n\n // Deno doesn't support workspaces in the same way\n return args\n }\n\n buildRemoveCommand(packages: string[], options: RemoveOptions): string[] {\n // Deno 2 has remove command\n return ['remove', ...packages]\n }\n\n buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[] {\n // Deno doesn't have built-in upgrade, use add with latest\n return this.buildAddCommand(packages, {})\n }\n\n parsePackageSpec(packageSpec: string): { name: string; version?: string } {\n const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/)\n if (!match) {\n return { name: packageSpec }\n }\n return {\n name: match[1] ?? packageSpec,\n version: match[2],\n }\n }\n}\n","import type { PackageManagerAdapter } from '../adapter'\nimport type { AddOptions, PackageManager, RemoveOptions, UpgradeOptions } from '../types'\n\n/**\n * NPM adapter - translates operations to npm-specific commands\n */\nexport class NpmAdapter implements PackageManagerAdapter {\n readonly name: PackageManager = 'npm'\n readonly supportsWorkspaces = true\n readonly command = 'npm'\n\n buildAddCommand(packages: string[], options: AddOptions): string[] {\n const args: string[] = ['install']\n\n // Add packages\n args.push(...packages)\n\n // Add flags\n if (options.saveDev) {\n args.push('--save-dev')\n }\n\n if (options.exact) {\n args.push('--save-exact')\n }\n\n if (options.savePeer) {\n args.push('--save-peer')\n }\n\n if (options.saveOptional) {\n args.push('--save-optional')\n }\n\n // Workspace support\n if (options.root) {\n args.push('-w')\n } else if (options.workspaces && options.workspaces.length > 0) {\n if (options.workspaces.length === 1) {\n args.push('--workspace', options.workspaces[0] ?? '')\n } else {\n options.workspaces.forEach((ws) => {\n args.push('--workspace', ws)\n })\n }\n }\n\n return args\n }\n\n buildRemoveCommand(packages: string[], options: RemoveOptions): string[] {\n const args: string[] = ['uninstall', ...packages]\n\n // Workspace support\n if (options.root) {\n args.push('-w')\n } else if (options.workspaces && options.workspaces.length > 0) {\n if (options.workspaces.length === 1) {\n args.push('--workspace', options.workspaces[0] ?? '')\n } else {\n options.workspaces.forEach((ws) => {\n args.push('--workspace', ws)\n })\n }\n }\n\n return args\n }\n\n buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[] {\n // npm doesn't have a built-in upgrade command, use install with @latest\n const target = options.target || 'latest'\n const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`)\n return this.buildAddCommand(packagesWithTarget, {})\n }\n\n parsePackageSpec(packageSpec: string): { name: string; version?: string } {\n const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/)\n if (!match) {\n return { name: packageSpec }\n }\n return {\n name: match[1] ?? packageSpec,\n version: match[2],\n }\n }\n}\n","import type { PackageManagerAdapter } from '../adapter'\nimport type { AddOptions, PackageManager, RemoveOptions, UpgradeOptions } from '../types'\n\n/**\n * pnpm adapter - translates operations to pnpm-specific commands\n */\nexport class PnpmAdapter implements PackageManagerAdapter {\n readonly name: PackageManager = 'pnpm'\n readonly supportsWorkspaces = true\n readonly command = 'pnpm'\n\n buildAddCommand(packages: string[], options: AddOptions): string[] {\n const args: string[] = ['add']\n\n // Add packages\n args.push(...packages)\n\n // Add flags\n if (options.saveDev) {\n args.push('--save-dev')\n }\n\n if (options.exact) {\n args.push('--save-exact')\n }\n\n if (options.savePeer) {\n args.push('--save-peer')\n }\n\n if (options.saveOptional) {\n args.push('--save-optional')\n }\n\n // Workspace support\n if (options.root) {\n args.push('-w')\n } else if (options.workspaces && options.workspaces.length > 0) {\n options.workspaces.forEach((ws) => {\n args.push('--filter', ws)\n })\n }\n\n return args\n }\n\n buildRemoveCommand(packages: string[], options: RemoveOptions): string[] {\n const args: string[] = ['remove', ...packages]\n\n // Workspace support\n if (options.root) {\n args.push('-w')\n } else if (options.workspaces && options.workspaces.length > 0) {\n options.workspaces.forEach((ws) => {\n args.push('--filter', ws)\n })\n }\n\n return args\n }\n\n buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[] {\n const target = options.target || 'latest'\n const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`)\n return this.buildAddCommand(packagesWithTarget, {})\n }\n\n parsePackageSpec(packageSpec: string): { name: string; version?: string } {\n const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/)\n if (!match) {\n return { name: packageSpec }\n }\n return {\n name: match[1] ?? packageSpec,\n version: match[2],\n }\n }\n}\n","import type { PackageManagerAdapter } from '../adapter'\nimport type { AddOptions, PackageManager, RemoveOptions, UpgradeOptions } from '../types'\n\n/**\n * Yarn adapter - translates operations to yarn-specific commands\n */\nexport class YarnAdapter implements PackageManagerAdapter {\n readonly name: PackageManager = 'yarn'\n readonly supportsWorkspaces = true\n readonly command = 'yarn'\n\n buildAddCommand(packages: string[], options: AddOptions): string[] {\n const args: string[] = ['add']\n\n // Add packages\n args.push(...packages)\n\n // Add flags\n if (options.saveDev) {\n args.push('--dev')\n }\n\n if (options.exact) {\n args.push('--exact')\n }\n\n if (options.savePeer) {\n args.push('--peer')\n }\n\n if (options.saveOptional) {\n args.push('--optional')\n }\n\n // Workspace support\n if (options.root) {\n args.push('-W')\n } else if (options.workspaces && options.workspaces.length > 0) {\n // For Yarn, we need to use workspace focus\n if (options.workspaces.length === 1) {\n args.unshift('-c', '--', `workspace:${options.workspaces[0]}`)\n }\n }\n\n return args\n }\n\n buildRemoveCommand(packages: string[], options: RemoveOptions): string[] {\n const args: string[] = ['remove', ...packages]\n\n // Workspace support\n if (options.root) {\n args.push('-W')\n } else if (options.workspaces && options.workspaces.length > 0) {\n if (options.workspaces.length === 1) {\n args.unshift('-c', '--', `workspace:${options.workspaces[0]}`)\n }\n }\n\n return args\n }\n\n buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[] {\n // Yarn doesn't have a built-in upgrade command in v1\n // Use add with @latest for simplicity\n const target = options.target || 'latest'\n const packagesWithTarget = packages.map((pkg) => `${pkg}@${target}`)\n return this.buildAddCommand(packagesWithTarget, {})\n }\n\n parsePackageSpec(packageSpec: string): { name: string; version?: string } {\n const match = packageSpec.match(/^(@?[^@]+)(?:@(.+))?$/)\n if (!match) {\n return { name: packageSpec }\n }\n return {\n name: match[1] ?? packageSpec,\n version: match[2],\n }\n }\n}\n","import type { PackageManagerAdapter } from '../adapter'\nimport type { PackageManager } from '../types'\nimport { BunAdapter } from './bun'\nimport { DenoAdapter } from './deno'\nimport { NpmAdapter } from './npm'\nimport { PnpmAdapter } from './pnpm'\nimport { YarnAdapter } from './yarn'\n\n/**\n * Adapter registry\n */\nconst adapters: Record<PackageManager, PackageManagerAdapter> = {\n npm: new NpmAdapter(),\n pnpm: new PnpmAdapter(),\n yarn: new YarnAdapter(),\n bun: new BunAdapter(),\n deno: new DenoAdapter(),\n}\n\n/**\n * Get adapter for a specific package manager\n */\nexport function getAdapter(packageManager: PackageManager): PackageManagerAdapter {\n return adapters[packageManager]\n}\n\n/**\n * Get all available adapters\n */\nexport function getAllAdapters(): Record<PackageManager, PackageManagerAdapter> {\n return { ...adapters }\n}\n\n// Note: Adapter classes are exported in the main index.ts to avoid rolldown __exportAll issues\n"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,14 +2,13 @@ import { PathLike } from "fs-extra";
|
|
|
2
2
|
import { GlobOptions, Path } from "glob";
|
|
3
3
|
import * as _clack_prompts0 from "@clack/prompts";
|
|
4
4
|
import { GroupMultiSelectOptions, MultiSelectOptions, NoteOptions, Option, PromptGroup, SelectOptions, SpinnerOptions, TaskLogOptions, TextOptions, intro, outro, progress, spinner, stream } from "@clack/prompts";
|
|
5
|
-
import colors, { ChalkInstance } from "chalk";
|
|
5
|
+
import colors, { BackgroundColorName, ChalkInstance, ColorName, ForegroundColorName, ModifierName } from "chalk";
|
|
6
6
|
import winston from "winston";
|
|
7
|
-
import { loadConfig } from "unconfig";
|
|
8
|
-
import * as open0 from "open";
|
|
9
7
|
import { Command } from "commander";
|
|
10
8
|
import * as tinyexec0 from "tinyexec";
|
|
11
9
|
import { Options, Output, Result } from "tinyexec";
|
|
12
10
|
import { $, Options as Options$1, ProcessPromise } from "zx";
|
|
11
|
+
import * as open0 from "open";
|
|
13
12
|
import Configstore from "configstore";
|
|
14
13
|
import * as ora0 from "ora";
|
|
15
14
|
import { Options as Options$2 } from "ora";
|
|
@@ -18,6 +17,200 @@ import { Options as Options$2 } from "ora";
|
|
|
18
17
|
declare const LOWEST_NODE_VERSION = "18.0.0";
|
|
19
18
|
declare const CONFIG_NAME = ".nemoclirc";
|
|
20
19
|
//#endregion
|
|
20
|
+
//#region src/package-manager/types.d.ts
|
|
21
|
+
/**
|
|
22
|
+
* Supported package managers
|
|
23
|
+
*/
|
|
24
|
+
type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' | 'deno';
|
|
25
|
+
/**
|
|
26
|
+
* Package manager detection method
|
|
27
|
+
*/
|
|
28
|
+
type DetectionMethod = 'lock-file' | 'package-json' | 'user-selection';
|
|
29
|
+
/**
|
|
30
|
+
* Detection result with metadata
|
|
31
|
+
*/
|
|
32
|
+
interface DetectionResult {
|
|
33
|
+
/** Detected package manager */
|
|
34
|
+
packageManager: PackageManager;
|
|
35
|
+
/** How the package manager was detected */
|
|
36
|
+
method: DetectionMethod;
|
|
37
|
+
/** Timestamp of detection */
|
|
38
|
+
detectedAt: string;
|
|
39
|
+
/** Whether the package manager is installed and available */
|
|
40
|
+
isAvailable: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Options for adding dependencies
|
|
44
|
+
*/
|
|
45
|
+
interface AddOptions {
|
|
46
|
+
/** Save to devDependencies */
|
|
47
|
+
saveDev?: boolean;
|
|
48
|
+
/** Save to peerDependencies */
|
|
49
|
+
savePeer?: boolean;
|
|
50
|
+
/** Save to optionalDependencies */
|
|
51
|
+
saveOptional?: boolean;
|
|
52
|
+
/** Use exact version */
|
|
53
|
+
exact?: boolean;
|
|
54
|
+
/** Workspace filter (for monorepos) */
|
|
55
|
+
workspaces?: string[];
|
|
56
|
+
/** Whether to install to root workspace */
|
|
57
|
+
root?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Options for removing dependencies
|
|
61
|
+
*/
|
|
62
|
+
interface RemoveOptions {
|
|
63
|
+
/** Workspace filter (for monorepos) */
|
|
64
|
+
workspaces?: string[];
|
|
65
|
+
/** Whether to remove from root workspace */
|
|
66
|
+
root?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Options for upgrading dependencies
|
|
70
|
+
*/
|
|
71
|
+
interface UpgradeOptions {
|
|
72
|
+
/** Workspace filter (for monorepos) */
|
|
73
|
+
workspaces?: string[];
|
|
74
|
+
/** Target version (e.g., 'latest', 'beta', 'next') */
|
|
75
|
+
target?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Cache configuration for detection results
|
|
79
|
+
*/
|
|
80
|
+
interface DetectionCache {
|
|
81
|
+
/** Cached detection result */
|
|
82
|
+
result: DetectionResult;
|
|
83
|
+
/** Cache expiry timestamp */
|
|
84
|
+
expiresAt: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Lock file patterns for detection
|
|
88
|
+
*/
|
|
89
|
+
declare const LOCK_FILE_PATTERNS: Record<PackageManager, string[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Package manager display names
|
|
92
|
+
*/
|
|
93
|
+
declare const PACKAGE_MANAGER_NAMES: Record<PackageManager, string>;
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/package-manager/adapter.d.ts
|
|
96
|
+
/**
|
|
97
|
+
* Interface for package manager adapters
|
|
98
|
+
*
|
|
99
|
+
* Each package manager implements this interface to translate
|
|
100
|
+
* abstract operations into package-manager-specific commands.
|
|
101
|
+
*/
|
|
102
|
+
interface PackageManagerAdapter {
|
|
103
|
+
/** Package manager name */
|
|
104
|
+
readonly name: PackageManager;
|
|
105
|
+
/** Whether this package manager supports workspaces */
|
|
106
|
+
readonly supportsWorkspaces: boolean;
|
|
107
|
+
/** The command executable (e.g., 'pnpm', 'npm') */
|
|
108
|
+
readonly command: string;
|
|
109
|
+
/**
|
|
110
|
+
* Build an install/add command
|
|
111
|
+
* @param packages - Package names to install
|
|
112
|
+
* @param options - Installation options
|
|
113
|
+
* @returns Array of command arguments (e.g., ['add', 'react', '--save-dev'])
|
|
114
|
+
*/
|
|
115
|
+
buildAddCommand(packages: string[], options: AddOptions): string[];
|
|
116
|
+
/**
|
|
117
|
+
* Build a remove command
|
|
118
|
+
* @param packages - Package names to remove
|
|
119
|
+
* @param options - Removal options
|
|
120
|
+
* @returns Array of command arguments
|
|
121
|
+
*/
|
|
122
|
+
buildRemoveCommand(packages: string[], options: RemoveOptions): string[];
|
|
123
|
+
/**
|
|
124
|
+
* Build an upgrade command
|
|
125
|
+
* @param packages - Package names to upgrade
|
|
126
|
+
* @param options - Upgrade options
|
|
127
|
+
* @returns Array of command arguments
|
|
128
|
+
*/
|
|
129
|
+
buildUpgradeCommand(packages: string[], options: UpgradeOptions): string[];
|
|
130
|
+
/**
|
|
131
|
+
* Parse a version string to extract package name and version
|
|
132
|
+
* @param packageSpec - Package specification (e.g., 'react@18.0.0')
|
|
133
|
+
* @returns Object with name and version
|
|
134
|
+
*/
|
|
135
|
+
parsePackageSpec(packageSpec: string): {
|
|
136
|
+
name: string;
|
|
137
|
+
version?: string;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/package-manager/adapters/index.d.ts
|
|
142
|
+
/**
|
|
143
|
+
* Get adapter for a specific package manager
|
|
144
|
+
*/
|
|
145
|
+
declare function getAdapter(packageManager: PackageManager): PackageManagerAdapter;
|
|
146
|
+
/**
|
|
147
|
+
* Get all available adapters
|
|
148
|
+
*/
|
|
149
|
+
declare function getAllAdapters(): Record<PackageManager, PackageManagerAdapter>;
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/package-manager/detector.d.ts
|
|
152
|
+
/**
|
|
153
|
+
* PackageManagerDetector - Detects the package manager used by a project
|
|
154
|
+
*
|
|
155
|
+
* Detection priority:
|
|
156
|
+
* 1. Lock file analysis (package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lockb)
|
|
157
|
+
* 2. package.json packageManager field
|
|
158
|
+
* 3. Interactive user selection
|
|
159
|
+
*/
|
|
160
|
+
declare class PackageManagerDetector {
|
|
161
|
+
private projectRoot;
|
|
162
|
+
private cachePath;
|
|
163
|
+
constructor(projectRoot?: string);
|
|
164
|
+
/**
|
|
165
|
+
* Detect the package manager for the project
|
|
166
|
+
*/
|
|
167
|
+
detect(forceRefresh?: boolean): Promise<DetectionResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Detect package manager from lock files
|
|
170
|
+
*/
|
|
171
|
+
private detectByLockFile;
|
|
172
|
+
/**
|
|
173
|
+
* Detect package manager from package.json packageManager field
|
|
174
|
+
*/
|
|
175
|
+
private detectByPackageJson;
|
|
176
|
+
/**
|
|
177
|
+
* Prompt user to select package manager interactively
|
|
178
|
+
*/
|
|
179
|
+
private promptUser;
|
|
180
|
+
/**
|
|
181
|
+
* Check if a package manager is installed and available
|
|
182
|
+
*/
|
|
183
|
+
private checkAvailability;
|
|
184
|
+
/**
|
|
185
|
+
* Create a detection result with metadata
|
|
186
|
+
*/
|
|
187
|
+
private createDetectionResult;
|
|
188
|
+
/**
|
|
189
|
+
* Load cached detection result
|
|
190
|
+
*/
|
|
191
|
+
private loadCache;
|
|
192
|
+
/**
|
|
193
|
+
* Save detection result to cache
|
|
194
|
+
*/
|
|
195
|
+
private saveCache;
|
|
196
|
+
/**
|
|
197
|
+
* Check if cache has expired
|
|
198
|
+
*/
|
|
199
|
+
private isCacheExpired;
|
|
200
|
+
/**
|
|
201
|
+
* Validate package manager enum
|
|
202
|
+
*/
|
|
203
|
+
private isValidPackageManager;
|
|
204
|
+
/**
|
|
205
|
+
* Clear the cache (useful for testing or force re-detection)
|
|
206
|
+
*/
|
|
207
|
+
clearCache(): Promise<void>;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get adapter for detected or specified package manager
|
|
211
|
+
*/
|
|
212
|
+
declare function getPackageManagerAdapter(packageManager?: PackageManager): Promise<PackageManagerAdapter>;
|
|
213
|
+
//#endregion
|
|
21
214
|
//#region src/utils/browser.d.ts
|
|
22
215
|
declare const openBrowser: (url: string) => void;
|
|
23
216
|
declare const openBrowserApp: (url: string) => void;
|
|
@@ -27,6 +220,7 @@ declare const getBrowserApps: () => Record<open0.AppName, string | readonly stri
|
|
|
27
220
|
declare const clearScreen: () => void;
|
|
28
221
|
declare const clearTerminal: () => void;
|
|
29
222
|
type ColorInstance = ChalkInstance;
|
|
223
|
+
type ColorsType = ColorName | ForegroundColorName | BackgroundColorName | ModifierName;
|
|
30
224
|
//#endregion
|
|
31
225
|
//#region src/utils/command.d.ts
|
|
32
226
|
declare const exit: (code: number) => never;
|
|
@@ -63,6 +257,115 @@ declare const isDebug: () => boolean;
|
|
|
63
257
|
//#region src/utils/error.d.ts
|
|
64
258
|
declare const handleError: (err: unknown, message: string) => void;
|
|
65
259
|
//#endregion
|
|
260
|
+
//#region ../../node_modules/.pnpm/quansync@1.0.0/node_modules/quansync/dist/types-CSnozp72.d.ts
|
|
261
|
+
type QuansyncGenerator<Return = any, Yield = unknown> = Generator<Yield, Return, Awaited<Yield>> & {
|
|
262
|
+
__quansync?: true;
|
|
263
|
+
};
|
|
264
|
+
type QuansyncAwaitableGenerator<Return = any, Yield = unknown> = QuansyncGenerator<Return, Yield> & PromiseLike<Return>;
|
|
265
|
+
/**
|
|
266
|
+
* "Superposition" function that can be consumed in both sync and async contexts.
|
|
267
|
+
*/
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region ../../node_modules/.pnpm/unconfig-core@7.4.2/node_modules/unconfig-core/dist/index.d.mts
|
|
270
|
+
//#region ../../node_modules/.pnpm/@antfu+utils@9.3.0/node_modules/@antfu/utils/dist/index.d.mts
|
|
271
|
+
/**
|
|
272
|
+
* Promise, or maybe not
|
|
273
|
+
*/
|
|
274
|
+
type Awaitable<T> = T | PromiseLike<T>;
|
|
275
|
+
/**
|
|
276
|
+
* Null or whatever
|
|
277
|
+
*/
|
|
278
|
+
//#endregion
|
|
279
|
+
//#region src/types.d.ts
|
|
280
|
+
type CustomParser<T> = (filepath: string) => Awaitable<T | undefined>;
|
|
281
|
+
interface CoreLoadConfigSource<T = any> {
|
|
282
|
+
files: Array<string>;
|
|
283
|
+
extensions?: string[];
|
|
284
|
+
/**
|
|
285
|
+
* Parser for loading config,
|
|
286
|
+
*/
|
|
287
|
+
parser: CustomParser<T>;
|
|
288
|
+
/**
|
|
289
|
+
* Skip this source if error occurred on loading
|
|
290
|
+
*
|
|
291
|
+
* @default false
|
|
292
|
+
*/
|
|
293
|
+
skipOnError?: boolean;
|
|
294
|
+
}
|
|
295
|
+
interface CoreSearchOptions {
|
|
296
|
+
/**
|
|
297
|
+
* Root directory
|
|
298
|
+
*
|
|
299
|
+
* @default process.cwd()
|
|
300
|
+
*/
|
|
301
|
+
cwd?: string;
|
|
302
|
+
/**
|
|
303
|
+
* @default path.parse(cwd).root
|
|
304
|
+
*/
|
|
305
|
+
stopAt?: string;
|
|
306
|
+
multiple?: boolean;
|
|
307
|
+
}
|
|
308
|
+
//#endregion
|
|
309
|
+
//#region ../../node_modules/.pnpm/unconfig@7.4.2/node_modules/unconfig/dist/types-DkMDcGX_.d.mts
|
|
310
|
+
//#region ../../node_modules/.pnpm/@antfu+utils@9.3.0/node_modules/@antfu/utils/dist/index.d.mts
|
|
311
|
+
/**
|
|
312
|
+
* Array, or not yet
|
|
313
|
+
*/
|
|
314
|
+
type Arrayable<T> = T | Array<T>;
|
|
315
|
+
/**
|
|
316
|
+
* Function
|
|
317
|
+
*/
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/types.d.ts
|
|
320
|
+
type BuiltinParsers = 'json' | 'import';
|
|
321
|
+
interface LoadConfigSource<T = any> extends Omit<CoreLoadConfigSource<T>, 'files' | 'parser'> {
|
|
322
|
+
files: Arrayable<string>;
|
|
323
|
+
/**
|
|
324
|
+
* @default ['mts', 'cts', 'ts', 'mjs', 'cjs', 'js', 'json', '']
|
|
325
|
+
*/
|
|
326
|
+
extensions?: string[];
|
|
327
|
+
/**
|
|
328
|
+
* Parser for loading config,
|
|
329
|
+
*
|
|
330
|
+
* @default 'auto'
|
|
331
|
+
*/
|
|
332
|
+
parser?: BuiltinParsers | CustomParser<T> | 'auto';
|
|
333
|
+
/**
|
|
334
|
+
* Rewrite the config object,
|
|
335
|
+
* return nullish value to bypassing loading the file
|
|
336
|
+
*/
|
|
337
|
+
rewrite?: <F = any>(obj: F, filepath: string) => Promise<T | undefined> | T | undefined;
|
|
338
|
+
/**
|
|
339
|
+
* Transform the source code before loading,
|
|
340
|
+
* return nullish value to skip transformation
|
|
341
|
+
*/
|
|
342
|
+
transform?: (code: string, filepath: string) => Promise<string | undefined> | string | undefined;
|
|
343
|
+
}
|
|
344
|
+
interface SearchOptions extends Omit<CoreSearchOptions, 'multiple'> {
|
|
345
|
+
/**
|
|
346
|
+
* Load from multiple sources and merge them
|
|
347
|
+
*
|
|
348
|
+
* @default false
|
|
349
|
+
*/
|
|
350
|
+
merge?: boolean;
|
|
351
|
+
}
|
|
352
|
+
interface LoadConfigOptions<T = any> extends SearchOptions {
|
|
353
|
+
sources: Arrayable<LoadConfigSource<T>>;
|
|
354
|
+
defaults?: T;
|
|
355
|
+
}
|
|
356
|
+
interface LoadConfigResult<T> {
|
|
357
|
+
config: T;
|
|
358
|
+
sources: string[];
|
|
359
|
+
dependencies?: string[];
|
|
360
|
+
} //#endregion
|
|
361
|
+
//#endregion
|
|
362
|
+
//#region ../../node_modules/.pnpm/unconfig@7.4.2/node_modules/unconfig/dist/index.d.mts
|
|
363
|
+
declare const loadConfig: {
|
|
364
|
+
<T>(options: LoadConfigOptions<T>): QuansyncAwaitableGenerator<LoadConfigResult<T>>;
|
|
365
|
+
sync: <T>(options: LoadConfigOptions<T>) => LoadConfigResult<T>;
|
|
366
|
+
async: <T>(options: LoadConfigOptions<T>) => Promise<LoadConfigResult<T>>;
|
|
367
|
+
};
|
|
368
|
+
//#endregion
|
|
66
369
|
//#region src/utils/file.d.ts
|
|
67
370
|
type Package = {
|
|
68
371
|
name: string;
|
|
@@ -188,6 +491,16 @@ declare const dirname: <T extends {
|
|
|
188
491
|
url: string;
|
|
189
492
|
}>(importMate: T) => string;
|
|
190
493
|
declare const cwdPathname: (dirname: string) => string;
|
|
494
|
+
/**
|
|
495
|
+
* Join path segments and resolve to absolute path from current working directory
|
|
496
|
+
* @param segments - Path segments to join
|
|
497
|
+
* @returns Absolute path
|
|
498
|
+
*
|
|
499
|
+
* @example
|
|
500
|
+
* joinPath('packages', 'workspace', 'package.json')
|
|
501
|
+
* // Returns: /Users/user/project/packages/workspace/package.json
|
|
502
|
+
*/
|
|
503
|
+
declare const joinPath: (...segments: string[]) => string;
|
|
191
504
|
declare const parseNames: (names: string) => string[];
|
|
192
505
|
//#endregion
|
|
193
506
|
//#region src/utils/promise.d.ts
|
|
@@ -269,9 +582,14 @@ interface PackageNameInfo {
|
|
|
269
582
|
name: string;
|
|
270
583
|
path: string;
|
|
271
584
|
}
|
|
585
|
+
/**
|
|
586
|
+
* Get workspace directories based on detected package manager
|
|
587
|
+
* Supports pnpm-workspace.yaml and package.json workspaces field
|
|
588
|
+
*/
|
|
272
589
|
declare function getWorkspaceDirs(): Promise<{
|
|
273
590
|
root: string;
|
|
274
591
|
packages: string[];
|
|
592
|
+
packageManager: PackageManager;
|
|
275
593
|
}>;
|
|
276
594
|
declare function getWorkspaceNames(): Promise<PackageNameInfo[]>;
|
|
277
595
|
//#endregion
|
|
@@ -286,5 +604,5 @@ declare const pkg: {
|
|
|
286
604
|
workspaces: string[] | Record<string, string[]>;
|
|
287
605
|
};
|
|
288
606
|
//#endregion
|
|
289
|
-
export { $, AnyFunction$1 as AnyFunction, BASE_OPTIONS, CONFIG_NAME, ColorInstance, type Command, Configstore, LOWEST_NODE_VERSION, PackageNameInfo, PromptOptions, type Result, Spinner, addFiles, buildCommand, cached, checkFile, clearScreen, clearTerminal, colors, copyFile, createCheckbox, createCommand, createConfirm, createGroup, createGroupMultiSelect, createHelpExample, createInput, createNote, createOptions, createSearch, createSelect, createShowList, createSpinner, createStore, createTaskLog, createTasks, cwdPathname, deleteFile, deleteFiles, dirList, dirname, emptyDir, emptyDirs, exit, fileList, filename, filterDirList, getBrowserApps, getCurrentBranch, getDiffFiles, getGitStatus, getLocalBranches, getPackageDependencies, getWorkspaceDirs, getWorkspaceNames, glob, handleError, has, hasOwn, intro, isArray, isBoolean, isChinese, isDate, isDebug, isEmpty, isEmptyDir, isError, isFormData, isFunction, isMap, isNull, isNumber, isPlainObject, isPromise, isSet, isString, isSymbol, isURLSearchParams, isUndefined, loadConfig, loadEnv, log, logger, openBrowser, openBrowserApp, ora, outro, parseNames, pkg, progress, readFile, readGitignore, readJSON, readPackage, require, safeAwait, sleep, stream, writeJSON, x, xASync, zx };
|
|
607
|
+
export { $, AddOptions, AnyFunction$1 as AnyFunction, BASE_OPTIONS, CONFIG_NAME, ColorInstance, ColorsType, type Command, Configstore, DetectionCache, DetectionMethod, DetectionResult, LOCK_FILE_PATTERNS, LOWEST_NODE_VERSION, PACKAGE_MANAGER_NAMES, type PackageManager, PackageManagerAdapter, PackageManagerDetector, PackageNameInfo, PromptOptions, RemoveOptions, type Result, Spinner, UpgradeOptions, addFiles, buildCommand, cached, checkFile, clearScreen, clearTerminal, colors, copyFile, createCheckbox, createCommand, createConfirm, createGroup, createGroupMultiSelect, createHelpExample, createInput, createNote, createOptions, createSearch, createSelect, createShowList, createSpinner, createStore, createTaskLog, createTasks, cwdPathname, deleteFile, deleteFiles, dirList, dirname, emptyDir, emptyDirs, exit, fileList, filename, filterDirList, getAdapter, getAllAdapters, getBrowserApps, getCurrentBranch, getDiffFiles, getGitStatus, getLocalBranches, getPackageDependencies, getPackageManagerAdapter, getWorkspaceDirs, getWorkspaceNames, glob, handleError, has, hasOwn, intro, isArray, isBoolean, isChinese, isDate, isDebug, isEmpty, isEmptyDir, isError, isFormData, isFunction, isMap, isNull, isNumber, isPlainObject, isPromise, isSet, isString, isSymbol, isURLSearchParams, isUndefined, joinPath, loadConfig, loadEnv, log, logger, openBrowser, openBrowserApp, ora, outro, parseNames, pkg, progress, readFile, readGitignore, readJSON, readPackage, require, safeAwait, sleep, stream, writeJSON, x, xASync, zx };
|
|
290
608
|
//# sourceMappingURL=index.d.ts.map
|