@optimizely/ocp-cli-v2 2.0.0-beta.1
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/LICENSE +201 -0
- package/README.md +51 -0
- package/bin/ocp.js +3 -0
- package/bin/run.js +3 -0
- package/dist/commands/accounts/whoami.d.ts +5 -0
- package/dist/commands/accounts/whoami.js +22 -0
- package/dist/commands/accounts/whoami.js.map +1 -0
- package/dist/commands/accounts/whois.d.ts +12 -0
- package/dist/commands/accounts/whois.js +57 -0
- package/dist/commands/accounts/whois.js.map +1 -0
- package/dist/commands/app/BaseBuildCommand.d.ts +37 -0
- package/dist/commands/app/BaseBuildCommand.js +255 -0
- package/dist/commands/app/BaseBuildCommand.js.map +1 -0
- package/dist/commands/app/abandon.d.ts +11 -0
- package/dist/commands/app/abandon.js +146 -0
- package/dist/commands/app/abandon.js.map +1 -0
- package/dist/commands/app/getLogLevel.d.ts +16 -0
- package/dist/commands/app/getLogLevel.js +66 -0
- package/dist/commands/app/getLogLevel.js.map +1 -0
- package/dist/commands/app/init.d.ts +27 -0
- package/dist/commands/app/init.js +326 -0
- package/dist/commands/app/init.js.map +1 -0
- package/dist/commands/app/logs.d.ts +24 -0
- package/dist/commands/app/logs.js +231 -0
- package/dist/commands/app/logs.js.map +1 -0
- package/dist/commands/app/package.d.ts +8 -0
- package/dist/commands/app/package.js +51 -0
- package/dist/commands/app/package.js.map +1 -0
- package/dist/commands/app/prepare.d.ts +16 -0
- package/dist/commands/app/prepare.js +119 -0
- package/dist/commands/app/prepare.js.map +1 -0
- package/dist/commands/app/register.d.ts +10 -0
- package/dist/commands/app/register.js +102 -0
- package/dist/commands/app/register.js.map +1 -0
- package/dist/commands/app/setLogLevel.d.ts +16 -0
- package/dist/commands/app/setLogLevel.js +83 -0
- package/dist/commands/app/setLogLevel.js.map +1 -0
- package/dist/commands/app/validate.d.ts +5 -0
- package/dist/commands/app/validate.js +26 -0
- package/dist/commands/app/validate.js.map +1 -0
- package/dist/commands/availability/list.d.ts +6 -0
- package/dist/commands/availability/list.js +32 -0
- package/dist/commands/availability/list.js.map +1 -0
- package/dist/commands/dev-server/start.d.ts +36 -0
- package/dist/commands/dev-server/start.js +209 -0
- package/dist/commands/dev-server/start.js.map +1 -0
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.js +12 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/directory/info.d.ts +13 -0
- package/dist/commands/directory/info.js +85 -0
- package/dist/commands/directory/info.js.map +1 -0
- package/dist/commands/directory/install.d.ts +12 -0
- package/dist/commands/directory/install.js +46 -0
- package/dist/commands/directory/install.js.map +1 -0
- package/dist/commands/directory/list.d.ts +14 -0
- package/dist/commands/directory/list.js +114 -0
- package/dist/commands/directory/list.js.map +1 -0
- package/dist/commands/directory/listFunctions.d.ts +15 -0
- package/dist/commands/directory/listFunctions.js +86 -0
- package/dist/commands/directory/listFunctions.js.map +1 -0
- package/dist/commands/directory/listGlobalFunctions.d.ts +13 -0
- package/dist/commands/directory/listGlobalFunctions.js +64 -0
- package/dist/commands/directory/listGlobalFunctions.js.map +1 -0
- package/dist/commands/directory/listInstalls.d.ts +15 -0
- package/dist/commands/directory/listInstalls.js +72 -0
- package/dist/commands/directory/listInstalls.js.map +1 -0
- package/dist/commands/directory/listSourceFunctions.d.ts +14 -0
- package/dist/commands/directory/listSourceFunctions.js +71 -0
- package/dist/commands/directory/listSourceFunctions.js.map +1 -0
- package/dist/commands/directory/publish.d.ts +15 -0
- package/dist/commands/directory/publish.js +201 -0
- package/dist/commands/directory/publish.js.map +1 -0
- package/dist/commands/directory/status.d.ts +11 -0
- package/dist/commands/directory/status.js +50 -0
- package/dist/commands/directory/status.js.map +1 -0
- package/dist/commands/directory/uninstall.d.ts +13 -0
- package/dist/commands/directory/uninstall.js +55 -0
- package/dist/commands/directory/uninstall.js.map +1 -0
- package/dist/commands/directory/unpublish.d.ts +17 -0
- package/dist/commands/directory/unpublish.js +187 -0
- package/dist/commands/directory/unpublish.js.map +1 -0
- package/dist/commands/directory/upgrade.d.ts +15 -0
- package/dist/commands/directory/upgrade.js +113 -0
- package/dist/commands/directory/upgrade.js.map +1 -0
- package/dist/commands/env/get.d.ts +5 -0
- package/dist/commands/env/get.js +23 -0
- package/dist/commands/env/get.js.map +1 -0
- package/dist/commands/env/set.d.ts +8 -0
- package/dist/commands/env/set.js +63 -0
- package/dist/commands/env/set.js.map +1 -0
- package/dist/commands/jobs/list.d.ts +27 -0
- package/dist/commands/jobs/list.js +245 -0
- package/dist/commands/jobs/list.js.map +1 -0
- package/dist/commands/jobs/runtimeStatus.d.ts +11 -0
- package/dist/commands/jobs/runtimeStatus.js +55 -0
- package/dist/commands/jobs/runtimeStatus.js.map +1 -0
- package/dist/commands/jobs/status.d.ts +11 -0
- package/dist/commands/jobs/status.js +57 -0
- package/dist/commands/jobs/status.js.map +1 -0
- package/dist/commands/jobs/terminate.d.ts +11 -0
- package/dist/commands/jobs/terminate.js +35 -0
- package/dist/commands/jobs/terminate.js.map +1 -0
- package/dist/commands/jobs/trigger.d.ts +14 -0
- package/dist/commands/jobs/trigger.js +47 -0
- package/dist/commands/jobs/trigger.js.map +1 -0
- package/dist/commands/review/list.d.ts +9 -0
- package/dist/commands/review/list.js +74 -0
- package/dist/commands/review/list.js.map +1 -0
- package/dist/commands/review/open.d.ts +8 -0
- package/dist/commands/review/open.js +32 -0
- package/dist/commands/review/open.js.map +1 -0
- package/dist/hooks/command-not-found.d.ts +3 -0
- package/dist/hooks/command-not-found.js +93 -0
- package/dist/hooks/command-not-found.js.map +1 -0
- package/dist/hooks/preupdate.d.ts +10 -0
- package/dist/hooks/preupdate.js +42 -0
- package/dist/hooks/preupdate.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/AppContext.d.ts +9 -0
- package/dist/lib/AppContext.js +43 -0
- package/dist/lib/AppContext.js.map +1 -0
- package/dist/lib/AppPackager.d.ts +17 -0
- package/dist/lib/AppPackager.js +57 -0
- package/dist/lib/AppPackager.js.map +1 -0
- package/dist/lib/AppUpdater.d.ts +11 -0
- package/dist/lib/AppUpdater.js +143 -0
- package/dist/lib/AppUpdater.js.map +1 -0
- package/dist/lib/AppUploader.d.ts +9 -0
- package/dist/lib/AppUploader.js +37 -0
- package/dist/lib/AppUploader.js.map +1 -0
- package/dist/lib/BuildPipeline.d.ts +24 -0
- package/dist/lib/BuildPipeline.js +26 -0
- package/dist/lib/BuildPipeline.js.map +1 -0
- package/dist/lib/BuildPipelineFactory.d.ts +10 -0
- package/dist/lib/BuildPipelineFactory.js +23 -0
- package/dist/lib/BuildPipelineFactory.js.map +1 -0
- package/dist/lib/Config.d.ts +15 -0
- package/dist/lib/Config.js +47 -0
- package/dist/lib/Config.js.map +1 -0
- package/dist/lib/CustomHelp.d.ts +19 -0
- package/dist/lib/CustomHelp.js +81 -0
- package/dist/lib/CustomHelp.js.map +1 -0
- package/dist/lib/DependencyStage.d.ts +1 -0
- package/dist/lib/DependencyStage.js +3 -0
- package/dist/lib/DependencyStage.js.map +1 -0
- package/dist/lib/EnvironmentalOutput.d.ts +1 -0
- package/dist/lib/EnvironmentalOutput.js +22 -0
- package/dist/lib/EnvironmentalOutput.js.map +1 -0
- package/dist/lib/Moria.d.ts +51 -0
- package/dist/lib/Moria.js +30 -0
- package/dist/lib/Moria.js.map +1 -0
- package/dist/lib/MoriaApi.d.ts +22 -0
- package/dist/lib/MoriaApi.js +74 -0
- package/dist/lib/MoriaApi.js.map +1 -0
- package/dist/lib/NodeBuildPipeline.d.ts +25 -0
- package/dist/lib/NodeBuildPipeline.js +60 -0
- package/dist/lib/NodeBuildPipeline.js.map +1 -0
- package/dist/lib/PackageManager.d.ts +242 -0
- package/dist/lib/PackageManager.js +511 -0
- package/dist/lib/PackageManager.js.map +1 -0
- package/dist/lib/Rivendell.d.ts +409 -0
- package/dist/lib/Rivendell.js +391 -0
- package/dist/lib/Rivendell.js.map +1 -0
- package/dist/lib/RivendellApi.d.ts +22 -0
- package/dist/lib/RivendellApi.js +159 -0
- package/dist/lib/RivendellApi.js.map +1 -0
- package/dist/lib/Shards.d.ts +3 -0
- package/dist/lib/Shards.js +41 -0
- package/dist/lib/Shards.js.map +1 -0
- package/dist/lib/StringUtils.d.ts +1 -0
- package/dist/lib/StringUtils.js +9 -0
- package/dist/lib/StringUtils.js.map +1 -0
- package/dist/lib/TeminalPassthru.d.ts +7 -0
- package/dist/lib/TeminalPassthru.js +12 -0
- package/dist/lib/TeminalPassthru.js.map +1 -0
- package/dist/lib/TerminalConfirm.d.ts +3 -0
- package/dist/lib/TerminalConfirm.js +31 -0
- package/dist/lib/TerminalConfirm.js.map +1 -0
- package/dist/lib/TerminalInput.d.ts +32 -0
- package/dist/lib/TerminalInput.js +207 -0
- package/dist/lib/TerminalInput.js.map +1 -0
- package/dist/lib/TerminalMenu.d.ts +34 -0
- package/dist/lib/TerminalMenu.js +186 -0
- package/dist/lib/TerminalMenu.js.map +1 -0
- package/dist/lib/TerminalOutput.d.ts +5 -0
- package/dist/lib/TerminalOutput.js +12 -0
- package/dist/lib/TerminalOutput.js.map +1 -0
- package/dist/lib/TerminalSpinner.d.ts +14 -0
- package/dist/lib/TerminalSpinner.js +69 -0
- package/dist/lib/TerminalSpinner.js.map +1 -0
- package/dist/lib/Tracking.d.ts +15 -0
- package/dist/lib/Tracking.js +19 -0
- package/dist/lib/Tracking.js.map +1 -0
- package/dist/lib/build.d.ts +5 -0
- package/dist/lib/build.js +41 -0
- package/dist/lib/build.js.map +1 -0
- package/dist/lib/die.d.ts +5 -0
- package/dist/lib/die.js +14 -0
- package/dist/lib/die.js.map +1 -0
- package/dist/lib/directoryExists.d.ts +1 -0
- package/dist/lib/directoryExists.js +9 -0
- package/dist/lib/directoryExists.js.map +1 -0
- package/dist/lib/formatBuildState.d.ts +2 -0
- package/dist/lib/formatBuildState.js +23 -0
- package/dist/lib/formatBuildState.js.map +1 -0
- package/dist/lib/formatError.d.ts +1 -0
- package/dist/lib/formatError.js +55 -0
- package/dist/lib/formatError.js.map +1 -0
- package/dist/lib/formatJobStatus.d.ts +3 -0
- package/dist/lib/formatJobStatus.js +28 -0
- package/dist/lib/formatJobStatus.js.map +1 -0
- package/dist/lib/formatReviewStatus.d.ts +4 -0
- package/dist/lib/formatReviewStatus.js +28 -0
- package/dist/lib/formatReviewStatus.js.map +1 -0
- package/dist/lib/formatTimstamp.d.ts +1 -0
- package/dist/lib/formatTimstamp.js +25 -0
- package/dist/lib/formatTimstamp.js.map +1 -0
- package/dist/lib/formatVersionState.d.ts +2 -0
- package/dist/lib/formatVersionState.js +37 -0
- package/dist/lib/formatVersionState.js.map +1 -0
- package/dist/lib/gatherAppEnv.d.ts +3 -0
- package/dist/lib/gatherAppEnv.js +71 -0
- package/dist/lib/gatherAppEnv.js.map +1 -0
- package/dist/lib/handleInterrupt.d.ts +1 -0
- package/dist/lib/handleInterrupt.js +17 -0
- package/dist/lib/handleInterrupt.js.map +1 -0
- package/dist/lib/jobRuntime.d.ts +3 -0
- package/dist/lib/jobRuntime.js +16 -0
- package/dist/lib/jobRuntime.js.map +1 -0
- package/dist/lib/migrateOptiCli.d.ts +1 -0
- package/dist/lib/migrateOptiCli.js +30 -0
- package/dist/lib/migrateOptiCli.js.map +1 -0
- package/dist/lib/parseDate.d.ts +2 -0
- package/dist/lib/parseDate.js +26 -0
- package/dist/lib/parseDate.js.map +1 -0
- package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
- package/dist/lib/templating/TemplateRenderer.js +63 -0
- package/dist/lib/templating/TemplateRenderer.js.map +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.js +9 -0
- package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
- package/dist/lib/templating/types.d.ts +27 -0
- package/dist/lib/templating/types.js +3 -0
- package/dist/lib/templating/types.js.map +1 -0
- package/dist/oclif.manifest.json +1616 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +61 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +180 -0
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PACKAGE_MANAGERS = exports.PackageManagerFactory = exports.BunPackageManager = exports.PnpmPackageManager = exports.NpmPackageManager = exports.YarnBerryPackageManager = exports.YarnPackageManager = exports.PackageManager = void 0;
|
|
4
|
+
/* tslint:disable:max-classes-per-file */
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const path = require("path");
|
|
8
|
+
const LOCK_FILES = {
|
|
9
|
+
'yarn.lock': 'yarn',
|
|
10
|
+
'package-lock.json': 'npm',
|
|
11
|
+
'pnpm-lock.yaml': 'pnpm',
|
|
12
|
+
'bun.lockb': 'bun',
|
|
13
|
+
'bun.lock': 'bun',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Abstract base class for package managers.
|
|
17
|
+
*/
|
|
18
|
+
class PackageManager {
|
|
19
|
+
/**
|
|
20
|
+
* Initialize a new project directory before install.
|
|
21
|
+
* Override in subclasses that need special initialization (e.g., Yarn Berry).
|
|
22
|
+
* @param projectDir The absolute path to the project directory
|
|
23
|
+
*/
|
|
24
|
+
initProject(_projectDir) {
|
|
25
|
+
// Default: no initialization needed
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get the executable name for spawning.
|
|
29
|
+
*/
|
|
30
|
+
get executable() {
|
|
31
|
+
return this.type;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get display name for user-facing messages.
|
|
35
|
+
*/
|
|
36
|
+
get displayName() {
|
|
37
|
+
return this.type;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get the version of the package manager.
|
|
41
|
+
*/
|
|
42
|
+
getVersion() {
|
|
43
|
+
try {
|
|
44
|
+
return (0, child_process_1.execSync)(`${this.executable} --version`, {
|
|
45
|
+
encoding: 'utf-8',
|
|
46
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
47
|
+
}).trim();
|
|
48
|
+
}
|
|
49
|
+
catch (_a) {
|
|
50
|
+
return 'unknown';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the packageManager field value for package.json.
|
|
55
|
+
* Returns standard Corepack format: "name@version" (e.g., "yarn@4.12.0")
|
|
56
|
+
* This format is understood by Corepack for npm, yarn, and pnpm.
|
|
57
|
+
* For bun, the builder will need to handle installation manually.
|
|
58
|
+
*/
|
|
59
|
+
getPackageManagerField() {
|
|
60
|
+
return `${this.executable}@${this.getVersion()}`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.PackageManager = PackageManager;
|
|
64
|
+
/**
|
|
65
|
+
* Yarn package manager implementation.
|
|
66
|
+
*/
|
|
67
|
+
class YarnPackageManager extends PackageManager {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(...arguments);
|
|
70
|
+
this.type = 'yarn';
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Initialize a Yarn project by creating an empty yarn.lock file.
|
|
74
|
+
* This is necessary when the user has Yarn Berry installed globally,
|
|
75
|
+
* as Berry requires a lockfile to identify standalone projects.
|
|
76
|
+
* Harmless for Yarn Classic (it will overwrite with its format).
|
|
77
|
+
*/
|
|
78
|
+
initProject(projectDir) {
|
|
79
|
+
const lockfilePath = path.join(projectDir, 'yarn.lock');
|
|
80
|
+
if (!fs.existsSync(lockfilePath)) {
|
|
81
|
+
fs.writeFileSync(lockfilePath, '');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
installCommand() {
|
|
85
|
+
return 'yarn';
|
|
86
|
+
}
|
|
87
|
+
addCommand(packages) {
|
|
88
|
+
return `yarn add ${packages.join(' ')}`;
|
|
89
|
+
}
|
|
90
|
+
addDevCommand(packages) {
|
|
91
|
+
return `yarn add --dev ${packages.join(' ')}`;
|
|
92
|
+
}
|
|
93
|
+
runCommand(script, options) {
|
|
94
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
95
|
+
return `yarn ${silent}run ${script}`;
|
|
96
|
+
}
|
|
97
|
+
runDirectCommand(script, options) {
|
|
98
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
99
|
+
return `yarn ${silent}${script}`;
|
|
100
|
+
}
|
|
101
|
+
listCommand(options) {
|
|
102
|
+
const { prod = false, pattern, silent = false } = options || {};
|
|
103
|
+
// Note: -s must be immediately before `list` for yarn to work correctly
|
|
104
|
+
return `yarn --no-progress ${prod ? '--prod ' : ''}${silent ? '-s ' : ''}list --json${pattern ? ` --pattern="${pattern}"` : ''} --non-interactive`;
|
|
105
|
+
}
|
|
106
|
+
supportsPatternFiltering() {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
parseListOutput(stdout, _filterPrefix) {
|
|
110
|
+
const output = {};
|
|
111
|
+
const tree = JSON.parse(stdout);
|
|
112
|
+
for (const item of tree.data.trees) {
|
|
113
|
+
const [name, version] = item.name.split(/(?!^)@/);
|
|
114
|
+
output[name] = version;
|
|
115
|
+
}
|
|
116
|
+
return output;
|
|
117
|
+
}
|
|
118
|
+
hasPackagesWithPrefix(stdout, _prefix) {
|
|
119
|
+
var _a, _b;
|
|
120
|
+
const tree = JSON.parse(stdout);
|
|
121
|
+
return ((_b = (_a = tree.data) === null || _a === void 0 ? void 0 : _a.trees) === null || _b === void 0 ? void 0 : _b.length) > 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.YarnPackageManager = YarnPackageManager;
|
|
125
|
+
/**
|
|
126
|
+
* Yarn Berry (2+/3+/4+) package manager implementation.
|
|
127
|
+
* Handles differences from Yarn Classic.
|
|
128
|
+
*/
|
|
129
|
+
class YarnBerryPackageManager extends PackageManager {
|
|
130
|
+
constructor() {
|
|
131
|
+
super(...arguments);
|
|
132
|
+
this.type = 'yarn-berry';
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Initialize a Yarn Berry project by creating an empty yarn.lock file.
|
|
136
|
+
* This marks the directory as a standalone project, preventing Yarn Berry
|
|
137
|
+
* from trying to treat it as a workspace of a parent project.
|
|
138
|
+
*/
|
|
139
|
+
initProject(projectDir) {
|
|
140
|
+
const lockfilePath = path.join(projectDir, 'yarn.lock');
|
|
141
|
+
if (!fs.existsSync(lockfilePath)) {
|
|
142
|
+
fs.writeFileSync(lockfilePath, '');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
installCommand() {
|
|
146
|
+
return 'yarn';
|
|
147
|
+
}
|
|
148
|
+
addCommand(packages) {
|
|
149
|
+
return `yarn add ${packages.join(' ')}`;
|
|
150
|
+
}
|
|
151
|
+
addDevCommand(packages) {
|
|
152
|
+
return `yarn add --dev ${packages.join(' ')}`;
|
|
153
|
+
}
|
|
154
|
+
runCommand(script, _options) {
|
|
155
|
+
// Berry doesn't support --silent flag the same way
|
|
156
|
+
return `yarn run ${script}`;
|
|
157
|
+
}
|
|
158
|
+
runDirectCommand(script, _options) {
|
|
159
|
+
return `yarn ${script}`;
|
|
160
|
+
}
|
|
161
|
+
listCommand(_options) {
|
|
162
|
+
// Berry uses yarn info --all --json for listing dependencies
|
|
163
|
+
// Note: Berry doesn't support --prod or --pattern flags
|
|
164
|
+
// Filtering must be done in code via parseListOutput
|
|
165
|
+
return 'yarn info --all --json';
|
|
166
|
+
}
|
|
167
|
+
supportsPatternFiltering() {
|
|
168
|
+
// Berry doesn't support --pattern flag
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
parseListOutput(stdout, filterPrefix) {
|
|
172
|
+
var _a;
|
|
173
|
+
const output = {};
|
|
174
|
+
// yarn info --all --json outputs newline-delimited JSON
|
|
175
|
+
const lines = stdout.trim().split('\n').filter((line) => line.trim());
|
|
176
|
+
for (const line of lines) {
|
|
177
|
+
try {
|
|
178
|
+
const info = JSON.parse(line);
|
|
179
|
+
// Berry's yarn info --all --json format: { value: "name@npm:version", children: { Version: "x.y.z" } }
|
|
180
|
+
if (info.value && ((_a = info.children) === null || _a === void 0 ? void 0 : _a.Version)) {
|
|
181
|
+
// Split on @npm: to handle scoped packages like @zaiusinc/app-sdk@npm:3.2.0
|
|
182
|
+
const atNpmIndex = info.value.lastIndexOf('@npm:');
|
|
183
|
+
if (atNpmIndex > 0) {
|
|
184
|
+
const name = info.value.substring(0, atNpmIndex);
|
|
185
|
+
const version = info.children.Version;
|
|
186
|
+
if (!filterPrefix || name.startsWith(filterPrefix)) {
|
|
187
|
+
output[name] = version;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch (_b) {
|
|
193
|
+
// Skip malformed lines
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return output;
|
|
197
|
+
}
|
|
198
|
+
hasPackagesWithPrefix(stdout, prefix) {
|
|
199
|
+
var _a;
|
|
200
|
+
const lines = stdout.trim().split('\n').filter((line) => line.trim());
|
|
201
|
+
for (const line of lines) {
|
|
202
|
+
try {
|
|
203
|
+
const info = JSON.parse(line);
|
|
204
|
+
// Berry's format: { value: "name@npm:version", children: { Version: "x.y.z" } }
|
|
205
|
+
if (info.value && ((_a = info.children) === null || _a === void 0 ? void 0 : _a.Version)) {
|
|
206
|
+
const atNpmIndex = info.value.lastIndexOf('@npm:');
|
|
207
|
+
if (atNpmIndex > 0) {
|
|
208
|
+
const name = info.value.substring(0, atNpmIndex);
|
|
209
|
+
if (name.startsWith(prefix)) {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (_b) {
|
|
216
|
+
// Skip malformed lines
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
get executable() {
|
|
222
|
+
return 'yarn';
|
|
223
|
+
}
|
|
224
|
+
get displayName() {
|
|
225
|
+
return 'yarn (berry)';
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
exports.YarnBerryPackageManager = YarnBerryPackageManager;
|
|
229
|
+
/**
|
|
230
|
+
* npm package manager implementation.
|
|
231
|
+
*/
|
|
232
|
+
class NpmPackageManager extends PackageManager {
|
|
233
|
+
constructor() {
|
|
234
|
+
super(...arguments);
|
|
235
|
+
this.type = 'npm';
|
|
236
|
+
}
|
|
237
|
+
installCommand() {
|
|
238
|
+
return 'npm install';
|
|
239
|
+
}
|
|
240
|
+
addCommand(packages) {
|
|
241
|
+
return `npm install ${packages.join(' ')}`;
|
|
242
|
+
}
|
|
243
|
+
addDevCommand(packages) {
|
|
244
|
+
return `npm install --save-dev ${packages.join(' ')}`;
|
|
245
|
+
}
|
|
246
|
+
runCommand(script, options) {
|
|
247
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
248
|
+
return `npm run ${silent}${script}`;
|
|
249
|
+
}
|
|
250
|
+
runDirectCommand(script, options) {
|
|
251
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
252
|
+
return `npm run ${silent}${script}`;
|
|
253
|
+
}
|
|
254
|
+
listCommand(options) {
|
|
255
|
+
const { prod = false } = options || {};
|
|
256
|
+
// npm doesn't support prefix patterns, must filter in code
|
|
257
|
+
return `npm list ${prod ? '--omit=dev ' : ''}--json`;
|
|
258
|
+
}
|
|
259
|
+
supportsPatternFiltering() {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
parseListOutput(stdout, filterPrefix) {
|
|
263
|
+
const output = {};
|
|
264
|
+
const data = JSON.parse(stdout);
|
|
265
|
+
const deps = data.dependencies || {};
|
|
266
|
+
for (const [name, info] of Object.entries(deps)) {
|
|
267
|
+
if (!filterPrefix || name.startsWith(filterPrefix)) {
|
|
268
|
+
output[name] = info.version;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return output;
|
|
272
|
+
}
|
|
273
|
+
hasPackagesWithPrefix(stdout, prefix) {
|
|
274
|
+
const data = JSON.parse(stdout);
|
|
275
|
+
const deps = data.dependencies || {};
|
|
276
|
+
return Object.keys(deps).some((name) => name.startsWith(prefix));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
exports.NpmPackageManager = NpmPackageManager;
|
|
280
|
+
/**
|
|
281
|
+
* pnpm package manager implementation.
|
|
282
|
+
*/
|
|
283
|
+
class PnpmPackageManager extends PackageManager {
|
|
284
|
+
constructor() {
|
|
285
|
+
super(...arguments);
|
|
286
|
+
this.type = 'pnpm';
|
|
287
|
+
}
|
|
288
|
+
installCommand() {
|
|
289
|
+
return 'pnpm install';
|
|
290
|
+
}
|
|
291
|
+
addCommand(packages) {
|
|
292
|
+
return `pnpm add ${packages.join(' ')}`;
|
|
293
|
+
}
|
|
294
|
+
addDevCommand(packages) {
|
|
295
|
+
return `pnpm add --save-dev ${packages.join(' ')}`;
|
|
296
|
+
}
|
|
297
|
+
runCommand(script, options) {
|
|
298
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
299
|
+
return `pnpm ${silent}run ${script}`;
|
|
300
|
+
}
|
|
301
|
+
runDirectCommand(script, options) {
|
|
302
|
+
const silent = (options === null || options === void 0 ? void 0 : options.silent) ? '--silent ' : '';
|
|
303
|
+
return `pnpm ${silent}${script}`;
|
|
304
|
+
}
|
|
305
|
+
listCommand(options) {
|
|
306
|
+
const { prod = false, pattern } = options || {};
|
|
307
|
+
let pnpmPattern = '';
|
|
308
|
+
if (pattern) {
|
|
309
|
+
const isPrefix = pattern.endsWith('/');
|
|
310
|
+
if (isPrefix) {
|
|
311
|
+
// Convert "@scope/" to "@scope/*"
|
|
312
|
+
pnpmPattern = ` "${pattern}*"`;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
// Split "@scope/a|@scope/b" into "@scope/a" "@scope/b"
|
|
316
|
+
pnpmPattern =
|
|
317
|
+
' ' +
|
|
318
|
+
pattern
|
|
319
|
+
.split('|')
|
|
320
|
+
.map((p) => `"${p}"`)
|
|
321
|
+
.join(' ');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return `pnpm list ${prod ? '--prod ' : ''}--json${pnpmPattern}`;
|
|
325
|
+
}
|
|
326
|
+
supportsPatternFiltering() {
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
parseListOutput(stdout, _filterPrefix) {
|
|
330
|
+
var _a;
|
|
331
|
+
const output = {};
|
|
332
|
+
const data = JSON.parse(stdout);
|
|
333
|
+
const deps = ((_a = data[0]) === null || _a === void 0 ? void 0 : _a.dependencies) || {};
|
|
334
|
+
for (const [name, info] of Object.entries(deps)) {
|
|
335
|
+
output[name] = info.version;
|
|
336
|
+
}
|
|
337
|
+
return output;
|
|
338
|
+
}
|
|
339
|
+
hasPackagesWithPrefix(stdout, _prefix) {
|
|
340
|
+
var _a;
|
|
341
|
+
const data = JSON.parse(stdout);
|
|
342
|
+
const deps = ((_a = data[0]) === null || _a === void 0 ? void 0 : _a.dependencies) || {};
|
|
343
|
+
return Object.keys(deps).length > 0;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
exports.PnpmPackageManager = PnpmPackageManager;
|
|
347
|
+
/**
|
|
348
|
+
* Bun package manager implementation.
|
|
349
|
+
* Note: Uses npm list for listing since bun pm ls doesn't support JSON output.
|
|
350
|
+
*/
|
|
351
|
+
class BunPackageManager extends PackageManager {
|
|
352
|
+
constructor() {
|
|
353
|
+
super(...arguments);
|
|
354
|
+
this.type = 'bun';
|
|
355
|
+
}
|
|
356
|
+
installCommand() {
|
|
357
|
+
return 'bun install';
|
|
358
|
+
}
|
|
359
|
+
addCommand(packages) {
|
|
360
|
+
return `bun add ${packages.join(' ')}`;
|
|
361
|
+
}
|
|
362
|
+
addDevCommand(packages) {
|
|
363
|
+
return `bun add --dev ${packages.join(' ')}`;
|
|
364
|
+
}
|
|
365
|
+
runCommand(script, _options) {
|
|
366
|
+
return `bun run ${script}`;
|
|
367
|
+
}
|
|
368
|
+
runDirectCommand(script, _options) {
|
|
369
|
+
return `bun run ${script}`;
|
|
370
|
+
}
|
|
371
|
+
listCommand(options) {
|
|
372
|
+
const { prod = false } = options || {};
|
|
373
|
+
// bun pm ls doesn't support JSON output, use npm list which works on any node_modules
|
|
374
|
+
return `npm list ${prod ? '--omit=dev ' : ''}--json`;
|
|
375
|
+
}
|
|
376
|
+
supportsPatternFiltering() {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
parseListOutput(stdout, filterPrefix) {
|
|
380
|
+
// Same as npm since we use npm list
|
|
381
|
+
const output = {};
|
|
382
|
+
const data = JSON.parse(stdout);
|
|
383
|
+
const deps = data.dependencies || {};
|
|
384
|
+
for (const [name, info] of Object.entries(deps)) {
|
|
385
|
+
if (!filterPrefix || name.startsWith(filterPrefix)) {
|
|
386
|
+
output[name] = info.version;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return output;
|
|
390
|
+
}
|
|
391
|
+
hasPackagesWithPrefix(stdout, prefix) {
|
|
392
|
+
// Same as npm since we use npm list
|
|
393
|
+
const data = JSON.parse(stdout);
|
|
394
|
+
const deps = data.dependencies || {};
|
|
395
|
+
return Object.keys(deps).some((name) => name.startsWith(prefix));
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
exports.BunPackageManager = BunPackageManager;
|
|
399
|
+
// Minimum runtime version that supports multiple package managers
|
|
400
|
+
const MIN_MULTI_PM_RUNTIME_VERSION = 22;
|
|
401
|
+
/**
|
|
402
|
+
* Factory for creating and detecting package managers.
|
|
403
|
+
*/
|
|
404
|
+
class PackageManagerFactory {
|
|
405
|
+
/**
|
|
406
|
+
* Detect package manager from lock files in the given directory.
|
|
407
|
+
* Returns null if no lock file is found.
|
|
408
|
+
* @param cwd The directory to search for lock files
|
|
409
|
+
* @param runtime Runtime string (e.g., "node22", "node18_rt") for validation
|
|
410
|
+
* @throws Error if package manager is not supported for the given runtime
|
|
411
|
+
*/
|
|
412
|
+
static detect(cwd, runtime) {
|
|
413
|
+
for (const [lockFile, pmType] of Object.entries(LOCK_FILES)) {
|
|
414
|
+
if (fs.existsSync(path.join(cwd, lockFile))) {
|
|
415
|
+
// For yarn, detect if we're using Yarn Berry (2+) by checking:
|
|
416
|
+
// 1. Presence of .yarnrc.yml in the project
|
|
417
|
+
// 2. The actual yarn version being used (handles global Berry installs)
|
|
418
|
+
if (pmType === 'yarn') {
|
|
419
|
+
const isYarnBerry = fs.existsSync(path.join(cwd, '.yarnrc.yml')) || PackageManagerFactory.isYarnBerry(cwd);
|
|
420
|
+
if (isYarnBerry) {
|
|
421
|
+
PackageManagerFactory.validateRuntimeSupport('yarn-berry', runtime);
|
|
422
|
+
return PackageManagerFactory.create('yarn-berry');
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
PackageManagerFactory.validateRuntimeSupport(pmType, runtime);
|
|
426
|
+
return PackageManagerFactory.create(pmType);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
return null;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Detect package manager or throw an error if none found.
|
|
433
|
+
* @param cwd The directory to search for lock files
|
|
434
|
+
* @param runtime Runtime string (e.g., "node22", "node18_rt") for validation
|
|
435
|
+
*/
|
|
436
|
+
static detectOrThrow(cwd, runtime) {
|
|
437
|
+
const pm = PackageManagerFactory.detect(cwd, runtime);
|
|
438
|
+
if (!pm) {
|
|
439
|
+
throw new Error('Could not detect package manager. No lock file found.');
|
|
440
|
+
}
|
|
441
|
+
return pm;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Create a PackageManager instance from a type string.
|
|
445
|
+
*/
|
|
446
|
+
static create(type) {
|
|
447
|
+
const pmImplementation = PackageManagerFactory.implementations[type];
|
|
448
|
+
return new pmImplementation();
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Validate that the package manager is supported for the given runtime.
|
|
452
|
+
* For runtimes < node22, only yarn classic is supported.
|
|
453
|
+
* @throws Error if package manager is not supported for the runtime
|
|
454
|
+
*/
|
|
455
|
+
static validateRuntimeSupport(pmType, runtime) {
|
|
456
|
+
const runtimeVersion = PackageManagerFactory.getRuntimeVersion(runtime);
|
|
457
|
+
// For runtimes >= node22 or unknown runtimes, all package managers are supported
|
|
458
|
+
if (runtimeVersion === null || runtimeVersion >= MIN_MULTI_PM_RUNTIME_VERSION) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
// For legacy runtimes, only yarn classic is supported
|
|
462
|
+
if (pmType !== 'yarn') {
|
|
463
|
+
const pmDisplayName = pmType === 'yarn-berry' ? 'yarn berry' : pmType;
|
|
464
|
+
throw new Error(`Package manager "${pmDisplayName}" is only supported for "node22" runtime or later. ` +
|
|
465
|
+
`Use 'yarn classic' for the app for the existing runtime or upgrade the runtime to "node22" or later.`);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Extract the Node version number from runtime string.
|
|
470
|
+
* @example "node22" -> 22, "node18_rt" -> 18
|
|
471
|
+
*/
|
|
472
|
+
static getRuntimeVersion(runtime) {
|
|
473
|
+
const match = runtime.match(/node(\d+)/);
|
|
474
|
+
return match ? parseInt(match[1], 10) : null;
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Check if the yarn version in use is Berry (2+).
|
|
478
|
+
*/
|
|
479
|
+
static isYarnBerry(cwd) {
|
|
480
|
+
try {
|
|
481
|
+
const version = (0, child_process_1.execSync)('yarn --version', { cwd, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
482
|
+
const majorVersion = parseInt(version.split('.')[0], 10);
|
|
483
|
+
return majorVersion >= 2;
|
|
484
|
+
}
|
|
485
|
+
catch (_a) {
|
|
486
|
+
// If we can't determine the version, assume Classic
|
|
487
|
+
return false;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
exports.PackageManagerFactory = PackageManagerFactory;
|
|
492
|
+
PackageManagerFactory.implementations = {
|
|
493
|
+
'yarn': YarnPackageManager,
|
|
494
|
+
'yarn-berry': YarnBerryPackageManager,
|
|
495
|
+
'npm': NpmPackageManager,
|
|
496
|
+
'pnpm': PnpmPackageManager,
|
|
497
|
+
'bun': BunPackageManager,
|
|
498
|
+
};
|
|
499
|
+
/**
|
|
500
|
+
* Package managers available for new project initialization.
|
|
501
|
+
* Note: 'yarn-berry' is excluded because the user's global yarn version
|
|
502
|
+
* determines whether Classic or Berry is used. Berry projects are detected
|
|
503
|
+
* via .yarnrc.yml for existing projects.
|
|
504
|
+
*/
|
|
505
|
+
exports.PACKAGE_MANAGERS = [
|
|
506
|
+
'yarn',
|
|
507
|
+
'npm',
|
|
508
|
+
'pnpm',
|
|
509
|
+
'bun',
|
|
510
|
+
];
|
|
511
|
+
//# sourceMappingURL=PackageManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../src/lib/PackageManager.ts"],"names":[],"mappings":"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"}
|