@nemo-cli/shared 0.1.3 → 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.
@@ -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;
@@ -40,6 +234,7 @@ declare const x: (command: string, args?: string[], options?: Partial<Options>)
40
234
  declare const zx: (baseCommand: string, dynamicParts?: (string | number | boolean | null | undefined)[], options?: Partial<Options$1>) => ProcessPromise;
41
235
  declare const xASync: (command: string, args?: string[], options?: Partial<Options> & {
42
236
  quiet?: boolean;
237
+ timeout?: number;
43
238
  }) => Promise<[Error, null] | [null, Output]>;
44
239
  //#endregion
45
240
  //#region src/utils/common.d.ts
@@ -62,6 +257,115 @@ declare const isDebug: () => boolean;
62
257
  //#region src/utils/error.d.ts
63
258
  declare const handleError: (err: unknown, message: string) => void;
64
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
65
369
  //#region src/utils/file.d.ts
66
370
  type Package = {
67
371
  name: string;
@@ -187,6 +491,16 @@ declare const dirname: <T extends {
187
491
  url: string;
188
492
  }>(importMate: T) => string;
189
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;
190
504
  declare const parseNames: (names: string) => string[];
191
505
  //#endregion
192
506
  //#region src/utils/promise.d.ts
@@ -268,9 +582,14 @@ interface PackageNameInfo {
268
582
  name: string;
269
583
  path: string;
270
584
  }
585
+ /**
586
+ * Get workspace directories based on detected package manager
587
+ * Supports pnpm-workspace.yaml and package.json workspaces field
588
+ */
271
589
  declare function getWorkspaceDirs(): Promise<{
272
590
  root: string;
273
591
  packages: string[];
592
+ packageManager: PackageManager;
274
593
  }>;
275
594
  declare function getWorkspaceNames(): Promise<PackageNameInfo[]>;
276
595
  //#endregion
@@ -285,5 +604,5 @@ declare const pkg: {
285
604
  workspaces: string[] | Record<string, string[]>;
286
605
  };
287
606
  //#endregion
288
- 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 };
289
608
  //# sourceMappingURL=index.d.ts.map