@depup/angular__cli 21.2.1-depup.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 (364) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +36 -0
  3. package/bin/bootstrap.js +33 -0
  4. package/bin/ng.js +71 -0
  5. package/bin/package.json +3 -0
  6. package/changes.json +30 -0
  7. package/lib/cli/index.d.ts +11 -0
  8. package/lib/cli/index.js +109 -0
  9. package/lib/cli/index.js.map +1 -0
  10. package/lib/code-examples.db +0 -0
  11. package/lib/config/schema.json +6150 -0
  12. package/lib/config/workspace-schema.d.ts +1025 -0
  13. package/lib/config/workspace-schema.js +133 -0
  14. package/lib/config/workspace-schema.js.map +1 -0
  15. package/lib/init.d.ts +8 -0
  16. package/lib/init.js +162 -0
  17. package/lib/init.js.map +1 -0
  18. package/package.json +103 -0
  19. package/src/analytics/analytics-collector.d.ts +35 -0
  20. package/src/analytics/analytics-collector.js +195 -0
  21. package/src/analytics/analytics-collector.js.map +1 -0
  22. package/src/analytics/analytics-parameters.d.ts +101 -0
  23. package/src/analytics/analytics-parameters.js +107 -0
  24. package/src/analytics/analytics-parameters.js.map +1 -0
  25. package/src/analytics/analytics.d.ts +27 -0
  26. package/src/analytics/analytics.js +183 -0
  27. package/src/analytics/analytics.js.map +1 -0
  28. package/src/command-builder/architect-base-command-module.d.ts +30 -0
  29. package/src/command-builder/architect-base-command-module.js +244 -0
  30. package/src/command-builder/architect-base-command-module.js.map +1 -0
  31. package/src/command-builder/architect-command-module.d.ts +28 -0
  32. package/src/command-builder/architect-command-module.js +218 -0
  33. package/src/command-builder/architect-command-module.js.map +1 -0
  34. package/src/command-builder/command-module.d.ts +73 -0
  35. package/src/command-builder/command-module.js +245 -0
  36. package/src/command-builder/command-module.js.map +1 -0
  37. package/src/command-builder/command-runner.d.ts +9 -0
  38. package/src/command-builder/command-runner.js +195 -0
  39. package/src/command-builder/command-runner.js.map +1 -0
  40. package/src/command-builder/definitions.d.ts +41 -0
  41. package/src/command-builder/definitions.js +20 -0
  42. package/src/command-builder/definitions.js.map +1 -0
  43. package/src/command-builder/schematics-command-module.d.ts +41 -0
  44. package/src/command-builder/schematics-command-module.js +408 -0
  45. package/src/command-builder/schematics-command-module.js.map +1 -0
  46. package/src/command-builder/utilities/command.d.ts +13 -0
  47. package/src/command-builder/utilities/command.js +39 -0
  48. package/src/command-builder/utilities/command.js.map +1 -0
  49. package/src/command-builder/utilities/json-help.d.ts +37 -0
  50. package/src/command-builder/utilities/json-help.js +92 -0
  51. package/src/command-builder/utilities/json-help.js.map +1 -0
  52. package/src/command-builder/utilities/json-schema.d.ts +64 -0
  53. package/src/command-builder/utilities/json-schema.js +349 -0
  54. package/src/command-builder/utilities/json-schema.js.map +1 -0
  55. package/src/command-builder/utilities/normalize-options-middleware.d.ts +18 -0
  56. package/src/command-builder/utilities/normalize-options-middleware.js +37 -0
  57. package/src/command-builder/utilities/normalize-options-middleware.js.map +1 -0
  58. package/src/command-builder/utilities/schematic-engine-host.d.ts +15 -0
  59. package/src/command-builder/utilities/schematic-engine-host.js +179 -0
  60. package/src/command-builder/utilities/schematic-engine-host.js.map +1 -0
  61. package/src/command-builder/utilities/schematic-workflow.d.ts +14 -0
  62. package/src/command-builder/utilities/schematic-workflow.js +70 -0
  63. package/src/command-builder/utilities/schematic-workflow.js.map +1 -0
  64. package/src/commands/add/cli.d.ts +38 -0
  65. package/src/commands/add/cli.js +623 -0
  66. package/src/commands/add/cli.js.map +1 -0
  67. package/src/commands/add/long-description.md +7 -0
  68. package/src/commands/analytics/cli.d.ts +16 -0
  69. package/src/commands/analytics/cli.js +34 -0
  70. package/src/commands/analytics/cli.js.map +1 -0
  71. package/src/commands/analytics/info/cli.d.ts +16 -0
  72. package/src/commands/analytics/info/cli.js +25 -0
  73. package/src/commands/analytics/info/cli.js.map +1 -0
  74. package/src/commands/analytics/long-description.md +20 -0
  75. package/src/commands/analytics/settings/cli.d.ts +35 -0
  76. package/src/commands/analytics/settings/cli.js +54 -0
  77. package/src/commands/analytics/settings/cli.js.map +1 -0
  78. package/src/commands/build/cli.d.ts +16 -0
  79. package/src/commands/build/cli.js +21 -0
  80. package/src/commands/build/cli.js.map +1 -0
  81. package/src/commands/build/long-description.md +18 -0
  82. package/src/commands/cache/clean/cli.d.ts +17 -0
  83. package/src/commands/cache/clean/cli.js +32 -0
  84. package/src/commands/cache/clean/cli.js.map +1 -0
  85. package/src/commands/cache/cli.d.ts +17 -0
  86. package/src/commands/cache/cli.js +36 -0
  87. package/src/commands/cache/cli.js.map +1 -0
  88. package/src/commands/cache/info/cli.d.ts +20 -0
  89. package/src/commands/cache/info/cli.js +139 -0
  90. package/src/commands/cache/info/cli.js.map +1 -0
  91. package/src/commands/cache/long-description.md +53 -0
  92. package/src/commands/cache/settings/cli.d.ts +27 -0
  93. package/src/commands/cache/settings/cli.js +41 -0
  94. package/src/commands/cache/settings/cli.js.map +1 -0
  95. package/src/commands/cache/utilities.d.ts +11 -0
  96. package/src/commands/cache/utilities.js +47 -0
  97. package/src/commands/cache/utilities.js.map +1 -0
  98. package/src/commands/command-config.d.ts +17 -0
  99. package/src/commands/command-config.js +116 -0
  100. package/src/commands/command-config.js.map +1 -0
  101. package/src/commands/completion/cli.d.ts +16 -0
  102. package/src/commands/completion/cli.js +61 -0
  103. package/src/commands/completion/cli.js.map +1 -0
  104. package/src/commands/completion/long-description.md +67 -0
  105. package/src/commands/config/cli.d.ts +24 -0
  106. package/src/commands/config/cli.js +150 -0
  107. package/src/commands/config/cli.js.map +1 -0
  108. package/src/commands/config/long-description.md +13 -0
  109. package/src/commands/deploy/cli.d.ts +17 -0
  110. package/src/commands/deploy/cli.js +38 -0
  111. package/src/commands/deploy/cli.js.map +1 -0
  112. package/src/commands/deploy/long-description.md +22 -0
  113. package/src/commands/e2e/cli.d.ts +18 -0
  114. package/src/commands/e2e/cli.js +42 -0
  115. package/src/commands/e2e/cli.js.map +1 -0
  116. package/src/commands/extract-i18n/cli.d.ts +17 -0
  117. package/src/commands/extract-i18n/cli.js +48 -0
  118. package/src/commands/extract-i18n/cli.js.map +1 -0
  119. package/src/commands/generate/cli.d.ts +47 -0
  120. package/src/commands/generate/cli.js +189 -0
  121. package/src/commands/generate/cli.js.map +1 -0
  122. package/src/commands/lint/cli.d.ts +17 -0
  123. package/src/commands/lint/cli.js +25 -0
  124. package/src/commands/lint/cli.js.map +1 -0
  125. package/src/commands/lint/long-description.md +20 -0
  126. package/src/commands/make-this-awesome/cli.d.ts +17 -0
  127. package/src/commands/make-this-awesome/cli.js +36 -0
  128. package/src/commands/make-this-awesome/cli.js.map +1 -0
  129. package/src/commands/mcp/cli.d.ts +20 -0
  130. package/src/commands/mcp/cli.js +74 -0
  131. package/src/commands/mcp/cli.js.map +1 -0
  132. package/src/commands/mcp/constants.d.ts +10 -0
  133. package/src/commands/mcp/constants.js +16 -0
  134. package/src/commands/mcp/constants.js.map +1 -0
  135. package/src/commands/mcp/devserver.d.ts +85 -0
  136. package/src/commands/mcp/devserver.js +112 -0
  137. package/src/commands/mcp/devserver.js.map +1 -0
  138. package/src/commands/mcp/host.d.ts +97 -0
  139. package/src/commands/mcp/host.js +118 -0
  140. package/src/commands/mcp/host.js.map +1 -0
  141. package/src/commands/mcp/mcp-server.d.ts +192 -0
  142. package/src/commands/mcp/mcp-server.js +155 -0
  143. package/src/commands/mcp/mcp-server.js.map +1 -0
  144. package/src/commands/mcp/resources/ai-tutor.md +824 -0
  145. package/src/commands/mcp/resources/best-practices.md +54 -0
  146. package/src/commands/mcp/resources/instructions.d.ts +9 -0
  147. package/src/commands/mcp/resources/instructions.js +26 -0
  148. package/src/commands/mcp/resources/instructions.js.map +1 -0
  149. package/src/commands/mcp/shared-options.d.ts +12 -0
  150. package/src/commands/mcp/shared-options.js +22 -0
  151. package/src/commands/mcp/shared-options.js.map +1 -0
  152. package/src/commands/mcp/tools/ai-tutor.d.ts +12 -0
  153. package/src/commands/mcp/tools/ai-tutor.js +59 -0
  154. package/src/commands/mcp/tools/ai-tutor.js.map +1 -0
  155. package/src/commands/mcp/tools/best-practices.d.ts +13 -0
  156. package/src/commands/mcp/tools/best-practices.js +187 -0
  157. package/src/commands/mcp/tools/best-practices.js.map +1 -0
  158. package/src/commands/mcp/tools/build.d.ts +37 -0
  159. package/src/commands/mcp/tools/build.js +89 -0
  160. package/src/commands/mcp/tools/build.js.map +1 -0
  161. package/src/commands/mcp/tools/devserver/devserver-start.d.ts +31 -0
  162. package/src/commands/mcp/tools/devserver/devserver-start.js +91 -0
  163. package/src/commands/mcp/tools/devserver/devserver-start.js.map +1 -0
  164. package/src/commands/mcp/tools/devserver/devserver-stop.d.ts +31 -0
  165. package/src/commands/mcp/tools/devserver/devserver-stop.js +68 -0
  166. package/src/commands/mcp/tools/devserver/devserver-stop.js.map +1 -0
  167. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.d.ts +41 -0
  168. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js +104 -0
  169. package/src/commands/mcp/tools/devserver/devserver-wait-for-build.js.map +1 -0
  170. package/src/commands/mcp/tools/doc-search.d.ts +21 -0
  171. package/src/commands/mcp/tools/doc-search.js +324 -0
  172. package/src/commands/mcp/tools/doc-search.js.map +1 -0
  173. package/src/commands/mcp/tools/e2e.d.ts +44 -0
  174. package/src/commands/mcp/tools/e2e.js +87 -0
  175. package/src/commands/mcp/tools/e2e.js.map +1 -0
  176. package/src/commands/mcp/tools/examples/database-discovery.d.ts +34 -0
  177. package/src/commands/mcp/tools/examples/database-discovery.js +87 -0
  178. package/src/commands/mcp/tools/examples/database-discovery.js.map +1 -0
  179. package/src/commands/mcp/tools/examples/database.d.ts +35 -0
  180. package/src/commands/mcp/tools/examples/database.js +125 -0
  181. package/src/commands/mcp/tools/examples/database.js.map +1 -0
  182. package/src/commands/mcp/tools/examples/index.d.ts +26 -0
  183. package/src/commands/mcp/tools/examples/index.js +149 -0
  184. package/src/commands/mcp/tools/examples/index.js.map +1 -0
  185. package/src/commands/mcp/tools/examples/query-escaper.d.ts +20 -0
  186. package/src/commands/mcp/tools/examples/query-escaper.js +68 -0
  187. package/src/commands/mcp/tools/examples/query-escaper.js.map +1 -0
  188. package/src/commands/mcp/tools/examples/runtime-database.d.ts +10 -0
  189. package/src/commands/mcp/tools/examples/runtime-database.js +192 -0
  190. package/src/commands/mcp/tools/examples/runtime-database.js.map +1 -0
  191. package/src/commands/mcp/tools/examples/schemas.d.ts +29 -0
  192. package/src/commands/mcp/tools/examples/schemas.js +101 -0
  193. package/src/commands/mcp/tools/examples/schemas.js.map +1 -0
  194. package/src/commands/mcp/tools/examples/utils.d.ts +14 -0
  195. package/src/commands/mcp/tools/examples/utils.js +31 -0
  196. package/src/commands/mcp/tools/examples/utils.js.map +1 -0
  197. package/src/commands/mcp/tools/modernize.d.ts +43 -0
  198. package/src/commands/mcp/tools/modernize.js +165 -0
  199. package/src/commands/mcp/tools/modernize.js.map +1 -0
  200. package/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.d.ts +17 -0
  201. package/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.js +62 -0
  202. package/src/commands/mcp/tools/onpush-zoneless-migration/analyze-for-unsupported-zone-uses.js.map +1 -0
  203. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.d.ts +12 -0
  204. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js +73 -0
  205. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-single-file.js.map +1 -0
  206. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.d.ts +11 -0
  207. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js +60 -0
  208. package/src/commands/mcp/tools/onpush-zoneless-migration/migrate-test-file.js.map +1 -0
  209. package/src/commands/mcp/tools/onpush-zoneless-migration/prompts.d.ts +15 -0
  210. package/src/commands/mcp/tools/onpush-zoneless-migration/prompts.js +238 -0
  211. package/src/commands/mcp/tools/onpush-zoneless-migration/prompts.js.map +1 -0
  212. package/src/commands/mcp/tools/onpush-zoneless-migration/send-debug-message.d.ts +10 -0
  213. package/src/commands/mcp/tools/onpush-zoneless-migration/send-debug-message.js +20 -0
  214. package/src/commands/mcp/tools/onpush-zoneless-migration/send-debug-message.js.map +1 -0
  215. package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.d.ts +35 -0
  216. package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js +136 -0
  217. package/src/commands/mcp/tools/onpush-zoneless-migration/ts-utils.js.map +1 -0
  218. package/src/commands/mcp/tools/onpush-zoneless-migration/types.d.ts +13 -0
  219. package/src/commands/mcp/tools/onpush-zoneless-migration/types.js +10 -0
  220. package/src/commands/mcp/tools/onpush-zoneless-migration/types.js.map +1 -0
  221. package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.d.ts +16 -0
  222. package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js +224 -0
  223. package/src/commands/mcp/tools/onpush-zoneless-migration/zoneless-migration.js.map +1 -0
  224. package/src/commands/mcp/tools/projects.d.ts +47 -0
  225. package/src/commands/mcp/tools/projects.js +523 -0
  226. package/src/commands/mcp/tools/projects.js.map +1 -0
  227. package/src/commands/mcp/tools/test.d.ts +35 -0
  228. package/src/commands/mcp/tools/test.js +79 -0
  229. package/src/commands/mcp/tools/test.js.map +1 -0
  230. package/src/commands/mcp/tools/tool-registry.d.ts +39 -0
  231. package/src/commands/mcp/tools/tool-registry.js +35 -0
  232. package/src/commands/mcp/tools/tool-registry.js.map +1 -0
  233. package/src/commands/mcp/utils.d.ts +25 -0
  234. package/src/commands/mcp/utils.js +44 -0
  235. package/src/commands/mcp/utils.js.map +1 -0
  236. package/src/commands/mcp/workspace-utils.d.ts +53 -0
  237. package/src/commands/mcp/workspace-utils.js +138 -0
  238. package/src/commands/mcp/workspace-utils.js.map +1 -0
  239. package/src/commands/new/cli.d.ts +27 -0
  240. package/src/commands/new/cli.js +76 -0
  241. package/src/commands/new/cli.js.map +1 -0
  242. package/src/commands/new/long-description.md +15 -0
  243. package/src/commands/run/cli.d.ts +25 -0
  244. package/src/commands/run/cli.js +89 -0
  245. package/src/commands/run/cli.js.map +1 -0
  246. package/src/commands/run/long-description.md +10 -0
  247. package/src/commands/serve/cli.d.ts +16 -0
  248. package/src/commands/serve/cli.js +20 -0
  249. package/src/commands/serve/cli.js.map +1 -0
  250. package/src/commands/test/cli.d.ts +16 -0
  251. package/src/commands/test/cli.js +21 -0
  252. package/src/commands/test/cli.js.map +1 -0
  253. package/src/commands/test/long-description.md +2 -0
  254. package/src/commands/update/cli.d.ts +34 -0
  255. package/src/commands/update/cli.js +531 -0
  256. package/src/commands/update/cli.js.map +1 -0
  257. package/src/commands/update/long-description.md +22 -0
  258. package/src/commands/update/schematic/collection.json +9 -0
  259. package/src/commands/update/schematic/index.d.ts +11 -0
  260. package/src/commands/update/schematic/index.js +715 -0
  261. package/src/commands/update/schematic/index.js.map +1 -0
  262. package/src/commands/update/schematic/schema.d.ts +51 -0
  263. package/src/commands/update/schematic/schema.js +16 -0
  264. package/src/commands/update/schematic/schema.js.map +1 -0
  265. package/src/commands/update/schematic/schema.json +64 -0
  266. package/src/commands/update/utilities/cli-version.d.ts +48 -0
  267. package/src/commands/update/utilities/cli-version.js +196 -0
  268. package/src/commands/update/utilities/cli-version.js.map +1 -0
  269. package/src/commands/update/utilities/constants.d.ts +12 -0
  270. package/src/commands/update/utilities/constants.js +16 -0
  271. package/src/commands/update/utilities/constants.js.map +1 -0
  272. package/src/commands/update/utilities/git.d.ts +36 -0
  273. package/src/commands/update/utilities/git.js +148 -0
  274. package/src/commands/update/utilities/git.js.map +1 -0
  275. package/src/commands/update/utilities/migration.d.ts +32 -0
  276. package/src/commands/update/utilities/migration.js +267 -0
  277. package/src/commands/update/utilities/migration.js.map +1 -0
  278. package/src/commands/version/cli.d.ts +36 -0
  279. package/src/commands/version/cli.js +117 -0
  280. package/src/commands/version/cli.js.map +1 -0
  281. package/src/commands/version/version-info.d.ts +46 -0
  282. package/src/commands/version/version-info.js +107 -0
  283. package/src/commands/version/version-info.js.map +1 -0
  284. package/src/package-managers/discovery.d.ts +23 -0
  285. package/src/package-managers/discovery.js +104 -0
  286. package/src/package-managers/discovery.js.map +1 -0
  287. package/src/package-managers/error.d.ts +43 -0
  288. package/src/package-managers/error.js +41 -0
  289. package/src/package-managers/error.js.map +1 -0
  290. package/src/package-managers/factory.d.ts +30 -0
  291. package/src/package-managers/factory.js +137 -0
  292. package/src/package-managers/factory.js.map +1 -0
  293. package/src/package-managers/host.d.ts +86 -0
  294. package/src/package-managers/host.js +80 -0
  295. package/src/package-managers/host.js.map +1 -0
  296. package/src/package-managers/index.d.ts +13 -0
  297. package/src/package-managers/index.js +17 -0
  298. package/src/package-managers/index.js.map +1 -0
  299. package/src/package-managers/logger.d.ts +27 -0
  300. package/src/package-managers/logger.js +10 -0
  301. package/src/package-managers/logger.js.map +1 -0
  302. package/src/package-managers/package-manager-descriptor.d.ts +245 -0
  303. package/src/package-managers/package-manager-descriptor.js +175 -0
  304. package/src/package-managers/package-manager-descriptor.js.map +1 -0
  305. package/src/package-managers/package-manager.d.ts +191 -0
  306. package/src/package-managers/package-manager.js +496 -0
  307. package/src/package-managers/package-manager.js.map +1 -0
  308. package/src/package-managers/package-metadata.d.ts +91 -0
  309. package/src/package-managers/package-metadata.js +10 -0
  310. package/src/package-managers/package-metadata.js.map +1 -0
  311. package/src/package-managers/package-tree.d.ts +23 -0
  312. package/src/package-managers/package-tree.js +10 -0
  313. package/src/package-managers/package-tree.js.map +1 -0
  314. package/src/package-managers/parsers.d.ts +170 -0
  315. package/src/package-managers/parsers.js +467 -0
  316. package/src/package-managers/parsers.js.map +1 -0
  317. package/src/utilities/color.d.ts +9 -0
  318. package/src/utilities/color.js +28 -0
  319. package/src/utilities/color.js.map +1 -0
  320. package/src/utilities/completion.d.ts +30 -0
  321. package/src/utilities/completion.js +270 -0
  322. package/src/utilities/completion.js.map +1 -0
  323. package/src/utilities/config.d.ts +38 -0
  324. package/src/utilities/config.js +369 -0
  325. package/src/utilities/config.js.map +1 -0
  326. package/src/utilities/environment-options.d.ts +25 -0
  327. package/src/utilities/environment-options.js +60 -0
  328. package/src/utilities/environment-options.js.map +1 -0
  329. package/src/utilities/eol.d.ts +20 -0
  330. package/src/utilities/eol.js +35 -0
  331. package/src/utilities/eol.js.map +1 -0
  332. package/src/utilities/error.d.ts +18 -0
  333. package/src/utilities/error.js +41 -0
  334. package/src/utilities/error.js.map +1 -0
  335. package/src/utilities/find-up.d.ts +21 -0
  336. package/src/utilities/find-up.js +67 -0
  337. package/src/utilities/find-up.js.map +1 -0
  338. package/src/utilities/json-file.d.ts +24 -0
  339. package/src/utilities/json-file.js +179 -0
  340. package/src/utilities/json-file.js.map +1 -0
  341. package/src/utilities/log-file.d.ts +13 -0
  342. package/src/utilities/log-file.js +28 -0
  343. package/src/utilities/log-file.js.map +1 -0
  344. package/src/utilities/memoize.d.ts +15 -0
  345. package/src/utilities/memoize.js +64 -0
  346. package/src/utilities/memoize.js.map +1 -0
  347. package/src/utilities/package-metadata.d.ts +58 -0
  348. package/src/utilities/package-metadata.js +265 -0
  349. package/src/utilities/package-metadata.js.map +1 -0
  350. package/src/utilities/prettier.d.ts +13 -0
  351. package/src/utilities/prettier.js +46 -0
  352. package/src/utilities/prettier.js.map +1 -0
  353. package/src/utilities/project.d.ts +8 -0
  354. package/src/utilities/project.js +81 -0
  355. package/src/utilities/project.js.map +1 -0
  356. package/src/utilities/prompt.d.ts +17 -0
  357. package/src/utilities/prompt.js +90 -0
  358. package/src/utilities/prompt.js.map +1 -0
  359. package/src/utilities/tty.d.ts +16 -0
  360. package/src/utilities/tty.js +23 -0
  361. package/src/utilities/tty.js.map +1 -0
  362. package/src/utilities/version.d.ts +16 -0
  363. package/src/utilities/version.js +26 -0
  364. package/src/utilities/version.js.map +1 -0
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NodeJS_HOST = void 0;
11
+ /**
12
+ * @fileoverview
13
+ * This file defines an abstraction layer for side-effectful operations, such as
14
+ * file system access and command execution. This allows for easier testing by
15
+ * enabling the injection of mock or test-specific implementations.
16
+ */
17
+ const node_child_process_1 = require("node:child_process");
18
+ const node_fs_1 = require("node:fs");
19
+ const promises_1 = require("node:fs/promises");
20
+ const node_os_1 = require("node:os");
21
+ const node_path_1 = require("node:path");
22
+ const error_1 = require("./error");
23
+ /**
24
+ * A concrete implementation of the `Host` interface that uses the Node.js APIs.
25
+ */
26
+ exports.NodeJS_HOST = {
27
+ stat: promises_1.stat,
28
+ requiresQuoting: (0, node_os_1.platform)() === 'win32',
29
+ mkdir: promises_1.mkdir,
30
+ readFile: (path) => (0, promises_1.readFile)(path, { encoding: 'utf8' }),
31
+ copyFile: (src, dest) => (0, promises_1.copyFile)(src, dest, node_fs_1.constants.COPYFILE_FICLONE),
32
+ writeFile: promises_1.writeFile,
33
+ createTempDirectory: (baseDir) => (0, promises_1.mkdtemp)((0, node_path_1.join)(baseDir ?? (0, node_os_1.tmpdir)(), 'angular-cli-tmp-packages-')),
34
+ deleteDirectory: (path) => (0, promises_1.rm)(path, { recursive: true, force: true }),
35
+ runCommand: async (command, args, options = {}) => {
36
+ const signal = options.timeout ? AbortSignal.timeout(options.timeout) : undefined;
37
+ const isWin32 = (0, node_os_1.platform)() === 'win32';
38
+ return new Promise((resolve, reject) => {
39
+ const spawnOptions = {
40
+ shell: isWin32,
41
+ stdio: options.stdio ?? 'pipe',
42
+ signal,
43
+ cwd: options.cwd,
44
+ env: {
45
+ ...process.env,
46
+ ...options.env,
47
+ // NPM updater notifier will prevents the child process from closing until it timeout after 3 minutes.
48
+ NO_UPDATE_NOTIFIER: '1',
49
+ NPM_CONFIG_UPDATE_NOTIFIER: 'false',
50
+ },
51
+ };
52
+ const childProcess = isWin32
53
+ ? (0, node_child_process_1.spawn)(`${command} ${args.join(' ')}`, spawnOptions)
54
+ : (0, node_child_process_1.spawn)(command, args, spawnOptions);
55
+ let stdout = '';
56
+ childProcess.stdout?.on('data', (data) => (stdout += data.toString()));
57
+ let stderr = '';
58
+ childProcess.stderr?.on('data', (data) => (stderr += data.toString()));
59
+ childProcess.on('close', (code) => {
60
+ if (code === 0) {
61
+ resolve({ stdout, stderr });
62
+ }
63
+ else {
64
+ const message = `Process exited with code ${code}.`;
65
+ reject(new error_1.PackageManagerError(message, stdout, stderr, code));
66
+ }
67
+ });
68
+ childProcess.on('error', (err) => {
69
+ if (err.name === 'AbortError') {
70
+ const message = `Process timed out.`;
71
+ reject(new error_1.PackageManagerError(message, stdout, stderr, null));
72
+ return;
73
+ }
74
+ const message = `Process failed with error: ${err.message}`;
75
+ reject(new error_1.PackageManagerError(message, stdout, stderr, null));
76
+ });
77
+ });
78
+ },
79
+ };
80
+ //# sourceMappingURL=host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ export { createPackageManager } from './factory';
9
+ export type { PackageManagerName } from './package-manager-descriptor';
10
+ export { PackageManager } from './package-manager';
11
+ export { PackageManagerError } from './error';
12
+ export type * from './package-metadata';
13
+ export type { InstalledPackage } from './package-tree';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PackageManagerError = exports.PackageManager = exports.createPackageManager = void 0;
11
+ var factory_1 = require("./factory");
12
+ Object.defineProperty(exports, "createPackageManager", { enumerable: true, get: function () { return factory_1.createPackageManager; } });
13
+ var package_manager_1 = require("./package-manager");
14
+ Object.defineProperty(exports, "PackageManager", { enumerable: true, get: function () { return package_manager_1.PackageManager; } });
15
+ var error_1 = require("./error");
16
+ Object.defineProperty(exports, "PackageManagerError", { enumerable: true, get: function () { return error_1.PackageManagerError; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAE7B,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AACvB,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ /**
9
+ * @fileoverview This file defines a basic logger interface that is used by
10
+ * the package manager abstraction. This allows the abstraction to be decoupled
11
+ * from any specific logging implementation.
12
+ */
13
+ /**
14
+ * A basic logger interface for the package manager abstraction.
15
+ */
16
+ export interface Logger {
17
+ /**
18
+ * Logs a debug message.
19
+ * @param message The message to log.
20
+ */
21
+ debug(message: string): void;
22
+ /**
23
+ * Logs an informational message.
24
+ * @param message The message to log.
25
+ */
26
+ info(message: string): void;
27
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.dev/license
7
+ */
8
+ /**
9
+ * @fileoverview This file defines the data structures and configuration for
10
+ * supported package managers. It is the single source of truth for all
11
+ * package-manager-specific commands, flags, and output parsing.
12
+ */
13
+ import { ErrorInfo } from './error';
14
+ import { Logger } from './logger';
15
+ import { PackageManifest, PackageMetadata } from './package-metadata';
16
+ import { InstalledPackage } from './package-tree';
17
+ import { parseBunDependencies, parseNpmLikeDependencies, parseNpmLikeError, parseNpmLikeManifest, parseNpmLikeMetadata, parseYarnClassicDependencies, parseYarnClassicError, parseYarnClassicManifest, parseYarnClassicMetadata, parseYarnModernDependencies } from './parsers';
18
+ /**
19
+ * An interface that describes the commands and properties of a package manager.
20
+ */
21
+ export interface PackageManagerDescriptor {
22
+ /** The binary executable for the package manager. */
23
+ readonly binary: string;
24
+ /** The lockfile names used by the package manager. */
25
+ readonly lockfiles: readonly string[];
26
+ /** The command to add a package. */
27
+ readonly addCommand: string;
28
+ /** The command to install all dependencies. */
29
+ readonly installCommand: readonly string[];
30
+ /** The flag to force a clean installation. */
31
+ readonly forceFlag: string;
32
+ /** The flag to save a package with an exact version. */
33
+ readonly saveExactFlag: string;
34
+ /** The flag to save a package with a tilde version range. */
35
+ readonly saveTildeFlag: string;
36
+ /** The flag to save a package as a dev dependency. */
37
+ readonly saveDevFlag: string;
38
+ /** The flag to prevent the lockfile from being updated. */
39
+ readonly noLockfileFlag: string;
40
+ /** The flag to prevent lifecycle scripts from being executed. */
41
+ readonly ignoreScriptsFlag: string;
42
+ /** The flag to ignore peer dependency warnings/errors. */
43
+ readonly ignorePeerDependenciesFlag?: string;
44
+ /** The configuration files used by the package manager. */
45
+ readonly configFiles: readonly string[];
46
+ /**
47
+ * Whether to copy configuration files from the project root to the temporary directory.
48
+ * This is necessary for package managers that do not inherit configuration from parent directories (e.g., bun).
49
+ */
50
+ readonly copyConfigFromProject?: boolean;
51
+ /** A function that returns the arguments and environment variables to use a custom registry. */
52
+ readonly getRegistryOptions?: (registry: string) => {
53
+ args?: string[];
54
+ env?: Record<string, string>;
55
+ };
56
+ /** The command to get the package manager's version. */
57
+ readonly versionCommand: readonly string[];
58
+ /** The command to list all installed dependencies. */
59
+ readonly listDependenciesCommand: readonly string[];
60
+ /** The command to fetch the registry manifest of a package. */
61
+ readonly getManifestCommand: readonly string[];
62
+ /** Whether a specific version lookup is needed prior to fetching a registry manifest. */
63
+ readonly requiresManifestVersionLookup?: boolean;
64
+ /** A function that formats the arguments for field-filtered registry views. */
65
+ readonly viewCommandFieldArgFormatter?: (fields: readonly string[]) => string[];
66
+ /** A collection of functions to parse the output of specific commands. */
67
+ readonly outputParsers: {
68
+ /** A function to parse the output of `listDependenciesCommand`. */
69
+ listDependencies: (stdout: string, logger?: Logger) => Map<string, InstalledPackage>;
70
+ /** A function to parse the output of `getManifestCommand` for a specific version. */
71
+ getRegistryManifest: (stdout: string, logger?: Logger) => PackageManifest | null;
72
+ /** A function to parse the output of `getManifestCommand` for the full package metadata. */
73
+ getRegistryMetadata: (stdout: string, logger?: Logger) => PackageMetadata | null;
74
+ /** A function to parse the output when a command fails. */
75
+ getError?: (output: string, logger?: Logger) => ErrorInfo | null;
76
+ };
77
+ /** A function that checks if a structured error represents a "package not found" error. */
78
+ readonly isNotFound: (error: ErrorInfo) => boolean;
79
+ }
80
+ /** A type that represents the name of a supported package manager. */
81
+ export type PackageManagerName = keyof typeof SUPPORTED_PACKAGE_MANAGERS;
82
+ /**
83
+ * A shared function to check if a structured error represents a "package not found" error.
84
+ * @param error The structured error to check.
85
+ * @returns True if the error code is a known "not found" code, false otherwise.
86
+ */
87
+ declare function isKnownNotFound(error: ErrorInfo): boolean;
88
+ /**
89
+ * A map of supported package managers to their descriptors.
90
+ * This is the single source of truth for all package-manager-specific
91
+ * configuration and behavior.
92
+ *
93
+ * Each descriptor is intentionally explicit and self-contained. This approach
94
+ * avoids inheritance or fallback logic between package managers, ensuring that
95
+ * the behavior for each one is clear, predictable, and easy to modify in
96
+ * isolation. For example, `yarn-classic` does not inherit any properties from
97
+ * the `yarn` descriptor; it is a complete and independent definition.
98
+ */
99
+ export declare const SUPPORTED_PACKAGE_MANAGERS: {
100
+ npm: {
101
+ binary: string;
102
+ lockfiles: string[];
103
+ addCommand: string;
104
+ installCommand: string[];
105
+ forceFlag: string;
106
+ saveExactFlag: string;
107
+ saveTildeFlag: string;
108
+ saveDevFlag: string;
109
+ noLockfileFlag: string;
110
+ ignoreScriptsFlag: string;
111
+ ignorePeerDependenciesFlag: string;
112
+ configFiles: string[];
113
+ getRegistryOptions: (registry: string) => {
114
+ args: string[];
115
+ };
116
+ versionCommand: string[];
117
+ listDependenciesCommand: string[];
118
+ getManifestCommand: string[];
119
+ viewCommandFieldArgFormatter: (fields: readonly string[]) => string[];
120
+ outputParsers: {
121
+ listDependencies: typeof parseNpmLikeDependencies;
122
+ getRegistryManifest: typeof parseNpmLikeManifest;
123
+ getRegistryMetadata: typeof parseNpmLikeMetadata;
124
+ getError: typeof parseNpmLikeError;
125
+ };
126
+ isNotFound: typeof isKnownNotFound;
127
+ };
128
+ yarn: {
129
+ binary: string;
130
+ lockfiles: string[];
131
+ addCommand: string;
132
+ installCommand: string[];
133
+ forceFlag: string;
134
+ saveExactFlag: string;
135
+ saveTildeFlag: string;
136
+ saveDevFlag: string;
137
+ noLockfileFlag: string;
138
+ ignoreScriptsFlag: string;
139
+ configFiles: string[];
140
+ getRegistryOptions: (registry: string) => {
141
+ env: {
142
+ YARN_NPM_REGISTRY_SERVER: string;
143
+ };
144
+ };
145
+ versionCommand: string[];
146
+ listDependenciesCommand: string[];
147
+ getManifestCommand: string[];
148
+ viewCommandFieldArgFormatter: (fields: readonly string[]) => string[];
149
+ outputParsers: {
150
+ listDependencies: typeof parseYarnModernDependencies;
151
+ getRegistryManifest: typeof parseNpmLikeManifest;
152
+ getRegistryMetadata: typeof parseNpmLikeMetadata;
153
+ getError: typeof parseNpmLikeError;
154
+ };
155
+ isNotFound: typeof isKnownNotFound;
156
+ };
157
+ 'yarn-classic': {
158
+ binary: string;
159
+ lockfiles: never[];
160
+ addCommand: string;
161
+ installCommand: string[];
162
+ forceFlag: string;
163
+ saveExactFlag: string;
164
+ saveTildeFlag: string;
165
+ saveDevFlag: string;
166
+ noLockfileFlag: string;
167
+ ignoreScriptsFlag: string;
168
+ configFiles: string[];
169
+ getRegistryOptions: (registry: string) => {
170
+ args: string[];
171
+ };
172
+ versionCommand: string[];
173
+ listDependenciesCommand: string[];
174
+ getManifestCommand: string[];
175
+ requiresManifestVersionLookup: true;
176
+ outputParsers: {
177
+ listDependencies: typeof parseYarnClassicDependencies;
178
+ getRegistryManifest: typeof parseYarnClassicManifest;
179
+ getRegistryMetadata: typeof parseYarnClassicMetadata;
180
+ getError: typeof parseYarnClassicError;
181
+ };
182
+ isNotFound: typeof isKnownNotFound;
183
+ };
184
+ pnpm: {
185
+ binary: string;
186
+ lockfiles: string[];
187
+ addCommand: string;
188
+ installCommand: string[];
189
+ forceFlag: string;
190
+ saveExactFlag: string;
191
+ saveTildeFlag: string;
192
+ saveDevFlag: string;
193
+ noLockfileFlag: string;
194
+ ignoreScriptsFlag: string;
195
+ ignorePeerDependenciesFlag: string;
196
+ configFiles: string[];
197
+ getRegistryOptions: (registry: string) => {
198
+ args: string[];
199
+ };
200
+ versionCommand: string[];
201
+ listDependenciesCommand: string[];
202
+ getManifestCommand: string[];
203
+ viewCommandFieldArgFormatter: (fields: readonly string[]) => string[];
204
+ outputParsers: {
205
+ listDependencies: typeof parseNpmLikeDependencies;
206
+ getRegistryManifest: typeof parseNpmLikeManifest;
207
+ getRegistryMetadata: typeof parseNpmLikeMetadata;
208
+ getError: typeof parseNpmLikeError;
209
+ };
210
+ isNotFound: typeof isKnownNotFound;
211
+ };
212
+ bun: {
213
+ binary: string;
214
+ lockfiles: string[];
215
+ addCommand: string;
216
+ installCommand: string[];
217
+ forceFlag: string;
218
+ saveExactFlag: string;
219
+ saveTildeFlag: string;
220
+ saveDevFlag: string;
221
+ noLockfileFlag: string;
222
+ ignoreScriptsFlag: string;
223
+ configFiles: string[];
224
+ copyConfigFromProject: true;
225
+ getRegistryOptions: (registry: string) => {
226
+ args: string[];
227
+ };
228
+ versionCommand: string[];
229
+ listDependenciesCommand: string[];
230
+ getManifestCommand: string[];
231
+ outputParsers: {
232
+ listDependencies: typeof parseBunDependencies;
233
+ getRegistryManifest: typeof parseNpmLikeManifest;
234
+ getRegistryMetadata: typeof parseNpmLikeMetadata;
235
+ getError: typeof parseNpmLikeError;
236
+ };
237
+ isNotFound: typeof isKnownNotFound;
238
+ };
239
+ };
240
+ /**
241
+ * The order of precedence for package managers.
242
+ * This is a best-effort ordering based on estimated Angular community usage and default presence.
243
+ */
244
+ export declare const PACKAGE_MANAGER_PRECEDENCE: readonly PackageManagerName[];
245
+ export {};
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * @license
4
+ * Copyright Google LLC All Rights Reserved.
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://angular.dev/license
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PACKAGE_MANAGER_PRECEDENCE = exports.SUPPORTED_PACKAGE_MANAGERS = void 0;
11
+ const parsers_1 = require("./parsers");
12
+ /** A set of error codes that are known to indicate a "package not found" error. */
13
+ const NOT_FOUND_ERROR_CODES = new Set(['E404']);
14
+ /**
15
+ * A shared function to check if a structured error represents a "package not found" error.
16
+ * @param error The structured error to check.
17
+ * @returns True if the error code is a known "not found" code, false otherwise.
18
+ */
19
+ function isKnownNotFound(error) {
20
+ return NOT_FOUND_ERROR_CODES.has(error.code);
21
+ }
22
+ /**
23
+ * A map of supported package managers to their descriptors.
24
+ * This is the single source of truth for all package-manager-specific
25
+ * configuration and behavior.
26
+ *
27
+ * Each descriptor is intentionally explicit and self-contained. This approach
28
+ * avoids inheritance or fallback logic between package managers, ensuring that
29
+ * the behavior for each one is clear, predictable, and easy to modify in
30
+ * isolation. For example, `yarn-classic` does not inherit any properties from
31
+ * the `yarn` descriptor; it is a complete and independent definition.
32
+ */
33
+ exports.SUPPORTED_PACKAGE_MANAGERS = {
34
+ npm: {
35
+ binary: 'npm',
36
+ lockfiles: ['package-lock.json', 'npm-shrinkwrap.json'],
37
+ addCommand: 'install',
38
+ installCommand: ['install'],
39
+ forceFlag: '--force',
40
+ saveExactFlag: '--save-exact',
41
+ saveTildeFlag: '--save-tilde',
42
+ saveDevFlag: '--save-dev',
43
+ noLockfileFlag: '--no-package-lock',
44
+ ignoreScriptsFlag: '--ignore-scripts',
45
+ ignorePeerDependenciesFlag: '--force',
46
+ configFiles: ['.npmrc'],
47
+ getRegistryOptions: (registry) => ({ args: ['--registry', registry] }),
48
+ versionCommand: ['--version'],
49
+ listDependenciesCommand: ['list', '--depth=0', '--json=true', '--all=true'],
50
+ getManifestCommand: ['view', '--json'],
51
+ viewCommandFieldArgFormatter: (fields) => [...fields],
52
+ outputParsers: {
53
+ listDependencies: parsers_1.parseNpmLikeDependencies,
54
+ getRegistryManifest: parsers_1.parseNpmLikeManifest,
55
+ getRegistryMetadata: parsers_1.parseNpmLikeMetadata,
56
+ getError: parsers_1.parseNpmLikeError,
57
+ },
58
+ isNotFound: isKnownNotFound,
59
+ },
60
+ yarn: {
61
+ binary: 'yarn',
62
+ lockfiles: ['yarn.lock'],
63
+ addCommand: 'add',
64
+ installCommand: ['install'],
65
+ forceFlag: '--force',
66
+ saveExactFlag: '--exact',
67
+ saveTildeFlag: '--tilde',
68
+ saveDevFlag: '--dev',
69
+ noLockfileFlag: '',
70
+ ignoreScriptsFlag: '--mode=skip-build',
71
+ configFiles: ['.yarnrc.yml', '.yarnrc.yaml'],
72
+ getRegistryOptions: (registry) => ({ env: { YARN_NPM_REGISTRY_SERVER: registry } }),
73
+ versionCommand: ['--version'],
74
+ listDependenciesCommand: ['info', '--name-only', '--json'],
75
+ getManifestCommand: ['npm', 'info', '--json'],
76
+ viewCommandFieldArgFormatter: (fields) => ['--fields', fields.join(',')],
77
+ outputParsers: {
78
+ listDependencies: parsers_1.parseYarnModernDependencies,
79
+ getRegistryManifest: parsers_1.parseNpmLikeManifest,
80
+ getRegistryMetadata: parsers_1.parseNpmLikeMetadata,
81
+ getError: parsers_1.parseNpmLikeError,
82
+ },
83
+ isNotFound: isKnownNotFound,
84
+ },
85
+ 'yarn-classic': {
86
+ binary: 'yarn',
87
+ // This is intentionally empty. `yarn-classic` is not a discoverable package manager.
88
+ // The discovery process finds `yarn` via `yarn.lock`, and the factory logic
89
+ // determines whether it is classic or modern by checking the installed version.
90
+ lockfiles: [],
91
+ addCommand: 'add',
92
+ installCommand: ['install'],
93
+ forceFlag: '--force',
94
+ saveExactFlag: '--exact',
95
+ saveTildeFlag: '--tilde',
96
+ saveDevFlag: '--dev',
97
+ noLockfileFlag: '--no-lockfile',
98
+ ignoreScriptsFlag: '--ignore-scripts',
99
+ configFiles: ['.yarnrc', '.npmrc'],
100
+ getRegistryOptions: (registry) => ({ args: ['--registry', registry] }),
101
+ versionCommand: ['--version'],
102
+ listDependenciesCommand: ['list', '--depth=0', '--json'],
103
+ getManifestCommand: ['info', '--json', '--verbose'],
104
+ requiresManifestVersionLookup: true,
105
+ outputParsers: {
106
+ listDependencies: parsers_1.parseYarnClassicDependencies,
107
+ getRegistryManifest: parsers_1.parseYarnClassicManifest,
108
+ getRegistryMetadata: parsers_1.parseYarnClassicMetadata,
109
+ getError: parsers_1.parseYarnClassicError,
110
+ },
111
+ isNotFound: isKnownNotFound,
112
+ },
113
+ pnpm: {
114
+ binary: 'pnpm',
115
+ lockfiles: ['pnpm-lock.yaml'],
116
+ addCommand: 'add',
117
+ installCommand: ['install'],
118
+ forceFlag: '--force',
119
+ saveExactFlag: '--save-exact',
120
+ saveTildeFlag: '--save-tilde',
121
+ saveDevFlag: '--save-dev',
122
+ noLockfileFlag: '--no-lockfile',
123
+ ignoreScriptsFlag: '--ignore-scripts',
124
+ ignorePeerDependenciesFlag: '--strict-peer-dependencies=false',
125
+ configFiles: ['.npmrc', 'pnpm-workspace.yaml'],
126
+ getRegistryOptions: (registry) => ({ args: ['--registry', registry] }),
127
+ versionCommand: ['--version'],
128
+ listDependenciesCommand: ['list', '--depth=0', '--json'],
129
+ getManifestCommand: ['view', '--json'],
130
+ viewCommandFieldArgFormatter: (fields) => [...fields],
131
+ outputParsers: {
132
+ listDependencies: parsers_1.parseNpmLikeDependencies,
133
+ getRegistryManifest: parsers_1.parseNpmLikeManifest,
134
+ getRegistryMetadata: parsers_1.parseNpmLikeMetadata,
135
+ getError: parsers_1.parseNpmLikeError,
136
+ },
137
+ isNotFound: isKnownNotFound,
138
+ },
139
+ bun: {
140
+ binary: 'bun',
141
+ lockfiles: ['bun.lockb', 'bun.lock'],
142
+ addCommand: 'add',
143
+ installCommand: ['install'],
144
+ forceFlag: '--force',
145
+ saveExactFlag: '--exact',
146
+ saveTildeFlag: '', // Bun does not have a flag for tilde, it defaults to caret.
147
+ saveDevFlag: '--development',
148
+ noLockfileFlag: '', // Bun does not have a flag for this.
149
+ ignoreScriptsFlag: '--ignore-scripts',
150
+ configFiles: ['bunfig.toml', '.npmrc'],
151
+ copyConfigFromProject: true,
152
+ getRegistryOptions: (registry) => ({ args: ['--registry', registry] }),
153
+ versionCommand: ['--version'],
154
+ listDependenciesCommand: ['pm', 'ls'],
155
+ getManifestCommand: ['pm', 'view', '--json'],
156
+ outputParsers: {
157
+ listDependencies: parsers_1.parseBunDependencies,
158
+ getRegistryManifest: parsers_1.parseNpmLikeManifest,
159
+ getRegistryMetadata: parsers_1.parseNpmLikeMetadata,
160
+ getError: parsers_1.parseNpmLikeError,
161
+ },
162
+ isNotFound: isKnownNotFound,
163
+ },
164
+ };
165
+ /**
166
+ * The order of precedence for package managers.
167
+ * This is a best-effort ordering based on estimated Angular community usage and default presence.
168
+ */
169
+ exports.PACKAGE_MANAGER_PRECEDENCE = [
170
+ 'pnpm',
171
+ 'yarn',
172
+ 'bun',
173
+ 'npm',
174
+ ];
175
+ //# sourceMappingURL=package-manager-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-descriptor.js","sourceRoot":"","sources":["package-manager-descriptor.ts"],"names":[],"mappings":"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"}