@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.
Files changed (252) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +51 -0
  3. package/bin/ocp.js +3 -0
  4. package/bin/run.js +3 -0
  5. package/dist/commands/accounts/whoami.d.ts +5 -0
  6. package/dist/commands/accounts/whoami.js +22 -0
  7. package/dist/commands/accounts/whoami.js.map +1 -0
  8. package/dist/commands/accounts/whois.d.ts +12 -0
  9. package/dist/commands/accounts/whois.js +57 -0
  10. package/dist/commands/accounts/whois.js.map +1 -0
  11. package/dist/commands/app/BaseBuildCommand.d.ts +37 -0
  12. package/dist/commands/app/BaseBuildCommand.js +255 -0
  13. package/dist/commands/app/BaseBuildCommand.js.map +1 -0
  14. package/dist/commands/app/abandon.d.ts +11 -0
  15. package/dist/commands/app/abandon.js +146 -0
  16. package/dist/commands/app/abandon.js.map +1 -0
  17. package/dist/commands/app/getLogLevel.d.ts +16 -0
  18. package/dist/commands/app/getLogLevel.js +66 -0
  19. package/dist/commands/app/getLogLevel.js.map +1 -0
  20. package/dist/commands/app/init.d.ts +27 -0
  21. package/dist/commands/app/init.js +326 -0
  22. package/dist/commands/app/init.js.map +1 -0
  23. package/dist/commands/app/logs.d.ts +24 -0
  24. package/dist/commands/app/logs.js +231 -0
  25. package/dist/commands/app/logs.js.map +1 -0
  26. package/dist/commands/app/package.d.ts +8 -0
  27. package/dist/commands/app/package.js +51 -0
  28. package/dist/commands/app/package.js.map +1 -0
  29. package/dist/commands/app/prepare.d.ts +16 -0
  30. package/dist/commands/app/prepare.js +119 -0
  31. package/dist/commands/app/prepare.js.map +1 -0
  32. package/dist/commands/app/register.d.ts +10 -0
  33. package/dist/commands/app/register.js +102 -0
  34. package/dist/commands/app/register.js.map +1 -0
  35. package/dist/commands/app/setLogLevel.d.ts +16 -0
  36. package/dist/commands/app/setLogLevel.js +83 -0
  37. package/dist/commands/app/setLogLevel.js.map +1 -0
  38. package/dist/commands/app/validate.d.ts +5 -0
  39. package/dist/commands/app/validate.js +26 -0
  40. package/dist/commands/app/validate.js.map +1 -0
  41. package/dist/commands/availability/list.d.ts +6 -0
  42. package/dist/commands/availability/list.js +32 -0
  43. package/dist/commands/availability/list.js.map +1 -0
  44. package/dist/commands/dev-server/start.d.ts +36 -0
  45. package/dist/commands/dev-server/start.js +209 -0
  46. package/dist/commands/dev-server/start.js.map +1 -0
  47. package/dist/commands/dev.d.ts +8 -0
  48. package/dist/commands/dev.js +12 -0
  49. package/dist/commands/dev.js.map +1 -0
  50. package/dist/commands/directory/info.d.ts +13 -0
  51. package/dist/commands/directory/info.js +85 -0
  52. package/dist/commands/directory/info.js.map +1 -0
  53. package/dist/commands/directory/install.d.ts +12 -0
  54. package/dist/commands/directory/install.js +46 -0
  55. package/dist/commands/directory/install.js.map +1 -0
  56. package/dist/commands/directory/list.d.ts +14 -0
  57. package/dist/commands/directory/list.js +114 -0
  58. package/dist/commands/directory/list.js.map +1 -0
  59. package/dist/commands/directory/listFunctions.d.ts +15 -0
  60. package/dist/commands/directory/listFunctions.js +86 -0
  61. package/dist/commands/directory/listFunctions.js.map +1 -0
  62. package/dist/commands/directory/listGlobalFunctions.d.ts +13 -0
  63. package/dist/commands/directory/listGlobalFunctions.js +64 -0
  64. package/dist/commands/directory/listGlobalFunctions.js.map +1 -0
  65. package/dist/commands/directory/listInstalls.d.ts +15 -0
  66. package/dist/commands/directory/listInstalls.js +72 -0
  67. package/dist/commands/directory/listInstalls.js.map +1 -0
  68. package/dist/commands/directory/listSourceFunctions.d.ts +14 -0
  69. package/dist/commands/directory/listSourceFunctions.js +71 -0
  70. package/dist/commands/directory/listSourceFunctions.js.map +1 -0
  71. package/dist/commands/directory/publish.d.ts +15 -0
  72. package/dist/commands/directory/publish.js +201 -0
  73. package/dist/commands/directory/publish.js.map +1 -0
  74. package/dist/commands/directory/status.d.ts +11 -0
  75. package/dist/commands/directory/status.js +50 -0
  76. package/dist/commands/directory/status.js.map +1 -0
  77. package/dist/commands/directory/uninstall.d.ts +13 -0
  78. package/dist/commands/directory/uninstall.js +55 -0
  79. package/dist/commands/directory/uninstall.js.map +1 -0
  80. package/dist/commands/directory/unpublish.d.ts +17 -0
  81. package/dist/commands/directory/unpublish.js +187 -0
  82. package/dist/commands/directory/unpublish.js.map +1 -0
  83. package/dist/commands/directory/upgrade.d.ts +15 -0
  84. package/dist/commands/directory/upgrade.js +113 -0
  85. package/dist/commands/directory/upgrade.js.map +1 -0
  86. package/dist/commands/env/get.d.ts +5 -0
  87. package/dist/commands/env/get.js +23 -0
  88. package/dist/commands/env/get.js.map +1 -0
  89. package/dist/commands/env/set.d.ts +8 -0
  90. package/dist/commands/env/set.js +63 -0
  91. package/dist/commands/env/set.js.map +1 -0
  92. package/dist/commands/jobs/list.d.ts +27 -0
  93. package/dist/commands/jobs/list.js +245 -0
  94. package/dist/commands/jobs/list.js.map +1 -0
  95. package/dist/commands/jobs/runtimeStatus.d.ts +11 -0
  96. package/dist/commands/jobs/runtimeStatus.js +55 -0
  97. package/dist/commands/jobs/runtimeStatus.js.map +1 -0
  98. package/dist/commands/jobs/status.d.ts +11 -0
  99. package/dist/commands/jobs/status.js +57 -0
  100. package/dist/commands/jobs/status.js.map +1 -0
  101. package/dist/commands/jobs/terminate.d.ts +11 -0
  102. package/dist/commands/jobs/terminate.js +35 -0
  103. package/dist/commands/jobs/terminate.js.map +1 -0
  104. package/dist/commands/jobs/trigger.d.ts +14 -0
  105. package/dist/commands/jobs/trigger.js +47 -0
  106. package/dist/commands/jobs/trigger.js.map +1 -0
  107. package/dist/commands/review/list.d.ts +9 -0
  108. package/dist/commands/review/list.js +74 -0
  109. package/dist/commands/review/list.js.map +1 -0
  110. package/dist/commands/review/open.d.ts +8 -0
  111. package/dist/commands/review/open.js +32 -0
  112. package/dist/commands/review/open.js.map +1 -0
  113. package/dist/hooks/command-not-found.d.ts +3 -0
  114. package/dist/hooks/command-not-found.js +93 -0
  115. package/dist/hooks/command-not-found.js.map +1 -0
  116. package/dist/hooks/preupdate.d.ts +10 -0
  117. package/dist/hooks/preupdate.js +42 -0
  118. package/dist/hooks/preupdate.js.map +1 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.js +59 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/AppContext.d.ts +9 -0
  123. package/dist/lib/AppContext.js +43 -0
  124. package/dist/lib/AppContext.js.map +1 -0
  125. package/dist/lib/AppPackager.d.ts +17 -0
  126. package/dist/lib/AppPackager.js +57 -0
  127. package/dist/lib/AppPackager.js.map +1 -0
  128. package/dist/lib/AppUpdater.d.ts +11 -0
  129. package/dist/lib/AppUpdater.js +143 -0
  130. package/dist/lib/AppUpdater.js.map +1 -0
  131. package/dist/lib/AppUploader.d.ts +9 -0
  132. package/dist/lib/AppUploader.js +37 -0
  133. package/dist/lib/AppUploader.js.map +1 -0
  134. package/dist/lib/BuildPipeline.d.ts +24 -0
  135. package/dist/lib/BuildPipeline.js +26 -0
  136. package/dist/lib/BuildPipeline.js.map +1 -0
  137. package/dist/lib/BuildPipelineFactory.d.ts +10 -0
  138. package/dist/lib/BuildPipelineFactory.js +23 -0
  139. package/dist/lib/BuildPipelineFactory.js.map +1 -0
  140. package/dist/lib/Config.d.ts +15 -0
  141. package/dist/lib/Config.js +47 -0
  142. package/dist/lib/Config.js.map +1 -0
  143. package/dist/lib/CustomHelp.d.ts +19 -0
  144. package/dist/lib/CustomHelp.js +81 -0
  145. package/dist/lib/CustomHelp.js.map +1 -0
  146. package/dist/lib/DependencyStage.d.ts +1 -0
  147. package/dist/lib/DependencyStage.js +3 -0
  148. package/dist/lib/DependencyStage.js.map +1 -0
  149. package/dist/lib/EnvironmentalOutput.d.ts +1 -0
  150. package/dist/lib/EnvironmentalOutput.js +22 -0
  151. package/dist/lib/EnvironmentalOutput.js.map +1 -0
  152. package/dist/lib/Moria.d.ts +51 -0
  153. package/dist/lib/Moria.js +30 -0
  154. package/dist/lib/Moria.js.map +1 -0
  155. package/dist/lib/MoriaApi.d.ts +22 -0
  156. package/dist/lib/MoriaApi.js +74 -0
  157. package/dist/lib/MoriaApi.js.map +1 -0
  158. package/dist/lib/NodeBuildPipeline.d.ts +25 -0
  159. package/dist/lib/NodeBuildPipeline.js +60 -0
  160. package/dist/lib/NodeBuildPipeline.js.map +1 -0
  161. package/dist/lib/PackageManager.d.ts +242 -0
  162. package/dist/lib/PackageManager.js +511 -0
  163. package/dist/lib/PackageManager.js.map +1 -0
  164. package/dist/lib/Rivendell.d.ts +409 -0
  165. package/dist/lib/Rivendell.js +391 -0
  166. package/dist/lib/Rivendell.js.map +1 -0
  167. package/dist/lib/RivendellApi.d.ts +22 -0
  168. package/dist/lib/RivendellApi.js +159 -0
  169. package/dist/lib/RivendellApi.js.map +1 -0
  170. package/dist/lib/Shards.d.ts +3 -0
  171. package/dist/lib/Shards.js +41 -0
  172. package/dist/lib/Shards.js.map +1 -0
  173. package/dist/lib/StringUtils.d.ts +1 -0
  174. package/dist/lib/StringUtils.js +9 -0
  175. package/dist/lib/StringUtils.js.map +1 -0
  176. package/dist/lib/TeminalPassthru.d.ts +7 -0
  177. package/dist/lib/TeminalPassthru.js +12 -0
  178. package/dist/lib/TeminalPassthru.js.map +1 -0
  179. package/dist/lib/TerminalConfirm.d.ts +3 -0
  180. package/dist/lib/TerminalConfirm.js +31 -0
  181. package/dist/lib/TerminalConfirm.js.map +1 -0
  182. package/dist/lib/TerminalInput.d.ts +32 -0
  183. package/dist/lib/TerminalInput.js +207 -0
  184. package/dist/lib/TerminalInput.js.map +1 -0
  185. package/dist/lib/TerminalMenu.d.ts +34 -0
  186. package/dist/lib/TerminalMenu.js +186 -0
  187. package/dist/lib/TerminalMenu.js.map +1 -0
  188. package/dist/lib/TerminalOutput.d.ts +5 -0
  189. package/dist/lib/TerminalOutput.js +12 -0
  190. package/dist/lib/TerminalOutput.js.map +1 -0
  191. package/dist/lib/TerminalSpinner.d.ts +14 -0
  192. package/dist/lib/TerminalSpinner.js +69 -0
  193. package/dist/lib/TerminalSpinner.js.map +1 -0
  194. package/dist/lib/Tracking.d.ts +15 -0
  195. package/dist/lib/Tracking.js +19 -0
  196. package/dist/lib/Tracking.js.map +1 -0
  197. package/dist/lib/build.d.ts +5 -0
  198. package/dist/lib/build.js +41 -0
  199. package/dist/lib/build.js.map +1 -0
  200. package/dist/lib/die.d.ts +5 -0
  201. package/dist/lib/die.js +14 -0
  202. package/dist/lib/die.js.map +1 -0
  203. package/dist/lib/directoryExists.d.ts +1 -0
  204. package/dist/lib/directoryExists.js +9 -0
  205. package/dist/lib/directoryExists.js.map +1 -0
  206. package/dist/lib/formatBuildState.d.ts +2 -0
  207. package/dist/lib/formatBuildState.js +23 -0
  208. package/dist/lib/formatBuildState.js.map +1 -0
  209. package/dist/lib/formatError.d.ts +1 -0
  210. package/dist/lib/formatError.js +55 -0
  211. package/dist/lib/formatError.js.map +1 -0
  212. package/dist/lib/formatJobStatus.d.ts +3 -0
  213. package/dist/lib/formatJobStatus.js +28 -0
  214. package/dist/lib/formatJobStatus.js.map +1 -0
  215. package/dist/lib/formatReviewStatus.d.ts +4 -0
  216. package/dist/lib/formatReviewStatus.js +28 -0
  217. package/dist/lib/formatReviewStatus.js.map +1 -0
  218. package/dist/lib/formatTimstamp.d.ts +1 -0
  219. package/dist/lib/formatTimstamp.js +25 -0
  220. package/dist/lib/formatTimstamp.js.map +1 -0
  221. package/dist/lib/formatVersionState.d.ts +2 -0
  222. package/dist/lib/formatVersionState.js +37 -0
  223. package/dist/lib/formatVersionState.js.map +1 -0
  224. package/dist/lib/gatherAppEnv.d.ts +3 -0
  225. package/dist/lib/gatherAppEnv.js +71 -0
  226. package/dist/lib/gatherAppEnv.js.map +1 -0
  227. package/dist/lib/handleInterrupt.d.ts +1 -0
  228. package/dist/lib/handleInterrupt.js +17 -0
  229. package/dist/lib/handleInterrupt.js.map +1 -0
  230. package/dist/lib/jobRuntime.d.ts +3 -0
  231. package/dist/lib/jobRuntime.js +16 -0
  232. package/dist/lib/jobRuntime.js.map +1 -0
  233. package/dist/lib/migrateOptiCli.d.ts +1 -0
  234. package/dist/lib/migrateOptiCli.js +30 -0
  235. package/dist/lib/migrateOptiCli.js.map +1 -0
  236. package/dist/lib/parseDate.d.ts +2 -0
  237. package/dist/lib/parseDate.js +26 -0
  238. package/dist/lib/parseDate.js.map +1 -0
  239. package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
  240. package/dist/lib/templating/TemplateRenderer.js +63 -0
  241. package/dist/lib/templating/TemplateRenderer.js.map +1 -0
  242. package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
  243. package/dist/lib/templating/fetchTemplatesManifest.js +9 -0
  244. package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
  245. package/dist/lib/templating/types.d.ts +27 -0
  246. package/dist/lib/templating/types.js +3 -0
  247. package/dist/lib/templating/types.js.map +1 -0
  248. package/dist/oclif.manifest.json +1616 -0
  249. package/dist/utils/utils.d.ts +5 -0
  250. package/dist/utils/utils.js +61 -0
  251. package/dist/utils/utils.js.map +1 -0
  252. 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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"}