@ng-doc/builder 22.0.0-beta.2 → 22.0.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 (421) hide show
  1. package/README.md +19 -28
  2. package/application/index.js +2 -2
  3. package/application/index.js.map +1 -1
  4. package/application/schema.json +1 -2
  5. package/builders.json +23 -13
  6. package/classes/observable-map.d.ts +1 -0
  7. package/classes/observable-map.js +14 -3
  8. package/classes/observable-map.js.map +1 -1
  9. package/classes/observable-set.js +2 -1
  10. package/classes/observable-set.js.map +1 -1
  11. package/dev-server/index.js +5 -3
  12. package/dev-server/index.js.map +1 -1
  13. package/engine/builders/api-list/api-list-component.builder.js +4 -4
  14. package/engine/builders/api-list/api-list-component.builder.js.map +1 -1
  15. package/engine/builders/api-list/api-page-template.builder.js +2 -2
  16. package/engine/builders/api-list/api-page-template.builder.js.map +1 -1
  17. package/engine/builders/global/keywords.builder.d.ts +1 -4
  18. package/engine/builders/global/keywords.builder.js +5 -9
  19. package/engine/builders/global/keywords.builder.js.map +1 -1
  20. package/engine/builders/global/search-indexes.builder.js +1 -1
  21. package/engine/builders/global/search-indexes.builder.js.map +1 -1
  22. package/engine/builders/helpers/create-entry-metadata.js +2 -1
  23. package/engine/builders/helpers/create-entry-metadata.js.map +1 -1
  24. package/engine/builders/helpers/create-import-path.js.map +1 -1
  25. package/engine/builders/helpers/get-entry-relative-path.js.map +1 -1
  26. package/engine/builders/page/demo-assets.builder.js +8 -5
  27. package/engine/builders/page/demo-assets.builder.js.map +1 -1
  28. package/engine/builders/page/playground.builder.js +1 -0
  29. package/engine/builders/page/playground.builder.js.map +1 -1
  30. package/engine/builders/shared/content.builder.js +3 -3
  31. package/engine/builders/shared/content.builder.js.map +1 -1
  32. package/engine/builders/shared/page-component.builder.js +16 -6
  33. package/engine/builders/shared/page-component.builder.js.map +1 -1
  34. package/engine/builders/shared/page-wrapper.builder.js +8 -5
  35. package/engine/builders/shared/page-wrapper.builder.js.map +1 -1
  36. package/engine/core/operators/distinct-pending.js.map +1 -1
  37. package/engine/core/operators/factory.js +1 -4
  38. package/engine/core/operators/factory.js.map +1 -1
  39. package/engine/core/operators/merge-factory.js +19 -17
  40. package/engine/core/operators/merge-factory.js.map +1 -1
  41. package/engine/core/operators/when-builders-done.js.map +1 -1
  42. package/engine/core/triggers/on-dependencies-change.d.ts +1 -1
  43. package/engine/core/triggers/on-dependencies-change.js +2 -2
  44. package/engine/core/triggers/on-dependencies-change.js.map +1 -1
  45. package/generator/artifacts/index.d.ts +317 -0
  46. package/generator/bootstrap/bin.d.ts +18 -0
  47. package/generator/bootstrap/bin.js +7274 -0
  48. package/generator/bootstrap/candidate-output-committer.d.ts +12 -0
  49. package/generator/bootstrap/cli.d.ts +42 -0
  50. package/generator/bootstrap/cli.js +7123 -0
  51. package/generator/bootstrap/constants.d.ts +4 -0
  52. package/generator/bootstrap/index.d.ts +111 -0
  53. package/generator/bootstrap/index.js +5020 -0
  54. package/generator/bootstrap/prerender-command.d.ts +31 -0
  55. package/generator/bootstrap/process-tree.d.ts +49 -0
  56. package/generator/build-metafile.json +11701 -0
  57. package/generator/build-provenance.json +119 -0
  58. package/generator/compiler/assemble.d.ts +41 -0
  59. package/generator/compiler/classify.d.ts +161 -0
  60. package/generator/compiler/closure-store.d.ts +55 -0
  61. package/generator/compiler/common.d.ts +32 -0
  62. package/generator/compiler/describe.d.ts +21 -0
  63. package/generator/compiler/dry-run.d.ts +108 -0
  64. package/generator/compiler/fast-start.d.ts +104 -0
  65. package/generator/compiler/fold.d.ts +116 -0
  66. package/generator/compiler/index.d.ts +111 -0
  67. package/generator/compiler/index.js +17759 -0
  68. package/generator/compiler/link.d.ts +38 -0
  69. package/generator/compiler/memo.d.ts +44 -0
  70. package/generator/compiler/plan.d.ts +92 -0
  71. package/generator/compiler/progress.d.ts +54 -0
  72. package/generator/compiler/render.d.ts +27 -0
  73. package/generator/compiler/retention.d.ts +181 -0
  74. package/generator/compiler/semantic-closure.d.ts +46 -0
  75. package/generator/compiler/targeted.d.ts +280 -0
  76. package/generator/content/content-compiler.d.ts +118 -0
  77. package/generator/content/highlight-cache.d.ts +139 -0
  78. package/generator/content/html-pipeline.d.ts +170 -0
  79. package/generator/content/html-pool.d.ts +239 -0
  80. package/generator/content/html-worker.js +1598 -0
  81. package/generator/content-module-ids.d.ts +8 -0
  82. package/generator/contracts.d.ts +1063 -0
  83. package/generator/contracts.js +15 -0
  84. package/generator/discovery/index.d.ts +77 -0
  85. package/generator/graph/index.d.ts +211 -0
  86. package/generator/graph/unit-index.d.ts +216 -0
  87. package/generator/kernel/canonical.d.ts +57 -0
  88. package/generator/kernel/flags.d.ts +49 -0
  89. package/generator/kernel/footprint.d.ts +88 -0
  90. package/generator/kernel/observations.d.ts +68 -0
  91. package/generator/kernel/paths.d.ts +22 -0
  92. package/generator/kernel/runtime-identity.d.ts +11 -0
  93. package/generator/outputs/index.d.ts +67 -0
  94. package/generator/package.json +3 -0
  95. package/generator/progress/ci.d.ts +22 -0
  96. package/generator/progress/detect.d.ts +60 -0
  97. package/generator/progress/events.d.ts +126 -0
  98. package/generator/progress/format.d.ts +83 -0
  99. package/generator/progress/gate.d.ts +49 -0
  100. package/generator/progress/host.d.ts +29 -0
  101. package/generator/progress/lines.d.ts +42 -0
  102. package/generator/progress/live.d.ts +115 -0
  103. package/generator/progress/model.d.ts +85 -0
  104. package/generator/progress/reporter.d.ts +87 -0
  105. package/generator/progress/settings.d.ts +60 -0
  106. package/generator/semantic/angular.d.ts +9 -0
  107. package/generator/semantic/api-enumeration.d.ts +19 -0
  108. package/generator/semantic/api-summary.d.ts +33 -0
  109. package/generator/semantic/dependencies.d.ts +20 -0
  110. package/generator/semantic/derived-classes.d.ts +58 -0
  111. package/generator/semantic/documentation-cache.d.ts +23 -0
  112. package/generator/semantic/fragments.d.ts +28 -0
  113. package/generator/semantic/owned-roots.d.ts +59 -0
  114. package/generator/semantic/program-builder.d.ts +55 -0
  115. package/generator/semantic/program-index.d.ts +124 -0
  116. package/generator/semantic/program-inputs.d.ts +26 -0
  117. package/generator/semantic/program-observations.d.ts +158 -0
  118. package/generator/semantic/program-retention.d.ts +147 -0
  119. package/generator/semantic/program-state.d.ts +196 -0
  120. package/generator/semantic/program-verify.d.ts +22 -0
  121. package/generator/semantic/recorder.d.ts +89 -0
  122. package/generator/semantic/rendering.d.ts +34 -0
  123. package/generator/semantic/semantic-closure.d.ts +129 -0
  124. package/generator/semantic/semantic-service.d.ts +186 -0
  125. package/generator/semantic/type-text.d.ts +5 -0
  126. package/generator/session/build-session.d.ts +206 -0
  127. package/generator/session/input-verification.d.ts +38 -0
  128. package/generator/session/parcel-event-source.d.ts +22 -0
  129. package/generator/session/progress.d.ts +72 -0
  130. package/generator/session/unchanged-saves.d.ts +63 -0
  131. package/generator/session/watch-inputs.d.ts +6 -0
  132. package/generator/session/watch-signals.d.ts +10 -0
  133. package/generator/templates/api/base.html.nunj +26 -0
  134. package/generator/templates/api/class-declaration.html.nunj +57 -0
  135. package/generator/templates/api/details/class-declaration.html.nunj +47 -0
  136. package/generator/templates/api/details/enum-declaration.html.nunj +0 -0
  137. package/generator/templates/api/details/function-declaration.html.nunj +14 -0
  138. package/generator/templates/api/details/helpers/decorators.html.nunj +14 -0
  139. package/generator/templates/api/details/helpers/extends.html.nunj +6 -0
  140. package/generator/templates/api/details/helpers/selectors.html.nunj +12 -0
  141. package/generator/templates/api/details/helpers/type-parameters.html.nunj +14 -0
  142. package/generator/templates/api/details/interface-declaration.html.nunj +27 -0
  143. package/generator/templates/api/details/type-alias-declaration.html.nunj +14 -0
  144. package/generator/templates/api/details/variable-declaration.html.nunj +0 -0
  145. package/generator/templates/api/details.html.nunj +9 -0
  146. package/generator/templates/api/enum-declaration.html.nunj +12 -0
  147. package/generator/templates/api/function-declaration.html.nunj +35 -0
  148. package/generator/templates/api/interface-declaration.html.nunj +37 -0
  149. package/generator/templates/api/type-alias-declaration.html.nunj +16 -0
  150. package/generator/templates/api/variable-declaration.html.nunj +8 -0
  151. package/generator/templates/api-header.html.nunj +11 -0
  152. package/generator/templates/api-list.ts.nunj +22 -0
  153. package/generator/templates/api-page-content.html.nunj +1 -0
  154. package/generator/templates/api-scope.ts.nunj +22 -0
  155. package/generator/templates/category.ts.nunj +22 -0
  156. package/generator/templates/code.html.nunj +3 -0
  157. package/generator/templates/context.ts.nunj +55 -0
  158. package/generator/templates/demo-assets.ts.nunj +25 -0
  159. package/generator/templates/helpers/accessor.html.nunj +76 -0
  160. package/generator/templates/helpers/accessors.html.nunj +7 -0
  161. package/generator/templates/helpers/badge.html.nunj +4 -0
  162. package/generator/templates/helpers/call-signature.html.nunj +70 -0
  163. package/generator/templates/helpers/code.html.nunj +3 -0
  164. package/generator/templates/helpers/constructor.html.nunj +32 -0
  165. package/generator/templates/helpers/declaration-modifiers.html.nunj +45 -0
  166. package/generator/templates/helpers/decorators.html.nunj +11 -0
  167. package/generator/templates/helpers/members.html.nunj +29 -0
  168. package/generator/templates/helpers/method.html.nunj +89 -0
  169. package/generator/templates/helpers/methods.html.nunj +7 -0
  170. package/generator/templates/helpers/modifier.html.nunj +4 -0
  171. package/generator/templates/helpers/no-content.html.nunj +3 -0
  172. package/generator/templates/helpers/overload.html.nunj +57 -0
  173. package/generator/templates/helpers/parameters.html.nunj +44 -0
  174. package/generator/templates/helpers/properties.html.nunj +61 -0
  175. package/generator/templates/helpers/status.html.nunj +33 -0
  176. package/generator/templates/helpers/tag.html.nunj +4 -0
  177. package/generator/templates/helpers/type.html.nunj +11 -0
  178. package/generator/templates/index.ts.nunj +2 -0
  179. package/generator/templates/page-header.html.nunj +5 -0
  180. package/generator/templates/page-wrapper.ts.nunj +64 -0
  181. package/generator/templates/page.ts.nunj +97 -0
  182. package/generator/templates/parts/examples.html.nunj +11 -0
  183. package/generator/templates/parts/member-examples.html.nunj +12 -0
  184. package/generator/templates/parts/member-remarks.html.nunj +8 -0
  185. package/generator/templates/parts/page-tags.html.nunj +10 -0
  186. package/generator/templates/parts/remarks.html.nunj +10 -0
  187. package/generator/templates/parts/see-also.html.nunj +23 -0
  188. package/generator/templates/parts/usage-notes.html.nunj +8 -0
  189. package/generator/templates/playgrounds.ts.nunj +63 -0
  190. package/generator/templates/routes.ts.nunj +49 -0
  191. package/generator/templates/symbol/decorators.html.nunj +12 -0
  192. package/generator/templates/symbol/details.html.nunj +62 -0
  193. package/generator/templates/symbol/extended-by.html.nunj +17 -0
  194. package/generator/templates/symbol/header.html.nunj +22 -0
  195. package/generator/templates/symbol/members.html.nunj +301 -0
  196. package/generator/templates/symbol/page.html.nunj +76 -0
  197. package/generator/templates/symbol/see-also.html.nunj +16 -0
  198. package/generator/vite/angular/ANALOG-LICENSE +21 -0
  199. package/generator/vite/angular/analog-provenance.json +880 -0
  200. package/generator/vite/angular/index.d.ts +14 -0
  201. package/generator/vite/angular/index.js +7300 -0
  202. package/generator/vite/angular-compatibility.d.ts +6 -0
  203. package/generator/vite/angular-composition.d.ts +68 -0
  204. package/generator/vite/angular-version.d.ts +38 -0
  205. package/generator/vite/application-builder.js +331 -0
  206. package/generator/vite/application-builder.schema.json +46 -0
  207. package/generator/vite/application.d.ts +91 -0
  208. package/generator/vite/assets.d.ts +11 -0
  209. package/generator/vite/bounded-close.d.ts +33 -0
  210. package/generator/vite/component-updates.d.ts +21 -0
  211. package/generator/vite/configuration.d.ts +3 -0
  212. package/generator/vite/dev-server-builder.js +334 -0
  213. package/generator/vite/dev-server-builder.schema.json +27 -0
  214. package/generator/vite/dev-styles.d.ts +65 -0
  215. package/generator/vite/diagnostics.d.ts +4 -0
  216. package/generator/vite/external-probes.d.ts +40 -0
  217. package/generator/vite/host-updates.d.ts +145 -0
  218. package/generator/vite/index.d.ts +13 -0
  219. package/generator/vite/index.js +11589 -0
  220. package/generator/vite/lease.d.ts +6 -0
  221. package/generator/vite/lifecycle.d.ts +119 -0
  222. package/generator/vite/mime.d.ts +2 -0
  223. package/generator/vite/missing-paths.d.ts +44 -0
  224. package/generator/vite/options.d.ts +87 -0
  225. package/generator/vite/output-watch.d.ts +41 -0
  226. package/generator/vite/paths.d.ts +7 -0
  227. package/generator/vite/plugin.d.ts +3 -0
  228. package/generator/vite/prerender-entry.js +395 -0
  229. package/generator/vite/prerender-runtime.d.ts +66 -0
  230. package/generator/vite/prerender.d.ts +27 -0
  231. package/generator/vite/production.d.ts +66 -0
  232. package/generator/vite/progress.d.ts +33 -0
  233. package/generator/vite/restore-theme.js +13 -0
  234. package/generator/vite/route-inventory.d.ts +24 -0
  235. package/generator/vite/ssr-renderer-control.d.ts +1 -0
  236. package/generator/vite/ssr-renderer-entry.js +444 -0
  237. package/generator/vite/ssr-renderer-protocol.d.ts +101 -0
  238. package/generator/vite/ssr-renderer.d.ts +74 -0
  239. package/generator/vite/theme-index.d.ts +13 -0
  240. package/generator/vite/tsconfig-paths.d.ts +64 -0
  241. package/generator/vite/vite-event-source.d.ts +198 -0
  242. package/generator/vite/vite-version.d.ts +26 -0
  243. package/generator/vite/watch-inputs.d.ts +39 -0
  244. package/generator/worker/entry.d.ts +1 -0
  245. package/generator/worker/entry.js +614 -0
  246. package/generator/worker/index.d.ts +156 -0
  247. package/generator/worker/index.js +1030 -0
  248. package/generator/worker/protocol.d.ts +160 -0
  249. package/helpers/angular/get-component-decorator.js +6 -6
  250. package/helpers/angular/get-component-decorator.js.map +1 -1
  251. package/helpers/angular/get-directive-decorator.js +3 -3
  252. package/helpers/angular/get-directive-decorator.js.map +1 -1
  253. package/helpers/angular/get-pipe-decorator.js +3 -3
  254. package/helpers/angular/get-pipe-decorator.js.map +1 -1
  255. package/helpers/build-indexes.js +5 -2
  256. package/helpers/build-indexes.js.map +1 -1
  257. package/helpers/construct-page-keyword.js +2 -1
  258. package/helpers/construct-page-keyword.js.map +1 -1
  259. package/helpers/extract-selectors.d.ts +1 -1
  260. package/helpers/extract-selectors.js +5 -3
  261. package/helpers/extract-selectors.js.map +1 -1
  262. package/helpers/filter-useless-members.d.ts +1 -1
  263. package/helpers/format-code.d.ts +2 -1
  264. package/helpers/format-code.js +13 -4
  265. package/helpers/format-code.js.map +1 -1
  266. package/helpers/import-fresh-esm.js.map +1 -1
  267. package/helpers/index.d.ts +2 -0
  268. package/helpers/index.js +2 -0
  269. package/helpers/index.js.map +1 -1
  270. package/helpers/keyword-heading-title.d.ts +7 -0
  271. package/helpers/keyword-heading-title.js +21 -0
  272. package/helpers/keyword-heading-title.js.map +1 -0
  273. package/helpers/markdown-to-html.js +3 -3
  274. package/helpers/markdown-to-html.js.map +1 -1
  275. package/helpers/navigation-title-order.d.ts +8 -0
  276. package/helpers/navigation-title-order.js +15 -0
  277. package/helpers/navigation-title-order.js.map +1 -0
  278. package/helpers/playground/get-playground-inputs.js +8 -4
  279. package/helpers/playground/get-playground-inputs.js.map +1 -1
  280. package/helpers/playground/get-playground-template-inputs.js +2 -1
  281. package/helpers/playground/get-playground-template-inputs.js.map +1 -1
  282. package/helpers/presentation.d.ts +7 -7
  283. package/helpers/presentation.js +23 -23
  284. package/helpers/presentation.js.map +1 -1
  285. package/helpers/print.js +32 -5
  286. package/helpers/print.js.map +1 -1
  287. package/helpers/process-snippets.d.ts +1 -1
  288. package/helpers/process-snippets.js +3 -3
  289. package/helpers/process-snippets.js.map +1 -1
  290. package/helpers/snippets-from-asset.d.ts +1 -1
  291. package/helpers/snippets-from-asset.js +2 -2
  292. package/helpers/snippets-from-asset.js.map +1 -1
  293. package/helpers/sort-navigation-entities.js +2 -1
  294. package/helpers/sort-navigation-entities.js.map +1 -1
  295. package/helpers/stable-generated-id.d.ts +2 -0
  296. package/helpers/stable-generated-id.js +12 -0
  297. package/helpers/stable-generated-id.js.map +1 -0
  298. package/helpers/text-order.d.ts +8 -0
  299. package/helpers/text-order.js +26 -0
  300. package/helpers/text-order.js.map +1 -0
  301. package/helpers/typescript/member/get-inherited-parent.d.ts +1 -1
  302. package/helpers/typescript/member/get-inherited-parent.js +2 -2
  303. package/helpers/typescript/member/get-inherited-parent.js.map +1 -1
  304. package/helpers/typescript/node/sort-by-nodes-name.d.ts +4 -2
  305. package/helpers/typescript/node/sort-by-nodes-name.js +6 -3
  306. package/helpers/typescript/node/sort-by-nodes-name.js.map +1 -1
  307. package/helpers/typescript/property/get-property-assignment.js.map +1 -1
  308. package/package.json +86 -29
  309. package/parsers/helpers/number.d.ts +1 -1
  310. package/parsers/helpers/number.js +2 -2
  311. package/parsers/helpers/number.js.map +1 -1
  312. package/parsers/helpers/param-value.d.ts +1 -1
  313. package/parsers/helpers/param-value.js +2 -2
  314. package/parsers/helpers/param-value.js.map +1 -1
  315. package/parsers/helpers/param.js +3 -3
  316. package/parsers/helpers/param.js.map +1 -1
  317. package/parsers/parse-code-block-params.d.ts +1 -1
  318. package/parsers/parse-code-block-params.js +22 -16
  319. package/parsers/parse-code-block-params.js.map +1 -1
  320. package/parsers/parse-snippet.js +10 -10
  321. package/parsers/parse-snippet.js.map +1 -1
  322. package/schematics/collection.json +34 -23
  323. package/schematics/migrate-to-vite/analyze.d.ts +76 -0
  324. package/schematics/migrate-to-vite/analyze.js +816 -0
  325. package/schematics/migrate-to-vite/analyze.js.map +1 -0
  326. package/schematics/migrate-to-vite/index.d.ts +9 -0
  327. package/schematics/migrate-to-vite/index.js +585 -0
  328. package/schematics/migrate-to-vite/index.js.map +1 -0
  329. package/schematics/migrate-to-vite/legacy-folder.d.ts +84 -0
  330. package/schematics/migrate-to-vite/legacy-folder.js +340 -0
  331. package/schematics/migrate-to-vite/legacy-folder.js.map +1 -0
  332. package/schematics/migrate-to-vite/report.d.ts +32 -0
  333. package/schematics/migrate-to-vite/report.js +97 -0
  334. package/schematics/migrate-to-vite/report.js.map +1 -0
  335. package/schematics/migrate-to-vite/schema.d.ts +13 -0
  336. package/schematics/migrate-to-vite/schema.js +3 -0
  337. package/schematics/migrate-to-vite/schema.js.map +1 -0
  338. package/schematics/migrate-to-vite/schema.json +31 -0
  339. package/schematics/migrate-to-vite/setup/dependencies.d.ts +64 -0
  340. package/schematics/migrate-to-vite/setup/dependencies.js +183 -0
  341. package/schematics/migrate-to-vite/setup/dependencies.js.map +1 -0
  342. package/schematics/migrate-to-vite/setup/index.d.ts +6 -0
  343. package/schematics/migrate-to-vite/setup/index.js +13 -0
  344. package/schematics/migrate-to-vite/setup/index.js.map +1 -0
  345. package/schematics/migrate-to-vite/setup/json-file.d.ts +51 -0
  346. package/schematics/migrate-to-vite/setup/json-file.js +115 -0
  347. package/schematics/migrate-to-vite/setup/json-file.js.map +1 -0
  348. package/schematics/migrate-to-vite/setup/source.d.ts +30 -0
  349. package/schematics/migrate-to-vite/setup/source.js +202 -0
  350. package/schematics/migrate-to-vite/setup/source.js.map +1 -0
  351. package/schematics/migrate-to-vite/setup/targets.d.ts +51 -0
  352. package/schematics/migrate-to-vite/setup/targets.js +48 -0
  353. package/schematics/migrate-to-vite/setup/targets.js.map +1 -0
  354. package/schematics/migrate-to-vite/setup/vite-config.d.ts +100 -0
  355. package/schematics/migrate-to-vite/setup/vite-config.js +175 -0
  356. package/schematics/migrate-to-vite/setup/vite-config.js.map +1 -0
  357. package/schematics/migrate-to-vite/setup/workspace.d.ts +100 -0
  358. package/schematics/migrate-to-vite/setup/workspace.js +225 -0
  359. package/schematics/migrate-to-vite/setup/workspace.js.map +1 -0
  360. package/schematics/migrate-to-vite/state.d.ts +65 -0
  361. package/schematics/migrate-to-vite/state.js +92 -0
  362. package/schematics/migrate-to-vite/state.js.map +1 -0
  363. package/schematics/migrate-to-vite/testing/fixtures.d.ts +18 -0
  364. package/schematics/migrate-to-vite/testing/fixtures.js +279 -0
  365. package/schematics/migrate-to-vite/testing/fixtures.js.map +1 -0
  366. package/schematics/migrate-to-vite/update-note.d.ts +6 -0
  367. package/schematics/migrate-to-vite/update-note.js +23 -0
  368. package/schematics/migrate-to-vite/update-note.js.map +1 -0
  369. package/schematics/migration.json +5 -0
  370. package/schematics/migrations/standalone-pages/index.js +7 -6
  371. package/schematics/migrations/standalone-pages/index.js.map +1 -1
  372. package/schematics/vite-setup/index.d.ts +20 -0
  373. package/schematics/vite-setup/index.js +206 -0
  374. package/schematics/vite-setup/index.js.map +1 -0
  375. package/schematics/vite-setup/schema.d.ts +7 -0
  376. package/schematics/vite-setup/schema.js +3 -0
  377. package/schematics/vite-setup/schema.js.map +1 -0
  378. package/schematics/vite-setup/schema.json +19 -0
  379. package/scripts/restore-theme.js +9 -2
  380. package/templates/context.ts.nunj +3 -0
  381. package/templates/helpers/badge.html.nunj +1 -1
  382. package/templates/helpers/status.html.nunj +4 -8
  383. package/templates/page-wrapper.ts.nunj +24 -1
  384. package/templates/page.ts.nunj +25 -0
  385. package/templates/parts/page-tags.html.nunj +1 -1
  386. package/templates/playgrounds.ts.nunj +8 -9
  387. package/templates/routes.ts.nunj +6 -1
  388. package/templates/symbol/decorators.html.nunj +12 -0
  389. package/templates/symbol/details.html.nunj +62 -0
  390. package/templates/symbol/extended-by.html.nunj +17 -0
  391. package/templates/symbol/header.html.nunj +22 -0
  392. package/templates/symbol/members.html.nunj +301 -0
  393. package/templates/symbol/page.html.nunj +76 -0
  394. package/templates/symbol/see-also.html.nunj +16 -0
  395. package/engine/.cache/apps/ng-doc/docs/api-documentation/auto-generation/ng-doc.page.mjs +0 -20
  396. package/engine/.cache/apps/ng-doc/docs/api-documentation/documenting-declarations/ng-doc.page.mjs +0 -20
  397. package/engine/.cache/apps/ng-doc/docs/api-documentation/rendering-api/ng-doc.page.mjs +0 -19
  398. package/engine/.cache/apps/ng-doc/docs/customization/icons/ng-doc.page.mjs +0 -19
  399. package/engine/.cache/apps/ng-doc/docs/customization/layout/ng-doc.page.mjs +0 -19
  400. package/engine/.cache/apps/ng-doc/docs/customization/page-processors/ng-doc.page.mjs +0 -19
  401. package/engine/.cache/apps/ng-doc/docs/customization/page-skeleton/ng-doc.page.mjs +0 -19
  402. package/engine/.cache/apps/ng-doc/docs/customization/search/ng-doc.page.mjs +0 -19
  403. package/engine/.cache/apps/ng-doc/docs/customization/themes/ng-doc.page.mjs +0 -19
  404. package/engine/.cache/apps/ng-doc/docs/develop/ng-doc.page.mjs +0 -36
  405. package/engine/.cache/apps/ng-doc/docs/getting-started/configuration/ng-doc.page.mjs +0 -19
  406. package/engine/.cache/apps/ng-doc/docs/getting-started/installation/ng-doc.page.mjs +0 -19
  407. package/engine/.cache/apps/ng-doc/docs/getting-started/migrations/ng-doc.page.mjs +0 -18
  408. package/engine/.cache/apps/ng-doc/docs/getting-started/ssr/ng-doc.page.mjs +0 -19
  409. package/engine/.cache/apps/ng-doc/docs/getting-started/what-is-ng-doc/ng-doc.page.mjs +0 -19
  410. package/engine/.cache/apps/ng-doc/docs/ng-doc.api.mjs +0 -42
  411. package/engine/.cache/apps/ng-doc/docs/recipes/ignoring-file-lines/ng-doc.page.mjs +0 -18
  412. package/engine/.cache/apps/ng-doc/docs/recipes/performance/ng-doc.page.mjs +0 -19
  413. package/engine/.cache/apps/ng-doc/docs/writing-content/blockquotes/ng-doc.page.mjs +0 -18
  414. package/engine/.cache/apps/ng-doc/docs/writing-content/code-blocks/ng-doc.page.mjs +0 -18
  415. package/engine/.cache/apps/ng-doc/docs/writing-content/demo-and-demo-pane/ng-doc.page.mjs +0 -19
  416. package/engine/.cache/apps/ng-doc/docs/writing-content/images-videos-and-embeds/ng-doc.page.mjs +0 -18
  417. package/engine/.cache/apps/ng-doc/docs/writing-content/keywords/ng-doc.page.mjs +0 -17
  418. package/engine/.cache/apps/ng-doc/docs/writing-content/mermaid-diagrams/ng-doc.page.mjs +0 -18
  419. package/engine/.cache/apps/ng-doc/docs/writing-content/nunjucks/ng-doc.page.mjs +0 -18
  420. package/engine/.cache/apps/ng-doc/docs/writing-content/pages-and-categories/ng-doc.page.mjs +0 -18
  421. package/engine/.cache/apps/ng-doc/docs/writing-content/playground/ng-doc.page.mjs +0 -33
@@ -0,0 +1,585 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NGDOC_VITE_CONFIG = void 0;
4
+ exports.migrateToVite = migrateToVite;
5
+ const schematics_1 = require("@angular-devkit/schematics");
6
+ const tasks_1 = require("@angular-devkit/schematics/tasks");
7
+ const child_process_1 = require("child_process");
8
+ const path_1 = require("path");
9
+ const analyze_1 = require("./analyze");
10
+ const legacy_folder_1 = require("./legacy-folder");
11
+ const report_1 = require("./report");
12
+ const dependencies_1 = require("./setup/dependencies");
13
+ const source_1 = require("./setup/source");
14
+ const targets_1 = require("./setup/targets");
15
+ const vite_config_1 = require("./setup/vite-config");
16
+ const workspace_1 = require("./setup/workspace");
17
+ const state_1 = require("./state");
18
+ const CACHE_IGNORE = '/.cache/ng-doc';
19
+ /** The configuration files Vite (and Vitest, after its own) looks for in a folder, in its order. */
20
+ const VITE_DEFAULT_CONFIGS = [
21
+ 'vite.config.js',
22
+ 'vite.config.mjs',
23
+ 'vite.config.ts',
24
+ 'vite.config.cjs',
25
+ 'vite.config.mts',
26
+ 'vite.config.cts',
27
+ ];
28
+ /** The name of NgDoc's Vite configuration when the project folder already has a `vite.config.*`. */
29
+ exports.NGDOC_VITE_CONFIG = 'vite.ng-doc.config.mjs';
30
+ /**
31
+ * Picks the file NgDoc's Vite configuration is written to.
32
+ *
33
+ * Vite and Vitest run without `--config` load the first default name they find in a folder
34
+ * (`vite.config.{js,mjs,ts,cjs,mts,cts}`; Vitest after its own `vitest.config.*`), so a new
35
+ * `vite.config.mjs` next to a project's `vite.config.mts` (often its unit-test setup) would take
36
+ * its place. When the folder has one, NgDoc's configuration gets a name neither tool looks for,
37
+ * and the Vite targets name it in `configFile`, which the builders pass to Vite explicitly.
38
+ * A second run keeps the file the first run chose, which the Vite build target names.
39
+ * @param tree - The workspace tree.
40
+ * @param project - The project as it is now.
41
+ * @param state - The state of an earlier run.
42
+ * @param requested - The `--vite-config` option.
43
+ */
44
+ function chooseViteConfig(tree, project, state, requested) {
45
+ const defaultsIn = (folder) => VITE_DEFAULT_CONFIGS.map((name) => path_1.posix.join(folder, name)).filter((file) => tree.exists(file));
46
+ if (requested)
47
+ return { file: requested, kept: [] };
48
+ const configured = state ? project.targets[state.build.name]?.options?.['configFile'] : undefined;
49
+ const existing = defaultsIn(project.root);
50
+ const file = typeof configured === 'string'
51
+ ? configured
52
+ : path_1.posix.join(project.root, existing.length ? exports.NGDOC_VITE_CONFIG : 'vite.config.mjs');
53
+ return {
54
+ file,
55
+ kept: path_1.posix.basename(file) === exports.NGDOC_VITE_CONFIG ? defaultsIn(path_1.posix.dirname(file)) : [],
56
+ };
57
+ }
58
+ /**
59
+ * The other default-named Vite configurations next to a file the user named with `--vite-config`.
60
+ * @param tree - The workspace tree.
61
+ * @param configFile - The configuration file to create, workspace-relative.
62
+ */
63
+ function otherViteConfigs(tree, configFile) {
64
+ if (!VITE_DEFAULT_CONFIGS.includes(path_1.posix.basename(configFile)))
65
+ return [];
66
+ const folder = path_1.posix.dirname(configFile);
67
+ return VITE_DEFAULT_CONFIGS.map((name) => path_1.posix.join(folder, name)).filter((file) => file !== configFile && tree.exists(file));
68
+ }
69
+ /** Rewrites the `buildTarget` references of a serve target from one build target name to another. */
70
+ function renameBuildTarget(target, project, from, to) {
71
+ const rewrite = (options) => {
72
+ const reference = options?.['buildTarget'];
73
+ const parsed = typeof reference === 'string' ? (0, workspace_1.parseTargetString)(reference) : undefined;
74
+ if (!options || !parsed || parsed.target !== from)
75
+ return options;
76
+ if (parsed.project && parsed.project !== project)
77
+ return options;
78
+ const configuration = parsed.configuration ? `:${parsed.configuration}` : '';
79
+ return { ...options, buildTarget: `${parsed.project}:${to}${configuration}` };
80
+ };
81
+ return {
82
+ ...target,
83
+ ...(target.options ? { options: rewrite(target.options) } : {}),
84
+ ...(target.configurations
85
+ ? {
86
+ configurations: Object.fromEntries(Object.entries(target.configurations).map(([name, value]) => [name, rewrite(value)])),
87
+ }
88
+ : {}),
89
+ };
90
+ }
91
+ function selectProject(tree, projects, name) {
92
+ if (!projects.length) {
93
+ throw new schematics_1.SchematicsException('[NGDOC_MIGRATE_WORKSPACE] No angular.json or project.json was found. Run the schematic in an Angular CLI or Nx workspace.');
94
+ }
95
+ if (name) {
96
+ const project = projects.find((item) => item.name === name);
97
+ if (!project)
98
+ throw new schematics_1.SchematicsException(`[NGDOC_MIGRATE_PROJECT] Project "${name}" does not exist.`);
99
+ return project;
100
+ }
101
+ const candidates = projects.filter((project) => (0, analyze_1.findLegacyTargets)(project).build || (0, state_1.readState)(tree, project.name));
102
+ if (candidates.length === 1)
103
+ return candidates[0];
104
+ throw new schematics_1.SchematicsException(candidates.length
105
+ ? `[NGDOC_MIGRATE_PROJECT] Several projects use NgDoc (${candidates
106
+ .map((project) => project.name)
107
+ .join(', ')}). Pass --project.`
108
+ : '[NGDOC_MIGRATE_PROJECT] No project builds with @ng-doc/builder:application. Pass --project.');
109
+ }
110
+ /**
111
+ * The project as it was before the migration: the legacy targets under their original names and
112
+ * the retargeted options restored. Analyzing it again plans exactly what the first run did.
113
+ */
114
+ function beforeMigration(project, state) {
115
+ const targets = { ...project.targets };
116
+ for (const name of [state.build.legacy, ...(state.serve ? [state.serve.legacy] : [])]) {
117
+ const target = targets[name];
118
+ if (target && state.legacyFolder) {
119
+ targets[name] = (0, legacy_folder_1.undoLegacyEdits)(target, name, state.legacyFolder.edits).target;
120
+ }
121
+ }
122
+ const buildLegacy = targets[state.build.legacy];
123
+ if (buildLegacy) {
124
+ targets[state.build.name] = buildLegacy;
125
+ delete targets[state.build.legacy];
126
+ }
127
+ const serveLegacy = state.serve ? targets[state.serve.legacy] : undefined;
128
+ if (state.serve && serveLegacy) {
129
+ targets[state.serve.name] = renameBuildTarget(serveLegacy, project.name, state.build.legacy, state.build.name);
130
+ delete targets[state.serve.legacy];
131
+ }
132
+ for (const retarget of state.retargets) {
133
+ const target = targets[retarget.target];
134
+ if (!target)
135
+ continue;
136
+ targets[retarget.target] = (0, workspace_1.withBuildTarget)(target, retarget.before);
137
+ }
138
+ return { ...project, targets };
139
+ }
140
+ function canonical(value) {
141
+ if (Array.isArray(value))
142
+ return value.map(canonical);
143
+ if (value && typeof value === 'object') {
144
+ return Object.fromEntries(Object.keys(value)
145
+ .sort()
146
+ .map((key) => [key, canonical(value[key])]));
147
+ }
148
+ return value;
149
+ }
150
+ /** The hash of a target's definition, independent of key order and layout. */
151
+ function hashTarget(target) {
152
+ return (0, dependencies_1.hashContent)(JSON.stringify(canonical(target)));
153
+ }
154
+ /**
155
+ * Legacy targets kept as `<name>-legacy` next to a Vite target, or next to a target whose
156
+ * configuration file exists: the project was migrated, even when its migration state is gone.
157
+ */
158
+ function migratedWithoutState(tree, project) {
159
+ return Object.keys(project.targets).filter((name) => {
160
+ const builder = (0, workspace_1.targetBuilder)(project.targets[name]) ?? '';
161
+ if (!name.endsWith('-legacy'))
162
+ return false;
163
+ if (!analyze_1.LEGACY_BUILD_BUILDERS.includes(builder) && !analyze_1.LEGACY_SERVE_BUILDERS.includes(builder)) {
164
+ return false;
165
+ }
166
+ const replacement = project.targets[name.slice(0, -'-legacy'.length)];
167
+ const configFile = replacement?.options?.['configFile'];
168
+ return ([targets_1.VITE_APPLICATION_BUILDER, targets_1.VITE_DEV_SERVER_BUILDER].includes((0, workspace_1.targetBuilder)(replacement) ?? '') ||
169
+ (typeof configFile === 'string' && tree.exists(configFile)));
170
+ });
171
+ }
172
+ function gitIsDirty() {
173
+ try {
174
+ return ((0, child_process_1.execFileSync)('git', ['status', '--porcelain'], {
175
+ cwd: process.cwd(),
176
+ encoding: 'utf8',
177
+ stdio: ['ignore', 'pipe', 'ignore'],
178
+ timeout: 10_000,
179
+ }).trim() !== '');
180
+ }
181
+ catch {
182
+ return false;
183
+ }
184
+ }
185
+ function logReport(context, report, blocked) {
186
+ const log = blocked
187
+ ? context.logger.error.bind(context.logger)
188
+ : context.logger.info.bind(context.logger);
189
+ log(report);
190
+ }
191
+ /**
192
+ * Logs the report of a successful migration after the workflow's own file list. The Angular CLI
193
+ * prints one `CREATE`/`UPDATE`/`DELETE` line per file once the tree is committed, at the workflow's
194
+ * `post-tasks-start` (or `end`, in a dry run, which runs no tasks), and the legacy generated folder
195
+ * alone can be hundreds of `DELETE` lines; a report logged from the rule would scroll away above
196
+ * them. The CLI subscribes to the life cycle before the schematic runs, so this subscription runs
197
+ * after its flush. Without a workflow that exposes its life cycle (the schematic test runner), the
198
+ * report is logged at once.
199
+ * @param context - The schematic context.
200
+ * @param lines - The report and any notes after it.
201
+ */
202
+ function logReportLast(context, lines) {
203
+ const log = () => lines.forEach((line) => context.logger.info(line));
204
+ const lifeCycle = context.engine.workflow?.lifeCycle;
205
+ if (typeof lifeCycle?.subscribe !== 'function') {
206
+ log();
207
+ return;
208
+ }
209
+ let logged = false;
210
+ const subscription = lifeCycle.subscribe((event) => {
211
+ if (logged || (event.kind !== 'post-tasks-start' && event.kind !== 'end'))
212
+ return;
213
+ logged = true;
214
+ log();
215
+ // The subscription may not be assigned yet if a workflow replays an event synchronously.
216
+ queueMicrotask(() => subscription.unsubscribe());
217
+ });
218
+ }
219
+ /**
220
+ * `ng g @ng-doc/builder:migrate-to-vite`: moves a project from the legacy NgDoc builders to the
221
+ * Vite engine, or back with `--revert`.
222
+ */
223
+ function migrateToVite(options) {
224
+ return (tree, context) => {
225
+ const project = selectProject(tree, (0, workspace_1.readWorkspaceProjects)(tree), options.project);
226
+ const state = (0, state_1.readState)(tree, project.name);
227
+ if (options.revert)
228
+ return revert(tree, context, project, state);
229
+ if (gitIsDirty()) {
230
+ context.logger.warn('The working tree has uncommitted changes. Commit or stash them first, so you can review and undo the migration.');
231
+ }
232
+ return migrate(tree, context, project, state, options);
233
+ };
234
+ }
235
+ function migrate(tree, context, current, state, options) {
236
+ const kept = state ? [] : migratedWithoutState(tree, current);
237
+ if (kept.length) {
238
+ context.logger.warn(`Project "${current.name}" was already migrated to the Vite engine: ${kept
239
+ .map((name) => `\`${name}\``)
240
+ .join(', ')} keep the legacy builders, but ${(0, state_1.stateFolder)(current.name)}/state.json is ` +
241
+ 'missing. Nothing was changed. To migrate again, restore the original targets first ' +
242
+ '(for example with git); --revert needs the state file.');
243
+ return;
244
+ }
245
+ const project = state ? beforeMigration(current, state) : current;
246
+ const { build, serve } = (0, analyze_1.findLegacyTargets)(project);
247
+ if (!build) {
248
+ const buildTarget = Object.values(project.targets).find((target) => (0, workspace_1.targetBuilder)(target) === targets_1.VITE_APPLICATION_BUILDER);
249
+ if (buildTarget) {
250
+ context.logger.info(`Project "${project.name}" already builds with the Vite engine (${targets_1.VITE_APPLICATION_BUILDER}); nothing to migrate.`);
251
+ return;
252
+ }
253
+ const findings = [
254
+ {
255
+ level: 'blocking',
256
+ subject: 'build',
257
+ message: `uses \`${(0, workspace_1.targetBuilder)(buildTarget) ?? 'no builder'}\`, not one of ${analyze_1.LEGACY_BUILD_BUILDERS.map((name) => `\`${name}\``).join(', ')}. A custom builder has no automatic migration.`,
258
+ },
259
+ ];
260
+ logReport(context, (0, report_1.renderReport)({ project: project.name, findings }), true);
261
+ throw new schematics_1.SchematicsException(`[NGDOC_MIGRATE_BLOCKED] Project "${project.name}" was not migrated.`);
262
+ }
263
+ const viteConfig = chooseViteConfig(tree, current, state, options.viteConfig);
264
+ const plan = (0, analyze_1.analyzeProject)(tree, project, build, serve, {
265
+ viteConfig: viteConfig.file,
266
+ ...(options.rootComponent ? { rootComponent: options.rootComponent } : {}),
267
+ }, (0, workspace_1.builderKey)(project.targets[build]));
268
+ const configText = (0, vite_config_1.renderNgDocViteConfig)(plan.setup, [
269
+ `The Vite configuration of the NgDoc site "${project.name}", generated by`,
270
+ '`ng g @ng-doc/builder:migrate-to-vite` from its legacy build target. The vite-application and',
271
+ 'vite-dev-server targets run it. Edit it freely; the schematic does not overwrite it.',
272
+ ]);
273
+ const configFile = plan.setup.configFile;
274
+ if (tree.exists(configFile) && !state && tree.readText(configFile) !== configText) {
275
+ plan.findings.push({
276
+ level: 'blocking',
277
+ subject: configFile,
278
+ message: 'already exists. Move it away, or pass `--vite-config` with another file name.',
279
+ });
280
+ }
281
+ // A default name the user asked for next to the project's own configuration: their choice,
282
+ // with a reminder that one of the two now shadows the other for Vite and Vitest run directly.
283
+ const others = state || !options.viteConfig ? [] : otherViteConfigs(tree, configFile);
284
+ if (others.length) {
285
+ plan.findings.push({
286
+ level: 'manual',
287
+ subject: others.join(', '),
288
+ message: `already configures Vite in this folder (for example for Vitest). Vite and Vitest load ` +
289
+ `one \`vite.config.*\` per folder, so \`${path_1.posix.basename(configFile)}\` next to it ` +
290
+ 'takes the place of one of them. Check that the tools of this folder still load the ' +
291
+ 'configuration they expect.',
292
+ });
293
+ }
294
+ for (const [name, legacyName] of [
295
+ [plan.build.name, plan.build.legacyName],
296
+ ...(plan.serve ? [[plan.serve.name, plan.serve.legacyName]] : []),
297
+ ]) {
298
+ if (!state && current.targets[legacyName]) {
299
+ plan.findings.push({
300
+ level: 'blocking',
301
+ subject: legacyName,
302
+ message: `already exists, so the \`${name}\` target cannot be kept under that name.`,
303
+ });
304
+ }
305
+ }
306
+ if (plan.findings.some((finding) => finding.level === 'blocking')) {
307
+ logReport(context, (0, report_1.renderReport)({ project: project.name, findings: plan.findings }), true);
308
+ throw new schematics_1.SchematicsException(`[NGDOC_MIGRATE_BLOCKED] Project "${project.name}" was not migrated; see the report above.`);
309
+ }
310
+ const next = state
311
+ ? structuredClone(state)
312
+ : {
313
+ schemaVersion: 1,
314
+ project: project.name,
315
+ build: { name: plan.build.name, legacy: plan.build.legacyName },
316
+ ...(plan.serve ? { serve: { name: plan.serve.name, legacy: plan.serve.legacyName } } : {}),
317
+ retargets: [],
318
+ created: {},
319
+ modified: {},
320
+ dependencies: {},
321
+ };
322
+ // The kept legacy targets get a generated folder of their own, so the engines never share one.
323
+ // A second run plans the same folder from the original targets and adds only missing files.
324
+ const legacyFolder = plan.legacyOutput
325
+ ? (0, legacy_folder_1.planLegacyFolder)(tree, {
326
+ project,
327
+ build: { name: plan.build.name, legacyName: plan.build.legacyName },
328
+ ...(plan.serve
329
+ ? { serve: { name: plan.serve.name, legacyName: plan.serve.legacyName } }
330
+ : {}),
331
+ legacyOutput: plan.legacyOutput,
332
+ ...(plan.setup.ngDocConfig ? { ngDocConfig: plan.setup.ngDocConfig } : {}),
333
+ owned: new Set(Object.keys(next.created)),
334
+ })
335
+ : undefined;
336
+ plan.findings.push(...(legacyFolder?.findings ?? []));
337
+ if (!state && legacyFolder?.edits.length) {
338
+ const { edits } = legacyFolder;
339
+ plan.build.legacy = (0, legacy_folder_1.applyLegacyEdits)(plan.build.legacy, plan.build.legacyName, edits);
340
+ if (plan.serve) {
341
+ plan.serve.legacy = (0, legacy_folder_1.applyLegacyEdits)(plan.serve.legacy, plan.serve.legacyName, edits);
342
+ }
343
+ next.legacyFolder = { folder: legacyFolder.folder, edits };
344
+ }
345
+ // Targets: the originals move to `<name>-legacy`, the Vite targets take their names. A second run
346
+ // leaves the targets alone, so edits to the new targets survive it.
347
+ if (!state) {
348
+ applyTargets(tree, current, plan);
349
+ next.retargets = plan.retargets;
350
+ next.targetHashes = Object.fromEntries([plan.build, ...(plan.serve ? [plan.serve] : [])].map((target) => [
351
+ target.name,
352
+ hashTarget(target.next),
353
+ ]));
354
+ }
355
+ // The Vite configuration: created once, never overwritten.
356
+ if (!tree.exists(configFile)) {
357
+ tree.create(configFile, configText);
358
+ next.created[configFile] = (0, dependencies_1.hashContent)(configText);
359
+ }
360
+ else if (next.created[configFile] &&
361
+ (0, dependencies_1.hashContent)(tree.readText(configFile)) !== next.created[configFile]) {
362
+ plan.findings.push({
363
+ level: 'dropped',
364
+ subject: configFile,
365
+ message: 'was edited after the migration and was kept as it is.',
366
+ });
367
+ }
368
+ // The legacy targets' configuration and tsconfig files: created once, never overwritten.
369
+ if (next.legacyFolder) {
370
+ for (const [file, text] of Object.entries(legacyFolder?.files ?? {})) {
371
+ if (tree.exists(file))
372
+ continue;
373
+ tree.create(file, text);
374
+ next.created[file] = (0, dependencies_1.hashContent)(text);
375
+ }
376
+ }
377
+ // The server entry waits for NgDoc content before a page is prerendered.
378
+ const serverEntry = plan.setup.server;
379
+ if (serverEntry && tree.exists(serverEntry)) {
380
+ const text = tree.readText(serverEntry);
381
+ const wrapped = (0, source_1.wrapServerEntry)(serverEntry, text);
382
+ if (wrapped === undefined) {
383
+ plan.findings.push({
384
+ level: 'manual',
385
+ subject: serverEntry,
386
+ message: "Wrap the default export with `withNgDocContentReady` from '@ng-doc/app/helpers', so prerendering waits for the page content.",
387
+ });
388
+ }
389
+ else if (wrapped !== text) {
390
+ modify(tree, next, serverEntry, wrapped);
391
+ }
392
+ if (wrapped !== undefined) {
393
+ plan.findings.push({
394
+ level: 'migrated',
395
+ subject: serverEntry,
396
+ message: 'The default export is wrapped with `withNgDocContentReady`.',
397
+ });
398
+ }
399
+ }
400
+ // The engine's cache folder, and the legacy targets' generated folder, stay out of version control.
401
+ const ignored = [CACHE_IGNORE, ...(next.legacyFolder ? [legacy_folder_1.LEGACY_OUT_DIR_IGNORE] : [])];
402
+ if (tree.exists('.gitignore')) {
403
+ const before = tree.readText('.gitignore');
404
+ const cache = (0, dependencies_1.addGitIgnoreLine)(tree, CACHE_IGNORE);
405
+ const legacy = !!next.legacyFolder &&
406
+ (0, dependencies_1.addGitIgnoreLine)(tree, legacy_folder_1.LEGACY_OUT_DIR_IGNORE, 'NgDoc files of the legacy builders');
407
+ if (cache || legacy) {
408
+ const after = tree.readText('.gitignore');
409
+ tree.overwrite('.gitignore', before);
410
+ modify(tree, next, '.gitignore', after);
411
+ }
412
+ }
413
+ else {
414
+ plan.findings.push({
415
+ level: 'manual',
416
+ subject: '.gitignore',
417
+ message: `does not exist; keep ${ignored.map((line) => `\`${line}\``).join(' and ')} out of version control.`,
418
+ });
419
+ }
420
+ // Dependencies: added once; a mismatch is reported, never changed.
421
+ const { added, mismatches } = (0, dependencies_1.addNgDocViteDependencies)(tree);
422
+ Object.assign(next.dependencies, added);
423
+ if (Object.keys(added).length && !options.skipInstall)
424
+ context.addTask(new tasks_1.NodePackageInstallTask());
425
+ // The legacy output: the new engine refuses to overwrite files it did not write.
426
+ if (!state && plan.legacyOutput && (0, state_1.deleteFolder)(tree, plan.legacyOutput) > 0) {
427
+ next.legacyOutputDeleted = true;
428
+ }
429
+ if (!plan.legacyOutput) {
430
+ plan.findings.push({
431
+ level: 'manual',
432
+ subject: 'ngDoc.outDir',
433
+ message: `is not a string literal. Delete \`<outDir>/ng-doc/${project.name}\` once before the first ` +
434
+ 'build. The legacy targets keep writing that folder, so delete it again whenever you ' +
435
+ 'switch engines.',
436
+ });
437
+ }
438
+ if (plan.legacyOutput)
439
+ next.generatedFolder = plan.legacyOutput;
440
+ next.cacheFolder = plan.setup.cacheRoot;
441
+ const report = (0, report_1.renderReport)({
442
+ project: project.name,
443
+ findings: plan.findings,
444
+ configFile,
445
+ targets: Object.fromEntries([next.build, ...(next.serve ? [next.serve] : [])].map((target) => [
446
+ target.name,
447
+ target.legacy,
448
+ ])),
449
+ created: Object.keys(next.created).sort(),
450
+ keptViteConfigs: viteConfig.kept,
451
+ modified: Object.keys(next.modified).sort(),
452
+ ...(next.legacyOutputDeleted && next.generatedFolder ? { deleted: next.generatedFolder } : {}),
453
+ ...(next.generatedFolder ? { generatedFolder: next.generatedFolder } : {}),
454
+ ...(next.legacyFolder
455
+ ? {
456
+ legacyFolder: {
457
+ folder: next.legacyFolder.folder,
458
+ targets: [next.build.legacy, ...(next.serve ? [next.serve.legacy] : [])],
459
+ },
460
+ }
461
+ : {}),
462
+ dependencies: next.dependencies,
463
+ mismatches: mismatches,
464
+ });
465
+ (0, state_1.writeFile)(tree, (0, state_1.reportPath)(project.name), report);
466
+ (0, state_1.writeFile)(tree, `${(0, state_1.stateFolder)(project.name)}/state.json`, (0, state_1.serializeState)(next));
467
+ logReportLast(context, [
468
+ report,
469
+ ...(state
470
+ ? [`Project "${project.name}" was already migrated; missing pieces were added.`]
471
+ : []),
472
+ ]);
473
+ }
474
+ /** Records a changed file: its original goes to the backup folder once, then the new text is written. */
475
+ function modify(tree, state, file, text) {
476
+ const backup = (0, state_1.backupPath)(state.project, file);
477
+ if (!tree.exists(backup))
478
+ tree.create(backup, tree.readText(file));
479
+ tree.overwrite(file, text);
480
+ state.modified[file] = (0, dependencies_1.hashContent)(text);
481
+ }
482
+ function applyTargets(tree, project, plan) {
483
+ // The originals are renamed in place, so they keep the user's text, and the Vite targets are
484
+ // inserted before them under the original names.
485
+ (0, workspace_1.renameTarget)(tree, project, plan.build.name, plan.build.legacyName);
486
+ (0, workspace_1.updateTarget)(tree, project, plan.build.legacyName, plan.build.legacy);
487
+ (0, workspace_1.writeTarget)(tree, project, plan.build.name, plan.build.next, { before: plan.build.legacyName });
488
+ if (plan.serve) {
489
+ const legacyServe = renameBuildTarget(plan.serve.legacy, project.name, plan.build.name, plan.build.legacyName);
490
+ (0, workspace_1.renameTarget)(tree, project, plan.serve.name, plan.serve.legacyName);
491
+ (0, workspace_1.updateTarget)(tree, project, plan.serve.legacyName, legacyServe);
492
+ (0, workspace_1.writeTarget)(tree, project, plan.serve.name, plan.serve.next, {
493
+ before: plan.serve.legacyName,
494
+ });
495
+ }
496
+ for (const retarget of plan.retargets) {
497
+ const target = project.targets[retarget.target];
498
+ (0, workspace_1.updateTarget)(tree, project, retarget.target, (0, workspace_1.withBuildTarget)(target, retarget.after));
499
+ }
500
+ }
501
+ function revert(tree, context, project, state) {
502
+ if (!state) {
503
+ throw new schematics_1.SchematicsException(`[NGDOC_MIGRATE_REVERT] Project "${project.name}" has no migration state (${(0, state_1.stateFolder)(project.name)}/state.json); restore it from version control instead.`);
504
+ }
505
+ const targets = [state.build, ...(state.serve ? [state.serve] : [])];
506
+ // Every original target must still exist before anything is written: a revert that restored
507
+ // only some targets would leave the project on neither engine.
508
+ const missing = targets.filter((target) => !project.targets[target.legacy]);
509
+ if (missing.length) {
510
+ throw new schematics_1.SchematicsException(`[NGDOC_MIGRATE_REVERT_TARGET] Project "${project.name}" cannot be reverted: ${missing
511
+ .map((target) => `\`${target.legacy}\` (the original \`${target.name}\`)`)
512
+ .join(', ')} no longer exist. Nothing was changed. Restore the targets from version ` +
513
+ 'control, then run --revert again.');
514
+ }
515
+ const kept = [];
516
+ for (const target of targets) {
517
+ const original = project.targets[target.legacy];
518
+ // The values the migration changed so the target writes its own generated folder go back.
519
+ const undone = state.legacyFolder
520
+ ? (0, legacy_folder_1.undoLegacyEdits)(original, target.legacy, state.legacyFolder.edits)
521
+ : { target: original, kept: [] };
522
+ for (const path of undone.kept) {
523
+ kept.push(`\`${path}\` was changed after the migration and was kept.`);
524
+ }
525
+ const legacy = undone.target;
526
+ const current = project.targets[target.name];
527
+ const written = state.targetHashes?.[target.name];
528
+ if (written && (!current || hashTarget(current) !== written)) {
529
+ kept.push(`Target \`${target.name}\` was edited after the migration; the original was restored and the edits are gone.`);
530
+ }
531
+ const restored = target === state.build
532
+ ? legacy
533
+ : renameBuildTarget(legacy, project.name, state.build.legacy, state.build.name);
534
+ (0, workspace_1.writeTarget)(tree, project, target.name, undefined);
535
+ (0, workspace_1.renameTarget)(tree, project, target.legacy, target.name);
536
+ (0, workspace_1.updateTarget)(tree, project, target.name, restored);
537
+ }
538
+ for (const retarget of state.retargets) {
539
+ const target = project.targets[retarget.target];
540
+ if (!target || target.options?.['buildTarget'] !== retarget.after) {
541
+ kept.push(`\`${retarget.target}.buildTarget\` was changed after the migration and was kept.`);
542
+ continue;
543
+ }
544
+ (0, workspace_1.updateTarget)(tree, project, retarget.target, (0, workspace_1.withBuildTarget)(target, retarget.before));
545
+ }
546
+ for (const [file, hash] of Object.entries(state.created)) {
547
+ if (!tree.exists(file))
548
+ continue;
549
+ if ((0, dependencies_1.hashContent)(tree.readText(file)) === hash)
550
+ tree.delete(file);
551
+ else
552
+ kept.push(`\`${file}\` was edited after the migration and was kept.`);
553
+ }
554
+ for (const [file, hash] of Object.entries(state.modified)) {
555
+ const backup = (0, state_1.backupPath)(project.name, file);
556
+ if (!tree.exists(backup))
557
+ continue;
558
+ if (tree.exists(file) && (0, dependencies_1.hashContent)(tree.readText(file)) === hash) {
559
+ tree.overwrite(file, tree.readText(backup));
560
+ }
561
+ else {
562
+ kept.push(`\`${file}\` was edited after the migration and was kept; its original is in \`${backup}\`.`);
563
+ }
564
+ }
565
+ // The new engine's output and cache: the legacy builders start clean, and nothing of the new
566
+ // engine is left untracked once `/.cache/ng-doc` leaves .gitignore again.
567
+ if (state.generatedFolder)
568
+ (0, state_1.deleteFolder)(tree, state.generatedFolder);
569
+ if (state.cacheFolder)
570
+ (0, state_1.deleteFolder)(tree, state.cacheFolder);
571
+ if (state.legacyFolder)
572
+ (0, state_1.deleteFolder)(tree, state.legacyFolder.folder);
573
+ const keepBackups = kept.some((line) => line.includes('backup/'));
574
+ tree.getDir((0, state_1.stateFolder)(project.name)).visit((file) => {
575
+ if (!keepBackups || !file.includes('/backup/'))
576
+ tree.delete(file);
577
+ });
578
+ const lines = [
579
+ `Project "${project.name}" is back on the legacy NgDoc builders.`,
580
+ ...kept.map((line) => `- ${line}`),
581
+ ...Object.entries(state.dependencies).map(([name, version]) => `- \`${name}@${version}\` stays in package.json; remove it if nothing else uses it.`),
582
+ ];
583
+ context.logger.info(lines.join('\n'));
584
+ }
585
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/builder/schematics/migrate-to-vite/index.ts"],"names":[],"mappings":"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"}