@ohos-ports/nx 19.8.4-beta.0

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 (840) hide show
  1. package/.eslintrc.json +140 -0
  2. package/LICENSE +22 -0
  3. package/README.md +66 -0
  4. package/bin/init-local.d.ts +8 -0
  5. package/bin/init-local.js +183 -0
  6. package/bin/nx-cloud.d.ts +3 -0
  7. package/bin/nx-cloud.js +47 -0
  8. package/bin/nx.d.ts +2 -0
  9. package/bin/nx.js +226 -0
  10. package/bin/post-install.d.ts +1 -0
  11. package/bin/post-install.js +64 -0
  12. package/bin/run-executor.d.ts +1 -0
  13. package/bin/run-executor.js +66 -0
  14. package/executors.json +19 -0
  15. package/generators.json +10 -0
  16. package/migrations.json +94 -0
  17. package/node_modules/@nrwl/tao/LICENSE +22 -0
  18. package/node_modules/@nrwl/tao/README.md +18 -0
  19. package/node_modules/@nrwl/tao/index.d.ts +1 -0
  20. package/node_modules/@nrwl/tao/index.js +7 -0
  21. package/node_modules/@nrwl/tao/package.json +41 -0
  22. package/node_modules/@nrwl/tao/src/commands/ngcli-adapter.d.ts +1 -0
  23. package/node_modules/@nrwl/tao/src/commands/ngcli-adapter.js +5 -0
  24. package/node_modules/@nrwl/tao/src/shared/logger.d.ts +1 -0
  25. package/node_modules/@nrwl/tao/src/shared/logger.js +5 -0
  26. package/node_modules/@nrwl/tao/src/shared/nx.d.ts +1 -0
  27. package/node_modules/@nrwl/tao/src/shared/nx.js +5 -0
  28. package/node_modules/@nrwl/tao/src/shared/package-manager.d.ts +1 -0
  29. package/node_modules/@nrwl/tao/src/shared/package-manager.js +5 -0
  30. package/node_modules/@nrwl/tao/src/shared/project-graph.d.ts +1 -0
  31. package/node_modules/@nrwl/tao/src/shared/project-graph.js +5 -0
  32. package/node_modules/@nrwl/tao/src/shared/tree.d.ts +1 -0
  33. package/node_modules/@nrwl/tao/src/shared/tree.js +5 -0
  34. package/node_modules/@nrwl/tao/src/utils/app-root.d.ts +1 -0
  35. package/node_modules/@nrwl/tao/src/utils/app-root.js +5 -0
  36. package/package.json +198 -0
  37. package/plugins/package-json.d.ts +1 -0
  38. package/plugins/package-json.js +12 -0
  39. package/presets/core.json +1 -0
  40. package/presets/npm.json +7 -0
  41. package/release/changelog-renderer/index.d.ts +80 -0
  42. package/release/changelog-renderer/index.js +315 -0
  43. package/release/index.d.ts +4 -0
  44. package/release/index.js +12 -0
  45. package/schemas/nx-schema.json +819 -0
  46. package/schemas/project-schema.json +331 -0
  47. package/schemas/workspace-schema.json +185 -0
  48. package/src/adapter/angular-json.d.ts +10 -0
  49. package/src/adapter/angular-json.js +128 -0
  50. package/src/adapter/compat.d.ts +2 -0
  51. package/src/adapter/compat.js +143 -0
  52. package/src/adapter/decorate-cli.d.ts +1 -0
  53. package/src/adapter/decorate-cli.js +24 -0
  54. package/src/adapter/ngcli-adapter.d.ts +90 -0
  55. package/src/adapter/ngcli-adapter.js +854 -0
  56. package/src/adapter/rxjs-for-await.d.ts +109 -0
  57. package/src/adapter/rxjs-for-await.js +362 -0
  58. package/src/command-line/activate-powerpack/activate-powerpack.d.ts +2 -0
  59. package/src/command-line/activate-powerpack/activate-powerpack.js +34 -0
  60. package/src/command-line/activate-powerpack/command-object.d.ts +6 -0
  61. package/src/command-line/activate-powerpack/command-object.js +26 -0
  62. package/src/command-line/add/add.d.ts +3 -0
  63. package/src/command-line/add/add.js +150 -0
  64. package/src/command-line/add/command-object.d.ts +8 -0
  65. package/src/command-line/add/command-object.js +27 -0
  66. package/src/command-line/affected/affected.d.ts +10 -0
  67. package/src/command-line/affected/affected.js +88 -0
  68. package/src/command-line/affected/command-object.d.ts +6 -0
  69. package/src/command-line/affected/command-object.js +82 -0
  70. package/src/command-line/connect/command-object.d.ts +3 -0
  71. package/src/command-line/connect/command-object.js +32 -0
  72. package/src/command-line/connect/connect-to-nx-cloud.d.ts +12 -0
  73. package/src/command-line/connect/connect-to-nx-cloud.js +149 -0
  74. package/src/command-line/connect/view-logs.d.ts +1 -0
  75. package/src/command-line/connect/view-logs.js +55 -0
  76. package/src/command-line/daemon/command-object.d.ts +2 -0
  77. package/src/command-line/daemon/command-object.js +21 -0
  78. package/src/command-line/daemon/daemon.d.ts +2 -0
  79. package/src/command-line/daemon/daemon.js +26 -0
  80. package/src/command-line/deprecated/command-objects.d.ts +9 -0
  81. package/src/command-line/deprecated/command-objects.js +48 -0
  82. package/src/command-line/examples.d.ts +5 -0
  83. package/src/command-line/examples.js +379 -0
  84. package/src/command-line/exec/command-object.d.ts +2 -0
  85. package/src/command-line/exec/command-object.js +19 -0
  86. package/src/command-line/exec/exec.d.ts +1 -0
  87. package/src/command-line/exec/exec.js +142 -0
  88. package/src/command-line/format/command-object.d.ts +3 -0
  89. package/src/command-line/format/command-object.js +46 -0
  90. package/src/command-line/format/format.d.ts +2 -0
  91. package/src/command-line/format/format.js +195 -0
  92. package/src/command-line/generate/command-object.d.ts +2 -0
  93. package/src/command-line/generate/command-object.js +67 -0
  94. package/src/command-line/generate/generate.d.ts +21 -0
  95. package/src/command-line/generate/generate.js +262 -0
  96. package/src/command-line/generate/generator-utils.d.ts +18 -0
  97. package/src/command-line/generate/generator-utils.js +86 -0
  98. package/src/command-line/graph/command-object.d.ts +25 -0
  99. package/src/command-line/graph/command-object.js +75 -0
  100. package/src/command-line/graph/graph.d.ts +68 -0
  101. package/src/command-line/graph/graph.js +806 -0
  102. package/src/command-line/import/command-object.d.ts +2 -0
  103. package/src/command-line/import/command-object.js +44 -0
  104. package/src/command-line/import/import.d.ts +25 -0
  105. package/src/command-line/import/import.js +328 -0
  106. package/src/command-line/import/utils/merge-remote-source.d.ts +2 -0
  107. package/src/command-line/import/utils/merge-remote-source.js +14 -0
  108. package/src/command-line/import/utils/needs-install.d.ts +3 -0
  109. package/src/command-line/import/utils/needs-install.js +31 -0
  110. package/src/command-line/import/utils/prepare-source-repo.d.ts +2 -0
  111. package/src/command-line/import/utils/prepare-source-repo.js +27 -0
  112. package/src/command-line/init/command-object.d.ts +2 -0
  113. package/src/command-line/init/command-object.js +83 -0
  114. package/src/command-line/init/implementation/add-nx-to-monorepo.d.ts +6 -0
  115. package/src/command-line/init/implementation/add-nx-to-monorepo.js +130 -0
  116. package/src/command-line/init/implementation/add-nx-to-nest.d.ts +5 -0
  117. package/src/command-line/init/implementation/add-nx-to-nest.js +345 -0
  118. package/src/command-line/init/implementation/add-nx-to-npm-repo.d.ts +6 -0
  119. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +72 -0
  120. package/src/command-line/init/implementation/angular/index.d.ts +2 -0
  121. package/src/command-line/init/implementation/angular/index.js +125 -0
  122. package/src/command-line/init/implementation/angular/integrated-workspace.d.ts +1 -0
  123. package/src/command-line/init/implementation/angular/integrated-workspace.js +12 -0
  124. package/src/command-line/init/implementation/angular/legacy-angular-versions.d.ts +2 -0
  125. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +122 -0
  126. package/src/command-line/init/implementation/angular/standalone-workspace.d.ts +1 -0
  127. package/src/command-line/init/implementation/angular/standalone-workspace.js +175 -0
  128. package/src/command-line/init/implementation/angular/types.d.ts +20 -0
  129. package/src/command-line/init/implementation/angular/types.js +2 -0
  130. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.d.ts +8 -0
  131. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +106 -0
  132. package/src/command-line/init/implementation/dot-nx/nxw.d.ts +1 -0
  133. package/src/command-line/init/implementation/dot-nx/nxw.js +117 -0
  134. package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.d.ts +1 -0
  135. package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.js +21 -0
  136. package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.d.ts +1 -0
  137. package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +18 -0
  138. package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.d.ts +1 -0
  139. package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.js +17 -0
  140. package/src/command-line/init/implementation/react/check-for-uncommitted-changes.d.ts +1 -0
  141. package/src/command-line/init/implementation/react/check-for-uncommitted-changes.js +20 -0
  142. package/src/command-line/init/implementation/react/clean-up-files.d.ts +1 -0
  143. package/src/command-line/init/implementation/react/clean-up-files.js +30 -0
  144. package/src/command-line/init/implementation/react/index.d.ts +4 -0
  145. package/src/command-line/init/implementation/react/index.js +230 -0
  146. package/src/command-line/init/implementation/react/read-name-from-package-json.d.ts +1 -0
  147. package/src/command-line/init/implementation/react/read-name-from-package-json.js +16 -0
  148. package/src/command-line/init/implementation/react/rename-js-to-jsx.d.ts +1 -0
  149. package/src/command-line/init/implementation/react/rename-js-to-jsx.js +22 -0
  150. package/src/command-line/init/implementation/react/tsconfig-setup.d.ts +1 -0
  151. package/src/command-line/init/implementation/react/tsconfig-setup.js +108 -0
  152. package/src/command-line/init/implementation/react/write-craco-config.d.ts +1 -0
  153. package/src/command-line/init/implementation/react/write-craco-config.js +61 -0
  154. package/src/command-line/init/implementation/react/write-vite-config.d.ts +1 -0
  155. package/src/command-line/init/implementation/react/write-vite-config.js +37 -0
  156. package/src/command-line/init/implementation/react/write-vite-index-html.d.ts +1 -0
  157. package/src/command-line/init/implementation/react/write-vite-index-html.js +24 -0
  158. package/src/command-line/init/implementation/utils.d.ts +16 -0
  159. package/src/command-line/init/implementation/utils.js +205 -0
  160. package/src/command-line/init/init-v1.d.ts +11 -0
  161. package/src/command-line/init/init-v1.js +130 -0
  162. package/src/command-line/init/init-v2.d.ts +14 -0
  163. package/src/command-line/init/init-v2.js +239 -0
  164. package/src/command-line/list/command-object.d.ts +2 -0
  165. package/src/command-line/list/command-object.js +15 -0
  166. package/src/command-line/list/list.d.ts +13 -0
  167. package/src/command-line/list/list.js +44 -0
  168. package/src/command-line/login/command-object.d.ts +2 -0
  169. package/src/command-line/login/command-object.js +16 -0
  170. package/src/command-line/login/login.d.ts +5 -0
  171. package/src/command-line/login/login.js +16 -0
  172. package/src/command-line/logout/command-object.d.ts +2 -0
  173. package/src/command-line/logout/command-object.js +12 -0
  174. package/src/command-line/logout/logout.d.ts +4 -0
  175. package/src/command-line/logout/logout.js +13 -0
  176. package/src/command-line/migrate/command-object.d.ts +3 -0
  177. package/src/command-line/migrate/command-object.js +171 -0
  178. package/src/command-line/migrate/migrate.d.ts +114 -0
  179. package/src/command-line/migrate/migrate.js +1110 -0
  180. package/src/command-line/new/command-object.d.ts +2 -0
  181. package/src/command-line/new/command-object.js +25 -0
  182. package/src/command-line/new/new.d.ts +3 -0
  183. package/src/command-line/new/new.js +30 -0
  184. package/src/command-line/nx-commands.d.ts +10 -0
  185. package/src/command-line/nx-commands.js +128 -0
  186. package/src/command-line/release/changelog.d.ts +34 -0
  187. package/src/command-line/release/changelog.js +997 -0
  188. package/src/command-line/release/command-object.d.ts +69 -0
  189. package/src/command-line/release/command-object.js +297 -0
  190. package/src/command-line/release/config/config.d.ts +54 -0
  191. package/src/command-line/release/config/config.js +864 -0
  192. package/src/command-line/release/config/conventional-commits.d.ts +2 -0
  193. package/src/command-line/release/config/conventional-commits.js +98 -0
  194. package/src/command-line/release/config/deep-merge-json.d.ts +1 -0
  195. package/src/command-line/release/config/deep-merge-json.js +28 -0
  196. package/src/command-line/release/config/filter-release-groups.d.ts +15 -0
  197. package/src/command-line/release/config/filter-release-groups.js +150 -0
  198. package/src/command-line/release/config/version-plans.d.ts +42 -0
  199. package/src/command-line/release/config/version-plans.js +220 -0
  200. package/src/command-line/release/index.d.ts +30 -0
  201. package/src/command-line/release/index.js +37 -0
  202. package/src/command-line/release/plan-check.d.ts +4 -0
  203. package/src/command-line/release/plan-check.js +169 -0
  204. package/src/command-line/release/plan.d.ts +4 -0
  205. package/src/command-line/release/plan.js +259 -0
  206. package/src/command-line/release/publish.d.ts +4 -0
  207. package/src/command-line/release/publish.js +164 -0
  208. package/src/command-line/release/release.d.ts +5 -0
  209. package/src/command-line/release/release.js +242 -0
  210. package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts +7 -0
  211. package/src/command-line/release/utils/batch-projects-by-generator-config.js +36 -0
  212. package/src/command-line/release/utils/exec-command.d.ts +1 -0
  213. package/src/command-line/release/utils/exec-command.js +34 -0
  214. package/src/command-line/release/utils/generate-version-plan-content.d.ts +1 -0
  215. package/src/command-line/release/utils/generate-version-plan-content.js +20 -0
  216. package/src/command-line/release/utils/get-touched-projects-for-group.d.ts +7 -0
  217. package/src/command-line/release/utils/get-touched-projects-for-group.js +78 -0
  218. package/src/command-line/release/utils/git.d.ts +67 -0
  219. package/src/command-line/release/utils/git.js +407 -0
  220. package/src/command-line/release/utils/github.d.ts +31 -0
  221. package/src/command-line/release/utils/github.js +322 -0
  222. package/src/command-line/release/utils/launch-editor.d.ts +1 -0
  223. package/src/command-line/release/utils/launch-editor.js +46 -0
  224. package/src/command-line/release/utils/markdown.d.ts +6 -0
  225. package/src/command-line/release/utils/markdown.js +28 -0
  226. package/src/command-line/release/utils/print-changes.d.ts +6 -0
  227. package/src/command-line/release/utils/print-changes.js +61 -0
  228. package/src/command-line/release/utils/print-config.d.ts +7 -0
  229. package/src/command-line/release/utils/print-config.js +36 -0
  230. package/src/command-line/release/utils/resolve-changelog-renderer.d.ts +2 -0
  231. package/src/command-line/release/utils/resolve-changelog-renderer.js +30 -0
  232. package/src/command-line/release/utils/resolve-nx-json-error-message.d.ts +1 -0
  233. package/src/command-line/release/utils/resolve-nx-json-error-message.js +52 -0
  234. package/src/command-line/release/utils/resolve-semver-specifier.d.ts +4 -0
  235. package/src/command-line/release/utils/resolve-semver-specifier.js +57 -0
  236. package/src/command-line/release/utils/semver.d.ts +11 -0
  237. package/src/command-line/release/utils/semver.js +58 -0
  238. package/src/command-line/release/utils/shared.d.ts +53 -0
  239. package/src/command-line/release/utils/shared.js +219 -0
  240. package/src/command-line/release/version.d.ts +60 -0
  241. package/src/command-line/release/version.js +463 -0
  242. package/src/command-line/repair/command-object.d.ts +2 -0
  243. package/src/command-line/repair/command-object.js +20 -0
  244. package/src/command-line/repair/repair.d.ts +3 -0
  245. package/src/command-line/repair/repair.js +36 -0
  246. package/src/command-line/report/command-object.d.ts +2 -0
  247. package/src/command-line/report/command-object.js +11 -0
  248. package/src/command-line/report/report.d.ts +57 -0
  249. package/src/command-line/report/report.js +303 -0
  250. package/src/command-line/reset/command-object.d.ts +8 -0
  251. package/src/command-line/reset/command-object.js +26 -0
  252. package/src/command-line/reset/reset.d.ts +2 -0
  253. package/src/command-line/reset/reset.js +131 -0
  254. package/src/command-line/run/command-object.d.ts +6 -0
  255. package/src/command-line/run/command-object.js +42 -0
  256. package/src/command-line/run/executor-utils.d.ts +7 -0
  257. package/src/command-line/run/executor-utils.js +86 -0
  258. package/src/command-line/run/run-one.d.ts +7 -0
  259. package/src/command-line/run/run-one.js +116 -0
  260. package/src/command-line/run/run.d.ts +51 -0
  261. package/src/command-line/run/run.js +179 -0
  262. package/src/command-line/run-many/command-object.d.ts +2 -0
  263. package/src/command-line/run-many/command-object.js +17 -0
  264. package/src/command-line/run-many/run-many.d.ts +10 -0
  265. package/src/command-line/run-many/run-many.js +92 -0
  266. package/src/command-line/show/command-object.d.ts +26 -0
  267. package/src/command-line/show/command-object.js +115 -0
  268. package/src/command-line/show/project.d.ts +2 -0
  269. package/src/command-line/show/project.js +60 -0
  270. package/src/command-line/show/projects.d.ts +2 -0
  271. package/src/command-line/show/projects.js +77 -0
  272. package/src/command-line/sync/command-object.d.ts +6 -0
  273. package/src/command-line/sync/command-object.js +20 -0
  274. package/src/command-line/sync/sync.d.ts +6 -0
  275. package/src/command-line/sync/sync.js +114 -0
  276. package/src/command-line/watch/command-object.d.ts +2 -0
  277. package/src/command-line/watch/command-object.js +64 -0
  278. package/src/command-line/watch/watch.d.ts +23 -0
  279. package/src/command-line/watch/watch.js +173 -0
  280. package/src/command-line/yargs-utils/documentation.d.ts +2 -0
  281. package/src/command-line/yargs-utils/documentation.js +11 -0
  282. package/src/command-line/yargs-utils/shared-options.d.ts +75 -0
  283. package/src/command-line/yargs-utils/shared-options.js +253 -0
  284. package/src/commands-runner/command-graph.d.ts +13 -0
  285. package/src/commands-runner/command-graph.js +2 -0
  286. package/src/commands-runner/create-command-graph.d.ts +4 -0
  287. package/src/commands-runner/create-command-graph.js +67 -0
  288. package/src/commands-runner/get-command-projects.d.ts +3 -0
  289. package/src/commands-runner/get-command-projects.js +18 -0
  290. package/src/config/calculate-default-project-name.d.ts +4 -0
  291. package/src/config/calculate-default-project-name.js +41 -0
  292. package/src/config/configuration.d.ts +8 -0
  293. package/src/config/configuration.js +17 -0
  294. package/src/config/misc-interfaces.d.ts +212 -0
  295. package/src/config/misc-interfaces.js +2 -0
  296. package/src/config/nx-json.d.ts +479 -0
  297. package/src/config/nx-json.js +39 -0
  298. package/src/config/project-graph.d.ts +137 -0
  299. package/src/config/project-graph.js +37 -0
  300. package/src/config/schema-utils.d.ts +15 -0
  301. package/src/config/schema-utils.js +58 -0
  302. package/src/config/task-graph.d.ts +104 -0
  303. package/src/config/task-graph.js +2 -0
  304. package/src/config/to-project-name.d.ts +5 -0
  305. package/src/config/to-project-name.js +12 -0
  306. package/src/config/workspace-json-project-json.d.ts +225 -0
  307. package/src/config/workspace-json-project-json.js +2 -0
  308. package/src/core/graph/environment.js +1 -0
  309. package/src/core/graph/favicon.ico +0 -0
  310. package/src/core/graph/index.html +30 -0
  311. package/src/core/graph/main.js +1 -0
  312. package/src/core/graph/runtime.js +1 -0
  313. package/src/core/graph/styles.css +3 -0
  314. package/src/core/graph/styles.js +1 -0
  315. package/src/daemon/cache.d.ts +9 -0
  316. package/src/daemon/cache.js +68 -0
  317. package/src/daemon/client/client.d.ts +72 -0
  318. package/src/daemon/client/client.js +505 -0
  319. package/src/daemon/client/daemon-socket-messenger.d.ts +12 -0
  320. package/src/daemon/client/daemon-socket-messenger.js +26 -0
  321. package/src/daemon/client/exec-is-server-available.d.ts +1 -0
  322. package/src/daemon/client/exec-is-server-available.js +11 -0
  323. package/src/daemon/client/generate-help-output.d.ts +1 -0
  324. package/src/daemon/client/generate-help-output.js +26 -0
  325. package/src/daemon/is-on-daemon.d.ts +1 -0
  326. package/src/daemon/is-on-daemon.js +6 -0
  327. package/src/daemon/message-types/flush-sync-generator-changes-to-disk.d.ts +6 -0
  328. package/src/daemon/message-types/flush-sync-generator-changes-to-disk.js +11 -0
  329. package/src/daemon/message-types/force-shutdown.d.ts +5 -0
  330. package/src/daemon/message-types/force-shutdown.js +11 -0
  331. package/src/daemon/message-types/get-context-file-data.d.ts +5 -0
  332. package/src/daemon/message-types/get-context-file-data.js +11 -0
  333. package/src/daemon/message-types/get-files-in-directory.d.ts +6 -0
  334. package/src/daemon/message-types/get-files-in-directory.js +11 -0
  335. package/src/daemon/message-types/get-nx-workspace-files.d.ts +6 -0
  336. package/src/daemon/message-types/get-nx-workspace-files.js +11 -0
  337. package/src/daemon/message-types/get-registered-sync-generators.d.ts +5 -0
  338. package/src/daemon/message-types/get-registered-sync-generators.js +11 -0
  339. package/src/daemon/message-types/get-sync-generator-changes.d.ts +6 -0
  340. package/src/daemon/message-types/get-sync-generator-changes.js +11 -0
  341. package/src/daemon/message-types/glob.d.ts +7 -0
  342. package/src/daemon/message-types/glob.js +11 -0
  343. package/src/daemon/message-types/hash-glob.d.ts +7 -0
  344. package/src/daemon/message-types/hash-glob.js +11 -0
  345. package/src/daemon/message-types/task-history.d.ts +19 -0
  346. package/src/daemon/message-types/task-history.js +27 -0
  347. package/src/daemon/message-types/update-workspace-context.d.ts +8 -0
  348. package/src/daemon/message-types/update-workspace-context.js +11 -0
  349. package/src/daemon/server/file-watching/changed-projects.d.ts +10 -0
  350. package/src/daemon/server/file-watching/changed-projects.js +44 -0
  351. package/src/daemon/server/file-watching/file-watcher-sockets.d.ts +12 -0
  352. package/src/daemon/server/file-watching/file-watcher-sockets.js +66 -0
  353. package/src/daemon/server/handle-context-file-data.d.ts +2 -0
  354. package/src/daemon/server/handle-context-file-data.js +12 -0
  355. package/src/daemon/server/handle-flush-sync-generator-changes-to-disk.d.ts +2 -0
  356. package/src/daemon/server/handle-flush-sync-generator-changes-to-disk.js +11 -0
  357. package/src/daemon/server/handle-force-shutdown.d.ts +5 -0
  358. package/src/daemon/server/handle-force-shutdown.js +18 -0
  359. package/src/daemon/server/handle-get-files-in-directory.d.ts +2 -0
  360. package/src/daemon/server/handle-get-files-in-directory.js +12 -0
  361. package/src/daemon/server/handle-get-registered-sync-generators.d.ts +2 -0
  362. package/src/daemon/server/handle-get-registered-sync-generators.js +11 -0
  363. package/src/daemon/server/handle-get-sync-generator-changes.d.ts +2 -0
  364. package/src/daemon/server/handle-get-sync-generator-changes.js +19 -0
  365. package/src/daemon/server/handle-glob.d.ts +2 -0
  366. package/src/daemon/server/handle-glob.js +12 -0
  367. package/src/daemon/server/handle-hash-glob.d.ts +2 -0
  368. package/src/daemon/server/handle-hash-glob.js +12 -0
  369. package/src/daemon/server/handle-hash-tasks.d.ts +10 -0
  370. package/src/daemon/server/handle-hash-tasks.js +35 -0
  371. package/src/daemon/server/handle-nx-workspace-files.d.ts +2 -0
  372. package/src/daemon/server/handle-nx-workspace-files.js +12 -0
  373. package/src/daemon/server/handle-outputs-tracking.d.ts +15 -0
  374. package/src/daemon/server/handle-outputs-tracking.js +35 -0
  375. package/src/daemon/server/handle-process-in-background.d.ts +6 -0
  376. package/src/daemon/server/handle-process-in-background.js +32 -0
  377. package/src/daemon/server/handle-request-project-graph.d.ts +2 -0
  378. package/src/daemon/server/handle-request-project-graph.js +36 -0
  379. package/src/daemon/server/handle-request-shutdown.d.ts +5 -0
  380. package/src/daemon/server/handle-request-shutdown.js +27 -0
  381. package/src/daemon/server/handle-task-history.d.ts +13 -0
  382. package/src/daemon/server/handle-task-history.js +30 -0
  383. package/src/daemon/server/handle-update-workspace-context.d.ts +2 -0
  384. package/src/daemon/server/handle-update-workspace-context.js +11 -0
  385. package/src/daemon/server/logger.d.ts +18 -0
  386. package/src/daemon/server/logger.js +37 -0
  387. package/src/daemon/server/outputs-tracking.d.ts +8 -0
  388. package/src/daemon/server/outputs-tracking.js +93 -0
  389. package/src/daemon/server/plugins.d.ts +3 -0
  390. package/src/daemon/server/plugins.js +32 -0
  391. package/src/daemon/server/project-graph-incremental-recomputation.d.ts +24 -0
  392. package/src/daemon/server/project-graph-incremental-recomputation.js +300 -0
  393. package/src/daemon/server/server.d.ts +9 -0
  394. package/src/daemon/server/server.js +380 -0
  395. package/src/daemon/server/shutdown-utils.d.ts +17 -0
  396. package/src/daemon/server/shutdown-utils.js +89 -0
  397. package/src/daemon/server/start.d.ts +1 -0
  398. package/src/daemon/server/start.js +17 -0
  399. package/src/daemon/server/sync-generators.d.ts +13 -0
  400. package/src/daemon/server/sync-generators.js +357 -0
  401. package/src/daemon/server/watcher.d.ts +11 -0
  402. package/src/daemon/server/watcher.js +103 -0
  403. package/src/daemon/socket-utils.d.ts +12 -0
  404. package/src/daemon/socket-utils.js +55 -0
  405. package/src/daemon/tmp-dir.d.ts +12 -0
  406. package/src/daemon/tmp-dir.js +70 -0
  407. package/src/devkit-exports.d.ts +136 -0
  408. package/src/devkit-exports.js +142 -0
  409. package/src/devkit-internals.d.ts +26 -0
  410. package/src/devkit-internals.js +52 -0
  411. package/src/devkit-testing-exports.d.ts +2 -0
  412. package/src/devkit-testing-exports.js +8 -0
  413. package/src/executors/noop/noop.impl.d.ts +3 -0
  414. package/src/executors/noop/noop.impl.js +6 -0
  415. package/src/executors/noop/schema.json +10 -0
  416. package/src/executors/run-commands/run-commands.impl.d.ts +57 -0
  417. package/src/executors/run-commands/run-commands.impl.js +480 -0
  418. package/src/executors/run-commands/schema.json +184 -0
  419. package/src/executors/run-script/run-script.impl.d.ts +8 -0
  420. package/src/executors/run-script/run-script.impl.js +57 -0
  421. package/src/executors/run-script/schema.json +28 -0
  422. package/src/executors/utils/convert-nx-executor.d.ts +10 -0
  423. package/src/executors/utils/convert-nx-executor.js +85 -0
  424. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +14 -0
  425. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +58 -0
  426. package/src/generators/testing-utils/create-tree-with-empty-workspace.d.ts +11 -0
  427. package/src/generators/testing-utils/create-tree-with-empty-workspace.js +52 -0
  428. package/src/generators/testing-utils/create-tree.d.ts +5 -0
  429. package/src/generators/testing-utils/create-tree.js +10 -0
  430. package/src/generators/tree.d.ts +125 -0
  431. package/src/generators/tree.js +309 -0
  432. package/src/generators/utils/glob.d.ts +22 -0
  433. package/src/generators/utils/glob.js +51 -0
  434. package/src/generators/utils/json.d.ts +28 -0
  435. package/src/generators/utils/json.js +48 -0
  436. package/src/generators/utils/nx-json.d.ts +11 -0
  437. package/src/generators/utils/nx-json.js +58 -0
  438. package/src/generators/utils/project-configuration.d.ts +42 -0
  439. package/src/generators/utils/project-configuration.js +278 -0
  440. package/src/hasher/create-task-hasher.d.ts +4 -0
  441. package/src/hasher/create-task-hasher.js +15 -0
  442. package/src/hasher/file-hasher.d.ts +2 -0
  443. package/src/hasher/file-hasher.js +18 -0
  444. package/src/hasher/hash-task.d.ts +8 -0
  445. package/src/hasher/hash-task.js +85 -0
  446. package/src/hasher/native-task-hasher-impl.d.ts +18 -0
  447. package/src/hasher/native-task-hasher-impl.js +37 -0
  448. package/src/hasher/node-task-hasher-impl.d.ts +48 -0
  449. package/src/hasher/node-task-hasher-impl.js +449 -0
  450. package/src/hasher/task-hasher.d.ts +128 -0
  451. package/src/hasher/task-hasher.js +266 -0
  452. package/src/index.d.ts +1 -0
  453. package/src/index.js +5 -0
  454. package/src/migrations/update-15-0-0/migrate-to-inputs.d.ts +2 -0
  455. package/src/migrations/update-15-0-0/migrate-to-inputs.js +102 -0
  456. package/src/migrations/update-15-0-0/prefix-outputs.d.ts +2 -0
  457. package/src/migrations/update-15-0-0/prefix-outputs.js +49 -0
  458. package/src/migrations/update-16-0-0/remove-nrwl-cli.d.ts +2 -0
  459. package/src/migrations/update-16-0-0/remove-nrwl-cli.js +16 -0
  460. package/src/migrations/update-16-0-0/update-depends-on-to-tokens.d.ts +2 -0
  461. package/src/migrations/update-16-0-0/update-depends-on-to-tokens.js +97 -0
  462. package/src/migrations/update-16-0-0/update-nx-cloud-runner.d.ts +2 -0
  463. package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +29 -0
  464. package/src/migrations/update-16-2-0/remove-run-commands-output-path.d.ts +2 -0
  465. package/src/migrations/update-16-2-0/remove-run-commands-output-path.js +45 -0
  466. package/src/migrations/update-16-8-0/escape-dollar-sign-env-variables.d.ts +12 -0
  467. package/src/migrations/update-16-8-0/escape-dollar-sign-env-variables.js +67 -0
  468. package/src/migrations/update-16-9-0/remove-project-name-and-root-format.d.ts +2 -0
  469. package/src/migrations/update-16-9-0/remove-project-name-and-root-format.js +21 -0
  470. package/src/migrations/update-17-0-0/move-cache-directory.d.ts +2 -0
  471. package/src/migrations/update-17-0-0/move-cache-directory.js +35 -0
  472. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.d.ts +2 -0
  473. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +72 -0
  474. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.d.ts +2 -0
  475. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +122 -0
  476. package/src/migrations/update-17-2-0/move-default-base.d.ts +5 -0
  477. package/src/migrations/update-17-2-0/move-default-base.js +21 -0
  478. package/src/migrations/update-17-3-0/nx-release-path.d.ts +3 -0
  479. package/src/migrations/update-17-3-0/nx-release-path.js +47 -0
  480. package/src/migrations/update-17-3-0/update-nxw.d.ts +2 -0
  481. package/src/migrations/update-17-3-0/update-nxw.js +7 -0
  482. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.d.ts +2 -0
  483. package/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.js +11 -0
  484. package/src/migrations/update-19-2-0/move-workspace-data-directory.d.ts +4 -0
  485. package/src/migrations/update-19-2-0/move-workspace-data-directory.js +33 -0
  486. package/src/migrations/update-19-2-4/set-project-name.d.ts +2 -0
  487. package/src/migrations/update-19-2-4/set-project-name.js +34 -0
  488. package/src/native/assert-supported-platform.d.ts +1 -0
  489. package/src/native/assert-supported-platform.js +38 -0
  490. package/src/native/browser.js +1 -0
  491. package/src/native/index.d.ts +282 -0
  492. package/src/native/index.js +94 -0
  493. package/src/native/native-bindings.js +405 -0
  494. package/src/native/native-file-cache-location.d.ts +1 -0
  495. package/src/native/native-file-cache-location.js +22 -0
  496. package/src/native/nx.openharmony-arm64.node +0 -0
  497. package/src/native/nx.wasi-browser.js +114 -0
  498. package/src/native/nx.wasi.cjs +145 -0
  499. package/src/native/nx.wasm32-wasi.wasm +0 -0
  500. package/src/native/transform-objects.d.ts +3 -0
  501. package/src/native/transform-objects.js +51 -0
  502. package/src/native/wasi-worker-browser.mjs +32 -0
  503. package/src/native/wasi-worker.mjs +63 -0
  504. package/src/nx-cloud/debug-logger.d.ts +1 -0
  505. package/src/nx-cloud/debug-logger.js +8 -0
  506. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +14 -0
  507. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +159 -0
  508. package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +41 -0
  509. package/src/nx-cloud/models/onboarding-status.d.ts +1 -0
  510. package/src/nx-cloud/models/onboarding-status.js +2 -0
  511. package/src/nx-cloud/nx-cloud-tasks-runner-shell.d.ts +16 -0
  512. package/src/nx-cloud/nx-cloud-tasks-runner-shell.js +41 -0
  513. package/src/nx-cloud/resolution-helpers.d.ts +1 -0
  514. package/src/nx-cloud/resolution-helpers.js +19 -0
  515. package/src/nx-cloud/update-manager.d.ts +19 -0
  516. package/src/nx-cloud/update-manager.js +240 -0
  517. package/src/nx-cloud/utilities/axios.d.ts +2 -0
  518. package/src/nx-cloud/utilities/axios.js +24 -0
  519. package/src/nx-cloud/utilities/client.d.ts +10 -0
  520. package/src/nx-cloud/utilities/client.js +35 -0
  521. package/src/nx-cloud/utilities/environment.d.ts +3 -0
  522. package/src/nx-cloud/utilities/environment.js +47 -0
  523. package/src/nx-cloud/utilities/get-cloud-options.d.ts +5 -0
  524. package/src/nx-cloud/utilities/get-cloud-options.js +23 -0
  525. package/src/nx-cloud/utilities/is-workspace-claimed.d.ts +1 -0
  526. package/src/nx-cloud/utilities/is-workspace-claimed.js +25 -0
  527. package/src/nx-cloud/utilities/onboarding.d.ts +5 -0
  528. package/src/nx-cloud/utilities/onboarding.js +28 -0
  529. package/src/nx-cloud/utilities/url-shorten.d.ts +10 -0
  530. package/src/nx-cloud/utilities/url-shorten.js +156 -0
  531. package/src/plugins/js/hasher/hasher.d.ts +5 -0
  532. package/src/plugins/js/hasher/hasher.js +51 -0
  533. package/src/plugins/js/index.d.ts +4 -0
  534. package/src/plugins/js/index.js +106 -0
  535. package/src/plugins/js/lock-file/lock-file.d.ts +34 -0
  536. package/src/plugins/js/lock-file/lock-file.js +211 -0
  537. package/src/plugins/js/lock-file/npm-parser.d.ts +7 -0
  538. package/src/plugins/js/lock-file/npm-parser.js +475 -0
  539. package/src/plugins/js/lock-file/pnpm-parser.d.ts +7 -0
  540. package/src/plugins/js/lock-file/pnpm-parser.js +466 -0
  541. package/src/plugins/js/lock-file/project-graph-pruning.d.ts +7 -0
  542. package/src/plugins/js/lock-file/project-graph-pruning.js +154 -0
  543. package/src/plugins/js/lock-file/utils/package-json.d.ts +10 -0
  544. package/src/plugins/js/lock-file/utils/package-json.js +33 -0
  545. package/src/plugins/js/lock-file/utils/pnpm-normalizer.d.ts +20 -0
  546. package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +854 -0
  547. package/src/plugins/js/lock-file/yarn-parser.d.ts +7 -0
  548. package/src/plugins/js/lock-file/yarn-parser.js +436 -0
  549. package/src/plugins/js/package-json/create-package-json.d.ts +29 -0
  550. package/src/plugins/js/package-json/create-package-json.js +247 -0
  551. package/src/plugins/js/project-graph/affected/lock-file-changes.d.ts +4 -0
  552. package/src/plugins/js/project-graph/affected/lock-file-changes.js +28 -0
  553. package/src/plugins/js/project-graph/affected/npm-packages.d.ts +4 -0
  554. package/src/plugins/js/project-graph/affected/npm-packages.js +68 -0
  555. package/src/plugins/js/project-graph/affected/touched-projects.d.ts +2 -0
  556. package/src/plugins/js/project-graph/affected/touched-projects.js +18 -0
  557. package/src/plugins/js/project-graph/affected/tsconfig-json-changes.d.ts +4 -0
  558. package/src/plugins/js/project-graph/affected/tsconfig-json-changes.js +63 -0
  559. package/src/plugins/js/project-graph/build-dependencies/build-dependencies.d.ts +6 -0
  560. package/src/plugins/js/project-graph/build-dependencies/build-dependencies.js +45 -0
  561. package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +4 -0
  562. package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.js +94 -0
  563. package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.d.ts +4 -0
  564. package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.js +88 -0
  565. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.d.ts +7 -0
  566. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.js +155 -0
  567. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts +59 -0
  568. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +296 -0
  569. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.d.ts +16 -0
  570. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.js +120 -0
  571. package/src/plugins/js/project-graph/build-nodes/build-npm-package-nodes.d.ts +2 -0
  572. package/src/plugins/js/project-graph/build-nodes/build-npm-package-nodes.js +31 -0
  573. package/src/plugins/js/utils/config.d.ts +2 -0
  574. package/src/plugins/js/utils/config.js +68 -0
  575. package/src/plugins/js/utils/register.d.ts +152 -0
  576. package/src/plugins/js/utils/register.js +343 -0
  577. package/src/plugins/js/utils/resolve-relative-to-dir.d.ts +5 -0
  578. package/src/plugins/js/utils/resolve-relative-to-dir.js +17 -0
  579. package/src/plugins/js/utils/typescript.d.ts +14 -0
  580. package/src/plugins/js/utils/typescript.js +97 -0
  581. package/src/plugins/js/versions.d.ts +1 -0
  582. package/src/plugins/js/versions.js +4 -0
  583. package/src/plugins/package-json/create-nodes.d.ts +20 -0
  584. package/src/plugins/package-json/create-nodes.js +187 -0
  585. package/src/plugins/package-json/index.d.ts +2 -0
  586. package/src/plugins/package-json/index.js +6 -0
  587. package/src/plugins/project-json/build-nodes/project-json.d.ts +6 -0
  588. package/src/plugins/project-json/build-nodes/project-json.js +45 -0
  589. package/src/project-graph/affected/affected-project-graph-models.d.ts +11 -0
  590. package/src/project-graph/affected/affected-project-graph-models.js +2 -0
  591. package/src/project-graph/affected/affected-project-graph.d.ts +4 -0
  592. package/src/project-graph/affected/affected-project-graph.js +82 -0
  593. package/src/project-graph/affected/locators/project-glob-changes.d.ts +2 -0
  594. package/src/project-graph/affected/locators/project-glob-changes.js +31 -0
  595. package/src/project-graph/affected/locators/workspace-json-changes.d.ts +4 -0
  596. package/src/project-graph/affected/locators/workspace-json-changes.js +47 -0
  597. package/src/project-graph/affected/locators/workspace-projects.d.ts +3 -0
  598. package/src/project-graph/affected/locators/workspace-projects.js +74 -0
  599. package/src/project-graph/build-project-graph.d.ts +22 -0
  600. package/src/project-graph/build-project-graph.js +292 -0
  601. package/src/project-graph/error-types.d.ts +135 -0
  602. package/src/project-graph/error-types.js +305 -0
  603. package/src/project-graph/file-map-utils.d.ts +15 -0
  604. package/src/project-graph/file-map-utils.js +55 -0
  605. package/src/project-graph/file-utils.d.ts +30 -0
  606. package/src/project-graph/file-utils.js +179 -0
  607. package/src/project-graph/nx-deps-cache.d.ts +48 -0
  608. package/src/project-graph/nx-deps-cache.js +227 -0
  609. package/src/project-graph/operators.d.ts +12 -0
  610. package/src/project-graph/operators.js +114 -0
  611. package/src/project-graph/plugins/index.d.ts +3 -0
  612. package/src/project-graph/plugins/index.js +10 -0
  613. package/src/project-graph/plugins/internal-api.d.ts +29 -0
  614. package/src/project-graph/plugins/internal-api.js +134 -0
  615. package/src/project-graph/plugins/isolation/index.d.ts +3 -0
  616. package/src/project-graph/plugins/isolation/index.js +14 -0
  617. package/src/project-graph/plugins/isolation/messaging.d.ts +125 -0
  618. package/src/project-graph/plugins/isolation/messaging.js +46 -0
  619. package/src/project-graph/plugins/isolation/plugin-pool.d.ts +3 -0
  620. package/src/project-graph/plugins/isolation/plugin-pool.js +301 -0
  621. package/src/project-graph/plugins/isolation/plugin-worker.d.ts +1 -0
  622. package/src/project-graph/plugins/isolation/plugin-worker.js +158 -0
  623. package/src/project-graph/plugins/loader.d.ts +24 -0
  624. package/src/project-graph/plugins/loader.js +220 -0
  625. package/src/project-graph/plugins/public-api.d.ts +130 -0
  626. package/src/project-graph/plugins/public-api.js +4 -0
  627. package/src/project-graph/plugins/utils.d.ts +8 -0
  628. package/src/project-graph/plugins/utils.js +63 -0
  629. package/src/project-graph/project-graph-builder.d.ts +133 -0
  630. package/src/project-graph/project-graph-builder.js +379 -0
  631. package/src/project-graph/project-graph.d.ts +51 -0
  632. package/src/project-graph/project-graph.js +261 -0
  633. package/src/project-graph/utils/build-all-workspace-files.d.ts +2 -0
  634. package/src/project-graph/utils/build-all-workspace-files.js +14 -0
  635. package/src/project-graph/utils/find-project-for-path.d.ts +20 -0
  636. package/src/project-graph/utils/find-project-for-path.js +55 -0
  637. package/src/project-graph/utils/implicit-project-dependencies.d.ts +3 -0
  638. package/src/project-graph/utils/implicit-project-dependencies.js +18 -0
  639. package/src/project-graph/utils/normalize-project-nodes.d.ts +6 -0
  640. package/src/project-graph/utils/normalize-project-nodes.js +88 -0
  641. package/src/project-graph/utils/project-configuration-utils.d.ts +74 -0
  642. package/src/project-graph/utils/project-configuration-utils.js +781 -0
  643. package/src/project-graph/utils/retrieve-workspace-files.d.ts +30 -0
  644. package/src/project-graph/utils/retrieve-workspace-files.js +88 -0
  645. package/src/tasks-runner/batch/batch-messages.d.ts +33 -0
  646. package/src/tasks-runner/batch/batch-messages.js +9 -0
  647. package/src/tasks-runner/batch/run-batch.d.ts +1 -0
  648. package/src/tasks-runner/batch/run-batch.js +77 -0
  649. package/src/tasks-runner/cache.d.ts +64 -0
  650. package/src/tasks-runner/cache.js +399 -0
  651. package/src/tasks-runner/create-task-graph.d.ts +28 -0
  652. package/src/tasks-runner/create-task-graph.js +242 -0
  653. package/src/tasks-runner/default-tasks-runner.d.ts +26 -0
  654. package/src/tasks-runner/default-tasks-runner.js +62 -0
  655. package/src/tasks-runner/fork.d.ts +1 -0
  656. package/src/tasks-runner/fork.js +30 -0
  657. package/src/tasks-runner/forked-process-task-runner.d.ts +42 -0
  658. package/src/tasks-runner/forked-process-task-runner.js +405 -0
  659. package/src/tasks-runner/init-tasks-runner.d.ts +13 -0
  660. package/src/tasks-runner/init-tasks-runner.js +61 -0
  661. package/src/tasks-runner/life-cycle.d.ts +43 -0
  662. package/src/tasks-runner/life-cycle.js +71 -0
  663. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +25 -0
  664. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +353 -0
  665. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.d.ts +24 -0
  666. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +228 -0
  667. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.d.ts +5 -0
  668. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js +16 -0
  669. package/src/tasks-runner/life-cycles/formatting-utils.d.ts +3 -0
  670. package/src/tasks-runner/life-cycles/formatting-utils.js +55 -0
  671. package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.d.ts +13 -0
  672. package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.js +67 -0
  673. package/src/tasks-runner/life-cycles/pretty-time.d.ts +4 -0
  674. package/src/tasks-runner/life-cycles/pretty-time.js +73 -0
  675. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.d.ts +29 -0
  676. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +106 -0
  677. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +28 -0
  678. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +97 -0
  679. package/src/tasks-runner/life-cycles/store-run-information-life-cycle.d.ts +17 -0
  680. package/src/tasks-runner/life-cycles/store-run-information-life-cycle.js +87 -0
  681. package/src/tasks-runner/life-cycles/task-history-life-cycle-old.d.ts +9 -0
  682. package/src/tasks-runner/life-cycles/task-history-life-cycle-old.js +54 -0
  683. package/src/tasks-runner/life-cycles/task-history-life-cycle.d.ts +10 -0
  684. package/src/tasks-runner/life-cycles/task-history-life-cycle.js +55 -0
  685. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.d.ts +14 -0
  686. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js +73 -0
  687. package/src/tasks-runner/life-cycles/task-results-life-cycle.d.ts +6 -0
  688. package/src/tasks-runner/life-cycles/task-results-life-cycle.js +17 -0
  689. package/src/tasks-runner/life-cycles/task-timings-life-cycle.d.ts +8 -0
  690. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js +39 -0
  691. package/src/tasks-runner/life-cycles/view-logs-utils.d.ts +1 -0
  692. package/src/tasks-runner/life-cycles/view-logs-utils.js +15 -0
  693. package/src/tasks-runner/pseudo-ipc.d.ts +48 -0
  694. package/src/tasks-runner/pseudo-ipc.js +140 -0
  695. package/src/tasks-runner/pseudo-terminal.d.ts +45 -0
  696. package/src/tasks-runner/pseudo-terminal.js +168 -0
  697. package/src/tasks-runner/remove-old-cache-records.d.ts +1 -0
  698. package/src/tasks-runner/remove-old-cache-records.js +60 -0
  699. package/src/tasks-runner/run-command.d.ts +38 -0
  700. package/src/tasks-runner/run-command.js +590 -0
  701. package/src/tasks-runner/task-env.d.ts +20 -0
  702. package/src/tasks-runner/task-env.js +171 -0
  703. package/src/tasks-runner/task-graph-utils.d.ts +10 -0
  704. package/src/tasks-runner/task-graph-utils.js +88 -0
  705. package/src/tasks-runner/task-orchestrator.d.ts +53 -0
  706. package/src/tasks-runner/task-orchestrator.js +458 -0
  707. package/src/tasks-runner/tasks-runner.d.ts +23 -0
  708. package/src/tasks-runner/tasks-runner.js +2 -0
  709. package/src/tasks-runner/tasks-schedule.d.ts +41 -0
  710. package/src/tasks-runner/tasks-schedule.js +192 -0
  711. package/src/tasks-runner/utils.d.ts +57 -0
  712. package/src/tasks-runner/utils.js +392 -0
  713. package/src/utils/ab-testing.d.ts +51 -0
  714. package/src/utils/ab-testing.js +112 -0
  715. package/src/utils/all-file-data.d.ts +2 -0
  716. package/src/utils/all-file-data.js +8 -0
  717. package/src/utils/app-root.d.ts +8 -0
  718. package/src/utils/app-root.js +12 -0
  719. package/src/utils/assert-workspace-validity.d.ts +3 -0
  720. package/src/utils/assert-workspace-validity.js +84 -0
  721. package/src/utils/async-iterator.d.ts +2 -0
  722. package/src/utils/async-iterator.js +18 -0
  723. package/src/utils/cache-directory.d.ts +7 -0
  724. package/src/utils/cache-directory.js +71 -0
  725. package/src/utils/child-process.d.ts +18 -0
  726. package/src/utils/child-process.js +119 -0
  727. package/src/utils/chunkify.d.ts +11 -0
  728. package/src/utils/chunkify.js +44 -0
  729. package/src/utils/code-frames.d.ts +14 -0
  730. package/src/utils/code-frames.js +118 -0
  731. package/src/utils/collapse-expanded-outputs.d.ts +1 -0
  732. package/src/utils/collapse-expanded-outputs.js +40 -0
  733. package/src/utils/command-line-utils.d.ts +54 -0
  734. package/src/utils/command-line-utils.js +267 -0
  735. package/src/utils/consume-messages-from-socket.d.ts +1 -0
  736. package/src/utils/consume-messages-from-socket.js +21 -0
  737. package/src/utils/db-connection.d.ts +5 -0
  738. package/src/utils/db-connection.js +22 -0
  739. package/src/utils/default-base.d.ts +1 -0
  740. package/src/utils/default-base.js +17 -0
  741. package/src/utils/dotenv.d.ts +7 -0
  742. package/src/utils/dotenv.js +21 -0
  743. package/src/utils/exit-codes.d.ts +5 -0
  744. package/src/utils/exit-codes.js +19 -0
  745. package/src/utils/fileutils.d.ts +75 -0
  746. package/src/utils/fileutils.js +151 -0
  747. package/src/utils/find-matching-projects.d.ts +10 -0
  748. package/src/utils/find-matching-projects.js +210 -0
  749. package/src/utils/find-workspace-root.d.ts +11 -0
  750. package/src/utils/find-workspace-root.js +33 -0
  751. package/src/utils/get-package-name-from-import-path.d.ts +1 -0
  752. package/src/utils/get-package-name-from-import-path.js +17 -0
  753. package/src/utils/git-utils.d.ts +41 -0
  754. package/src/utils/git-utils.index-filter.d.ts +0 -0
  755. package/src/utils/git-utils.index-filter.js +21 -0
  756. package/src/utils/git-utils.js +259 -0
  757. package/src/utils/git-utils.tree-filter.d.ts +11 -0
  758. package/src/utils/git-utils.tree-filter.js +45 -0
  759. package/src/utils/globs.d.ts +3 -0
  760. package/src/utils/globs.js +18 -0
  761. package/src/utils/handle-errors.d.ts +1 -0
  762. package/src/utils/handle-errors.js +71 -0
  763. package/src/utils/ignore.d.ts +8 -0
  764. package/src/utils/ignore.js +75 -0
  765. package/src/utils/installation-directory.d.ts +2 -0
  766. package/src/utils/installation-directory.js +12 -0
  767. package/src/utils/is-ci.d.ts +1 -0
  768. package/src/utils/is-ci.js +20 -0
  769. package/src/utils/json-diff.d.ts +18 -0
  770. package/src/utils/json-diff.js +112 -0
  771. package/src/utils/json.d.ts +44 -0
  772. package/src/utils/json.js +62 -0
  773. package/src/utils/legacy-task-history.d.ts +8 -0
  774. package/src/utils/legacy-task-history.js +87 -0
  775. package/src/utils/logger.d.ts +12 -0
  776. package/src/utils/logger.js +52 -0
  777. package/src/utils/nx-cloud-utils.d.ts +3 -0
  778. package/src/utils/nx-cloud-utils.js +18 -0
  779. package/src/utils/nx-plugin.deprecated.d.ts +31 -0
  780. package/src/utils/nx-plugin.deprecated.js +20 -0
  781. package/src/utils/object-sort.d.ts +1 -0
  782. package/src/utils/object-sort.js +9 -0
  783. package/src/utils/output.d.ts +71 -0
  784. package/src/utils/output.js +240 -0
  785. package/src/utils/package-json.d.ts +103 -0
  786. package/src/utils/package-json.js +173 -0
  787. package/src/utils/package-manager.d.ts +100 -0
  788. package/src/utils/package-manager.js +404 -0
  789. package/src/utils/params.d.ts +137 -0
  790. package/src/utils/params.js +664 -0
  791. package/src/utils/path.d.ts +19 -0
  792. package/src/utils/path.js +37 -0
  793. package/src/utils/perf-logging.d.ts +1 -0
  794. package/src/utils/perf-logging.js +13 -0
  795. package/src/utils/plugins/core-plugins.d.ts +6 -0
  796. package/src/utils/plugins/core-plugins.js +109 -0
  797. package/src/utils/plugins/index.d.ts +4 -0
  798. package/src/utils/plugins/index.js +13 -0
  799. package/src/utils/plugins/installed-plugins.d.ts +5 -0
  800. package/src/utils/plugins/installed-plugins.js +76 -0
  801. package/src/utils/plugins/local-plugins.d.ts +4 -0
  802. package/src/utils/plugins/local-plugins.js +30 -0
  803. package/src/utils/plugins/output.d.ts +6 -0
  804. package/src/utils/plugins/output.js +111 -0
  805. package/src/utils/plugins/plugin-capabilities.d.ts +14 -0
  806. package/src/utils/plugins/plugin-capabilities.js +77 -0
  807. package/src/utils/powerpack.d.ts +5 -0
  808. package/src/utils/powerpack.js +33 -0
  809. package/src/utils/print-help.d.ts +11 -0
  810. package/src/utils/print-help.js +264 -0
  811. package/src/utils/project-graph-utils.d.ts +13 -0
  812. package/src/utils/project-graph-utils.js +73 -0
  813. package/src/utils/promised-based-queue.d.ts +6 -0
  814. package/src/utils/promised-based-queue.js +43 -0
  815. package/src/utils/serializable-error.d.ts +4 -0
  816. package/src/utils/serializable-error.js +33 -0
  817. package/src/utils/serialize-overrides-into-command-line.d.ts +3 -0
  818. package/src/utils/serialize-overrides-into-command-line.js +42 -0
  819. package/src/utils/serialize-target.d.ts +1 -0
  820. package/src/utils/serialize-target.js +6 -0
  821. package/src/utils/split-target.d.ts +3 -0
  822. package/src/utils/split-target.js +48 -0
  823. package/src/utils/strip-indents.d.ts +14 -0
  824. package/src/utils/strip-indents.js +23 -0
  825. package/src/utils/sync-generators.d.ts +64 -0
  826. package/src/utils/sync-generators.js +353 -0
  827. package/src/utils/task-history.d.ts +17 -0
  828. package/src/utils/task-history.js +51 -0
  829. package/src/utils/update-nxw.d.ts +2 -0
  830. package/src/utils/update-nxw.js +11 -0
  831. package/src/utils/versions.d.ts +1 -0
  832. package/src/utils/versions.js +4 -0
  833. package/src/utils/workspace-configuration-check.d.ts +1 -0
  834. package/src/utils/workspace-configuration-check.js +36 -0
  835. package/src/utils/workspace-context.d.ts +19 -0
  836. package/src/utils/workspace-context.js +103 -0
  837. package/src/utils/workspace-root.d.ts +6 -0
  838. package/src/utils/workspace-root.js +39 -0
  839. package/tasks-runners/default.d.ts +1 -0
  840. package/tasks-runners/default.js +5 -0
@@ -0,0 +1,864 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultCreateReleaseProvider = exports.IMPLICIT_DEFAULT_RELEASE_GROUP = void 0;
4
+ exports.createNxReleaseConfig = createNxReleaseConfig;
5
+ exports.handleNxReleaseConfigError = handleNxReleaseConfigError;
6
+ /**
7
+ * `nx release` is a powerful feature which spans many possible use cases. The possible variations
8
+ * of configuration are therefore quite complex, particularly when you consider release groups.
9
+ *
10
+ * We want to provide the best possible DX for users so that they can harness the power of `nx release`
11
+ * most effectively, therefore we need to both provide sensible defaults for common scenarios (to avoid
12
+ * verbose nx.json files wherever possible), and proactively handle potential sources of config issues
13
+ * in more complex use-cases.
14
+ *
15
+ * This file is the source of truth for all `nx release` configuration reconciliation, including sensible
16
+ * defaults and user overrides, as well as handling common errors, up front to produce a single, consistent,
17
+ * and easy to consume config object for all the `nx release` command implementations.
18
+ */
19
+ const node_path_1 = require("node:path");
20
+ const node_url_1 = require("node:url");
21
+ const fileutils_1 = require("../../../utils/fileutils");
22
+ const find_matching_projects_1 = require("../../../utils/find-matching-projects");
23
+ const output_1 = require("../../../utils/output");
24
+ const workspace_root_1 = require("../../../utils/workspace-root");
25
+ const path_1 = require("../../../utils/path");
26
+ const resolve_changelog_renderer_1 = require("../utils/resolve-changelog-renderer");
27
+ const resolve_nx_json_error_message_1 = require("../utils/resolve-nx-json-error-message");
28
+ const conventional_commits_1 = require("./conventional-commits");
29
+ exports.IMPLICIT_DEFAULT_RELEASE_GROUP = '__default__';
30
+ // Apply default configuration to any optional user configuration and handle known errors
31
+ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig = {}) {
32
+ if (userConfig.projects && userConfig.groups) {
33
+ return {
34
+ error: {
35
+ code: 'PROJECTS_AND_GROUPS_DEFINED',
36
+ data: {},
37
+ },
38
+ nxReleaseConfig: null,
39
+ };
40
+ }
41
+ if (hasInvalidGitConfig(userConfig)) {
42
+ return {
43
+ error: {
44
+ code: 'GLOBAL_GIT_CONFIG_MIXED_WITH_GRANULAR_GIT_CONFIG',
45
+ data: {},
46
+ },
47
+ nxReleaseConfig: null,
48
+ };
49
+ }
50
+ if (hasInvalidConventionalCommitsConfig(userConfig)) {
51
+ return {
52
+ error: {
53
+ code: 'CONVENTIONAL_COMMITS_SHORTHAND_MIXED_WITH_OVERLAPPING_GENERATOR_OPTIONS',
54
+ data: {},
55
+ },
56
+ nxReleaseConfig: null,
57
+ };
58
+ }
59
+ const gitDefaults = {
60
+ commit: false,
61
+ commitMessage: 'chore(release): publish {version}',
62
+ commitArgs: '',
63
+ tag: false,
64
+ tagMessage: '',
65
+ tagArgs: '',
66
+ stageChanges: false,
67
+ };
68
+ const versionGitDefaults = {
69
+ ...gitDefaults,
70
+ stageChanges: true,
71
+ };
72
+ const changelogGitDefaults = {
73
+ ...gitDefaults,
74
+ commit: true,
75
+ tag: true,
76
+ };
77
+ const defaultFixedReleaseTagPattern = 'v{version}';
78
+ /**
79
+ * TODO: in v20, make it so that this pattern is used by default when any custom groups are used
80
+ */
81
+ const defaultFixedGroupReleaseTagPattern = '{releaseGroupName}-v{version}';
82
+ const defaultIndependentReleaseTagPattern = '{projectName}@{version}';
83
+ const workspaceProjectsRelationship = userConfig.projectsRelationship || 'fixed';
84
+ const defaultGeneratorOptions = {};
85
+ if (userConfig.version?.conventionalCommits) {
86
+ defaultGeneratorOptions.currentVersionResolver = 'git-tag';
87
+ defaultGeneratorOptions.specifierSource = 'conventional-commits';
88
+ }
89
+ if (userConfig.versionPlans) {
90
+ defaultGeneratorOptions.specifierSource = 'version-plans';
91
+ }
92
+ const userGroups = Object.values(userConfig.groups ?? {});
93
+ const disableWorkspaceChangelog = userGroups.length > 1 ||
94
+ (userGroups.length === 1 &&
95
+ userGroups[0].projectsRelationship === 'independent') ||
96
+ (userConfig.projectsRelationship === 'independent' &&
97
+ !userGroups.some((g) => g.projectsRelationship === 'fixed'));
98
+ const defaultRendererPath = (0, node_path_1.join)(__dirname, '../../../../release/changelog-renderer');
99
+ const WORKSPACE_DEFAULTS = {
100
+ // By default all projects in all groups are released together
101
+ projectsRelationship: workspaceProjectsRelationship,
102
+ git: gitDefaults,
103
+ version: {
104
+ git: versionGitDefaults,
105
+ conventionalCommits: userConfig.version?.conventionalCommits || false,
106
+ generator: '@nx/js:release-version',
107
+ generatorOptions: defaultGeneratorOptions,
108
+ preVersionCommand: userConfig.version?.preVersionCommand || '',
109
+ },
110
+ changelog: {
111
+ git: changelogGitDefaults,
112
+ workspaceChangelog: disableWorkspaceChangelog
113
+ ? false
114
+ : {
115
+ createRelease: false,
116
+ entryWhenNoChanges: 'This was a version bump only, there were no code changes.',
117
+ file: '{workspaceRoot}/CHANGELOG.md',
118
+ renderer: defaultRendererPath,
119
+ renderOptions: {
120
+ authors: true,
121
+ mapAuthorsToGitHubUsernames: true,
122
+ commitReferences: true,
123
+ versionTitleDate: true,
124
+ },
125
+ },
126
+ // For projectChangelogs if the user has set any changelog config at all, then use one set of defaults, otherwise default to false for the whole feature
127
+ projectChangelogs: userConfig.changelog?.projectChangelogs
128
+ ? {
129
+ createRelease: false,
130
+ file: '{projectRoot}/CHANGELOG.md',
131
+ entryWhenNoChanges: 'This was a version bump only for {projectName} to align it with other projects, there were no code changes.',
132
+ renderer: defaultRendererPath,
133
+ renderOptions: {
134
+ authors: true,
135
+ mapAuthorsToGitHubUsernames: true,
136
+ commitReferences: true,
137
+ versionTitleDate: true,
138
+ },
139
+ }
140
+ : false,
141
+ automaticFromRef: false,
142
+ },
143
+ releaseTagPattern: userConfig.releaseTagPattern ||
144
+ // The appropriate default releaseTagPattern is dependent upon the projectRelationships
145
+ (workspaceProjectsRelationship === 'independent'
146
+ ? defaultIndependentReleaseTagPattern
147
+ : defaultFixedReleaseTagPattern),
148
+ conventionalCommits: conventional_commits_1.DEFAULT_CONVENTIONAL_COMMITS_CONFIG,
149
+ versionPlans: (userConfig.versionPlans ||
150
+ false),
151
+ };
152
+ const groupProjectsRelationship = userConfig.projectsRelationship || WORKSPACE_DEFAULTS.projectsRelationship;
153
+ const GROUP_DEFAULTS = {
154
+ projectsRelationship: groupProjectsRelationship,
155
+ version: {
156
+ conventionalCommits: false,
157
+ generator: '@nx/js:release-version',
158
+ generatorOptions: {},
159
+ groupPreVersionCommand: '',
160
+ },
161
+ changelog: {
162
+ createRelease: false,
163
+ entryWhenNoChanges: 'This was a version bump only for {projectName} to align it with other projects, there were no code changes.',
164
+ file: '{projectRoot}/CHANGELOG.md',
165
+ renderer: defaultRendererPath,
166
+ renderOptions: {
167
+ authors: true,
168
+ mapAuthorsToGitHubUsernames: true,
169
+ commitReferences: true,
170
+ versionTitleDate: true,
171
+ },
172
+ },
173
+ releaseTagPattern:
174
+ // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
175
+ groupProjectsRelationship === 'independent'
176
+ ? defaultIndependentReleaseTagPattern
177
+ : WORKSPACE_DEFAULTS.releaseTagPattern,
178
+ versionPlans: false,
179
+ };
180
+ /**
181
+ * We first process root level config and apply defaults, so that we know how to handle the group level
182
+ * overrides, if applicable.
183
+ */
184
+ const rootGitConfig = deepMergeDefaults([WORKSPACE_DEFAULTS.git], userConfig.git);
185
+ const rootVersionConfig = deepMergeDefaults([
186
+ WORKSPACE_DEFAULTS.version,
187
+ // Merge in the git defaults from the top level
188
+ { git: versionGitDefaults },
189
+ {
190
+ git: userConfig.git,
191
+ },
192
+ ], userConfig.version);
193
+ if (userConfig.changelog?.workspaceChangelog) {
194
+ userConfig.changelog.workspaceChangelog = normalizeTrueToEmptyObject(userConfig.changelog.workspaceChangelog);
195
+ }
196
+ if (userConfig.changelog?.projectChangelogs) {
197
+ userConfig.changelog.projectChangelogs = normalizeTrueToEmptyObject(userConfig.changelog.projectChangelogs);
198
+ }
199
+ const rootChangelogConfig = deepMergeDefaults([
200
+ WORKSPACE_DEFAULTS.changelog,
201
+ // Merge in the git defaults from the top level
202
+ { git: changelogGitDefaults },
203
+ {
204
+ git: userConfig.git,
205
+ },
206
+ ], normalizeTrueToEmptyObject(userConfig.changelog));
207
+ const rootVersionPlansConfig = (userConfig.versionPlans ??
208
+ WORKSPACE_DEFAULTS.versionPlans);
209
+ const rootConventionalCommitsConfig = deepMergeDefaults([WORKSPACE_DEFAULTS.conventionalCommits], fillUnspecifiedConventionalCommitsProperties(normalizeConventionalCommitsConfig(userConfig.conventionalCommits)));
210
+ // these options are not supported at the group level, only the root/command level
211
+ const rootVersionWithoutGlobalOptions = {
212
+ ...rootVersionConfig,
213
+ };
214
+ delete rootVersionWithoutGlobalOptions.git;
215
+ delete rootVersionWithoutGlobalOptions.preVersionCommand;
216
+ // Apply conventionalCommits shorthand to the final group defaults if explicitly configured in the original user config
217
+ if (userConfig.version?.conventionalCommits === true) {
218
+ rootVersionWithoutGlobalOptions.generatorOptions = {
219
+ ...rootVersionWithoutGlobalOptions.generatorOptions,
220
+ currentVersionResolver: 'git-tag',
221
+ specifierSource: 'conventional-commits',
222
+ };
223
+ }
224
+ if (userConfig.version?.conventionalCommits === false) {
225
+ delete rootVersionWithoutGlobalOptions.generatorOptions
226
+ .currentVersionResolver;
227
+ delete rootVersionWithoutGlobalOptions.generatorOptions.specifierSource;
228
+ }
229
+ // Apply versionPlans shorthand to the final group defaults if explicitly configured in the original user config
230
+ if (userConfig.versionPlans) {
231
+ rootVersionWithoutGlobalOptions.generatorOptions = {
232
+ ...rootVersionWithoutGlobalOptions.generatorOptions,
233
+ specifierSource: 'version-plans',
234
+ };
235
+ }
236
+ if (userConfig.versionPlans === false) {
237
+ delete rootVersionWithoutGlobalOptions.generatorOptions.specifierSource;
238
+ }
239
+ const groups = userConfig.groups && Object.keys(userConfig.groups).length
240
+ ? ensureProjectsConfigIsArray(userConfig.groups)
241
+ : /**
242
+ * No user specified release groups, so we treat all projects (or any any user-defined subset via the top level "projects" property)
243
+ * as being in one release group together in which the projects are released in lock step.
244
+ */
245
+ {
246
+ [exports.IMPLICIT_DEFAULT_RELEASE_GROUP]: {
247
+ projectsRelationship: GROUP_DEFAULTS.projectsRelationship,
248
+ projects: userConfig.projects
249
+ ? // user-defined top level "projects" config takes priority if set
250
+ (0, find_matching_projects_1.findMatchingProjects)(ensureArray(userConfig.projects), projectGraph.nodes)
251
+ : await getDefaultProjects(projectGraph, projectFileMap),
252
+ /**
253
+ * For properties which are overriding config at the root, we use the root level config as the
254
+ * default values to merge with so that the group that matches a specific project will always
255
+ * be the valid source of truth for that type of config.
256
+ */
257
+ version: deepMergeDefaults([GROUP_DEFAULTS.version], rootVersionWithoutGlobalOptions),
258
+ // If the user has set something custom for releaseTagPattern at the top level, respect it for the implicit default group
259
+ releaseTagPattern: userConfig.releaseTagPattern || GROUP_DEFAULTS.releaseTagPattern,
260
+ // Directly inherit the root level config for projectChangelogs, if set
261
+ changelog: rootChangelogConfig.projectChangelogs || false,
262
+ versionPlans: rootVersionPlansConfig || GROUP_DEFAULTS.versionPlans,
263
+ },
264
+ };
265
+ /**
266
+ * Resolve all the project names into their release groups, and check
267
+ * that individual projects are not found in multiple groups.
268
+ */
269
+ const releaseGroups = {};
270
+ const alreadyMatchedProjects = new Set();
271
+ for (const [releaseGroupName, releaseGroup] of Object.entries(groups)) {
272
+ // Ensure that the config for the release group can resolve at least one project
273
+ const matchingProjects = (0, find_matching_projects_1.findMatchingProjects)(releaseGroup.projects, projectGraph.nodes);
274
+ if (!matchingProjects.length) {
275
+ return {
276
+ error: {
277
+ code: 'RELEASE_GROUP_MATCHES_NO_PROJECTS',
278
+ data: {
279
+ releaseGroupName: releaseGroupName,
280
+ },
281
+ },
282
+ nxReleaseConfig: null,
283
+ };
284
+ }
285
+ // If provided, ensure release tag pattern is valid
286
+ if (releaseGroup.releaseTagPattern) {
287
+ const error = ensureReleaseGroupReleaseTagPatternIsValid(releaseGroup.releaseTagPattern, releaseGroupName);
288
+ if (error) {
289
+ return {
290
+ error,
291
+ nxReleaseConfig: null,
292
+ };
293
+ }
294
+ }
295
+ for (const project of matchingProjects) {
296
+ if (alreadyMatchedProjects.has(project)) {
297
+ return {
298
+ error: {
299
+ code: 'PROJECT_MATCHES_MULTIPLE_GROUPS',
300
+ data: {
301
+ project,
302
+ },
303
+ },
304
+ nxReleaseConfig: null,
305
+ };
306
+ }
307
+ alreadyMatchedProjects.add(project);
308
+ }
309
+ // First apply any group level defaults, then apply actual root level config (if applicable), then group level config
310
+ const groupChangelogDefaults = [GROUP_DEFAULTS.changelog];
311
+ if (rootChangelogConfig.projectChangelogs) {
312
+ groupChangelogDefaults.push(rootChangelogConfig.projectChangelogs);
313
+ }
314
+ const projectsRelationship = releaseGroup.projectsRelationship || GROUP_DEFAULTS.projectsRelationship;
315
+ if (releaseGroup.changelog) {
316
+ releaseGroup.changelog = normalizeTrueToEmptyObject(releaseGroup.changelog);
317
+ }
318
+ const groupDefaults = {
319
+ projectsRelationship,
320
+ projects: matchingProjects,
321
+ version: deepMergeDefaults(
322
+ // First apply any group level defaults, then apply actual root level config, then group level config
323
+ [
324
+ GROUP_DEFAULTS.version,
325
+ { ...rootVersionWithoutGlobalOptions, groupPreVersionCommand: '' },
326
+ ], releaseGroup.version),
327
+ // If the user has set any changelog config at all, including at the root level, then use one set of defaults, otherwise default to false for the whole feature
328
+ changelog: releaseGroup.changelog || rootChangelogConfig.projectChangelogs
329
+ ? deepMergeDefaults(groupChangelogDefaults, releaseGroup.changelog || {})
330
+ : false,
331
+ releaseTagPattern: releaseGroup.releaseTagPattern ||
332
+ // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
333
+ (projectsRelationship === 'independent'
334
+ ? defaultIndependentReleaseTagPattern
335
+ : userConfig.releaseTagPattern || defaultFixedReleaseTagPattern),
336
+ versionPlans: releaseGroup.versionPlans ?? rootVersionPlansConfig,
337
+ };
338
+ const finalReleaseGroup = deepMergeDefaults([groupDefaults], {
339
+ ...releaseGroup,
340
+ // Ensure that the resolved project names take priority over the original user config (which could have contained unresolved globs etc)
341
+ projects: matchingProjects,
342
+ });
343
+ // Apply conventionalCommits shorthand to the final group if explicitly configured in the original group
344
+ if (releaseGroup.version?.conventionalCommits === true) {
345
+ finalReleaseGroup.version.generatorOptions = {
346
+ ...finalReleaseGroup.version.generatorOptions,
347
+ currentVersionResolver: 'git-tag',
348
+ specifierSource: 'conventional-commits',
349
+ };
350
+ }
351
+ if (releaseGroup.version?.conventionalCommits === false &&
352
+ releaseGroupName !== exports.IMPLICIT_DEFAULT_RELEASE_GROUP) {
353
+ delete finalReleaseGroup.version.generatorOptions.currentVersionResolver;
354
+ delete finalReleaseGroup.version.generatorOptions.specifierSource;
355
+ }
356
+ // Apply versionPlans shorthand to the final group if explicitly configured in the original group
357
+ if (releaseGroup.versionPlans) {
358
+ finalReleaseGroup.version = {
359
+ ...finalReleaseGroup.version,
360
+ generatorOptions: {
361
+ ...finalReleaseGroup.version?.generatorOptions,
362
+ specifierSource: 'version-plans',
363
+ },
364
+ };
365
+ }
366
+ if (releaseGroup.versionPlans === false &&
367
+ releaseGroupName !== exports.IMPLICIT_DEFAULT_RELEASE_GROUP) {
368
+ delete finalReleaseGroup.version.generatorOptions.specifierSource;
369
+ }
370
+ releaseGroups[releaseGroupName] = finalReleaseGroup;
371
+ }
372
+ const configError = validateChangelogConfig(releaseGroups, rootChangelogConfig);
373
+ if (configError) {
374
+ return {
375
+ error: configError,
376
+ nxReleaseConfig: null,
377
+ };
378
+ }
379
+ return {
380
+ error: null,
381
+ nxReleaseConfig: {
382
+ projectsRelationship: WORKSPACE_DEFAULTS.projectsRelationship,
383
+ releaseTagPattern: WORKSPACE_DEFAULTS.releaseTagPattern,
384
+ git: rootGitConfig,
385
+ version: rootVersionConfig,
386
+ changelog: rootChangelogConfig,
387
+ groups: releaseGroups,
388
+ conventionalCommits: rootConventionalCommitsConfig,
389
+ versionPlans: rootVersionPlansConfig,
390
+ },
391
+ };
392
+ }
393
+ /**
394
+ * In some cases it is much cleaner and more intuitive for the user to be able to
395
+ * specify `true` in their config when they want to use the default config for a
396
+ * particular property, rather than having to specify an empty object.
397
+ */
398
+ function normalizeTrueToEmptyObject(value) {
399
+ return value === true ? {} : value;
400
+ }
401
+ function normalizeConventionalCommitsConfig(userConventionalCommitsConfig) {
402
+ if (!userConventionalCommitsConfig || !userConventionalCommitsConfig.types) {
403
+ return userConventionalCommitsConfig;
404
+ }
405
+ const types = {};
406
+ for (const [t, typeConfig] of Object.entries(userConventionalCommitsConfig.types)) {
407
+ if (typeConfig === false) {
408
+ types[t] = {
409
+ semverBump: 'none',
410
+ changelog: {
411
+ hidden: true,
412
+ },
413
+ };
414
+ continue;
415
+ }
416
+ if (typeConfig === true) {
417
+ types[t] = {};
418
+ continue;
419
+ }
420
+ if (typeConfig.changelog === false) {
421
+ types[t] = {
422
+ ...typeConfig,
423
+ changelog: {
424
+ hidden: true,
425
+ },
426
+ };
427
+ continue;
428
+ }
429
+ if (typeConfig.changelog === true) {
430
+ types[t] = {
431
+ ...typeConfig,
432
+ changelog: {},
433
+ };
434
+ continue;
435
+ }
436
+ types[t] = typeConfig;
437
+ }
438
+ return {
439
+ ...userConventionalCommitsConfig,
440
+ types,
441
+ };
442
+ }
443
+ /**
444
+ * New, custom types specified by users will not be given the appropriate
445
+ * defaults with `deepMergeDefaults`, so we need to fill in the gaps here.
446
+ */
447
+ function fillUnspecifiedConventionalCommitsProperties(config) {
448
+ if (!config || !config.types) {
449
+ return config;
450
+ }
451
+ const types = {};
452
+ for (const [t, typeConfig] of Object.entries(config.types)) {
453
+ const defaultTypeConfig = conventional_commits_1.DEFAULT_CONVENTIONAL_COMMITS_CONFIG.types[t];
454
+ const semverBump = typeConfig.semverBump ||
455
+ // preserve our default semver bump if it's not 'none'
456
+ // this prevents a 'feat' from becoming a 'patch' just
457
+ // because they modified the changelog config for 'feat'
458
+ (defaultTypeConfig?.semverBump !== 'none' &&
459
+ defaultTypeConfig?.semverBump) ||
460
+ 'patch';
461
+ // don't preserve our default behavior for hidden, ever.
462
+ // we should assume that if users are explicitly enabling a
463
+ // type, then they intend it to be visible in the changelog
464
+ const hidden = typeConfig.changelog?.hidden || false;
465
+ const title = typeConfig.changelog?.title ||
466
+ // our default title is better than just the unmodified type name
467
+ defaultTypeConfig?.changelog.title ||
468
+ t;
469
+ types[t] = {
470
+ semverBump,
471
+ changelog: {
472
+ hidden,
473
+ title,
474
+ },
475
+ };
476
+ }
477
+ return {
478
+ ...config,
479
+ types,
480
+ };
481
+ }
482
+ async function handleNxReleaseConfigError(error) {
483
+ switch (error.code) {
484
+ case 'PROJECTS_AND_GROUPS_DEFINED':
485
+ {
486
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
487
+ 'release',
488
+ 'projects',
489
+ ]);
490
+ output_1.output.error({
491
+ title: `"projects" is not valid when explicitly defining release groups, and everything should be expressed within "groups" in that case. If you are using "groups" then you should remove the "projects" property`,
492
+ bodyLines: [nxJsonMessage],
493
+ });
494
+ }
495
+ break;
496
+ case 'RELEASE_GROUP_MATCHES_NO_PROJECTS':
497
+ {
498
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
499
+ 'release',
500
+ 'groups',
501
+ ]);
502
+ output_1.output.error({
503
+ title: `Release group "${error.data.releaseGroupName}" matches no projects. Please ensure all release groups match at least one project:`,
504
+ bodyLines: [nxJsonMessage],
505
+ });
506
+ }
507
+ break;
508
+ case 'PROJECT_MATCHES_MULTIPLE_GROUPS':
509
+ {
510
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
511
+ 'release',
512
+ 'groups',
513
+ ]);
514
+ output_1.output.error({
515
+ title: `Project "${error.data.project}" matches multiple release groups. Please ensure all projects are part of only one release group:`,
516
+ bodyLines: [nxJsonMessage],
517
+ });
518
+ }
519
+ break;
520
+ case 'RELEASE_GROUP_RELEASE_TAG_PATTERN_VERSION_PLACEHOLDER_MISSING_OR_EXCESSIVE':
521
+ {
522
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
523
+ 'release',
524
+ 'groups',
525
+ error.data.releaseGroupName,
526
+ 'releaseTagPattern',
527
+ ]);
528
+ output_1.output.error({
529
+ title: `Release group "${error.data.releaseGroupName}" has an invalid releaseTagPattern. Please ensure the pattern contains exactly one instance of the "{version}" placeholder`,
530
+ bodyLines: [nxJsonMessage],
531
+ });
532
+ }
533
+ break;
534
+ case 'CONVENTIONAL_COMMITS_SHORTHAND_MIXED_WITH_OVERLAPPING_GENERATOR_OPTIONS':
535
+ {
536
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
537
+ 'release',
538
+ ]);
539
+ output_1.output.error({
540
+ title: `You have configured both the shorthand "version.conventionalCommits" and one or more of the related "version.generatorOptions" that it sets for you. Please use one or the other:`,
541
+ bodyLines: [nxJsonMessage],
542
+ });
543
+ }
544
+ break;
545
+ case 'GLOBAL_GIT_CONFIG_MIXED_WITH_GRANULAR_GIT_CONFIG':
546
+ {
547
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
548
+ 'release',
549
+ 'git',
550
+ ]);
551
+ output_1.output.error({
552
+ title: `You have duplicate conflicting git configurations. If you are using the top level 'nx release' command, then remove the 'release.version.git' and 'release.changelog.git' properties in favor of 'release.git'. If you are using the subcommands or the programmatic API, then remove the 'release.git' property in favor of 'release.version.git' and 'release.changelog.git':`,
553
+ bodyLines: [nxJsonMessage],
554
+ });
555
+ }
556
+ break;
557
+ case 'CANNOT_RESOLVE_CHANGELOG_RENDERER': {
558
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)(['release']);
559
+ output_1.output.error({
560
+ title: `There was an error when resolving the configured changelog renderer at path: ${error.data.workspaceRelativePath}`,
561
+ bodyLines: [nxJsonMessage],
562
+ });
563
+ }
564
+ case 'INVALID_CHANGELOG_CREATE_RELEASE_PROVIDER':
565
+ {
566
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
567
+ 'release',
568
+ ]);
569
+ output_1.output.error({
570
+ title: `Your "changelog.createRelease" config specifies an unsupported provider "${error.data.provider}". The supported providers are ${error.data.supportedProviders
571
+ .map((p) => `"${p}"`)
572
+ .join(', ')}`,
573
+ bodyLines: [nxJsonMessage],
574
+ });
575
+ }
576
+ break;
577
+ case 'INVALID_CHANGELOG_CREATE_RELEASE_HOSTNAME':
578
+ {
579
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
580
+ 'release',
581
+ ]);
582
+ output_1.output.error({
583
+ title: `Your "changelog.createRelease" config specifies an invalid hostname "${error.data.hostname}". Please ensure you provide a valid hostname value, such as "example.com"`,
584
+ bodyLines: [nxJsonMessage],
585
+ });
586
+ }
587
+ break;
588
+ case 'INVALID_CHANGELOG_CREATE_RELEASE_API_BASE_URL':
589
+ {
590
+ const nxJsonMessage = await (0, resolve_nx_json_error_message_1.resolveNxJsonConfigErrorMessage)([
591
+ 'release',
592
+ ]);
593
+ output_1.output.error({
594
+ title: `Your "changelog.createRelease" config specifies an invalid apiBaseUrl "${error.data.apiBaseUrl}". Please ensure you provide a valid URL value, such as "https://example.com"`,
595
+ bodyLines: [nxJsonMessage],
596
+ });
597
+ }
598
+ break;
599
+ default:
600
+ throw new Error(`Unhandled error code: ${error.code}`);
601
+ }
602
+ process.exit(1);
603
+ }
604
+ function ensureReleaseGroupReleaseTagPatternIsValid(releaseTagPattern, releaseGroupName) {
605
+ // ensure that any provided releaseTagPattern contains exactly one instance of {version}
606
+ return releaseTagPattern.split('{version}').length === 2
607
+ ? null
608
+ : {
609
+ code: 'RELEASE_GROUP_RELEASE_TAG_PATTERN_VERSION_PLACEHOLDER_MISSING_OR_EXCESSIVE',
610
+ data: {
611
+ releaseGroupName,
612
+ },
613
+ };
614
+ }
615
+ function ensureProjectsConfigIsArray(groups) {
616
+ const result = {};
617
+ for (const [groupName, groupConfig] of Object.entries(groups)) {
618
+ result[groupName] = {
619
+ ...groupConfig,
620
+ projects: ensureArray(groupConfig.projects),
621
+ };
622
+ }
623
+ return result;
624
+ }
625
+ function ensureArray(value) {
626
+ return Array.isArray(value) ? value : [value];
627
+ }
628
+ function isObject(value) {
629
+ return value && typeof value === 'object' && !Array.isArray(value);
630
+ }
631
+ // Helper function to merge two config objects
632
+ function mergeConfig(objA, objB) {
633
+ const merged = { ...objA };
634
+ for (const key in objB) {
635
+ if (objB.hasOwnProperty(key)) {
636
+ // If objB[key] is explicitly set to false, null or 0, respect that value
637
+ if (objB[key] === false || objB[key] === null || objB[key] === 0) {
638
+ merged[key] = objB[key];
639
+ }
640
+ // If both objA[key] and objB[key] are objects, recursively merge them
641
+ else if (isObject(merged[key]) && isObject(objB[key])) {
642
+ merged[key] = mergeConfig(merged[key], objB[key]);
643
+ }
644
+ // If objB[key] is defined, use it (this will overwrite any existing value in merged[key])
645
+ else if (objB[key] !== undefined) {
646
+ merged[key] = objB[key];
647
+ }
648
+ }
649
+ }
650
+ return merged;
651
+ }
652
+ /**
653
+ * This function takes in a strictly typed collection of all possible default values in a particular section of config,
654
+ * and an optional set of partial user config, and returns a single, deeply merged config object, where the user
655
+ * config takes priority over the defaults in all cases (only an `undefined` value in the user config will be
656
+ * overwritten by the defaults, all other falsey values from the user will be respected).
657
+ */
658
+ function deepMergeDefaults(defaultConfigs, userConfig) {
659
+ let result;
660
+ // First merge defaultConfigs sequentially (meaning later defaults will override earlier ones)
661
+ for (const defaultConfig of defaultConfigs) {
662
+ if (!result) {
663
+ result = defaultConfig;
664
+ continue;
665
+ }
666
+ result = mergeConfig(result, defaultConfig);
667
+ }
668
+ // Finally, merge the userConfig
669
+ if (userConfig) {
670
+ result = mergeConfig(result, userConfig);
671
+ }
672
+ return result;
673
+ }
674
+ /**
675
+ * We want to prevent users from setting both the conventionalCommits shorthand and any of the related
676
+ * generatorOptions at the same time, since it is at best redundant, and at worst invalid.
677
+ */
678
+ function hasInvalidConventionalCommitsConfig(userConfig) {
679
+ // at the root
680
+ if (userConfig.version?.conventionalCommits === true &&
681
+ (userConfig.version?.generatorOptions?.currentVersionResolver ||
682
+ userConfig.version?.generatorOptions?.specifierSource)) {
683
+ return true;
684
+ }
685
+ // within any groups
686
+ if (userConfig.groups) {
687
+ for (const group of Object.values(userConfig.groups)) {
688
+ if (group.version?.conventionalCommits === true &&
689
+ (group.version?.generatorOptions?.currentVersionResolver ||
690
+ group.version?.generatorOptions?.specifierSource)) {
691
+ return true;
692
+ }
693
+ }
694
+ }
695
+ return false;
696
+ }
697
+ /**
698
+ * We want to prevent users from setting both the global and granular git configurations. Users should prefer the
699
+ * global configuration if using the top level nx release command and the granular configuration if using
700
+ * the subcommands or the programmatic API.
701
+ */
702
+ function hasInvalidGitConfig(userConfig) {
703
+ return (!!userConfig.git && !!(userConfig.version?.git || userConfig.changelog?.git));
704
+ }
705
+ async function getDefaultProjects(projectGraph, projectFileMap) {
706
+ // default to all library projects in the workspace with a package.json file
707
+ return (0, find_matching_projects_1.findMatchingProjects)(['*'], projectGraph.nodes).filter((project) => projectGraph.nodes[project].type === 'lib' &&
708
+ // Exclude all projects with "private": true in their package.json because this is
709
+ // a common indicator that a project is not intended for release.
710
+ // Users can override this behavior by explicitly defining the projects they want to release.
711
+ isProjectPublic(project, projectGraph, projectFileMap));
712
+ }
713
+ function isProjectPublic(project, projectGraph, projectFileMap) {
714
+ const projectNode = projectGraph.nodes[project];
715
+ const packageJsonPath = (0, node_path_1.join)(projectNode.data.root, 'package.json');
716
+ if (!projectFileMap[project]?.find((f) => f.file === (0, path_1.normalizePath)(packageJsonPath))) {
717
+ return false;
718
+ }
719
+ try {
720
+ const fullPackageJsonPath = (0, node_path_1.join)(workspace_root_1.workspaceRoot, packageJsonPath);
721
+ const packageJson = (0, fileutils_1.readJsonFile)(fullPackageJsonPath);
722
+ return !(packageJson.private === true);
723
+ }
724
+ catch (e) {
725
+ // do nothing and assume that the project is not public if there is a parsing issue
726
+ // this will result in it being excluded from the default projects list
727
+ return false;
728
+ }
729
+ }
730
+ /**
731
+ * We need to ensure that changelog renderers are resolvable up front so that we do not end up erroring after performing
732
+ * actions later, and we also make sure that any configured createRelease options are valid.
733
+ *
734
+ * For the createRelease config, we also set a default apiBaseUrl if applicable.
735
+ */
736
+ function validateChangelogConfig(releaseGroups, rootChangelogConfig) {
737
+ /**
738
+ * If any form of changelog config is enabled, ensure that any provided changelog renderers are resolvable
739
+ * up front so that we do not end up erroring only after the versioning step has been completed.
740
+ */
741
+ const uniqueRendererPaths = new Set();
742
+ if (rootChangelogConfig.workspaceChangelog &&
743
+ typeof rootChangelogConfig.workspaceChangelog !== 'boolean') {
744
+ if (rootChangelogConfig.workspaceChangelog.renderer?.length) {
745
+ uniqueRendererPaths.add(rootChangelogConfig.workspaceChangelog.renderer);
746
+ }
747
+ const createReleaseError = validateCreateReleaseConfig(rootChangelogConfig.workspaceChangelog);
748
+ if (createReleaseError) {
749
+ return createReleaseError;
750
+ }
751
+ }
752
+ if (rootChangelogConfig.projectChangelogs &&
753
+ typeof rootChangelogConfig.projectChangelogs !== 'boolean') {
754
+ if (rootChangelogConfig.projectChangelogs.renderer?.length) {
755
+ uniqueRendererPaths.add(rootChangelogConfig.projectChangelogs.renderer);
756
+ }
757
+ const createReleaseError = validateCreateReleaseConfig(rootChangelogConfig.projectChangelogs);
758
+ if (createReleaseError) {
759
+ return createReleaseError;
760
+ }
761
+ }
762
+ for (const group of Object.values(releaseGroups)) {
763
+ if (group.changelog && typeof group.changelog !== 'boolean') {
764
+ if (group.changelog.renderer?.length) {
765
+ uniqueRendererPaths.add(group.changelog.renderer);
766
+ }
767
+ const createReleaseError = validateCreateReleaseConfig(group.changelog);
768
+ if (createReleaseError) {
769
+ return createReleaseError;
770
+ }
771
+ }
772
+ }
773
+ if (!uniqueRendererPaths.size) {
774
+ return null;
775
+ }
776
+ for (const rendererPath of uniqueRendererPaths) {
777
+ try {
778
+ (0, resolve_changelog_renderer_1.resolveChangelogRenderer)(rendererPath);
779
+ }
780
+ catch {
781
+ return {
782
+ code: 'CANNOT_RESOLVE_CHANGELOG_RENDERER',
783
+ data: {
784
+ workspaceRelativePath: (0, node_path_1.relative)(workspace_root_1.workspaceRoot, rendererPath),
785
+ },
786
+ };
787
+ }
788
+ }
789
+ return null;
790
+ }
791
+ const supportedCreateReleaseProviders = [
792
+ {
793
+ name: 'github-enterprise-server',
794
+ defaultApiBaseUrl: 'https://__hostname__/api/v3',
795
+ },
796
+ ];
797
+ // User opts into the default by specifying the string value 'github'
798
+ exports.defaultCreateReleaseProvider = {
799
+ provider: 'github',
800
+ hostname: 'github.com',
801
+ apiBaseUrl: 'https://api.github.com',
802
+ };
803
+ function validateCreateReleaseConfig(changelogConfig) {
804
+ const createRelease = changelogConfig.createRelease;
805
+ // Disabled: valid
806
+ if (!createRelease) {
807
+ return null;
808
+ }
809
+ // GitHub shorthand, expand to full object form, mark as valid
810
+ if (createRelease === 'github') {
811
+ changelogConfig.createRelease = exports.defaultCreateReleaseProvider;
812
+ return null;
813
+ }
814
+ // Object config, ensure that properties are valid
815
+ const supportedProvider = supportedCreateReleaseProviders.find((p) => p.name === createRelease.provider);
816
+ if (!supportedProvider) {
817
+ return {
818
+ code: 'INVALID_CHANGELOG_CREATE_RELEASE_PROVIDER',
819
+ data: {
820
+ provider: createRelease.provider,
821
+ supportedProviders: supportedCreateReleaseProviders.map((p) => p.name),
822
+ },
823
+ };
824
+ }
825
+ if (!isValidHostname(createRelease.hostname)) {
826
+ return {
827
+ code: 'INVALID_CHANGELOG_CREATE_RELEASE_HOSTNAME',
828
+ data: {
829
+ hostname: createRelease.hostname,
830
+ },
831
+ };
832
+ }
833
+ // user provided a custom apiBaseUrl, ensure it is valid (accounting for empty string case)
834
+ if (createRelease.apiBaseUrl ||
835
+ typeof createRelease.apiBaseUrl === 'string') {
836
+ if (!isValidUrl(createRelease.apiBaseUrl)) {
837
+ return {
838
+ code: 'INVALID_CHANGELOG_CREATE_RELEASE_API_BASE_URL',
839
+ data: {
840
+ apiBaseUrl: createRelease.apiBaseUrl,
841
+ },
842
+ };
843
+ }
844
+ }
845
+ else {
846
+ // Set default apiBaseUrl when not provided by the user
847
+ createRelease.apiBaseUrl = supportedProvider.defaultApiBaseUrl.replace('__hostname__', createRelease.hostname);
848
+ }
849
+ return null;
850
+ }
851
+ function isValidHostname(hostname) {
852
+ // Regular expression to match a valid hostname
853
+ const hostnameRegex = /^(?!:\/\/)(?=.{1,255}$)(?!.*\.$)(?!.*?\.\.)(?!.*?-$)(?!^-)([a-zA-Z0-9-]{1,63}\.?)+[a-zA-Z]{2,}$/;
854
+ return hostnameRegex.test(hostname);
855
+ }
856
+ function isValidUrl(str) {
857
+ try {
858
+ new node_url_1.URL(str);
859
+ return true;
860
+ }
861
+ catch {
862
+ return false;
863
+ }
864
+ }