@ohos-ports/nx 17.3.2-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 (671) hide show
  1. package/.eslintrc.json +106 -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 +175 -0
  6. package/bin/nx-cloud.d.ts +2 -0
  7. package/bin/nx-cloud.js +55 -0
  8. package/bin/nx.d.ts +2 -0
  9. package/bin/nx.js +230 -0
  10. package/bin/post-install.d.ts +1 -0
  11. package/bin/post-install.js +55 -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 +87 -0
  17. package/package.json +186 -0
  18. package/plugins/package-json.d.ts +1 -0
  19. package/plugins/package-json.js +12 -0
  20. package/presets/core.json +1 -0
  21. package/presets/npm.json +7 -0
  22. package/release/changelog-renderer/index.d.ts +56 -0
  23. package/release/changelog-renderer/index.js +238 -0
  24. package/release/index.d.ts +4 -0
  25. package/release/index.js +11 -0
  26. package/schemas/nx-schema.json +623 -0
  27. package/schemas/project-schema.json +244 -0
  28. package/schemas/workspace-schema.json +185 -0
  29. package/src/adapter/angular-json.d.ts +9 -0
  30. package/src/adapter/angular-json.js +127 -0
  31. package/src/adapter/compat.d.ts +2 -0
  32. package/src/adapter/compat.js +136 -0
  33. package/src/adapter/decorate-cli.d.ts +1 -0
  34. package/src/adapter/decorate-cli.js +25 -0
  35. package/src/adapter/ngcli-adapter.d.ts +90 -0
  36. package/src/adapter/ngcli-adapter.js +848 -0
  37. package/src/adapter/rxjs-for-await.d.ts +109 -0
  38. package/src/adapter/rxjs-for-await.js +362 -0
  39. package/src/command-line/add/add.d.ts +2 -0
  40. package/src/command-line/add/add.js +165 -0
  41. package/src/command-line/add/command-object.d.ts +7 -0
  42. package/src/command-line/add/command-object.js +24 -0
  43. package/src/command-line/affected/affected.d.ts +7 -0
  44. package/src/command-line/affected/affected.js +105 -0
  45. package/src/command-line/affected/command-object.d.ts +16 -0
  46. package/src/command-line/affected/command-object.js +93 -0
  47. package/src/command-line/affected/print-affected.d.ts +11 -0
  48. package/src/command-line/affected/print-affected.js +108 -0
  49. package/src/command-line/connect/command-object.d.ts +3 -0
  50. package/src/command-line/connect/command-object.js +19 -0
  51. package/src/command-line/connect/connect-to-nx-cloud.d.ts +8 -0
  52. package/src/command-line/connect/connect-to-nx-cloud.js +96 -0
  53. package/src/command-line/connect/view-logs.d.ts +1 -0
  54. package/src/command-line/connect/view-logs.js +53 -0
  55. package/src/command-line/daemon/command-object.d.ts +2 -0
  56. package/src/command-line/daemon/command-object.js +21 -0
  57. package/src/command-line/daemon/daemon.d.ts +2 -0
  58. package/src/command-line/daemon/daemon.js +27 -0
  59. package/src/command-line/examples.d.ts +5 -0
  60. package/src/command-line/examples.js +347 -0
  61. package/src/command-line/exec/command-object.d.ts +2 -0
  62. package/src/command-line/exec/command-object.js +19 -0
  63. package/src/command-line/exec/exec.d.ts +1 -0
  64. package/src/command-line/exec/exec.js +141 -0
  65. package/src/command-line/format/command-object.d.ts +3 -0
  66. package/src/command-line/format/command-object.js +46 -0
  67. package/src/command-line/format/format.d.ts +2 -0
  68. package/src/command-line/format/format.js +155 -0
  69. package/src/command-line/generate/command-object.d.ts +2 -0
  70. package/src/command-line/generate/command-object.js +70 -0
  71. package/src/command-line/generate/generate.d.ts +21 -0
  72. package/src/command-line/generate/generate.js +266 -0
  73. package/src/command-line/generate/generator-utils.d.ts +17 -0
  74. package/src/command-line/generate/generator-utils.js +87 -0
  75. package/src/command-line/graph/command-object.d.ts +2 -0
  76. package/src/command-line/graph/command-object.js +21 -0
  77. package/src/command-line/graph/graph.d.ts +39 -0
  78. package/src/command-line/graph/graph.js +661 -0
  79. package/src/command-line/init/command-object.d.ts +2 -0
  80. package/src/command-line/init/command-object.js +81 -0
  81. package/src/command-line/init/implementation/add-nx-to-monorepo.d.ts +4 -0
  82. package/src/command-line/init/implementation/add-nx-to-monorepo.js +133 -0
  83. package/src/command-line/init/implementation/add-nx-to-nest.d.ts +5 -0
  84. package/src/command-line/init/implementation/add-nx-to-nest.js +346 -0
  85. package/src/command-line/init/implementation/add-nx-to-npm-repo.d.ts +4 -0
  86. package/src/command-line/init/implementation/add-nx-to-npm-repo.js +66 -0
  87. package/src/command-line/init/implementation/angular/index.d.ts +2 -0
  88. package/src/command-line/init/implementation/angular/index.js +128 -0
  89. package/src/command-line/init/implementation/angular/integrated-workspace.d.ts +1 -0
  90. package/src/command-line/init/implementation/angular/integrated-workspace.js +10 -0
  91. package/src/command-line/init/implementation/angular/legacy-angular-versions.d.ts +2 -0
  92. package/src/command-line/init/implementation/angular/legacy-angular-versions.js +125 -0
  93. package/src/command-line/init/implementation/angular/standalone-workspace.d.ts +1 -0
  94. package/src/command-line/init/implementation/angular/standalone-workspace.js +178 -0
  95. package/src/command-line/init/implementation/angular/types.d.ts +20 -0
  96. package/src/command-line/init/implementation/angular/types.js +2 -0
  97. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.d.ts +7 -0
  98. package/src/command-line/init/implementation/dot-nx/add-nx-scripts.js +91 -0
  99. package/src/command-line/init/implementation/dot-nx/nxw.d.ts +1 -0
  100. package/src/command-line/init/implementation/dot-nx/nxw.js +116 -0
  101. package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.d.ts +1 -0
  102. package/src/command-line/init/implementation/react/add-craco-commands-to-package-scripts.js +22 -0
  103. package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.d.ts +1 -0
  104. package/src/command-line/init/implementation/react/add-vite-commands-to-package-scripts.js +19 -0
  105. package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.d.ts +1 -0
  106. package/src/command-line/init/implementation/react/check-for-custom-webpack-setup.js +18 -0
  107. package/src/command-line/init/implementation/react/check-for-uncommitted-changes.d.ts +1 -0
  108. package/src/command-line/init/implementation/react/check-for-uncommitted-changes.js +16 -0
  109. package/src/command-line/init/implementation/react/clean-up-files.d.ts +1 -0
  110. package/src/command-line/init/implementation/react/clean-up-files.js +31 -0
  111. package/src/command-line/init/implementation/react/index.d.ts +4 -0
  112. package/src/command-line/init/implementation/react/index.js +230 -0
  113. package/src/command-line/init/implementation/react/read-name-from-package-json.d.ts +1 -0
  114. package/src/command-line/init/implementation/react/read-name-from-package-json.js +17 -0
  115. package/src/command-line/init/implementation/react/rename-js-to-jsx.d.ts +1 -0
  116. package/src/command-line/init/implementation/react/rename-js-to-jsx.js +23 -0
  117. package/src/command-line/init/implementation/react/tsconfig-setup.d.ts +1 -0
  118. package/src/command-line/init/implementation/react/tsconfig-setup.js +109 -0
  119. package/src/command-line/init/implementation/react/write-craco-config.d.ts +1 -0
  120. package/src/command-line/init/implementation/react/write-craco-config.js +62 -0
  121. package/src/command-line/init/implementation/react/write-vite-config.d.ts +1 -0
  122. package/src/command-line/init/implementation/react/write-vite-config.js +38 -0
  123. package/src/command-line/init/implementation/react/write-vite-index-html.d.ts +1 -0
  124. package/src/command-line/init/implementation/react/write-vite-index-html.js +25 -0
  125. package/src/command-line/init/implementation/utils.d.ts +16 -0
  126. package/src/command-line/init/implementation/utils.js +176 -0
  127. package/src/command-line/init/init-v1.d.ts +11 -0
  128. package/src/command-line/init/init-v1.js +118 -0
  129. package/src/command-line/init/init-v2.d.ts +7 -0
  130. package/src/command-line/init/init-v2.js +165 -0
  131. package/src/command-line/list/command-object.d.ts +2 -0
  132. package/src/command-line/list/command-object.js +15 -0
  133. package/src/command-line/list/list.d.ts +13 -0
  134. package/src/command-line/list/list.js +47 -0
  135. package/src/command-line/migrate/command-object.d.ts +3 -0
  136. package/src/command-line/migrate/command-object.js +150 -0
  137. package/src/command-line/migrate/migrate.d.ts +114 -0
  138. package/src/command-line/migrate/migrate.js +1115 -0
  139. package/src/command-line/new/command-object.d.ts +2 -0
  140. package/src/command-line/new/command-object.js +25 -0
  141. package/src/command-line/new/new.d.ts +3 -0
  142. package/src/command-line/new/new.js +30 -0
  143. package/src/command-line/nx-commands.d.ts +10 -0
  144. package/src/command-line/nx-commands.js +77 -0
  145. package/src/command-line/release/changelog.d.ts +8 -0
  146. package/src/command-line/release/changelog.js +696 -0
  147. package/src/command-line/release/command-object.d.ts +45 -0
  148. package/src/command-line/release/command-object.js +237 -0
  149. package/src/command-line/release/config/config.d.ts +56 -0
  150. package/src/command-line/release/config/config.js +501 -0
  151. package/src/command-line/release/config/filter-release-groups.d.ts +13 -0
  152. package/src/command-line/release/config/filter-release-groups.js +150 -0
  153. package/src/command-line/release/index.d.ts +16 -0
  154. package/src/command-line/release/index.js +23 -0
  155. package/src/command-line/release/publish.d.ts +8 -0
  156. package/src/command-line/release/publish.js +149 -0
  157. package/src/command-line/release/release.d.ts +4 -0
  158. package/src/command-line/release/release.js +124 -0
  159. package/src/command-line/release/utils/batch-projects-by-generator-config.d.ts +7 -0
  160. package/src/command-line/release/utils/batch-projects-by-generator-config.js +37 -0
  161. package/src/command-line/release/utils/exec-command.d.ts +1 -0
  162. package/src/command-line/release/utils/exec-command.js +34 -0
  163. package/src/command-line/release/utils/git.d.ts +55 -0
  164. package/src/command-line/release/utils/git.js +261 -0
  165. package/src/command-line/release/utils/github.d.ts +27 -0
  166. package/src/command-line/release/utils/github.js +229 -0
  167. package/src/command-line/release/utils/launch-editor.d.ts +1 -0
  168. package/src/command-line/release/utils/launch-editor.js +42 -0
  169. package/src/command-line/release/utils/markdown.d.ts +6 -0
  170. package/src/command-line/release/utils/markdown.js +29 -0
  171. package/src/command-line/release/utils/print-changes.d.ts +7 -0
  172. package/src/command-line/release/utils/print-changes.js +60 -0
  173. package/src/command-line/release/utils/resolve-nx-json-error-message.d.ts +1 -0
  174. package/src/command-line/release/utils/resolve-nx-json-error-message.js +52 -0
  175. package/src/command-line/release/utils/resolve-semver-specifier.d.ts +3 -0
  176. package/src/command-line/release/utils/resolve-semver-specifier.js +69 -0
  177. package/src/command-line/release/utils/semver.d.ts +17 -0
  178. package/src/command-line/release/utils/semver.js +56 -0
  179. package/src/command-line/release/utils/shared.d.ts +34 -0
  180. package/src/command-line/release/utils/shared.js +211 -0
  181. package/src/command-line/release/version.d.ts +42 -0
  182. package/src/command-line/release/version.js +347 -0
  183. package/src/command-line/repair/command-object.d.ts +2 -0
  184. package/src/command-line/repair/command-object.js +22 -0
  185. package/src/command-line/repair/repair.d.ts +3 -0
  186. package/src/command-line/repair/repair.js +37 -0
  187. package/src/command-line/repair.d.ts +4 -0
  188. package/src/command-line/repair.js +7 -0
  189. package/src/command-line/report/command-object.d.ts +2 -0
  190. package/src/command-line/report/command-object.js +11 -0
  191. package/src/command-line/report/report.d.ts +48 -0
  192. package/src/command-line/report/report.js +232 -0
  193. package/src/command-line/reset/command-object.d.ts +2 -0
  194. package/src/command-line/reset/command-object.js +9 -0
  195. package/src/command-line/reset/reset.d.ts +1 -0
  196. package/src/command-line/reset/reset.js +23 -0
  197. package/src/command-line/run/command-object.d.ts +6 -0
  198. package/src/command-line/run/command-object.js +25 -0
  199. package/src/command-line/run/executor-utils.d.ts +7 -0
  200. package/src/command-line/run/executor-utils.js +73 -0
  201. package/src/command-line/run/run-one.d.ts +7 -0
  202. package/src/command-line/run/run-one.js +117 -0
  203. package/src/command-line/run/run.d.ts +51 -0
  204. package/src/command-line/run/run.js +172 -0
  205. package/src/command-line/run-many/command-object.d.ts +2 -0
  206. package/src/command-line/run-many/command-object.js +11 -0
  207. package/src/command-line/run-many/run-many.d.ts +10 -0
  208. package/src/command-line/run-many/run-many.js +90 -0
  209. package/src/command-line/run-many.d.ts +4 -0
  210. package/src/command-line/run-many.js +7 -0
  211. package/src/command-line/run-one.d.ts +4 -0
  212. package/src/command-line/run-one.js +7 -0
  213. package/src/command-line/run.d.ts +4 -0
  214. package/src/command-line/run.js +7 -0
  215. package/src/command-line/show/command-object.d.ts +22 -0
  216. package/src/command-line/show/command-object.js +84 -0
  217. package/src/command-line/show/show.d.ts +3 -0
  218. package/src/command-line/show/show.js +126 -0
  219. package/src/command-line/watch/command-object.d.ts +2 -0
  220. package/src/command-line/watch/command-object.js +64 -0
  221. package/src/command-line/watch/watch.d.ts +23 -0
  222. package/src/command-line/watch/watch.js +169 -0
  223. package/src/command-line/watch.d.ts +4 -0
  224. package/src/command-line/watch.js +7 -0
  225. package/src/command-line/yargs-utils/documentation.d.ts +2 -0
  226. package/src/command-line/yargs-utils/documentation.js +12 -0
  227. package/src/command-line/yargs-utils/shared-options.d.ts +89 -0
  228. package/src/command-line/yargs-utils/shared-options.js +284 -0
  229. package/src/commands-runner/command-graph.d.ts +13 -0
  230. package/src/commands-runner/command-graph.js +2 -0
  231. package/src/commands-runner/create-command-graph.d.ts +4 -0
  232. package/src/commands-runner/create-command-graph.js +44 -0
  233. package/src/commands-runner/get-command-projects.d.ts +3 -0
  234. package/src/commands-runner/get-command-projects.js +19 -0
  235. package/src/config/calculate-default-project-name.d.ts +4 -0
  236. package/src/config/calculate-default-project-name.js +42 -0
  237. package/src/config/configuration.d.ts +8 -0
  238. package/src/config/configuration.js +17 -0
  239. package/src/config/misc-interfaces.d.ts +199 -0
  240. package/src/config/misc-interfaces.js +2 -0
  241. package/src/config/nx-json.d.ts +372 -0
  242. package/src/config/nx-json.js +40 -0
  243. package/src/config/project-graph.d.ts +137 -0
  244. package/src/config/project-graph.js +37 -0
  245. package/src/config/schema-utils.d.ts +15 -0
  246. package/src/config/schema-utils.js +59 -0
  247. package/src/config/task-graph.d.ts +100 -0
  248. package/src/config/task-graph.js +2 -0
  249. package/src/config/workspace-json-project-json.d.ts +189 -0
  250. package/src/config/workspace-json-project-json.js +2 -0
  251. package/src/config/workspaces.d.ts +18 -0
  252. package/src/config/workspaces.js +35 -0
  253. package/src/core/graph/3rdpartylicenses.txt +833 -0
  254. package/src/core/graph/environment.js +1 -0
  255. package/src/core/graph/favicon.ico +0 -0
  256. package/src/core/graph/index.html +31 -0
  257. package/src/core/graph/main.js +1 -0
  258. package/src/core/graph/polyfills.js +1 -0
  259. package/src/core/graph/runtime.js +1 -0
  260. package/src/core/graph/styles.css +3 -0
  261. package/src/core/graph/styles.js +1 -0
  262. package/src/daemon/cache.d.ts +9 -0
  263. package/src/daemon/cache.js +52 -0
  264. package/src/daemon/client/client.d.ts +56 -0
  265. package/src/daemon/client/client.js +359 -0
  266. package/src/daemon/client/daemon-socket-messenger.d.ts +13 -0
  267. package/src/daemon/client/daemon-socket-messenger.js +26 -0
  268. package/src/daemon/client/exec-is-server-available.d.ts +1 -0
  269. package/src/daemon/client/exec-is-server-available.js +11 -0
  270. package/src/daemon/client/generate-help-output.d.ts +1 -0
  271. package/src/daemon/client/generate-help-output.js +26 -0
  272. package/src/daemon/server/file-watching/changed-projects.d.ts +10 -0
  273. package/src/daemon/server/file-watching/changed-projects.js +45 -0
  274. package/src/daemon/server/file-watching/file-watcher-sockets.d.ts +13 -0
  275. package/src/daemon/server/file-watching/file-watcher-sockets.js +66 -0
  276. package/src/daemon/server/handle-hash-tasks.d.ts +10 -0
  277. package/src/daemon/server/handle-hash-tasks.js +26 -0
  278. package/src/daemon/server/handle-outputs-tracking.d.ts +15 -0
  279. package/src/daemon/server/handle-outputs-tracking.js +36 -0
  280. package/src/daemon/server/handle-process-in-background.d.ts +6 -0
  281. package/src/daemon/server/handle-process-in-background.js +33 -0
  282. package/src/daemon/server/handle-request-file-data.d.ts +4 -0
  283. package/src/daemon/server/handle-request-file-data.js +13 -0
  284. package/src/daemon/server/handle-request-project-graph.d.ts +2 -0
  285. package/src/daemon/server/handle-request-project-graph.js +37 -0
  286. package/src/daemon/server/handle-request-shutdown.d.ts +6 -0
  287. package/src/daemon/server/handle-request-shutdown.js +26 -0
  288. package/src/daemon/server/logger.d.ts +18 -0
  289. package/src/daemon/server/logger.js +37 -0
  290. package/src/daemon/server/outputs-tracking.d.ts +8 -0
  291. package/src/daemon/server/outputs-tracking.js +94 -0
  292. package/src/daemon/server/project-graph-incremental-recomputation.d.ts +22 -0
  293. package/src/daemon/server/project-graph-incremental-recomputation.js +227 -0
  294. package/src/daemon/server/server.d.ts +9 -0
  295. package/src/daemon/server/server.js +303 -0
  296. package/src/daemon/server/shutdown-utils.d.ts +17 -0
  297. package/src/daemon/server/shutdown-utils.js +77 -0
  298. package/src/daemon/server/start.d.ts +1 -0
  299. package/src/daemon/server/start.js +17 -0
  300. package/src/daemon/server/watcher.d.ts +12 -0
  301. package/src/daemon/server/watcher.js +96 -0
  302. package/src/daemon/socket-utils.d.ts +11 -0
  303. package/src/daemon/socket-utils.js +42 -0
  304. package/src/daemon/tmp-dir.d.ts +8 -0
  305. package/src/daemon/tmp-dir.js +68 -0
  306. package/src/devkit-exports.d.ts +135 -0
  307. package/src/devkit-exports.js +140 -0
  308. package/src/devkit-internals.d.ts +19 -0
  309. package/src/devkit-internals.js +37 -0
  310. package/src/devkit-testing-exports.d.ts +2 -0
  311. package/src/devkit-testing-exports.js +8 -0
  312. package/src/executors/noop/noop.impl.d.ts +3 -0
  313. package/src/executors/noop/noop.impl.js +6 -0
  314. package/src/executors/noop/schema.json +10 -0
  315. package/src/executors/run-commands/run-commands.impl.d.ts +42 -0
  316. package/src/executors/run-commands/run-commands.impl.js +247 -0
  317. package/src/executors/run-commands/schema.json +150 -0
  318. package/src/executors/run-script/run-script.impl.d.ts +8 -0
  319. package/src/executors/run-script/run-script.impl.js +56 -0
  320. package/src/executors/run-script/schema.json +28 -0
  321. package/src/executors/utils/convert-nx-executor.d.ts +10 -0
  322. package/src/executors/utils/convert-nx-executor.js +82 -0
  323. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.d.ts +8 -0
  324. package/src/generators/internal-utils/format-changed-files-with-prettier-if-available.js +49 -0
  325. package/src/generators/testing-utils/create-tree-with-empty-workspace.d.ts +11 -0
  326. package/src/generators/testing-utils/create-tree-with-empty-workspace.js +46 -0
  327. package/src/generators/testing-utils/create-tree.d.ts +5 -0
  328. package/src/generators/testing-utils/create-tree.js +11 -0
  329. package/src/generators/tree.d.ts +128 -0
  330. package/src/generators/tree.js +309 -0
  331. package/src/generators/utils/glob.d.ts +11 -0
  332. package/src/generators/utils/glob.js +35 -0
  333. package/src/generators/utils/json.d.ts +28 -0
  334. package/src/generators/utils/json.js +48 -0
  335. package/src/generators/utils/nx-json.d.ts +11 -0
  336. package/src/generators/utils/nx-json.js +59 -0
  337. package/src/generators/utils/project-configuration.d.ts +42 -0
  338. package/src/generators/utils/project-configuration.js +239 -0
  339. package/src/hasher/create-task-hasher.d.ts +4 -0
  340. package/src/hasher/create-task-hasher.js +16 -0
  341. package/src/hasher/file-hasher.d.ts +2 -0
  342. package/src/hasher/file-hasher.js +19 -0
  343. package/src/hasher/hash-task.d.ts +7 -0
  344. package/src/hasher/hash-task.js +54 -0
  345. package/src/hasher/native-task-hasher-impl.d.ts +19 -0
  346. package/src/hasher/native-task-hasher-impl.js +37 -0
  347. package/src/hasher/node-task-hasher-impl.d.ts +49 -0
  348. package/src/hasher/node-task-hasher-impl.js +431 -0
  349. package/src/hasher/task-hasher.d.ts +129 -0
  350. package/src/hasher/task-hasher.js +266 -0
  351. package/src/index.d.ts +1 -0
  352. package/src/index.js +5 -0
  353. package/src/migrations/update-15-0-0/migrate-to-inputs.d.ts +2 -0
  354. package/src/migrations/update-15-0-0/migrate-to-inputs.js +102 -0
  355. package/src/migrations/update-15-0-0/prefix-outputs.d.ts +2 -0
  356. package/src/migrations/update-15-0-0/prefix-outputs.js +64 -0
  357. package/src/migrations/update-15-1-0/set-project-names.d.ts +2 -0
  358. package/src/migrations/update-15-1-0/set-project-names.js +32 -0
  359. package/src/migrations/update-15-8-2/update-nxw.d.ts +2 -0
  360. package/src/migrations/update-15-8-2/update-nxw.js +7 -0
  361. package/src/migrations/update-16-0-0/remove-nrwl-cli.d.ts +2 -0
  362. package/src/migrations/update-16-0-0/remove-nrwl-cli.js +16 -0
  363. package/src/migrations/update-16-0-0/update-depends-on-to-tokens.d.ts +2 -0
  364. package/src/migrations/update-16-0-0/update-depends-on-to-tokens.js +97 -0
  365. package/src/migrations/update-16-0-0/update-nx-cloud-runner.d.ts +2 -0
  366. package/src/migrations/update-16-0-0/update-nx-cloud-runner.js +27 -0
  367. package/src/migrations/update-16-2-0/remove-run-commands-output-path.d.ts +2 -0
  368. package/src/migrations/update-16-2-0/remove-run-commands-output-path.js +45 -0
  369. package/src/migrations/update-16-8-0/escape-dollar-sign-env-variables.d.ts +12 -0
  370. package/src/migrations/update-16-8-0/escape-dollar-sign-env-variables.js +60 -0
  371. package/src/migrations/update-16-9-0/remove-project-name-and-root-format.d.ts +2 -0
  372. package/src/migrations/update-16-9-0/remove-project-name-and-root-format.js +21 -0
  373. package/src/migrations/update-17-0-0/move-cache-directory.d.ts +2 -0
  374. package/src/migrations/update-17-0-0/move-cache-directory.js +35 -0
  375. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.d.ts +2 -0
  376. package/src/migrations/update-17-0-0/rm-default-collection-npm-scope.js +72 -0
  377. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.d.ts +2 -0
  378. package/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.js +122 -0
  379. package/src/migrations/update-17-3-0/nx-release-path.d.ts +3 -0
  380. package/src/migrations/update-17-3-0/nx-release-path.js +49 -0
  381. package/src/migrations/update-17-3-0/update-nxw.d.ts +2 -0
  382. package/src/migrations/update-17-3-0/update-nxw.js +7 -0
  383. package/src/native/assert-supported-platform.d.ts +1 -0
  384. package/src/native/assert-supported-platform.js +39 -0
  385. package/src/native/index.d.ts +192 -0
  386. package/src/native/index.js +289 -0
  387. package/src/native/transform-objects.d.ts +3 -0
  388. package/src/native/transform-objects.js +50 -0
  389. package/src/nx-cloud/debug-logger.d.ts +1 -0
  390. package/src/nx-cloud/debug-logger.js +9 -0
  391. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.d.ts +8 -0
  392. package/src/nx-cloud/generators/connect-to-nx-cloud/connect-to-nx-cloud.js +107 -0
  393. package/src/nx-cloud/generators/connect-to-nx-cloud/schema.json +27 -0
  394. package/src/nx-cloud/nx-cloud-tasks-runner-shell.d.ts +15 -0
  395. package/src/nx-cloud/nx-cloud-tasks-runner-shell.js +41 -0
  396. package/src/nx-cloud/resolution-helpers.d.ts +1 -0
  397. package/src/nx-cloud/resolution-helpers.js +20 -0
  398. package/src/nx-cloud/update-manager.d.ts +17 -0
  399. package/src/nx-cloud/update-manager.js +240 -0
  400. package/src/nx-cloud/utilities/axios.d.ts +2 -0
  401. package/src/nx-cloud/utilities/axios.js +24 -0
  402. package/src/nx-cloud/utilities/environment.d.ts +3 -0
  403. package/src/nx-cloud/utilities/environment.js +47 -0
  404. package/src/nx-cloud/utilities/get-cloud-options.d.ts +2 -0
  405. package/src/nx-cloud/utilities/get-cloud-options.js +11 -0
  406. package/src/plugins/js/hasher/hasher.d.ts +5 -0
  407. package/src/plugins/js/hasher/hasher.js +52 -0
  408. package/src/plugins/js/index.d.ts +4 -0
  409. package/src/plugins/js/index.js +96 -0
  410. package/src/plugins/js/lock-file/lock-file.d.ts +34 -0
  411. package/src/plugins/js/lock-file/lock-file.js +169 -0
  412. package/src/plugins/js/lock-file/npm-parser.d.ts +7 -0
  413. package/src/plugins/js/lock-file/npm-parser.js +463 -0
  414. package/src/plugins/js/lock-file/pnpm-parser.d.ts +7 -0
  415. package/src/plugins/js/lock-file/pnpm-parser.js +294 -0
  416. package/src/plugins/js/lock-file/project-graph-pruning.d.ts +7 -0
  417. package/src/plugins/js/lock-file/project-graph-pruning.js +155 -0
  418. package/src/plugins/js/lock-file/utils/package-json.d.ts +10 -0
  419. package/src/plugins/js/lock-file/utils/package-json.js +34 -0
  420. package/src/plugins/js/lock-file/utils/pnpm-normalizer.d.ts +38 -0
  421. package/src/plugins/js/lock-file/utils/pnpm-normalizer.js +575 -0
  422. package/src/plugins/js/lock-file/yarn-parser.d.ts +7 -0
  423. package/src/plugins/js/lock-file/yarn-parser.js +437 -0
  424. package/src/plugins/js/package-json/create-package-json.d.ts +27 -0
  425. package/src/plugins/js/package-json/create-package-json.js +207 -0
  426. package/src/plugins/js/project-graph/affected/lock-file-changes.d.ts +4 -0
  427. package/src/plugins/js/project-graph/affected/lock-file-changes.js +16 -0
  428. package/src/plugins/js/project-graph/affected/npm-packages.d.ts +4 -0
  429. package/src/plugins/js/project-graph/affected/npm-packages.js +56 -0
  430. package/src/plugins/js/project-graph/affected/touched-projects.d.ts +2 -0
  431. package/src/plugins/js/project-graph/affected/touched-projects.js +18 -0
  432. package/src/plugins/js/project-graph/affected/tsconfig-json-changes.d.ts +4 -0
  433. package/src/plugins/js/project-graph/affected/tsconfig-json-changes.js +63 -0
  434. package/src/plugins/js/project-graph/build-dependencies/build-dependencies.d.ts +6 -0
  435. package/src/plugins/js/project-graph/build-dependencies/build-dependencies.js +33 -0
  436. package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.d.ts +3 -0
  437. package/src/plugins/js/project-graph/build-dependencies/explicit-package-json-dependencies.js +82 -0
  438. package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.d.ts +3 -0
  439. package/src/plugins/js/project-graph/build-dependencies/explicit-project-dependencies.js +94 -0
  440. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.d.ts +7 -0
  441. package/src/plugins/js/project-graph/build-dependencies/strip-source-code.js +156 -0
  442. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.d.ts +32 -0
  443. package/src/plugins/js/project-graph/build-dependencies/target-project-locator.js +183 -0
  444. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.d.ts +16 -0
  445. package/src/plugins/js/project-graph/build-dependencies/typescript-import-locator.js +120 -0
  446. package/src/plugins/js/project-graph/build-nodes/build-npm-package-nodes.d.ts +2 -0
  447. package/src/plugins/js/project-graph/build-nodes/build-npm-package-nodes.js +32 -0
  448. package/src/plugins/js/utils/config.d.ts +2 -0
  449. package/src/plugins/js/utils/config.js +65 -0
  450. package/src/plugins/js/utils/register.d.ts +151 -0
  451. package/src/plugins/js/utils/register.js +215 -0
  452. package/src/plugins/js/utils/typescript.d.ts +14 -0
  453. package/src/plugins/js/utils/typescript.js +98 -0
  454. package/src/plugins/js/versions.d.ts +1 -0
  455. package/src/plugins/js/versions.js +4 -0
  456. package/src/plugins/package-json-workspaces/create-nodes.d.ts +19 -0
  457. package/src/plugins/package-json-workspaces/create-nodes.js +130 -0
  458. package/src/plugins/package-json-workspaces/index.d.ts +1 -0
  459. package/src/plugins/package-json-workspaces/index.js +4 -0
  460. package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.d.ts +2 -0
  461. package/src/plugins/project-json/build-nodes/package-json-next-to-project-json.js +47 -0
  462. package/src/plugins/project-json/build-nodes/project-json.d.ts +4 -0
  463. package/src/plugins/project-json/build-nodes/project-json.js +29 -0
  464. package/src/plugins/target-defaults/target-defaults-plugin.d.ts +8 -0
  465. package/src/plugins/target-defaults/target-defaults-plugin.js +103 -0
  466. package/src/project-graph/affected/affected-project-graph-models.d.ts +11 -0
  467. package/src/project-graph/affected/affected-project-graph-models.js +2 -0
  468. package/src/project-graph/affected/affected-project-graph.d.ts +4 -0
  469. package/src/project-graph/affected/affected-project-graph.js +83 -0
  470. package/src/project-graph/affected/locators/project-glob-changes.d.ts +2 -0
  471. package/src/project-graph/affected/locators/project-glob-changes.js +31 -0
  472. package/src/project-graph/affected/locators/workspace-json-changes.d.ts +4 -0
  473. package/src/project-graph/affected/locators/workspace-json-changes.js +47 -0
  474. package/src/project-graph/affected/locators/workspace-projects.d.ts +5 -0
  475. package/src/project-graph/affected/locators/workspace-projects.js +85 -0
  476. package/src/project-graph/build-project-graph.d.ts +14 -0
  477. package/src/project-graph/build-project-graph.js +219 -0
  478. package/src/project-graph/file-map-utils.d.ts +15 -0
  479. package/src/project-graph/file-map-utils.js +63 -0
  480. package/src/project-graph/file-utils.d.ts +31 -0
  481. package/src/project-graph/file-utils.js +181 -0
  482. package/src/project-graph/nx-deps-cache.d.ts +48 -0
  483. package/src/project-graph/nx-deps-cache.js +228 -0
  484. package/src/project-graph/operators.d.ts +12 -0
  485. package/src/project-graph/operators.js +114 -0
  486. package/src/project-graph/project-graph-builder.d.ts +133 -0
  487. package/src/project-graph/project-graph-builder.js +379 -0
  488. package/src/project-graph/project-graph.d.ts +48 -0
  489. package/src/project-graph/project-graph.js +188 -0
  490. package/src/project-graph/utils/build-all-workspace-files.d.ts +2 -0
  491. package/src/project-graph/utils/build-all-workspace-files.js +15 -0
  492. package/src/project-graph/utils/find-project-for-path.d.ts +20 -0
  493. package/src/project-graph/utils/find-project-for-path.js +57 -0
  494. package/src/project-graph/utils/implicit-project-dependencies.d.ts +3 -0
  495. package/src/project-graph/utils/implicit-project-dependencies.js +19 -0
  496. package/src/project-graph/utils/normalize-project-nodes.d.ts +10 -0
  497. package/src/project-graph/utils/normalize-project-nodes.js +92 -0
  498. package/src/project-graph/utils/project-configuration-utils.d.ts +53 -0
  499. package/src/project-graph/utils/project-configuration-utils.js +456 -0
  500. package/src/project-graph/utils/retrieve-workspace-files.d.ts +37 -0
  501. package/src/project-graph/utils/retrieve-workspace-files.js +109 -0
  502. package/src/tasks-runner/batch/batch-messages.d.ts +33 -0
  503. package/src/tasks-runner/batch/batch-messages.js +9 -0
  504. package/src/tasks-runner/batch/run-batch.d.ts +1 -0
  505. package/src/tasks-runner/batch/run-batch.js +77 -0
  506. package/src/tasks-runner/cache.d.ts +36 -0
  507. package/src/tasks-runner/cache.js +236 -0
  508. package/src/tasks-runner/create-task-graph.d.ts +25 -0
  509. package/src/tasks-runner/create-task-graph.js +225 -0
  510. package/src/tasks-runner/default-tasks-runner.d.ts +20 -0
  511. package/src/tasks-runner/default-tasks-runner.js +29 -0
  512. package/src/tasks-runner/fork.d.ts +1 -0
  513. package/src/tasks-runner/fork.js +23 -0
  514. package/src/tasks-runner/forked-process-task-runner.d.ts +44 -0
  515. package/src/tasks-runner/forked-process-task-runner.js +396 -0
  516. package/src/tasks-runner/init-tasks-runner.d.ts +11 -0
  517. package/src/tasks-runner/init-tasks-runner.js +57 -0
  518. package/src/tasks-runner/life-cycle.d.ts +43 -0
  519. package/src/tasks-runner/life-cycle.js +71 -0
  520. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.d.ts +25 -0
  521. package/src/tasks-runner/life-cycles/dynamic-run-many-terminal-output-life-cycle.js +345 -0
  522. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.d.ts +24 -0
  523. package/src/tasks-runner/life-cycles/dynamic-run-one-terminal-output-life-cycle.js +224 -0
  524. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.d.ts +5 -0
  525. package/src/tasks-runner/life-cycles/empty-terminal-output-life-cycle.js +16 -0
  526. package/src/tasks-runner/life-cycles/formatting-utils.d.ts +3 -0
  527. package/src/tasks-runner/life-cycles/formatting-utils.js +44 -0
  528. package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.d.ts +17 -0
  529. package/src/tasks-runner/life-cycles/invoke-runner-terminal-output-life-cycle.js +67 -0
  530. package/src/tasks-runner/life-cycles/pretty-time.d.ts +4 -0
  531. package/src/tasks-runner/life-cycles/pretty-time.js +74 -0
  532. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.d.ts +33 -0
  533. package/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +99 -0
  534. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.d.ts +31 -0
  535. package/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +89 -0
  536. package/src/tasks-runner/life-cycles/store-run-information-life-cycle.d.ts +22 -0
  537. package/src/tasks-runner/life-cycles/store-run-information-life-cycle.js +87 -0
  538. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.d.ts +19 -0
  539. package/src/tasks-runner/life-cycles/task-profiling-life-cycle.js +73 -0
  540. package/src/tasks-runner/life-cycles/task-timings-life-cycle.d.ts +13 -0
  541. package/src/tasks-runner/life-cycles/task-timings-life-cycle.js +39 -0
  542. package/src/tasks-runner/life-cycles/view-logs-utils.d.ts +1 -0
  543. package/src/tasks-runner/life-cycles/view-logs-utils.js +16 -0
  544. package/src/tasks-runner/psuedo-ipc.d.ts +49 -0
  545. package/src/tasks-runner/psuedo-ipc.js +140 -0
  546. package/src/tasks-runner/remove-old-cache-records.d.ts +1 -0
  547. package/src/tasks-runner/remove-old-cache-records.js +61 -0
  548. package/src/tasks-runner/run-command.d.ts +28 -0
  549. package/src/tasks-runner/run-command.js +353 -0
  550. package/src/tasks-runner/task-env.d.ts +8 -0
  551. package/src/tasks-runner/task-env.js +144 -0
  552. package/src/tasks-runner/task-graph-utils.d.ts +7 -0
  553. package/src/tasks-runner/task-graph-utils.js +55 -0
  554. package/src/tasks-runner/task-orchestrator.d.ts +50 -0
  555. package/src/tasks-runner/task-orchestrator.js +375 -0
  556. package/src/tasks-runner/tasks-runner.d.ts +23 -0
  557. package/src/tasks-runner/tasks-runner.js +2 -0
  558. package/src/tasks-runner/tasks-schedule.d.ts +36 -0
  559. package/src/tasks-runner/tasks-schedule.js +142 -0
  560. package/src/tasks-runner/utils.d.ts +51 -0
  561. package/src/tasks-runner/utils.js +293 -0
  562. package/src/utils/ab-testing.d.ts +51 -0
  563. package/src/utils/ab-testing.js +91 -0
  564. package/src/utils/all-file-data.d.ts +2 -0
  565. package/src/utils/all-file-data.js +15 -0
  566. package/src/utils/app-root.d.ts +8 -0
  567. package/src/utils/app-root.js +12 -0
  568. package/src/utils/assert-workspace-validity.d.ts +3 -0
  569. package/src/utils/assert-workspace-validity.js +84 -0
  570. package/src/utils/async-iterator.d.ts +2 -0
  571. package/src/utils/async-iterator.js +17 -0
  572. package/src/utils/cache-directory.d.ts +6 -0
  573. package/src/utils/cache-directory.js +60 -0
  574. package/src/utils/child-process.d.ts +19 -0
  575. package/src/utils/child-process.js +117 -0
  576. package/src/utils/chunkify.d.ts +1 -0
  577. package/src/utils/chunkify.js +38 -0
  578. package/src/utils/code-frames.d.ts +14 -0
  579. package/src/utils/code-frames.js +119 -0
  580. package/src/utils/collapse-expanded-outputs.d.ts +1 -0
  581. package/src/utils/collapse-expanded-outputs.js +41 -0
  582. package/src/utils/command-line-utils.d.ts +48 -0
  583. package/src/utils/command-line-utils.js +254 -0
  584. package/src/utils/consume-messages-from-socket.d.ts +1 -0
  585. package/src/utils/consume-messages-from-socket.js +22 -0
  586. package/src/utils/default-base.d.ts +1 -0
  587. package/src/utils/default-base.js +15 -0
  588. package/src/utils/exit-codes.d.ts +6 -0
  589. package/src/utils/exit-codes.js +20 -0
  590. package/src/utils/fileutils.d.ts +69 -0
  591. package/src/utils/fileutils.js +135 -0
  592. package/src/utils/find-matching-projects.d.ts +10 -0
  593. package/src/utils/find-matching-projects.js +198 -0
  594. package/src/utils/find-workspace-root.d.ts +11 -0
  595. package/src/utils/find-workspace-root.js +34 -0
  596. package/src/utils/globs.d.ts +1 -0
  597. package/src/utils/globs.js +8 -0
  598. package/src/utils/ignore.d.ts +8 -0
  599. package/src/utils/ignore.js +68 -0
  600. package/src/utils/installation-directory.d.ts +2 -0
  601. package/src/utils/installation-directory.js +13 -0
  602. package/src/utils/is-ci.d.ts +1 -0
  603. package/src/utils/is-ci.js +20 -0
  604. package/src/utils/json-diff.d.ts +18 -0
  605. package/src/utils/json-diff.js +112 -0
  606. package/src/utils/json.d.ts +44 -0
  607. package/src/utils/json.js +60 -0
  608. package/src/utils/logger.d.ts +11 -0
  609. package/src/utils/logger.js +47 -0
  610. package/src/utils/nx-cloud-utils.d.ts +4 -0
  611. package/src/utils/nx-cloud-utils.js +27 -0
  612. package/src/utils/nx-plugin.d.ts +119 -0
  613. package/src/utils/nx-plugin.deprecated.d.ts +31 -0
  614. package/src/utils/nx-plugin.deprecated.js +25 -0
  615. package/src/utils/nx-plugin.js +293 -0
  616. package/src/utils/object-sort.d.ts +1 -0
  617. package/src/utils/object-sort.js +10 -0
  618. package/src/utils/output.d.ts +72 -0
  619. package/src/utils/output.js +239 -0
  620. package/src/utils/package-json.d.ts +98 -0
  621. package/src/utils/package-json.js +134 -0
  622. package/src/utils/package-manager.d.ts +93 -0
  623. package/src/utils/package-manager.js +300 -0
  624. package/src/utils/params.d.ts +138 -0
  625. package/src/utils/params.js +684 -0
  626. package/src/utils/path.d.ts +19 -0
  627. package/src/utils/path.js +38 -0
  628. package/src/utils/perf-logging.d.ts +1 -0
  629. package/src/utils/perf-logging.js +11 -0
  630. package/src/utils/plugins/community-plugins.d.ts +2 -0
  631. package/src/utils/plugins/community-plugins.js +29 -0
  632. package/src/utils/plugins/core-plugins.d.ts +3 -0
  633. package/src/utils/plugins/core-plugins.js +114 -0
  634. package/src/utils/plugins/index.d.ts +4 -0
  635. package/src/utils/plugins/index.js +14 -0
  636. package/src/utils/plugins/installed-plugins.d.ts +6 -0
  637. package/src/utils/plugins/installed-plugins.js +104 -0
  638. package/src/utils/plugins/local-plugins.d.ts +5 -0
  639. package/src/utils/plugins/local-plugins.js +58 -0
  640. package/src/utils/plugins/models.d.ts +22 -0
  641. package/src/utils/plugins/models.js +2 -0
  642. package/src/utils/plugins/plugin-capabilities.d.ts +4 -0
  643. package/src/utils/plugins/plugin-capabilities.js +124 -0
  644. package/src/utils/plugins/shared.d.ts +1 -0
  645. package/src/utils/plugins/shared.js +8 -0
  646. package/src/utils/print-help.d.ts +11 -0
  647. package/src/utils/print-help.js +265 -0
  648. package/src/utils/project-graph-utils.d.ts +13 -0
  649. package/src/utils/project-graph-utils.js +74 -0
  650. package/src/utils/promised-based-queue.d.ts +6 -0
  651. package/src/utils/promised-based-queue.js +43 -0
  652. package/src/utils/serialize-overrides-into-command-line.d.ts +3 -0
  653. package/src/utils/serialize-overrides-into-command-line.js +43 -0
  654. package/src/utils/split-target.d.ts +3 -0
  655. package/src/utils/split-target.js +49 -0
  656. package/src/utils/strip-indents.d.ts +14 -0
  657. package/src/utils/strip-indents.js +24 -0
  658. package/src/utils/typescript.d.ts +1 -0
  659. package/src/utils/typescript.js +5 -0
  660. package/src/utils/update-nxw.d.ts +2 -0
  661. package/src/utils/update-nxw.js +12 -0
  662. package/src/utils/versions.d.ts +1 -0
  663. package/src/utils/versions.js +4 -0
  664. package/src/utils/workspace-configuration-check.d.ts +1 -0
  665. package/src/utils/workspace-configuration-check.js +37 -0
  666. package/src/utils/workspace-context.d.ts +10 -0
  667. package/src/utils/workspace-context.js +56 -0
  668. package/src/utils/workspace-root.d.ts +6 -0
  669. package/src/utils/workspace-root.js +39 -0
  670. package/tasks-runners/default.d.ts +1 -0
  671. package/tasks-runners/default.js +5 -0
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addUpdatedAndDeletedFiles = exports.getCachedSerializedProjectGraphPromise = exports.currentProjectGraph = exports.currentProjectFileMapCache = exports.fileMapWithFiles = void 0;
4
+ const perf_hooks_1 = require("perf_hooks");
5
+ const nx_json_1 = require("../../config/nx-json");
6
+ const file_hasher_1 = require("../../hasher/file-hasher");
7
+ const build_project_graph_1 = require("../../project-graph/build-project-graph");
8
+ const file_map_utils_1 = require("../../project-graph/file-map-utils");
9
+ const nx_deps_cache_1 = require("../../project-graph/nx-deps-cache");
10
+ const retrieve_workspace_files_1 = require("../../project-graph/utils/retrieve-workspace-files");
11
+ const fileutils_1 = require("../../utils/fileutils");
12
+ const workspace_context_1 = require("../../utils/workspace-context");
13
+ const workspace_root_1 = require("../../utils/workspace-root");
14
+ const file_watcher_sockets_1 = require("./file-watching/file-watcher-sockets");
15
+ const logger_1 = require("./logger");
16
+ let cachedSerializedProjectGraphPromise;
17
+ const collectedUpdatedFiles = new Set();
18
+ const collectedDeletedFiles = new Set();
19
+ let storedWorkspaceConfigHash;
20
+ let waitPeriod = 100;
21
+ let scheduledTimeoutId;
22
+ let knownExternalNodes = {};
23
+ async function getCachedSerializedProjectGraphPromise() {
24
+ try {
25
+ // recomputing it now on demand. we can ignore the scheduled timeout
26
+ if (scheduledTimeoutId) {
27
+ clearTimeout(scheduledTimeoutId);
28
+ scheduledTimeoutId = undefined;
29
+ }
30
+ // reset the wait time
31
+ waitPeriod = 100;
32
+ await resetInternalStateIfNxDepsMissing();
33
+ if (collectedUpdatedFiles.size == 0 && collectedDeletedFiles.size == 0) {
34
+ if (!cachedSerializedProjectGraphPromise) {
35
+ cachedSerializedProjectGraphPromise =
36
+ processFilesAndCreateAndSerializeProjectGraph();
37
+ }
38
+ }
39
+ else {
40
+ cachedSerializedProjectGraphPromise =
41
+ processFilesAndCreateAndSerializeProjectGraph();
42
+ }
43
+ return await cachedSerializedProjectGraphPromise;
44
+ }
45
+ catch (e) {
46
+ return {
47
+ error: e,
48
+ serializedProjectGraph: null,
49
+ serializedSourceMaps: null,
50
+ projectGraph: null,
51
+ fileMap: null,
52
+ allWorkspaceFiles: null,
53
+ rustReferences: null,
54
+ };
55
+ }
56
+ }
57
+ exports.getCachedSerializedProjectGraphPromise = getCachedSerializedProjectGraphPromise;
58
+ function addUpdatedAndDeletedFiles(createdFiles, updatedFiles, deletedFiles) {
59
+ for (let f of [...createdFiles, ...updatedFiles]) {
60
+ collectedDeletedFiles.delete(f);
61
+ collectedUpdatedFiles.add(f);
62
+ }
63
+ for (let f of deletedFiles) {
64
+ collectedUpdatedFiles.delete(f);
65
+ collectedDeletedFiles.add(f);
66
+ }
67
+ if (updatedFiles.length > 0 || deletedFiles.length > 0) {
68
+ (0, file_watcher_sockets_1.notifyFileWatcherSockets)(null, updatedFiles, deletedFiles);
69
+ }
70
+ if (createdFiles.length > 0) {
71
+ waitPeriod = 100; // reset it to process the graph faster
72
+ }
73
+ if (!scheduledTimeoutId) {
74
+ scheduledTimeoutId = setTimeout(async () => {
75
+ scheduledTimeoutId = undefined;
76
+ if (waitPeriod < 4000) {
77
+ waitPeriod = waitPeriod * 2;
78
+ }
79
+ cachedSerializedProjectGraphPromise =
80
+ processFilesAndCreateAndSerializeProjectGraph();
81
+ await cachedSerializedProjectGraphPromise;
82
+ if (createdFiles.length > 0) {
83
+ (0, file_watcher_sockets_1.notifyFileWatcherSockets)(createdFiles, null, null);
84
+ }
85
+ }, waitPeriod);
86
+ }
87
+ }
88
+ exports.addUpdatedAndDeletedFiles = addUpdatedAndDeletedFiles;
89
+ function computeWorkspaceConfigHash(projectsConfigurations) {
90
+ const projectConfigurationStrings = Object.entries(projectsConfigurations)
91
+ .sort(([projectNameA], [projectNameB]) => projectNameA.localeCompare(projectNameB))
92
+ .map(([projectName, projectConfig]) => `${projectName}:${JSON.stringify(projectConfig)}`);
93
+ return (0, file_hasher_1.hashArray)(projectConfigurationStrings);
94
+ }
95
+ async function processCollectedUpdatedAndDeletedFiles({ projects, externalNodes, projectRootMap }, updatedFileHashes, deletedFiles) {
96
+ try {
97
+ const workspaceConfigHash = computeWorkspaceConfigHash(projects);
98
+ // when workspace config changes we cannot incrementally update project file map
99
+ if (workspaceConfigHash !== storedWorkspaceConfigHash) {
100
+ storedWorkspaceConfigHash = workspaceConfigHash;
101
+ ({ ...exports.fileMapWithFiles } = await (0, retrieve_workspace_files_1.retrieveWorkspaceFiles)(workspace_root_1.workspaceRoot, projectRootMap));
102
+ knownExternalNodes = externalNodes;
103
+ }
104
+ else {
105
+ if (exports.fileMapWithFiles) {
106
+ exports.fileMapWithFiles = (0, file_map_utils_1.updateFileMap)(projects, exports.fileMapWithFiles.rustReferences, updatedFileHashes, deletedFiles);
107
+ }
108
+ else {
109
+ exports.fileMapWithFiles = await (0, retrieve_workspace_files_1.retrieveWorkspaceFiles)(workspace_root_1.workspaceRoot, projectRootMap);
110
+ }
111
+ }
112
+ collectedUpdatedFiles.clear();
113
+ collectedDeletedFiles.clear();
114
+ }
115
+ catch (e) {
116
+ // this is expected
117
+ // for instance, project.json can be incorrect or a file we are trying to has
118
+ // has been deleted
119
+ // we are resetting internal state to start from scratch next time a file changes
120
+ // given the user the opportunity to fix the error
121
+ // if Nx requests the project graph prior to the error being fixed,
122
+ // the error will be propagated
123
+ logger_1.serverLogger.log(`Error detected when recomputing project file map: ${e.message}`);
124
+ resetInternalState();
125
+ throw e;
126
+ }
127
+ }
128
+ async function processFilesAndCreateAndSerializeProjectGraph() {
129
+ try {
130
+ perf_hooks_1.performance.mark('hash-watched-changes-start');
131
+ const updatedFiles = [...collectedUpdatedFiles.values()];
132
+ const deletedFiles = [...collectedDeletedFiles.values()];
133
+ let updatedFileHashes = (0, workspace_context_1.updateFilesInContext)(updatedFiles, deletedFiles);
134
+ perf_hooks_1.performance.mark('hash-watched-changes-end');
135
+ perf_hooks_1.performance.measure('hash changed files from watcher', 'hash-watched-changes-start', 'hash-watched-changes-end');
136
+ logger_1.serverLogger.requestLog(`Updated workspace context based on watched changes, recomputing project graph...`);
137
+ logger_1.serverLogger.requestLog([...updatedFiles.values()]);
138
+ logger_1.serverLogger.requestLog([...deletedFiles]);
139
+ const nxJson = (0, nx_json_1.readNxJson)(workspace_root_1.workspaceRoot);
140
+ const graphNodes = await (0, retrieve_workspace_files_1.retrieveProjectConfigurations)(workspace_root_1.workspaceRoot, nxJson);
141
+ await processCollectedUpdatedAndDeletedFiles(graphNodes, updatedFileHashes, deletedFiles);
142
+ return createAndSerializeProjectGraph(graphNodes);
143
+ }
144
+ catch (err) {
145
+ return Promise.resolve({
146
+ error: err,
147
+ projectGraph: null,
148
+ fileMap: null,
149
+ rustReferences: null,
150
+ allWorkspaceFiles: null,
151
+ serializedProjectGraph: null,
152
+ serializedSourceMaps: null,
153
+ });
154
+ }
155
+ }
156
+ function copyFileData(d) {
157
+ return d.map((t) => ({ ...t }));
158
+ }
159
+ function copyFileMap(m) {
160
+ const c = {
161
+ nonProjectFiles: copyFileData(m.nonProjectFiles),
162
+ projectFileMap: {},
163
+ };
164
+ for (let p of Object.keys(m.projectFileMap)) {
165
+ c.projectFileMap[p] = copyFileData(m.projectFileMap[p]);
166
+ }
167
+ return c;
168
+ }
169
+ async function createAndSerializeProjectGraph({ projects, sourceMaps, }) {
170
+ try {
171
+ perf_hooks_1.performance.mark('create-project-graph-start');
172
+ const fileMap = copyFileMap(exports.fileMapWithFiles.fileMap);
173
+ const allWorkspaceFiles = copyFileData(exports.fileMapWithFiles.allWorkspaceFiles);
174
+ const rustReferences = exports.fileMapWithFiles.rustReferences;
175
+ const { projectGraph, projectFileMapCache } = await (0, build_project_graph_1.buildProjectGraphUsingProjectFileMap)(projects, knownExternalNodes, fileMap, allWorkspaceFiles, rustReferences, exports.currentProjectFileMapCache || (0, nx_deps_cache_1.readFileMapCache)(), true);
176
+ exports.currentProjectFileMapCache = projectFileMapCache;
177
+ exports.currentProjectGraph = projectGraph;
178
+ perf_hooks_1.performance.mark('create-project-graph-end');
179
+ perf_hooks_1.performance.measure('total execution time for createProjectGraph()', 'create-project-graph-start', 'create-project-graph-end');
180
+ perf_hooks_1.performance.mark('json-stringify-start');
181
+ const serializedProjectGraph = JSON.stringify(projectGraph);
182
+ const serializedSourceMaps = JSON.stringify(sourceMaps);
183
+ perf_hooks_1.performance.mark('json-stringify-end');
184
+ perf_hooks_1.performance.measure('serialize graph', 'json-stringify-start', 'json-stringify-end');
185
+ return {
186
+ error: null,
187
+ projectGraph,
188
+ fileMap,
189
+ allWorkspaceFiles,
190
+ serializedProjectGraph,
191
+ serializedSourceMaps,
192
+ rustReferences,
193
+ };
194
+ }
195
+ catch (e) {
196
+ logger_1.serverLogger.log(`Error detected when creating a project graph: ${e.message}`);
197
+ return {
198
+ error: e,
199
+ projectGraph: null,
200
+ fileMap: null,
201
+ allWorkspaceFiles: null,
202
+ serializedProjectGraph: null,
203
+ serializedSourceMaps: null,
204
+ rustReferences: null,
205
+ };
206
+ }
207
+ }
208
+ async function resetInternalState() {
209
+ cachedSerializedProjectGraphPromise = undefined;
210
+ exports.fileMapWithFiles = undefined;
211
+ exports.currentProjectFileMapCache = undefined;
212
+ exports.currentProjectGraph = undefined;
213
+ collectedUpdatedFiles.clear();
214
+ collectedDeletedFiles.clear();
215
+ (0, workspace_context_1.resetWorkspaceContext)();
216
+ waitPeriod = 100;
217
+ }
218
+ async function resetInternalStateIfNxDepsMissing() {
219
+ try {
220
+ if (!(0, fileutils_1.fileExists)(nx_deps_cache_1.nxProjectGraph) && cachedSerializedProjectGraphPromise) {
221
+ await resetInternalState();
222
+ }
223
+ }
224
+ catch (e) {
225
+ await resetInternalState();
226
+ }
227
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import { Server, Socket } from 'net';
3
+ export type HandlerResult = {
4
+ description: string;
5
+ error?: any;
6
+ response?: string;
7
+ };
8
+ export declare function handleResult(socket: Socket, type: string, hrFn: () => Promise<HandlerResult>): Promise<void>;
9
+ export declare function startServer(): Promise<Server>;
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startServer = exports.handleResult = void 0;
4
+ const fs_1 = require("fs");
5
+ const net_1 = require("net");
6
+ const path_1 = require("path");
7
+ const perf_hooks_1 = require("perf_hooks");
8
+ const file_hasher_1 = require("../../hasher/file-hasher");
9
+ const native_1 = require("../../native");
10
+ const consume_messages_from_socket_1 = require("../../utils/consume-messages-from-socket");
11
+ const fileutils_1 = require("../../utils/fileutils");
12
+ const versions_1 = require("../../utils/versions");
13
+ const workspace_context_1 = require("../../utils/workspace-context");
14
+ const workspace_root_1 = require("../../utils/workspace-root");
15
+ const cache_1 = require("../cache");
16
+ const socket_utils_1 = require("../socket-utils");
17
+ const file_watcher_sockets_1 = require("./file-watching/file-watcher-sockets");
18
+ const handle_hash_tasks_1 = require("./handle-hash-tasks");
19
+ const handle_outputs_tracking_1 = require("./handle-outputs-tracking");
20
+ const handle_process_in_background_1 = require("./handle-process-in-background");
21
+ const handle_request_file_data_1 = require("./handle-request-file-data");
22
+ const handle_request_project_graph_1 = require("./handle-request-project-graph");
23
+ const handle_request_shutdown_1 = require("./handle-request-shutdown");
24
+ const logger_1 = require("./logger");
25
+ const outputs_tracking_1 = require("./outputs-tracking");
26
+ const project_graph_incremental_recomputation_1 = require("./project-graph-incremental-recomputation");
27
+ const shutdown_utils_1 = require("./shutdown-utils");
28
+ const watcher_1 = require("./watcher");
29
+ let performanceObserver;
30
+ let workspaceWatcherError;
31
+ let outputsWatcherError;
32
+ let numberOfOpenConnections = 0;
33
+ const server = (0, net_1.createServer)(async (socket) => {
34
+ numberOfOpenConnections += 1;
35
+ logger_1.serverLogger.log(`Established a connection. Number of open connections: ${numberOfOpenConnections}`);
36
+ (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
37
+ if (!performanceObserver) {
38
+ performanceObserver = new perf_hooks_1.PerformanceObserver((list) => {
39
+ const entry = list.getEntries()[0];
40
+ logger_1.serverLogger.log(`Time taken for '${entry.name}'`, `${entry.duration}ms`);
41
+ });
42
+ performanceObserver.observe({ entryTypes: ['measure'] });
43
+ }
44
+ socket.on('data', (0, consume_messages_from_socket_1.consumeMessagesFromSocket)(async (message) => {
45
+ await handleMessage(socket, message);
46
+ }));
47
+ socket.on('error', (e) => {
48
+ logger_1.serverLogger.log('Socket error');
49
+ console.error(e);
50
+ });
51
+ socket.on('close', () => {
52
+ numberOfOpenConnections -= 1;
53
+ logger_1.serverLogger.log(`Closed a connection. Number of open connections: ${numberOfOpenConnections}`);
54
+ (0, file_watcher_sockets_1.removeRegisteredFileWatcherSocket)(socket);
55
+ });
56
+ });
57
+ registerProcessTerminationListeners();
58
+ async function handleMessage(socket, data) {
59
+ if (workspaceWatcherError) {
60
+ await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `File watcher error in the workspace '${workspace_root_1.workspaceRoot}'.`, workspaceWatcherError);
61
+ }
62
+ if (daemonIsOutdated()) {
63
+ await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Lock files changed`, {
64
+ name: '',
65
+ message: 'LOCK-FILES-CHANGED',
66
+ });
67
+ }
68
+ (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
69
+ const unparsedPayload = data;
70
+ let payload;
71
+ try {
72
+ payload = JSON.parse(unparsedPayload);
73
+ }
74
+ catch (e) {
75
+ await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
76
+ }
77
+ if (payload.type === 'PING') {
78
+ await handleResult(socket, 'PING', () => Promise.resolve({ response: JSON.stringify(true), description: 'ping' }));
79
+ }
80
+ else if (payload.type === 'REQUEST_PROJECT_GRAPH') {
81
+ await handleResult(socket, 'REQUEST_PROJECT_GRAPH', () => (0, handle_request_project_graph_1.handleRequestProjectGraph)());
82
+ }
83
+ else if (payload.type === 'HASH_TASKS') {
84
+ await handleResult(socket, 'HASH_TASKS', () => (0, handle_hash_tasks_1.handleHashTasks)(payload));
85
+ }
86
+ else if (payload.type === 'REQUEST_FILE_DATA') {
87
+ await handleResult(socket, 'REQUEST_FILE_DATA', () => (0, handle_request_file_data_1.handleRequestFileData)());
88
+ }
89
+ else if (payload.type === 'PROCESS_IN_BACKGROUND') {
90
+ await handleResult(socket, 'PROCESS_IN_BACKGROUND', () => (0, handle_process_in_background_1.handleProcessInBackground)(payload));
91
+ }
92
+ else if (payload.type === 'RECORD_OUTPUTS_HASH') {
93
+ await handleResult(socket, 'RECORD_OUTPUTS_HASH', () => (0, handle_outputs_tracking_1.handleRecordOutputsHash)(payload));
94
+ }
95
+ else if (payload.type === 'OUTPUTS_HASHES_MATCH') {
96
+ await handleResult(socket, 'OUTPUTS_HASHES_MATCH', () => (0, handle_outputs_tracking_1.handleOutputsHashesMatch)(payload));
97
+ }
98
+ else if (payload.type === 'REQUEST_SHUTDOWN') {
99
+ await handleResult(socket, 'REQUEST_SHUTDOWN', () => (0, handle_request_shutdown_1.handleRequestShutdown)(server, numberOfOpenConnections));
100
+ }
101
+ else if (payload.type === 'REGISTER_FILE_WATCHER') {
102
+ file_watcher_sockets_1.registeredFileWatcherSockets.push({ socket, config: payload.config });
103
+ }
104
+ else {
105
+ await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, `Invalid payload from the client`, new Error(`Unsupported payload sent to daemon server: ${unparsedPayload}`));
106
+ }
107
+ }
108
+ async function handleResult(socket, type, hrFn) {
109
+ const startMark = new Date();
110
+ const hr = await hrFn();
111
+ const doneHandlingMark = new Date();
112
+ if (hr.error) {
113
+ await (0, shutdown_utils_1.respondWithErrorAndExit)(socket, hr.description, hr.error);
114
+ }
115
+ else {
116
+ await (0, shutdown_utils_1.respondToClient)(socket, hr.response, hr.description);
117
+ }
118
+ const endMark = new Date();
119
+ logger_1.serverLogger.log(`Handled ${type}. Handling time: ${doneHandlingMark.getTime() - startMark.getTime()}. Response time: ${endMark.getTime() - doneHandlingMark.getTime()}.`);
120
+ }
121
+ exports.handleResult = handleResult;
122
+ function handleInactivityTimeout() {
123
+ if (numberOfOpenConnections > 0) {
124
+ logger_1.serverLogger.log(`There are ${numberOfOpenConnections} open connections. Reset inactivity timer.`);
125
+ (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
126
+ }
127
+ else {
128
+ (0, shutdown_utils_1.handleServerProcessTermination)({
129
+ server,
130
+ reason: `${shutdown_utils_1.SERVER_INACTIVITY_TIMEOUT_MS}ms of inactivity`,
131
+ });
132
+ }
133
+ }
134
+ function registerProcessTerminationListeners() {
135
+ process
136
+ .on('SIGINT', () => (0, shutdown_utils_1.handleServerProcessTermination)({
137
+ server,
138
+ reason: 'received process SIGINT',
139
+ }))
140
+ .on('SIGTERM', () => (0, shutdown_utils_1.handleServerProcessTermination)({
141
+ server,
142
+ reason: 'received process SIGTERM',
143
+ }))
144
+ .on('SIGHUP', () => (0, shutdown_utils_1.handleServerProcessTermination)({
145
+ server,
146
+ reason: 'received process SIGHUP',
147
+ }));
148
+ }
149
+ let existingLockHash;
150
+ function daemonIsOutdated() {
151
+ return nxVersionChanged() || lockFileHashChanged();
152
+ }
153
+ function nxVersionChanged() {
154
+ return versions_1.nxVersion !== getInstalledNxVersion();
155
+ }
156
+ const nxPackageJsonPath = require.resolve('nx/package.json');
157
+ function getInstalledNxVersion() {
158
+ try {
159
+ const { version } = (0, fileutils_1.readJsonFile)(nxPackageJsonPath);
160
+ return version;
161
+ }
162
+ catch (e) {
163
+ // node modules are absent, so we can return null, which would shut down the daemon
164
+ return null;
165
+ }
166
+ }
167
+ function lockFileHashChanged() {
168
+ const lockHashes = [
169
+ (0, path_1.join)(workspace_root_1.workspaceRoot, 'package-lock.json'),
170
+ (0, path_1.join)(workspace_root_1.workspaceRoot, 'yarn.lock'),
171
+ (0, path_1.join)(workspace_root_1.workspaceRoot, 'pnpm-lock.yaml'),
172
+ ]
173
+ .filter((file) => (0, fs_1.existsSync)(file))
174
+ .map((file) => (0, native_1.hashFile)(file));
175
+ const newHash = (0, file_hasher_1.hashArray)(lockHashes);
176
+ if (existingLockHash && newHash != existingLockHash) {
177
+ existingLockHash = newHash;
178
+ return true;
179
+ }
180
+ else {
181
+ existingLockHash = newHash;
182
+ return false;
183
+ }
184
+ }
185
+ /**
186
+ * When applicable files in the workspaces are changed (created, updated, deleted),
187
+ * we need to recompute the cached serialized project graph so that it is readily
188
+ * available for the next client request to the server.
189
+ */
190
+ const handleWorkspaceChanges = async (err, changeEvents) => {
191
+ if (workspaceWatcherError) {
192
+ logger_1.serverLogger.watcherLog('Skipping handleWorkspaceChanges because of a previously recorded watcher error.');
193
+ return;
194
+ }
195
+ try {
196
+ (0, shutdown_utils_1.resetInactivityTimeout)(handleInactivityTimeout);
197
+ if (daemonIsOutdated()) {
198
+ await (0, shutdown_utils_1.handleServerProcessTermination)({
199
+ server,
200
+ reason: 'Lock file changed',
201
+ });
202
+ return;
203
+ }
204
+ if (err || !changeEvents || !changeEvents.length) {
205
+ let error = typeof err === 'string' ? new Error(err) : err;
206
+ logger_1.serverLogger.watcherLog('Unexpected workspace watcher error', error.message);
207
+ console.error(error);
208
+ workspaceWatcherError = error;
209
+ return;
210
+ }
211
+ logger_1.serverLogger.watcherLog((0, watcher_1.convertChangeEventsToLogMessage)(changeEvents));
212
+ const updatedFilesToHash = [];
213
+ const createdFilesToHash = [];
214
+ const deletedFiles = [];
215
+ for (const event of changeEvents) {
216
+ if (event.type === 'delete') {
217
+ deletedFiles.push(event.path);
218
+ }
219
+ else {
220
+ try {
221
+ const s = (0, fs_1.statSync)((0, path_1.join)(workspace_root_1.workspaceRoot, event.path));
222
+ if (s.isFile()) {
223
+ if (event.type === 'update') {
224
+ updatedFilesToHash.push(event.path);
225
+ }
226
+ else {
227
+ createdFilesToHash.push(event.path);
228
+ }
229
+ }
230
+ }
231
+ catch (e) {
232
+ // this can happen when the update file was deleted right after
233
+ }
234
+ }
235
+ }
236
+ (0, project_graph_incremental_recomputation_1.addUpdatedAndDeletedFiles)(createdFilesToHash, updatedFilesToHash, deletedFiles);
237
+ }
238
+ catch (err) {
239
+ logger_1.serverLogger.watcherLog(`Unexpected workspace error`, err.message);
240
+ console.error(err);
241
+ workspaceWatcherError = err;
242
+ }
243
+ };
244
+ const handleOutputsChanges = async (err, changeEvents) => {
245
+ try {
246
+ if (err || !changeEvents || !changeEvents.length) {
247
+ let error = typeof err === 'string' ? new Error(err) : err;
248
+ logger_1.serverLogger.watcherLog('Unexpected outputs watcher error', error.message);
249
+ console.error(error);
250
+ outputsWatcherError = error;
251
+ (0, outputs_tracking_1.disableOutputsTracking)();
252
+ return;
253
+ }
254
+ if (outputsWatcherError) {
255
+ return;
256
+ }
257
+ logger_1.serverLogger.watcherLog('Processing file changes in outputs');
258
+ (0, outputs_tracking_1.processFileChangesInOutputs)(changeEvents);
259
+ }
260
+ catch (err) {
261
+ logger_1.serverLogger.watcherLog(`Unexpected outputs watcher error`, err.message);
262
+ console.error(err);
263
+ outputsWatcherError = err;
264
+ (0, outputs_tracking_1.disableOutputsTracking)();
265
+ }
266
+ };
267
+ async function startServer() {
268
+ (0, workspace_context_1.setupWorkspaceContext)(workspace_root_1.workspaceRoot);
269
+ // Persist metadata about the background process so that it can be cleaned up later if needed
270
+ await (0, cache_1.writeDaemonJsonProcessCache)({
271
+ processId: process.pid,
272
+ });
273
+ // See notes in socket-command-line-utils.ts on OS differences regarding clean up of existings connections.
274
+ if (!socket_utils_1.isWindows) {
275
+ (0, socket_utils_1.killSocketOrPath)();
276
+ }
277
+ return new Promise(async (resolve, reject) => {
278
+ try {
279
+ server.listen(socket_utils_1.FULL_OS_SOCKET_PATH, async () => {
280
+ try {
281
+ logger_1.serverLogger.log(`Started listening on: ${socket_utils_1.FULL_OS_SOCKET_PATH}`);
282
+ // this triggers the storage of the lock file hash
283
+ daemonIsOutdated();
284
+ if (!(0, shutdown_utils_1.getWatcherInstance)()) {
285
+ (0, shutdown_utils_1.storeWatcherInstance)(await (0, watcher_1.watchWorkspace)(server, handleWorkspaceChanges));
286
+ logger_1.serverLogger.watcherLog(`Subscribed to changes within: ${workspace_root_1.workspaceRoot} (native)`);
287
+ }
288
+ if (!(0, shutdown_utils_1.getOutputWatcherInstance)()) {
289
+ (0, shutdown_utils_1.storeOutputWatcherInstance)(await (0, watcher_1.watchOutputFiles)(handleOutputsChanges));
290
+ }
291
+ return resolve(server);
292
+ }
293
+ catch (err) {
294
+ await handleWorkspaceChanges(err, []);
295
+ }
296
+ });
297
+ }
298
+ catch (err) {
299
+ reject(err);
300
+ }
301
+ });
302
+ }
303
+ exports.startServer = startServer;
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ import type { Server, Socket } from 'net';
3
+ import type { Watcher } from '../../native';
4
+ export declare const SERVER_INACTIVITY_TIMEOUT_MS: 10800000;
5
+ export declare function storeWatcherInstance(instance: Watcher): void;
6
+ export declare function getWatcherInstance(): Watcher;
7
+ export declare function storeOutputWatcherInstance(instance: Watcher): void;
8
+ export declare function getOutputWatcherInstance(): Watcher;
9
+ interface HandleServerProcessTerminationParams {
10
+ server: Server;
11
+ reason: string;
12
+ }
13
+ export declare function handleServerProcessTermination({ server, reason, }: HandleServerProcessTerminationParams): Promise<void>;
14
+ export declare function resetInactivityTimeout(cb: () => void): void;
15
+ export declare function respondToClient(socket: Socket, response: string, description: string): Promise<unknown>;
16
+ export declare function respondWithErrorAndExit(socket: Socket, description: string, error: Error): Promise<void>;
17
+ export {};
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.respondWithErrorAndExit = exports.respondToClient = exports.resetInactivityTimeout = exports.handleServerProcessTermination = exports.getOutputWatcherInstance = exports.storeOutputWatcherInstance = exports.getWatcherInstance = exports.storeWatcherInstance = exports.SERVER_INACTIVITY_TIMEOUT_MS = void 0;
4
+ const workspace_root_1 = require("../../utils/workspace-root");
5
+ const logger_1 = require("./logger");
6
+ const socket_utils_1 = require("../socket-utils");
7
+ const cache_1 = require("../cache");
8
+ exports.SERVER_INACTIVITY_TIMEOUT_MS = 10800000; // 10800000 ms = 3 hours
9
+ let watcherInstance;
10
+ function storeWatcherInstance(instance) {
11
+ watcherInstance = instance;
12
+ }
13
+ exports.storeWatcherInstance = storeWatcherInstance;
14
+ function getWatcherInstance() {
15
+ return watcherInstance;
16
+ }
17
+ exports.getWatcherInstance = getWatcherInstance;
18
+ let outputWatcherInstance;
19
+ function storeOutputWatcherInstance(instance) {
20
+ outputWatcherInstance = instance;
21
+ }
22
+ exports.storeOutputWatcherInstance = storeOutputWatcherInstance;
23
+ function getOutputWatcherInstance() {
24
+ return outputWatcherInstance;
25
+ }
26
+ exports.getOutputWatcherInstance = getOutputWatcherInstance;
27
+ async function handleServerProcessTermination({ server, reason, }) {
28
+ try {
29
+ server.close();
30
+ (0, cache_1.deleteDaemonJsonProcessCache)();
31
+ if (watcherInstance) {
32
+ await watcherInstance.stop();
33
+ logger_1.serverLogger.watcherLog(`Stopping the watcher for ${workspace_root_1.workspaceRoot} (sources)`);
34
+ }
35
+ if (outputWatcherInstance) {
36
+ await outputWatcherInstance.stop();
37
+ logger_1.serverLogger.watcherLog(`Stopping the watcher for ${workspace_root_1.workspaceRoot} (outputs)`);
38
+ }
39
+ logger_1.serverLogger.log(`Server stopped because: "${reason}"`);
40
+ }
41
+ finally {
42
+ process.exit(0);
43
+ }
44
+ }
45
+ exports.handleServerProcessTermination = handleServerProcessTermination;
46
+ let serverInactivityTimerId;
47
+ function resetInactivityTimeout(cb) {
48
+ if (serverInactivityTimerId) {
49
+ clearTimeout(serverInactivityTimerId);
50
+ }
51
+ serverInactivityTimerId = setTimeout(cb, exports.SERVER_INACTIVITY_TIMEOUT_MS);
52
+ }
53
+ exports.resetInactivityTimeout = resetInactivityTimeout;
54
+ function respondToClient(socket, response, description) {
55
+ return new Promise(async (res) => {
56
+ if (description) {
57
+ logger_1.serverLogger.requestLog(`Responding to the client.`, description);
58
+ }
59
+ socket.write(`${response}${String.fromCodePoint(4)}`, (err) => {
60
+ if (err) {
61
+ console.error(err);
62
+ }
63
+ logger_1.serverLogger.log(`Done responding to the client`, description);
64
+ res(null);
65
+ });
66
+ });
67
+ }
68
+ exports.respondToClient = respondToClient;
69
+ async function respondWithErrorAndExit(socket, description, error) {
70
+ // print some extra stuff in the error message
71
+ logger_1.serverLogger.requestLog(`Responding to the client with an error.`, description, error.message);
72
+ console.error(error);
73
+ error.message = `${error.message}\n\nBecause of the error the Nx daemon process has exited. The next Nx command is going to restart the daemon process.\nIf the error persists, please run "nx reset".`;
74
+ await respondToClient(socket, (0, socket_utils_1.serializeResult)(error, null, null), null);
75
+ process.exit(1);
76
+ }
77
+ exports.respondWithErrorAndExit = respondWithErrorAndExit;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const output_1 = require("../../utils/output");
4
+ const server_1 = require("./server");
5
+ const process = require("process");
6
+ (async () => {
7
+ try {
8
+ await (0, server_1.startServer)();
9
+ }
10
+ catch (err) {
11
+ output_1.output.error({
12
+ title: err?.message ||
13
+ 'Something unexpected went wrong when starting the server',
14
+ });
15
+ process.exit(1);
16
+ }
17
+ })();
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ import { Server } from 'net';
3
+ import type { WatchEvent } from '../../native';
4
+ export type FileWatcherCallback = (err: Error | string | null, changeEvents: WatchEvent[] | null) => Promise<void>;
5
+ export declare function watchWorkspace(server: Server, cb: FileWatcherCallback): Promise<import("../../native").Watcher>;
6
+ export declare function watchOutputFiles(cb: FileWatcherCallback): Promise<import("../../native").Watcher>;
7
+ /**
8
+ * NOTE: An event type of "create" will also apply to the case where the user has restored
9
+ * an original version of a file after modifying/deleting it by using git, so we adjust
10
+ * our log language accordingly.
11
+ */
12
+ export declare function convertChangeEventsToLogMessage(changeEvents: WatchEvent[]): string;