@analogjs/platform 3.0.0-alpha.6 → 3.0.0-alpha.60

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 (370) hide show
  1. package/migrations/migration.json +7 -1
  2. package/package.json +33 -20
  3. package/src/index.d.ts +11 -2
  4. package/src/index.js +12 -3
  5. package/src/index.js.map +1 -0
  6. package/src/lib/clear-client-page-endpoint.d.ts +2 -2
  7. package/src/lib/clear-client-page-endpoint.js +22 -32
  8. package/src/lib/clear-client-page-endpoint.js.map +1 -0
  9. package/src/lib/content/marked/index.d.ts +5 -5
  10. package/src/lib/content/marked/index.js +10 -6
  11. package/src/lib/content/marked/index.js.map +1 -0
  12. package/src/lib/content/marked/marked-content-highlighter.d.ts +2 -2
  13. package/src/lib/content/marked/marked-content-highlighter.js +6 -3
  14. package/src/lib/content/marked/marked-content-highlighter.js.map +1 -0
  15. package/src/lib/content/marked/marked-setup.service.d.ts +8 -8
  16. package/src/lib/content/marked/marked-setup.service.js +44 -54
  17. package/src/lib/content/marked/marked-setup.service.js.map +1 -0
  18. package/src/lib/content/prism/angular.js +18 -19
  19. package/src/lib/content/prism/angular.js.map +1 -0
  20. package/src/lib/content/prism/index.d.ts +1 -1
  21. package/src/lib/content/prism/index.js +10 -7
  22. package/src/lib/content/prism/index.js.map +1 -0
  23. package/src/lib/content/prism/options.d.ts +1 -1
  24. package/src/lib/content/prism/prism-highlighter.d.ts +5 -5
  25. package/src/lib/content/prism/prism-highlighter.js +33 -33
  26. package/src/lib/content/prism/prism-highlighter.js.map +1 -0
  27. package/src/lib/content/shiki/index.d.ts +3 -3
  28. package/src/lib/content/shiki/index.js +22 -28
  29. package/src/lib/content/shiki/index.js.map +1 -0
  30. package/src/lib/content/shiki/options.d.ts +8 -7
  31. package/src/lib/content/shiki/shiki-highlighter.d.ts +14 -13
  32. package/src/lib/content/shiki/shiki-highlighter.js +49 -43
  33. package/src/lib/content/shiki/shiki-highlighter.js.map +1 -0
  34. package/src/lib/content-plugin.d.ts +19 -19
  35. package/src/lib/content-plugin.js +181 -196
  36. package/src/lib/content-plugin.js.map +1 -0
  37. package/src/lib/deps-plugin.d.ts +2 -2
  38. package/src/lib/deps-plugin.js +77 -82
  39. package/src/lib/deps-plugin.js.map +1 -0
  40. package/src/lib/discover-library-routes.d.ts +22 -0
  41. package/src/lib/discover-library-routes.js +75 -0
  42. package/src/lib/discover-library-routes.js.map +1 -0
  43. package/src/lib/i18n-component-registry-plugin.d.ts +17 -0
  44. package/src/lib/i18n-component-registry-plugin.js +100 -0
  45. package/src/lib/i18n-component-registry-plugin.js.map +1 -0
  46. package/src/lib/i18n-extract-plugin.d.ts +33 -0
  47. package/src/lib/json-ld-manifest-plugin.d.ts +41 -0
  48. package/src/lib/json-ld-manifest-plugin.js +84 -0
  49. package/src/lib/json-ld-manifest-plugin.js.map +1 -0
  50. package/src/lib/nitro/analog-nitro-plugin.d.ts +8 -0
  51. package/src/lib/nitro/analog-nitro-plugin.js +502 -0
  52. package/src/lib/nitro/analog-nitro-plugin.js.map +1 -0
  53. package/src/lib/nitro/angular-linker-plugin.d.ts +17 -0
  54. package/src/lib/nitro/angular-linker-plugin.js +51 -0
  55. package/src/lib/nitro/angular-linker-plugin.js.map +1 -0
  56. package/src/lib/nitro/build-sitemap.d.ts +23 -0
  57. package/src/lib/nitro/build-sitemap.js +137 -0
  58. package/src/lib/nitro/build-sitemap.js.map +1 -0
  59. package/src/lib/nitro/debug.d.ts +5 -0
  60. package/src/lib/nitro/debug.js +11 -0
  61. package/src/lib/nitro/debug.js.map +1 -0
  62. package/src/lib/nitro/get-content-files.d.ts +13 -0
  63. package/src/lib/nitro/get-content-files.js +52 -0
  64. package/src/lib/nitro/get-content-files.js.map +1 -0
  65. package/src/lib/nitro/get-page-handlers.d.ts +23 -0
  66. package/src/lib/nitro/get-page-handlers.js +34 -0
  67. package/src/lib/nitro/get-page-handlers.js.map +1 -0
  68. package/src/lib/nitro/i18n-prerender.d.ts +29 -0
  69. package/src/lib/nitro/i18n-prerender.js +61 -0
  70. package/src/lib/nitro/i18n-prerender.js.map +1 -0
  71. package/src/lib/nitro/page-endpoints-plugin.d.ts +7 -0
  72. package/src/lib/nitro/page-endpoints-plugin.js +72 -0
  73. package/src/lib/nitro/page-endpoints-plugin.js.map +1 -0
  74. package/src/lib/nitro/post-rendering-hook.d.ts +2 -0
  75. package/src/lib/nitro/post-rendering-hook.js +10 -0
  76. package/src/lib/nitro/post-rendering-hook.js.map +1 -0
  77. package/src/lib/nitro/renderers.d.ts +53 -0
  78. package/src/lib/nitro/renderers.js +22 -0
  79. package/src/lib/nitro/renderers.js.map +1 -0
  80. package/src/lib/nitro/types.d.ts +122 -0
  81. package/src/lib/nx-plugin/_virtual/_rolldown/runtime.js +23 -0
  82. package/src/lib/nx-plugin/builders.json +15 -0
  83. package/src/lib/nx-plugin/executors.json +13 -5
  84. package/src/lib/nx-plugin/generators.json +25 -0
  85. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/camelCase.js +13 -0
  86. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/camelCase.js.map +1 -0
  87. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/capitalize.js +8 -0
  88. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/capitalize.js.map +1 -0
  89. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/words.js +9 -0
  90. package/src/lib/nx-plugin/node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/string/words.js.map +1 -0
  91. package/src/lib/nx-plugin/package.json +1 -5
  92. package/src/lib/nx-plugin/src/builders/vite/schema.json +39 -0
  93. package/src/lib/nx-plugin/src/builders/vite/vite-build.d.ts +11 -0
  94. package/src/lib/nx-plugin/src/builders/vite/vite-build.js +18 -0
  95. package/src/lib/nx-plugin/src/builders/vite/vite-build.js.map +1 -0
  96. package/src/lib/nx-plugin/src/builders/vite-dev-server/dev-server.d.ts +7 -0
  97. package/src/lib/nx-plugin/src/builders/vite-dev-server/dev-server.js +14 -0
  98. package/src/lib/nx-plugin/src/builders/vite-dev-server/dev-server.js.map +1 -0
  99. package/src/lib/nx-plugin/src/builders/vite-dev-server/schema.json +27 -0
  100. package/src/lib/nx-plugin/src/executors/vite-dev-server/compat.d.ts +1 -1
  101. package/src/lib/nx-plugin/src/executors/vite-dev-server/compat.js +7 -7
  102. package/src/lib/nx-plugin/src/executors/vite-dev-server/compat.js.map +1 -1
  103. package/src/lib/nx-plugin/src/executors/vite-dev-server/schema.d.ts +1 -1
  104. package/src/lib/nx-plugin/src/executors/vite-dev-server/vite-dev-server.impl.d.ts +1 -1
  105. package/src/lib/nx-plugin/src/executors/vite-dev-server/vite-dev-server.impl.js +6 -4
  106. package/src/lib/nx-plugin/src/executors/vite-dev-server/vite-dev-server.impl.js.map +1 -1
  107. package/src/lib/nx-plugin/src/executors/vitest/compat.d.ts +1 -1
  108. package/src/lib/nx-plugin/src/executors/vitest/compat.js +7 -7
  109. package/src/lib/nx-plugin/src/executors/vitest/compat.js.map +1 -1
  110. package/src/lib/nx-plugin/src/executors/vitest/schema.d.ts +1 -1
  111. package/src/lib/nx-plugin/src/executors/vitest/vitest.impl.d.ts +1 -1
  112. package/src/lib/nx-plugin/src/executors/vitest/vitest.impl.js +6 -4
  113. package/src/lib/nx-plugin/src/executors/vitest/vitest.impl.js.map +1 -1
  114. package/src/lib/nx-plugin/src/generators/app/compat.d.ts +9 -3
  115. package/src/lib/nx-plugin/src/generators/app/compat.js +18 -7
  116. package/src/lib/nx-plugin/src/generators/app/compat.js.map +1 -1
  117. package/src/lib/nx-plugin/src/generators/app/files/root/tsconfig.base.json +3 -6
  118. package/src/lib/nx-plugin/src/generators/app/files/template-angular/src/test-setup.ts__template__ +1 -0
  119. package/src/lib/nx-plugin/src/generators/app/files/template-angular/tsconfig.app.json__template__ +1 -3
  120. package/src/lib/nx-plugin/src/generators/app/files/template-angular/tsconfig.json__template__ +2 -1
  121. package/src/lib/nx-plugin/src/generators/app/files/template-angular/vite.config.ts__template__ +6 -2
  122. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v17/src/app/app.config.ts__template__ +0 -6
  123. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v17/tsconfig.json__template__ +4 -2
  124. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v17/vite.config.ts__template__ +1 -21
  125. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v18/src/app/app.config.ts__template__ +0 -6
  126. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v18/tsconfig.json__template__ +4 -2
  127. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v18/vite.config.ts__template__ +2 -22
  128. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v19/src/app/app.config.ts__template__ +0 -6
  129. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v19/tsconfig.app.json__template__ +1 -3
  130. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v19/tsconfig.json__template__ +4 -2
  131. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v19/vite.config.ts__template__ +1 -12
  132. package/src/lib/nx-plugin/src/generators/app/generator.d.ts +11 -11
  133. package/src/lib/nx-plugin/src/generators/app/generator.js +79 -92
  134. package/src/lib/nx-plugin/src/generators/app/generator.js.map +1 -1
  135. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-dependencies.d.ts +1 -1
  136. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.d.ts +1 -1
  137. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js +73 -81
  138. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-project-config.js.map +1 -1
  139. package/src/lib/nx-plugin/src/generators/app/lib/add-angular-app.d.ts +2 -2
  140. package/src/lib/nx-plugin/src/generators/app/lib/add-angular-app.js +25 -58
  141. package/src/lib/nx-plugin/src/generators/app/lib/add-angular-app.js.map +1 -1
  142. package/src/lib/nx-plugin/src/generators/app/lib/add-eslint.d.ts +2 -2
  143. package/src/lib/nx-plugin/src/generators/app/lib/add-files.d.ts +2 -2
  144. package/src/lib/nx-plugin/src/generators/app/lib/add-files.js +16 -16
  145. package/src/lib/nx-plugin/src/generators/app/lib/add-files.js.map +1 -1
  146. package/src/lib/nx-plugin/src/generators/app/lib/add-home-page.d.ts +2 -2
  147. package/src/lib/nx-plugin/src/generators/app/lib/add-home-page.js +15 -13
  148. package/src/lib/nx-plugin/src/generators/app/lib/add-home-page.js.map +1 -1
  149. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-config.d.ts +7 -7
  150. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-config.js +19 -29
  151. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-config.js.map +1 -1
  152. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-helpers.d.ts +4 -5
  153. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-helpers.js +61 -103
  154. package/src/lib/nx-plugin/src/generators/app/lib/add-tailwind-helpers.js.map +1 -1
  155. package/src/lib/nx-plugin/src/generators/app/lib/add-vite-plugin.d.ts +1 -1
  156. package/src/lib/nx-plugin/src/generators/app/lib/cleanup-files.d.ts +2 -2
  157. package/src/lib/nx-plugin/src/generators/app/lib/cleanup-files.js +17 -20
  158. package/src/lib/nx-plugin/src/generators/app/lib/cleanup-files.js.map +1 -1
  159. package/src/lib/nx-plugin/src/generators/app/lib/initialize-analog-workspace.d.ts +2 -2
  160. package/src/lib/nx-plugin/src/generators/app/lib/update-index-html.d.ts +1 -1
  161. package/src/lib/nx-plugin/src/generators/app/lib/update-index-html.js +15 -18
  162. package/src/lib/nx-plugin/src/generators/app/lib/update-index-html.js.map +1 -1
  163. package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.d.ts +2 -3
  164. package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.js +7 -10
  165. package/src/lib/nx-plugin/src/generators/app/versions/minimum-supported-versions.js.map +1 -1
  166. package/src/lib/nx-plugin/src/generators/app/versions/nx-dependencies.d.ts +0 -3
  167. package/src/lib/nx-plugin/src/generators/app/versions/nx_17_X/versions.d.ts +1 -6
  168. package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.d.ts +12 -17
  169. package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.js +11 -37
  170. package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.js.map +1 -1
  171. package/src/lib/nx-plugin/src/generators/app/versions/tailwind-dependencies.d.ts +1 -1
  172. package/src/lib/nx-plugin/src/generators/app/versions/tailwind-dependencies.js +11 -15
  173. package/src/lib/nx-plugin/src/generators/app/versions/tailwind-dependencies.js.map +1 -1
  174. package/src/lib/nx-plugin/src/generators/app/versions.d.ts +0 -28
  175. package/src/lib/nx-plugin/src/generators/init/compat.d.ts +9 -3
  176. package/src/lib/nx-plugin/src/generators/init/compat.js +18 -7
  177. package/src/lib/nx-plugin/src/generators/init/compat.js.map +1 -1
  178. package/src/lib/nx-plugin/src/generators/init/files/vite.config.ts__template__ +2 -6
  179. package/src/lib/nx-plugin/src/generators/init/generator.d.ts +3 -3
  180. package/src/lib/nx-plugin/src/generators/init/generator.js +55 -65
  181. package/src/lib/nx-plugin/src/generators/init/generator.js.map +1 -1
  182. package/src/lib/nx-plugin/src/generators/init/lib/add-analog-dependencies.d.ts +1 -1
  183. package/src/lib/nx-plugin/src/generators/init/lib/add-analog-dependencies.js +20 -20
  184. package/src/lib/nx-plugin/src/generators/init/lib/add-analog-dependencies.js.map +1 -1
  185. package/src/lib/nx-plugin/src/generators/init/lib/update-app-tsconfig.d.ts +2 -2
  186. package/src/lib/nx-plugin/src/generators/init/lib/update-app-tsconfig.js +21 -21
  187. package/src/lib/nx-plugin/src/generators/init/lib/update-app-tsconfig.js.map +1 -1
  188. package/src/lib/nx-plugin/src/generators/init/lib/update-build-target.d.ts +2 -2
  189. package/src/lib/nx-plugin/src/generators/init/lib/update-build-target.js +57 -66
  190. package/src/lib/nx-plugin/src/generators/init/lib/update-build-target.js.map +1 -1
  191. package/src/lib/nx-plugin/src/generators/init/lib/update-git-ignore.d.ts +1 -1
  192. package/src/lib/nx-plugin/src/generators/init/lib/update-git-ignore.js +12 -11
  193. package/src/lib/nx-plugin/src/generators/init/lib/update-git-ignore.js.map +1 -1
  194. package/src/lib/nx-plugin/src/generators/init/lib/update-index-html.d.ts +2 -2
  195. package/src/lib/nx-plugin/src/generators/init/lib/update-index-html.js +18 -21
  196. package/src/lib/nx-plugin/src/generators/init/lib/update-index-html.js.map +1 -1
  197. package/src/lib/nx-plugin/src/generators/init/lib/update-main.d.ts +2 -2
  198. package/src/lib/nx-plugin/src/generators/init/lib/update-main.js +13 -15
  199. package/src/lib/nx-plugin/src/generators/init/lib/update-main.js.map +1 -1
  200. package/src/lib/nx-plugin/src/generators/init/lib/update-package-json.d.ts +2 -2
  201. package/src/lib/nx-plugin/src/generators/init/lib/update-package-json.js +20 -31
  202. package/src/lib/nx-plugin/src/generators/init/lib/update-package-json.js.map +1 -1
  203. package/src/lib/nx-plugin/src/generators/init/lib/update-serve-target.d.ts +2 -2
  204. package/src/lib/nx-plugin/src/generators/init/lib/update-serve-target.js +44 -51
  205. package/src/lib/nx-plugin/src/generators/init/lib/update-serve-target.js.map +1 -1
  206. package/src/lib/nx-plugin/src/generators/init/lib/update-test-target.d.ts +2 -2
  207. package/src/lib/nx-plugin/src/generators/init/lib/update-test-target.js +28 -34
  208. package/src/lib/nx-plugin/src/generators/init/lib/update-test-target.js.map +1 -1
  209. package/src/lib/nx-plugin/src/generators/init/lib/update-test-tsconfig.d.ts +2 -2
  210. package/src/lib/nx-plugin/src/generators/init/lib/update-test-tsconfig.js +20 -20
  211. package/src/lib/nx-plugin/src/generators/init/lib/update-test-tsconfig.js.map +1 -1
  212. package/src/lib/nx-plugin/src/generators/init/test-files/src/test-setup.ts__template__ +1 -0
  213. package/src/lib/nx-plugin/src/generators/page/__snapshots__/generator.spec.ts.snap +0 -7
  214. package/src/lib/nx-plugin/src/generators/page/compat.d.ts +9 -0
  215. package/src/lib/nx-plugin/src/generators/page/compat.js +19 -0
  216. package/src/lib/nx-plugin/src/generators/page/compat.js.map +1 -0
  217. package/src/lib/nx-plugin/src/generators/page/files/__fileName__.page.ts__template__ +0 -1
  218. package/src/lib/nx-plugin/src/generators/page/generator.d.ts +3 -4
  219. package/src/lib/nx-plugin/src/generators/page/generator.js +35 -44
  220. package/src/lib/nx-plugin/src/generators/page/generator.js.map +1 -1
  221. package/src/lib/nx-plugin/src/generators/preset/__snapshots__/generator.spec.ts.snap +5 -4
  222. package/src/lib/nx-plugin/src/generators/preset/generator.d.ts +3 -3
  223. package/src/lib/nx-plugin/src/generators/preset/generator.js +18 -43
  224. package/src/lib/nx-plugin/src/generators/preset/generator.js.map +1 -1
  225. package/src/lib/nx-plugin/src/generators/setup-vitest/compat.d.ts +9 -3
  226. package/src/lib/nx-plugin/src/generators/setup-vitest/compat.js +18 -7
  227. package/src/lib/nx-plugin/src/generators/setup-vitest/compat.js.map +1 -1
  228. package/src/lib/nx-plugin/src/generators/setup-vitest/files/src/test-setup.ts__template__ +1 -0
  229. package/src/lib/nx-plugin/src/generators/setup-vitest/files/vite.config.mts__template__ +0 -6
  230. package/src/lib/nx-plugin/src/generators/setup-vitest/generator.d.ts +3 -3
  231. package/src/lib/nx-plugin/src/generators/setup-vitest/generator.js +33 -42
  232. package/src/lib/nx-plugin/src/generators/setup-vitest/generator.js.map +1 -1
  233. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/add-analog-dependencies.d.ts +1 -1
  234. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/add-analog-dependencies.js +8 -7
  235. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/add-analog-dependencies.js.map +1 -1
  236. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-test-target.d.ts +2 -2
  237. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-test-target.js +21 -27
  238. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-test-target.js.map +1 -1
  239. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-tsconfig.d.ts +2 -2
  240. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-tsconfig.js +20 -22
  241. package/src/lib/nx-plugin/src/generators/setup-vitest/lib/update-tsconfig.js.map +1 -1
  242. package/src/lib/nx-plugin/src/index.js +0 -2
  243. package/src/lib/nx-plugin/src/utils/version-utils.d.ts +1 -1
  244. package/src/lib/nx-plugin/src/utils/version-utils.js +21 -27
  245. package/src/lib/nx-plugin/src/utils/version-utils.js.map +1 -1
  246. package/src/lib/nx-plugin/src/utils/versions/dependencies.js +43 -62
  247. package/src/lib/nx-plugin/src/utils/versions/dependencies.js.map +1 -1
  248. package/src/lib/nx-plugin/src/utils/versions/dev-dependencies.js +50 -83
  249. package/src/lib/nx-plugin/src/utils/versions/dev-dependencies.js.map +1 -1
  250. package/src/lib/nx-plugin/src/utils/versions/ng_17_X/versions.d.ts +1 -1
  251. package/src/lib/nx-plugin/src/utils/versions/ng_17_X/versions.js +33 -20
  252. package/src/lib/nx-plugin/src/utils/versions/ng_17_X/versions.js.map +1 -1
  253. package/src/lib/nx-plugin/src/utils/versions/ng_18_X/versions.d.ts +1 -1
  254. package/src/lib/nx-plugin/src/utils/versions/ng_18_X/versions.js +33 -20
  255. package/src/lib/nx-plugin/src/utils/versions/ng_18_X/versions.js.map +1 -1
  256. package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.d.ts +9 -8
  257. package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.js +39 -23
  258. package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.js.map +1 -1
  259. package/src/lib/options.d.ts +169 -80
  260. package/src/lib/platform-plugin.d.ts +2 -2
  261. package/src/lib/platform-plugin.js +54 -62
  262. package/src/lib/platform-plugin.js.map +1 -0
  263. package/src/lib/route-file-discovery.d.ts +23 -0
  264. package/src/lib/route-file-discovery.js +114 -0
  265. package/src/lib/route-file-discovery.js.map +1 -0
  266. package/src/lib/route-generation-plugin.d.ts +3 -0
  267. package/src/lib/route-generation-plugin.js +45 -0
  268. package/src/lib/route-generation-plugin.js.map +1 -0
  269. package/src/lib/route-idiom-diagnostics.d.ts +13 -0
  270. package/src/lib/route-idiom-diagnostics.js +160 -0
  271. package/src/lib/route-idiom-diagnostics.js.map +1 -0
  272. package/src/lib/route-manifest.d.ts +122 -0
  273. package/src/lib/route-manifest.js +431 -0
  274. package/src/lib/route-manifest.js.map +1 -0
  275. package/src/lib/router-plugin.d.ts +19 -19
  276. package/src/lib/router-plugin.js +234 -168
  277. package/src/lib/router-plugin.js.map +1 -0
  278. package/src/lib/ssr/inject-html-plugin.d.ts +1 -1
  279. package/src/lib/ssr/inject-html-plugin.js +25 -25
  280. package/src/lib/ssr/inject-html-plugin.js.map +1 -0
  281. package/src/lib/ssr/ssr-build-plugin.d.ts +31 -2
  282. package/src/lib/ssr/ssr-build-plugin.js +54 -30
  283. package/src/lib/ssr/ssr-build-plugin.js.map +1 -0
  284. package/src/lib/style-pipeline.d.ts +33 -0
  285. package/src/lib/style-pipeline.js +32 -0
  286. package/src/lib/style-pipeline.js.map +1 -0
  287. package/src/lib/style-preprocessor.d.ts +28 -0
  288. package/src/lib/style-preprocessor.js +35 -0
  289. package/src/lib/style-preprocessor.js.map +1 -0
  290. package/src/lib/tailwind-preprocessor.d.ts +23 -0
  291. package/src/lib/tailwind-preprocessor.js +153 -0
  292. package/src/lib/tailwind-preprocessor.js.map +1 -0
  293. package/src/lib/typed-routes-plugin.d.ts +50 -0
  294. package/src/lib/typed-routes-plugin.js +234 -0
  295. package/src/lib/typed-routes-plugin.js.map +1 -0
  296. package/src/lib/utils/debug-harness.d.ts +23 -0
  297. package/src/lib/utils/debug-harness.js +88 -0
  298. package/src/lib/utils/debug-harness.js.map +1 -0
  299. package/src/lib/utils/debug-log-file.d.ts +5 -0
  300. package/src/lib/utils/debug-log-file.js +56 -0
  301. package/src/lib/utils/debug-log-file.js.map +1 -0
  302. package/src/lib/utils/debug.d.ts +22 -0
  303. package/src/lib/utils/debug.js +27 -0
  304. package/src/lib/utils/debug.js.map +1 -0
  305. package/src/lib/utils/rolldown.d.ts +3 -0
  306. package/src/lib/utils/rolldown.js +15 -0
  307. package/src/lib/utils/rolldown.js.map +1 -0
  308. package/src/server-mode-plugin.d.ts +6 -6
  309. package/src/server-mode-plugin.js +16 -18
  310. package/src/server-mode-plugin.js.map +1 -0
  311. package/src/style-pipeline.d.ts +1 -0
  312. package/src/style-pipeline.js +2 -0
  313. package/src/style-preprocessor.d.ts +1 -0
  314. package/src/style-preprocessor.js +2 -0
  315. package/README.md +0 -5
  316. package/src/lib/content/prism/options.js +0 -1
  317. package/src/lib/content/shiki/options.js +0 -1
  318. package/src/lib/nx-plugin/README.md +0 -23
  319. package/src/lib/nx-plugin/src/executors/vite/compat.d.ts +0 -3
  320. package/src/lib/nx-plugin/src/executors/vite/compat.js +0 -8
  321. package/src/lib/nx-plugin/src/executors/vite/compat.js.map +0 -1
  322. package/src/lib/nx-plugin/src/executors/vite/schema.d.ts +0 -2
  323. package/src/lib/nx-plugin/src/executors/vite/schema.json +0 -147
  324. package/src/lib/nx-plugin/src/executors/vite/vite.impl.d.ts +0 -2
  325. package/src/lib/nx-plugin/src/executors/vite/vite.impl.js +0 -5
  326. package/src/lib/nx-plugin/src/executors/vite/vite.impl.js.map +0 -1
  327. package/src/lib/nx-plugin/src/generators/app/files/tailwind/v4/.postcssrc.json +0 -5
  328. package/src/lib/nx-plugin/src/generators/app/files/tailwind/v4/tailwind.config.ts__template__ +0 -14
  329. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/index.html__template__ +0 -15
  330. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.spec.ts__template__ +0 -17
  331. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/app/app.component.ts__template__ +0 -10
  332. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/favicon.ico__template__ +0 -0
  333. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.providers.ts__template__ +0 -5
  334. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.server.ts__template__ +0 -23
  335. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/main.ts__template__ +0 -17
  336. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/.gitkeep__template__ +0 -0
  337. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/analog.svg__template__ +0 -1
  338. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/public/assets/vite.svg__template__ +0 -1
  339. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/server/routes/v1/hello.ts__template__ +0 -3
  340. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/styles.css__template__ +0 -4
  341. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/test-setup.ts__template__ +0 -12
  342. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/src/vite-env.d.ts__template__ +0 -1
  343. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.app.json__template__ +0 -16
  344. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.editor.json__template__ +0 -7
  345. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.json__template__ +0 -32
  346. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/tsconfig.spec.json__template__ +0 -14
  347. package/src/lib/nx-plugin/src/generators/app/files/template-angular-v15/vite.config.ts__template__ +0 -69
  348. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-dependencies.js +0 -15
  349. package/src/lib/nx-plugin/src/generators/app/lib/add-analog-dependencies.js.map +0 -1
  350. package/src/lib/nx-plugin/src/generators/app/lib/add-eslint.js +0 -58
  351. package/src/lib/nx-plugin/src/generators/app/lib/add-eslint.js.map +0 -1
  352. package/src/lib/nx-plugin/src/generators/app/lib/add-vite-plugin.js +0 -47
  353. package/src/lib/nx-plugin/src/generators/app/lib/add-vite-plugin.js.map +0 -1
  354. package/src/lib/nx-plugin/src/generators/app/lib/initialize-analog-workspace.js +0 -110
  355. package/src/lib/nx-plugin/src/generators/app/lib/initialize-analog-workspace.js.map +0 -1
  356. package/src/lib/nx-plugin/src/generators/app/versions/dependencies.js +0 -56
  357. package/src/lib/nx-plugin/src/generators/app/versions/dependencies.js.map +0 -1
  358. package/src/lib/nx-plugin/src/generators/app/versions/dev-dependencies.js +0 -72
  359. package/src/lib/nx-plugin/src/generators/app/versions/dev-dependencies.js.map +0 -1
  360. package/src/lib/nx-plugin/src/generators/app/versions/nx-dependencies.js +0 -46
  361. package/src/lib/nx-plugin/src/generators/app/versions/nx-dependencies.js.map +0 -1
  362. package/src/lib/nx-plugin/src/generators/app/versions/nx_17_X/versions.js +0 -37
  363. package/src/lib/nx-plugin/src/generators/app/versions/nx_17_X/versions.js.map +0 -1
  364. package/src/lib/nx-plugin/src/generators/app/versions.js +0 -43
  365. package/src/lib/nx-plugin/src/generators/app/versions.js.map +0 -1
  366. package/src/lib/nx-plugin/src/index.d.ts +0 -0
  367. package/src/lib/nx-plugin/src/index.js.map +0 -1
  368. package/src/lib/options.js +0 -1
  369. package/src/lib/ssr/ssr-xhr-plugin.d.ts +0 -2
  370. package/src/lib/ssr/ssr-xhr-plugin.js +0 -28
@@ -1,24 +1,40 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NX_X_LATEST_VITEST = exports.NX_X_LATEST_VITE = exports.V19_X_VITE = exports.V19_X_VITEST = exports.V19_X_VITE_TSCONFIG_PATHS = exports.V19_X_JSDOM = exports.V19_X_NX_VITE = exports.V19_X_NX_ANGULAR = exports.V19_X_ANALOG_JS_VITEST_ANGULAR = exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = exports.V19_X_ANALOG_JS_PLATFORM = exports.V19_X_PRISMJS = exports.V19_X_MARKED_MANGLE = exports.V19_X_MARKED_HIGHLIGHT = exports.V19_X_MARKED_GFM_HEADING_ID = exports.V19_X_MARKED = exports.V19_X_ANALOG_JS_CONTENT = exports.V19_X_ANALOG_JS_ROUTER = void 0;
4
- // V19_X
5
- exports.V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.6';
6
- exports.V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.6';
7
- exports.V19_X_MARKED = '^15.0.7';
8
- exports.V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';
9
- exports.V19_X_MARKED_HIGHLIGHT = '^2.2.1';
10
- exports.V19_X_MARKED_MANGLE = '^1.1.10';
11
- exports.V19_X_PRISMJS = '^1.29.0';
12
- // devDependencies
13
- exports.V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.6';
14
- exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.6';
15
- exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.6';
16
- exports.V19_X_NX_ANGULAR = '^22.0.0';
17
- exports.V19_X_NX_VITE = '^22.0.0';
18
- exports.V19_X_JSDOM = '^22.0.0';
19
- exports.V19_X_VITE_TSCONFIG_PATHS = '^4.2.0';
20
- exports.V19_X_VITEST = '^3.0.0';
21
- exports.V19_X_VITE = '^5.0.0';
22
- exports.NX_X_LATEST_VITE = '^7.0.0';
23
- exports.NX_X_LATEST_VITEST = '^4.0.0';
1
+ //#region packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts
2
+ var V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.60";
3
+ var V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.60";
4
+ var V19_X_MARKED = "^18.0.0";
5
+ var V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
6
+ var V19_X_MARKED_HIGHLIGHT = "^2.2.1";
7
+ var V19_X_MARKED_MANGLE = "^1.1.10";
8
+ var V19_X_PRISMJS = "^1.29.0";
9
+ var V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.60";
10
+ var V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.60";
11
+ var V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.60";
12
+ var V19_X_NX_VITE = "^22.0.0";
13
+ var V19_X_JSDOM = "^22.0.0";
14
+ var V19_X_VITE_TSCONFIG_PATHS = "^4.2.0";
15
+ var V19_X_VITEST = "^3.0.0";
16
+ var V19_X_VITE = "^6.0.0";
17
+ var NX_X_LATEST_VITE = "^8.0.0";
18
+ var NX_X_LATEST_VITEST = "^4.0.0";
19
+ var NX_X_LATEST_NX = "^23.0.0";
20
+ //#endregion
21
+ exports.NX_X_LATEST_NX = NX_X_LATEST_NX;
22
+ exports.NX_X_LATEST_VITE = NX_X_LATEST_VITE;
23
+ exports.NX_X_LATEST_VITEST = NX_X_LATEST_VITEST;
24
+ exports.V19_X_ANALOG_JS_CONTENT = V19_X_ANALOG_JS_CONTENT;
25
+ exports.V19_X_ANALOG_JS_PLATFORM = V19_X_ANALOG_JS_PLATFORM;
26
+ exports.V19_X_ANALOG_JS_ROUTER = V19_X_ANALOG_JS_ROUTER;
27
+ exports.V19_X_ANALOG_JS_VITEST_ANGULAR = V19_X_ANALOG_JS_VITEST_ANGULAR;
28
+ exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR;
29
+ exports.V19_X_JSDOM = V19_X_JSDOM;
30
+ exports.V19_X_MARKED = V19_X_MARKED;
31
+ exports.V19_X_MARKED_GFM_HEADING_ID = V19_X_MARKED_GFM_HEADING_ID;
32
+ exports.V19_X_MARKED_HIGHLIGHT = V19_X_MARKED_HIGHLIGHT;
33
+ exports.V19_X_MARKED_MANGLE = V19_X_MARKED_MANGLE;
34
+ exports.V19_X_NX_VITE = V19_X_NX_VITE;
35
+ exports.V19_X_PRISMJS = V19_X_PRISMJS;
36
+ exports.V19_X_VITE = V19_X_VITE;
37
+ exports.V19_X_VITEST = V19_X_VITEST;
38
+ exports.V19_X_VITE_TSCONFIG_PATHS = V19_X_VITE_TSCONFIG_PATHS;
39
+
24
40
  //# sourceMappingURL=versions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../../../../../../packages/nx-plugin/src/utils/versions/ng_19_X/versions.ts"],"names":[],"mappings":";;;AAAA,QAAQ;AACK,QAAA,sBAAsB,GAAG,gBAAgB,CAAC;AAC1C,QAAA,uBAAuB,GAAG,gBAAgB,CAAC;AAC3C,QAAA,YAAY,GAAG,SAAS,CAAC;AACzB,QAAA,2BAA2B,GAAG,QAAQ,CAAC;AACvC,QAAA,sBAAsB,GAAG,QAAQ,CAAC;AAClC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,aAAa,GAAG,SAAS,CAAC;AAEvC,kBAAkB;AACL,QAAA,wBAAwB,GAAG,gBAAgB,CAAC;AAC5C,QAAA,mCAAmC,GAAG,gBAAgB,CAAC;AACvD,QAAA,8BAA8B,GAAG,gBAAgB,CAAC;AAClD,QAAA,gBAAgB,GAAG,SAAS,CAAC;AAC7B,QAAA,aAAa,GAAG,SAAS,CAAC;AAC1B,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,yBAAyB,GAAG,QAAQ,CAAC;AACrC,QAAA,YAAY,GAAG,QAAQ,CAAC;AACxB,QAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,kBAAkB,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"versions.js","names":[],"sources":["../../../../../../../../../nx-plugin/src/utils/versions/ng_19_X/versions.ts"],"sourcesContent":["// V19_X\nexport const V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.60';\nexport const V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.60';\nexport const V19_X_MARKED = '^18.0.0';\nexport const V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';\nexport const V19_X_MARKED_HIGHLIGHT = '^2.2.1';\nexport const V19_X_MARKED_MANGLE = '^1.1.10';\nexport const V19_X_PRISMJS = '^1.29.0';\n\n// devDependencies\nexport const V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.60';\nexport const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.60';\nexport const V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.60';\nexport const V19_X_NX_ANGULAR = '^22.0.0';\nexport const V19_X_NX_VITE = '^22.0.0';\nexport const V19_X_JSDOM = '^22.0.0';\nexport const V19_X_VITE_TSCONFIG_PATHS = '^4.2.0';\nexport const V19_X_VITEST = '^3.0.0';\nexport const V19_X_VITE = '^6.0.0';\nexport const NX_X_LATEST_VITE = '^8.0.0';\nexport const NX_X_LATEST_VITEST = '^4.0.0';\nexport const NX_X_LATEST_NX = '^23.0.0';\n"],"mappings":";AACA,IAAa,yBAAyB;AACtC,IAAa,0BAA0B;AACvC,IAAa,eAAe;AAC5B,IAAa,8BAA8B;AAC3C,IAAa,yBAAyB;AACtC,IAAa,sBAAsB;AACnC,IAAa,gBAAgB;AAG7B,IAAa,2BAA2B;AACxC,IAAa,sCAAsC;AACnD,IAAa,iCAAiC;AAE9C,IAAa,gBAAgB;AAC7B,IAAa,cAAc;AAC3B,IAAa,4BAA4B;AACzC,IAAa,eAAe;AAC5B,IAAa,aAAa;AAC1B,IAAa,mBAAmB;AAChC,IAAa,qBAAqB;AAClC,IAAa,iBAAiB"}
@@ -1,85 +1,174 @@
1
- import type { PluginOptions } from '@analogjs/vite-plugin-angular';
2
- import type { NitroConfig, PrerenderRoute } from 'nitro/types';
3
- import type { SitemapConfig, PrerenderContentDir, PrerenderContentFile, PrerenderRouteConfig } from '@analogjs/vite-plugin-nitro';
4
- import { ContentPluginOptions } from './content-plugin.js';
5
- declare module 'nitro/types' {
6
- interface NitroRouteConfig {
7
- ssr?: boolean;
8
- }
9
- interface NitroRouteRules {
10
- ssr?: boolean;
11
- }
1
+ import type { PrerenderRoute } from "nitro/types";
2
+ import type { SitemapConfig, SitemapEntry, SitemapExcludeRule, SitemapPriority, SitemapRouteDefinition, SitemapRouteInput, SitemapRouteSource, SitemapTransform, PrerenderContentDir, PrerenderContentFile, PrerenderSitemapConfig, PrerenderRouteConfig } from "./nitro/types.js";
3
+ import type { ContentPluginOptions } from "./content-plugin.js";
4
+ import type { DebugOption } from "./utils/debug.js";
5
+ import type { StylePipelineOptions } from "./style-pipeline.js";
6
+ declare module "nitro/types" {
7
+ interface NitroRouteConfig {
8
+ ssr?: boolean;
9
+ }
10
+ interface NitroRouteRules {
11
+ ssr?: boolean;
12
+ }
12
13
  }
13
14
  export interface PrerenderOptions {
14
- /**
15
- * Add additional routes to prerender through crawling page links.
16
- */
17
- discover?: boolean;
18
- /**
19
- * List of routes to prerender resolved statically or dynamically.
20
- */
21
- routes?: (string | PrerenderContentDir | PrerenderRouteConfig)[] | (() => Promise<(string | PrerenderContentDir | PrerenderRouteConfig | undefined)[]>);
22
- sitemap?: SitemapConfig;
23
- /** List of functions that run for each route after pre-rendering is complete. */
24
- postRenderingHooks?: ((routes: PrerenderRoute) => Promise<void>)[];
15
+ /**
16
+ * Add additional routes to prerender through crawling page links.
17
+ */
18
+ discover?: boolean;
19
+ /**
20
+ * List of routes to prerender resolved statically or dynamically.
21
+ */
22
+ routes?: (string | PrerenderContentDir | PrerenderRouteConfig)[] | (() => Promise<(string | PrerenderContentDir | PrerenderRouteConfig | undefined)[]>);
23
+ sitemap?: SitemapConfig;
24
+ /** List of functions that run for each route after pre-rendering is complete. */
25
+ postRenderingHooks?: ((routes: PrerenderRoute) => Promise<void>)[];
26
+ }
27
+ export interface I18nOptions {
28
+ /**
29
+ * The default/source locale for the application.
30
+ */
31
+ defaultLocale: string;
32
+ /**
33
+ * List of supported locale identifiers (e.g. ['en', 'fr', 'de']).
34
+ */
35
+ locales: string[];
36
+ /**
37
+ * Extract i18n messages from the build output.
38
+ * When enabled, writes a translation source file after the client build.
39
+ */
40
+ extract?: {
41
+ /**
42
+ * Output format for extracted messages.
43
+ * @default 'json'
44
+ */
45
+ format?: "json" | "xliff" | "xliff2" | "xmb";
46
+ /**
47
+ * Output file path for extracted messages, relative to project root.
48
+ * @default 'src/i18n/messages.{format extension}'
49
+ */
50
+ outFile?: string;
51
+ };
25
52
  }
26
53
  export interface Options {
27
- ssr?: boolean;
28
- ssrBuildDir?: string;
29
- /**
30
- * Prerender the static pages without producing the server output.
31
- */
32
- static?: boolean;
33
- prerender?: PrerenderOptions;
34
- entryServer?: string;
35
- /**
36
- * Pass configuration options to the internal `@analogjs/vite-plugin-angular`
37
- * plugin. Set to false to disable the internal vite plugin.
38
- */
39
- vite?: PluginOptions | false;
40
- nitro?: NitroConfig;
41
- apiPrefix?: string;
42
- jit?: boolean;
43
- index?: string;
44
- workspaceRoot?: string;
45
- content?: ContentPluginOptions;
46
- /**
47
- * Extension applied for inline styles
48
- */
49
- inlineStylesExtension?: string;
50
- /**
51
- * Enables Angular's HMR during development
52
- */
53
- liveReload?: boolean;
54
- /**
55
- * Additional page paths to include
56
- */
57
- additionalPagesDirs?: string[];
58
- /**
59
- * Additional page paths to include
60
- */
61
- additionalContentDirs?: string[];
62
- /**
63
- * Additional API paths to include
64
- */
65
- additionalAPIDirs?: string[];
66
- /**
67
- * Additional files to include in compilation
68
- */
69
- include?: string[];
70
- /**
71
- * Toggles internal API middleware.
72
- * If disabled, a proxy request is used to route /api
73
- * requests to / in the production server build.
74
- */
75
- useAPIMiddleware?: boolean;
76
- /**
77
- * Disable type checking diagnostics by the Angular compiler
78
- */
79
- disableTypeChecking?: boolean;
80
- /**
81
- * File replacements
82
- */
83
- fileReplacements?: PluginOptions['fileReplacements'];
54
+ ssr?: boolean;
55
+ /**
56
+ * Prerender the static pages without producing the server output.
57
+ */
58
+ static?: boolean;
59
+ prerender?: PrerenderOptions;
60
+ entryServer?: string;
61
+ apiPrefix?: string;
62
+ index?: string;
63
+ workspaceRoot?: string;
64
+ content?: ContentPluginOptions;
65
+ /**
66
+ * Enable debug logging for the `analog:platform:*` and `analog:nitro:*`
67
+ * scopes.
68
+ *
69
+ * - `true` → enables all platform + nitro scopes
70
+ * - `string[]` → enables listed namespaces
71
+ * - `{ scopes?, mode? }` → object form with optional `mode: 'build' | 'dev'`
72
+ * to restrict output to a specific Vite command (omit for both)
73
+ *
74
+ * Angular scopes (`analog:angular:*`) are owned by
75
+ * `@analogjs/vite-plugin-angular` — pass `debug` to `angular()` directly
76
+ * to enable them.
77
+ *
78
+ * Also responds to the `DEBUG` env var (Node.js) or `localStorage.debug`
79
+ * (browser), using the `obug` convention.
80
+ */
81
+ debug?: DebugOption;
82
+ /**
83
+ * Additional page paths to include
84
+ */
85
+ additionalPagesDirs?: string[];
86
+ /**
87
+ * Additional page paths to include
88
+ */
89
+ additionalContentDirs?: string[];
90
+ /**
91
+ * Additional API paths to include
92
+ */
93
+ additionalAPIDirs?: string[];
94
+ /**
95
+ * Automatically discover route directories (pages, content, API) in
96
+ * workspace libraries by scanning `libs/**` directories directly.
97
+ *
98
+ * Discovered directories are merged with any explicit
99
+ * `additionalPagesDirs`, `additionalContentDirs`, and
100
+ * `additionalAPIDirs` values.
101
+ *
102
+ * @default false
103
+ */
104
+ discoverRoutes?: boolean;
105
+ /**
106
+ * Configuration for runtime i18n support.
107
+ * When set, enables locale detection on SSR and provides
108
+ * the LOCALE injection token.
109
+ */
110
+ i18n?: I18nOptions;
111
+ /**
112
+ * Experimental features. These APIs are subject to change.
113
+ *
114
+ * `@analogjs/platform` is the default rollout and orchestration surface for
115
+ * Analog-owned experiments. These flags may delegate to dedicated feature
116
+ * plugins or forward options into lower-level integrations while preserving
117
+ * a single Analog-first authoring surface.
118
+ */
119
+ experimental?: {
120
+ /**
121
+ * Enable typed route table generation for type-safe navigation.
122
+ *
123
+ * When enabled, `@analogjs/platform` generates a single route module
124
+ * that augments `AnalogRouteTable` with typed params and query for each
125
+ * file-based route. JSON-LD manifest generation is configured on the same
126
+ * object so both codegen features share one generated file.
127
+ *
128
+ * - `true` — generates `src/routeTree.gen.ts` with `routeJsonLdManifest`
129
+ * - `TypedRouterOptions` — customize output path or disable just the
130
+ * JSON-LD manifest piece
131
+ *
132
+ * Unlocks type-safe usage of:
133
+ * - `routePath()` — build route link objects for `[routerLink]`
134
+ * - `injectNavigate()` — typed navigation
135
+ * - `injectParams(from)` — typed params signal
136
+ * - `injectQuery(from)` — typed query signal
137
+ *
138
+ * Inspired by TanStack Router's `routeTree.gen.ts` codegen.
139
+ */
140
+ typedRouter?: boolean | TypedRouterOptions;
141
+ /**
142
+ * Experimental slot for community-maintained style-pipeline integrations.
143
+ *
144
+ * This keeps Analog's core surface intentionally narrow: community
145
+ * packages can register Vite plugins through an Analog-first config shape
146
+ * without requiring Analog itself to own design-token engines, library
147
+ * target contracts, or framework-specific theming semantics.
148
+ */
149
+ stylePipeline?: StylePipelineOptions | false;
150
+ };
151
+ }
152
+ export interface TypedRouterOptions {
153
+ /**
154
+ * Output path for the single generated route module,
155
+ * relative to the app root.
156
+ *
157
+ * @default 'src/routeTree.gen.ts'
158
+ */
159
+ outFile?: string;
160
+ /**
161
+ * Include generated `routeJsonLdManifest` data in the generated route file.
162
+ *
163
+ * @default true
164
+ */
165
+ jsonLdManifest?: boolean;
166
+ /**
167
+ * Fail production builds after regenerating a stale checked-in route file.
168
+ * Development and watch mode continue to update the file automatically.
169
+ *
170
+ * @default true
171
+ */
172
+ verifyOnBuild?: boolean;
84
173
  }
85
- export { PrerenderContentDir, PrerenderContentFile };
174
+ export type { PrerenderContentDir, PrerenderContentFile, PrerenderSitemapConfig, SitemapConfig, SitemapEntry, SitemapExcludeRule, SitemapPriority, SitemapRouteDefinition, SitemapRouteInput, SitemapRouteSource, SitemapTransform };
@@ -1,3 +1,3 @@
1
- import { Plugin } from 'vite';
2
- import { Options } from './options.js';
1
+ import { Plugin } from "vite";
2
+ import { Options } from "./options.js";
3
3
  export declare function platformPlugin(opts?: Options): Plugin[];
@@ -1,63 +1,55 @@
1
- // eslint-disable-next-line @nx/enforce-module-boundaries -- spec uses dynamic import() for vi.mock(), not lazy-loading
2
- import viteNitroPlugin from '@analogjs/vite-plugin-nitro';
3
- import angular from '@analogjs/vite-plugin-angular';
4
- import { routerPlugin } from './router-plugin.js';
5
- import { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';
6
- import { contentPlugin } from './content-plugin.js';
7
- import { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';
8
- import { ssrXhrBuildPlugin } from './ssr/ssr-xhr-plugin.js';
9
- import { depsPlugin } from './deps-plugin.js';
10
- import { injectHTMLPlugin } from './ssr/inject-html-plugin.js';
11
- import { serverModePlugin } from '../server-mode-plugin.js';
12
- export function platformPlugin(opts = {}) {
13
- const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];
14
- const { ...platformOptions } = {
15
- ssr: true,
16
- ...opts,
17
- };
18
- let nitroOptions = platformOptions?.nitro;
19
- if (nitroOptions?.routeRules) {
20
- nitroOptions = {
21
- ...nitroOptions,
22
- routeRules: Object.keys(nitroOptions.routeRules).reduce((config, curr) => {
23
- return {
24
- ...config,
25
- [curr]: {
26
- ...config[curr],
27
- headers: {
28
- ...config[curr].headers,
29
- 'x-analog-no-ssr': config[curr]?.ssr === false ? 'true' : undefined,
30
- },
31
- },
32
- };
33
- }, nitroOptions.routeRules),
34
- };
35
- }
36
- return [
37
- ...viteNitroPlugin(platformOptions, nitroOptions),
38
- ...(platformOptions.ssr ? [ssrBuildPlugin(), ...injectHTMLPlugin()] : []),
39
- ...(!isTest ? depsPlugin(platformOptions) : []),
40
- ...routerPlugin(platformOptions),
41
- ...contentPlugin(platformOptions?.content, platformOptions),
42
- ...(opts?.vite === false
43
- ? []
44
- : angular({
45
- jit: platformOptions.jit,
46
- workspaceRoot: platformOptions.workspaceRoot,
47
- disableTypeChecking: platformOptions.disableTypeChecking ?? false,
48
- include: [
49
- ...(platformOptions.include ?? []),
50
- ...(platformOptions.additionalPagesDirs ?? []).map((pageDir) => `${pageDir}/**/*.page.ts`),
51
- ],
52
- additionalContentDirs: platformOptions.additionalContentDirs,
53
- liveReload: platformOptions.liveReload,
54
- inlineStylesExtension: platformOptions.inlineStylesExtension,
55
- fileReplacements: platformOptions.fileReplacements,
56
- ...(opts?.vite ?? {}),
57
- })),
58
- serverModePlugin(),
59
- ssrXhrBuildPlugin(),
60
- clearClientPageEndpointsPlugin(),
61
- ];
1
+ import { activateDeferredDebug, applyDebugOption, debugPlatform } from "./utils/debug.js";
2
+ import { discoverLibraryRoutes } from "./discover-library-routes.js";
3
+ import { routerPlugin } from "./router-plugin.js";
4
+ import { ssrBuildPlugin } from "./ssr/ssr-build-plugin.js";
5
+ import { contentPlugin } from "./content-plugin.js";
6
+ import { clearClientPageEndpointsPlugin } from "./clear-client-page-endpoint.js";
7
+ import { depsPlugin } from "./deps-plugin.js";
8
+ import { injectHTMLPlugin } from "./ssr/inject-html-plugin.js";
9
+ import { serverModePlugin } from "../server-mode-plugin.js";
10
+ import { routeGenerationPlugin } from "./route-generation-plugin.js";
11
+ import { resolveStylePipelinePlugins } from "./style-pipeline.js";
12
+ import { i18nComponentRegistryPlugin } from "./i18n-component-registry-plugin.js";
13
+ import { analogNitroPlugin } from "./nitro/analog-nitro-plugin.js";
14
+ import { union } from "es-toolkit";
15
+ //#region packages/platform/src/lib/platform-plugin.ts
16
+ function platformPlugin(opts = {}) {
17
+ applyDebugOption(opts.debug, opts.workspaceRoot);
18
+ const isTest = process.env.NODE_ENV === "test" || !!process.env["VITEST"];
19
+ const { ...platformOptions } = {
20
+ ssr: true,
21
+ ...opts
22
+ };
23
+ if (platformOptions.discoverRoutes) {
24
+ const discovered = discoverLibraryRoutes(platformOptions.workspaceRoot ?? process.env["NX_WORKSPACE_ROOT"] ?? process.cwd());
25
+ platformOptions.additionalPagesDirs = union(platformOptions.additionalPagesDirs ?? [], discovered.additionalPagesDirs);
26
+ platformOptions.additionalContentDirs = union(platformOptions.additionalContentDirs ?? [], discovered.additionalContentDirs);
27
+ platformOptions.additionalAPIDirs = union(platformOptions.additionalAPIDirs ?? [], discovered.additionalAPIDirs);
28
+ }
29
+ debugPlatform("experimental options resolved", {
30
+ typedRouter: platformOptions.experimental?.typedRouter,
31
+ stylePipeline: !!platformOptions.experimental?.stylePipeline
32
+ });
33
+ return [
34
+ {
35
+ name: "analogjs-debug-activate",
36
+ config(_, { command }) {
37
+ activateDeferredDebug(command);
38
+ }
39
+ },
40
+ analogNitroPlugin(platformOptions),
41
+ ...platformOptions.ssr ? [...ssrBuildPlugin(), ...injectHTMLPlugin()] : [],
42
+ ...!isTest ? depsPlugin(platformOptions) : [],
43
+ ...resolveStylePipelinePlugins(platformOptions.experimental?.stylePipeline, platformOptions.workspaceRoot),
44
+ ...routerPlugin(platformOptions),
45
+ routeGenerationPlugin(platformOptions),
46
+ ...contentPlugin(platformOptions?.content, platformOptions),
47
+ ...platformOptions.i18n ? [i18nComponentRegistryPlugin()] : [],
48
+ ...serverModePlugin(),
49
+ ...clearClientPageEndpointsPlugin()
50
+ ];
62
51
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsdUhBQXVIO0FBQ3ZILE9BQU8sZUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sT0FBTyxNQUFNLCtCQUErQixDQUFDO0FBR3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCLEVBQUU7SUFDL0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsTUFBTSxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDN0IsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUUxQyxJQUFJLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUM3QixZQUFZLEdBQUc7WUFDYixHQUFHLFlBQVk7WUFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUNyRCxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDZixPQUFPO29CQUNMLEdBQUcsTUFBTTtvQkFDVCxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNOLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDZixPQUFPLEVBQUU7NEJBQ1AsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzs0QkFDdkIsaUJBQWlCLEVBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUzt5QkFDNUM7cUJBQ1Q7aUJBQ0YsQ0FBQztZQUNKLENBQUMsRUFDRCxZQUFZLENBQUMsVUFBVSxDQUN4QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDakQsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNoQyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQztRQUMzRCxHQUFJLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLO1lBQ3ZCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDTixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7Z0JBQ3hCLGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtnQkFDNUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEtBQUs7Z0JBQ2pFLE9BQU8sRUFBRTtvQkFDUCxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7b0JBQ2xDLEdBQUcsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNoRCxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLGVBQWUsQ0FDdkM7aUJBQ0Y7Z0JBQ0QscUJBQXFCLEVBQUUsZUFBZSxDQUFDLHFCQUFxQjtnQkFDNUQsVUFBVSxFQUFFLGVBQWUsQ0FBQyxVQUFVO2dCQUN0QyxxQkFBcUIsRUFBRSxlQUFlLENBQUMscUJBQXFCO2dCQUM1RCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCO2dCQUNsRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7YUFDdEIsQ0FBQyxDQUFTO1FBQ2YsZ0JBQWdCLEVBQUU7UUFDbEIsaUJBQWlCLEVBQVk7UUFDN0IsOEJBQThCLEVBQVk7S0FDM0MsQ0FBQztBQUNKLENBQUMifQ==
52
+ //#endregion
53
+ export { platformPlugin };
54
+
55
+ //# sourceMappingURL=platform-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-plugin.js","names":[],"sources":["../../../src/lib/platform-plugin.ts"],"sourcesContent":["import { Plugin } from 'vite';\nimport { union } from 'es-toolkit';\n\nimport { Options } from './options.js';\nimport {\n activateDeferredDebug,\n applyDebugOption,\n debugPlatform,\n} from './utils/debug.js';\nimport { discoverLibraryRoutes } from './discover-library-routes.js';\nimport { routerPlugin } from './router-plugin.js';\nimport { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';\nimport { contentPlugin } from './content-plugin.js';\nimport { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';\nimport { depsPlugin } from './deps-plugin.js';\nimport { injectHTMLPlugin } from './ssr/inject-html-plugin.js';\nimport { serverModePlugin } from '../server-mode-plugin.js';\nimport { routeGenerationPlugin } from './route-generation-plugin.js';\nimport { resolveStylePipelinePlugins } from './style-pipeline.js';\nimport { i18nComponentRegistryPlugin } from './i18n-component-registry-plugin.js';\nimport { analogNitroPlugin } from './nitro/analog-nitro-plugin.js';\n\nexport function platformPlugin(opts: Options = {}): Plugin[] {\n applyDebugOption(opts.debug, opts.workspaceRoot);\n\n const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];\n const { ...platformOptions } = {\n ssr: true,\n ...opts,\n };\n if (platformOptions.discoverRoutes) {\n const workspaceRoot =\n platformOptions.workspaceRoot ??\n process.env['NX_WORKSPACE_ROOT'] ??\n process.cwd();\n const discovered = discoverLibraryRoutes(workspaceRoot);\n platformOptions.additionalPagesDirs = union(\n platformOptions.additionalPagesDirs ?? [],\n discovered.additionalPagesDirs,\n );\n platformOptions.additionalContentDirs = union(\n platformOptions.additionalContentDirs ?? [],\n discovered.additionalContentDirs,\n );\n platformOptions.additionalAPIDirs = union(\n platformOptions.additionalAPIDirs ?? [],\n discovered.additionalAPIDirs,\n );\n }\n\n debugPlatform('experimental options resolved', {\n typedRouter: platformOptions.experimental?.typedRouter,\n stylePipeline: !!platformOptions.experimental?.stylePipeline,\n });\n\n return [\n {\n name: 'analogjs-debug-activate',\n config(_, { command }) {\n activateDeferredDebug(command);\n },\n },\n analogNitroPlugin(platformOptions),\n ...(platformOptions.ssr\n ? [...ssrBuildPlugin(), ...injectHTMLPlugin()]\n : []),\n ...(!isTest ? depsPlugin(platformOptions) : []),\n ...resolveStylePipelinePlugins(\n platformOptions.experimental?.stylePipeline,\n platformOptions.workspaceRoot,\n ),\n ...routerPlugin(platformOptions),\n routeGenerationPlugin(platformOptions),\n ...contentPlugin(platformOptions?.content, platformOptions),\n ...(platformOptions.i18n ? [i18nComponentRegistryPlugin()] : []),\n ...serverModePlugin(),\n ...clearClientPageEndpointsPlugin(),\n ];\n}\n"],"mappings":";;;;;;;;;;;;;;;AAsBA,SAAgB,eAAe,OAAgB,EAAE,EAAY;AAC3D,kBAAiB,KAAK,OAAO,KAAK,cAAc;CAEhD,MAAM,SAAA,QAAA,IAAA,aAAqC,UAAU,CAAC,CAAC,QAAQ,IAAI;CACnE,MAAM,EAAE,GAAG,oBAAoB;EAC7B,KAAK;EACL,GAAG;EACJ;AACD,KAAI,gBAAgB,gBAAgB;EAKlC,MAAM,aAAa,sBAHjB,gBAAgB,iBAChB,QAAQ,IAAI,wBACZ,QAAQ,KAAK,CACwC;AACvD,kBAAgB,sBAAsB,MACpC,gBAAgB,uBAAuB,EAAE,EACzC,WAAW,oBACZ;AACD,kBAAgB,wBAAwB,MACtC,gBAAgB,yBAAyB,EAAE,EAC3C,WAAW,sBACZ;AACD,kBAAgB,oBAAoB,MAClC,gBAAgB,qBAAqB,EAAE,EACvC,WAAW,kBACZ;;AAGH,eAAc,iCAAiC;EAC7C,aAAa,gBAAgB,cAAc;EAC3C,eAAe,CAAC,CAAC,gBAAgB,cAAc;EAChD,CAAC;AAEF,QAAO;EACL;GACE,MAAM;GACN,OAAO,GAAG,EAAE,WAAW;AACrB,0BAAsB,QAAQ;;GAEjC;EACD,kBAAkB,gBAAgB;EAClC,GAAI,gBAAgB,MAChB,CAAC,GAAG,gBAAgB,EAAE,GAAG,kBAAkB,CAAC,GAC5C,EAAE;EACN,GAAI,CAAC,SAAS,WAAW,gBAAgB,GAAG,EAAE;EAC9C,GAAG,4BACD,gBAAgB,cAAc,eAC9B,gBAAgB,cACjB;EACD,GAAG,aAAa,gBAAgB;EAChC,sBAAsB,gBAAgB;EACtC,GAAG,cAAc,iBAAiB,SAAS,gBAAgB;EAC3D,GAAI,gBAAgB,OAAO,CAAC,6BAA6B,CAAC,GAAG,EAAE;EAC/D,GAAG,kBAAkB;EACrB,GAAG,gCAAgC;EACpC"}
@@ -0,0 +1,23 @@
1
+ export interface RouteFileDiscoveryOptions {
2
+ root: string;
3
+ workspaceRoot: string;
4
+ additionalPagesDirs: string[];
5
+ additionalContentDirs: string[];
6
+ }
7
+ export interface RouteFileDiscovery {
8
+ getRouteFiles(): string[];
9
+ getContentFiles(): string[];
10
+ getDiscoveredFileKind(path: string): "route" | "content" | null;
11
+ updateDiscoveredFile(path: string, event: "add" | "change" | "unlink"): void;
12
+ /**
13
+ * Returns true if the normalized filename was discovered from an app-local
14
+ * glob (under the configured root) rather than from an additional directory.
15
+ *
16
+ * Used by collision priority to prefer app-local routes over shared/external
17
+ * routes based on actual configured roots instead of hard-coded path
18
+ * substrings.
19
+ */
20
+ isAppLocal(normalizedFilename: string): boolean;
21
+ reset(): void;
22
+ }
23
+ export declare function createRouteFileDiscovery(options: RouteFileDiscoveryOptions): RouteFileDiscovery;
@@ -0,0 +1,114 @@
1
+ import { resolve } from "node:path";
2
+ import { normalizePath } from "vite";
3
+ import { globSync } from "tinyglobby";
4
+ //#region packages/platform/src/lib/route-file-discovery.ts
5
+ function createRouteFileDiscovery(options) {
6
+ const { root, workspaceRoot, additionalPagesDirs, additionalContentDirs } = options;
7
+ let routeFilesCache = /* @__PURE__ */ new Set();
8
+ let contentFilesCache = /* @__PURE__ */ new Set();
9
+ let appLocalFilesCache = /* @__PURE__ */ new Set();
10
+ let initialized = false;
11
+ const joinDir = (dir) => dir.startsWith(workspaceRoot) ? normalizePath(dir) : dir.startsWith("/") ? normalizePath(`${workspaceRoot}${dir}`) : normalizePath(resolve(workspaceRoot, dir));
12
+ const additionalPagesRoots = additionalPagesDirs.map(joinDir);
13
+ const additionalContentRoots = additionalContentDirs.map(joinDir);
14
+ function normalizePath_(absolutePath) {
15
+ const normalized = normalizePath(absolutePath);
16
+ if (normalized.startsWith(root)) return normalized.slice(root.length);
17
+ if (normalized.startsWith(workspaceRoot)) return normalized.slice(workspaceRoot.length);
18
+ return normalized;
19
+ }
20
+ function isWithinDir(path, dir) {
21
+ return path === dir || path.startsWith(`${dir}/`);
22
+ }
23
+ function getDiscoveredFileKind(path) {
24
+ const normalized = normalizePath(path);
25
+ if (normalized.endsWith(".md") && (normalized.includes("/src/app/routes/") || normalized.includes("/src/app/pages/") || normalized.includes("/src/content/") || additionalContentRoots.some((dir) => isWithinDir(normalized, dir)))) return "content";
26
+ if ((normalized.includes("/app/routes/") || normalized.includes("/src/app/routes/")) && normalized.endsWith(".ts")) return "route";
27
+ if (normalized.endsWith(".page.ts") && (normalized.includes("/src/app/pages/") || additionalPagesRoots.some((dir) => isWithinDir(normalized, dir)))) return "route";
28
+ return null;
29
+ }
30
+ function scanRouteFiles() {
31
+ const appLocalGlobs = [
32
+ `${root}/app/routes/**/*.ts`,
33
+ `${root}/src/app/routes/**/*.ts`,
34
+ `${root}/src/app/pages/**/*.page.ts`
35
+ ];
36
+ const additionalGlobs = additionalPagesDirs.map((dir) => `${joinDir(dir)}/**/*.page.ts`);
37
+ const appLocal = globSync(appLocalGlobs, {
38
+ dot: true,
39
+ absolute: true
40
+ }).map(normalizePath_);
41
+ const additional = globSync(additionalGlobs, {
42
+ dot: true,
43
+ absolute: true
44
+ }).map(normalizePath_);
45
+ for (const f of appLocal) appLocalFilesCache.add(f);
46
+ return [...appLocal, ...additional];
47
+ }
48
+ function scanContentFiles() {
49
+ const appLocalGlobs = [
50
+ `${root}/src/app/routes/**/*.md`,
51
+ `${root}/src/app/pages/**/*.md`,
52
+ `${root}/src/content/**/*.md`
53
+ ];
54
+ const additionalGlobs = additionalContentDirs.map((dir) => `${joinDir(dir)}/**/*.md`);
55
+ const appLocal = globSync(appLocalGlobs, {
56
+ dot: true,
57
+ absolute: true
58
+ }).map(normalizePath_);
59
+ const additional = globSync(additionalGlobs, {
60
+ dot: true,
61
+ absolute: true
62
+ }).map(normalizePath_);
63
+ for (const f of appLocal) appLocalFilesCache.add(f);
64
+ return [...appLocal, ...additional];
65
+ }
66
+ function isAppLocalByPath(absolutePath) {
67
+ return normalizePath(absolutePath).startsWith(root);
68
+ }
69
+ function ensureInitialized() {
70
+ if (initialized) return;
71
+ routeFilesCache = new Set(scanRouteFiles());
72
+ contentFilesCache = new Set(scanContentFiles());
73
+ initialized = true;
74
+ }
75
+ return {
76
+ getRouteFiles() {
77
+ ensureInitialized();
78
+ return [...routeFilesCache].sort();
79
+ },
80
+ getContentFiles() {
81
+ ensureInitialized();
82
+ return [...contentFilesCache].sort();
83
+ },
84
+ getDiscoveredFileKind(path) {
85
+ return getDiscoveredFileKind(path);
86
+ },
87
+ updateDiscoveredFile(path, event) {
88
+ ensureInitialized();
89
+ const kind = getDiscoveredFileKind(path);
90
+ if (!kind) return;
91
+ const normalizedPath = normalizePath_(path);
92
+ const targetCache = kind === "content" ? contentFilesCache : routeFilesCache;
93
+ if (event === "unlink") {
94
+ targetCache.delete(normalizedPath);
95
+ appLocalFilesCache.delete(normalizedPath);
96
+ return;
97
+ }
98
+ targetCache.add(normalizedPath);
99
+ if (isAppLocalByPath(path)) appLocalFilesCache.add(normalizedPath);
100
+ },
101
+ isAppLocal(normalizedFilename) {
102
+ ensureInitialized();
103
+ return appLocalFilesCache.has(normalizedFilename);
104
+ },
105
+ reset() {
106
+ initialized = false;
107
+ appLocalFilesCache = /* @__PURE__ */ new Set();
108
+ }
109
+ };
110
+ }
111
+ //#endregion
112
+ export { createRouteFileDiscovery };
113
+
114
+ //# sourceMappingURL=route-file-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-file-discovery.js","names":[],"sources":["../../../src/lib/route-file-discovery.ts"],"sourcesContent":["import { normalizePath } from 'vite';\nimport { resolve } from 'node:path';\nimport { globSync } from 'tinyglobby';\n\nexport interface RouteFileDiscoveryOptions {\n root: string;\n workspaceRoot: string;\n additionalPagesDirs: string[];\n additionalContentDirs: string[];\n}\n\nexport interface RouteFileDiscovery {\n getRouteFiles(): string[];\n getContentFiles(): string[];\n getDiscoveredFileKind(path: string): 'route' | 'content' | null;\n updateDiscoveredFile(path: string, event: 'add' | 'change' | 'unlink'): void;\n /**\n * Returns true if the normalized filename was discovered from an app-local\n * glob (under the configured root) rather than from an additional directory.\n *\n * Used by collision priority to prefer app-local routes over shared/external\n * routes based on actual configured roots instead of hard-coded path\n * substrings.\n */\n isAppLocal(normalizedFilename: string): boolean;\n reset(): void;\n}\n\nexport function createRouteFileDiscovery(\n options: RouteFileDiscoveryOptions,\n): RouteFileDiscovery {\n const { root, workspaceRoot, additionalPagesDirs, additionalContentDirs } =\n options;\n\n let routeFilesCache = new Set<string>();\n let contentFilesCache = new Set<string>();\n let appLocalFilesCache = new Set<string>();\n let initialized = false;\n const joinDir = (dir: string) =>\n dir.startsWith(workspaceRoot)\n ? normalizePath(dir)\n : dir.startsWith('/')\n ? normalizePath(`${workspaceRoot}${dir}`)\n : normalizePath(resolve(workspaceRoot, dir));\n const additionalPagesRoots = additionalPagesDirs.map(joinDir);\n const additionalContentRoots = additionalContentDirs.map(joinDir);\n\n function normalizePath_(absolutePath: string): string {\n const normalized = normalizePath(absolutePath);\n if (normalized.startsWith(root)) {\n return normalized.slice(root.length);\n }\n if (normalized.startsWith(workspaceRoot)) {\n return normalized.slice(workspaceRoot.length);\n }\n return normalized;\n }\n\n function isWithinDir(path: string, dir: string): boolean {\n return path === dir || path.startsWith(`${dir}/`);\n }\n\n function getDiscoveredFileKind(path: string): 'route' | 'content' | null {\n const normalized = normalizePath(path);\n\n if (\n normalized.endsWith('.md') &&\n (normalized.includes('/src/app/routes/') ||\n normalized.includes('/src/app/pages/') ||\n normalized.includes('/src/content/') ||\n additionalContentRoots.some((dir) => isWithinDir(normalized, dir)))\n ) {\n return 'content';\n }\n\n if (\n (normalized.includes('/app/routes/') ||\n normalized.includes('/src/app/routes/')) &&\n normalized.endsWith('.ts')\n ) {\n return 'route';\n }\n\n // Keep the dev watcher aligned with the build-time route scan. In\n // particular, `src/server/routes/**` must stay out of typed route codegen\n // because Nitro API handlers are not client-navigable pages.\n if (\n normalized.endsWith('.page.ts') &&\n (normalized.includes('/src/app/pages/') ||\n additionalPagesRoots.some((dir) => isWithinDir(normalized, dir)))\n ) {\n return 'route';\n }\n\n return null;\n }\n\n function scanRouteFiles(): string[] {\n const appLocalGlobs = [\n `${root}/app/routes/**/*.ts`,\n `${root}/src/app/routes/**/*.ts`,\n `${root}/src/app/pages/**/*.page.ts`,\n ];\n const additionalGlobs = additionalPagesDirs.map(\n (dir) => `${joinDir(dir)}/**/*.page.ts`,\n );\n\n const appLocal = globSync(appLocalGlobs, {\n dot: true,\n absolute: true,\n }).map(normalizePath_);\n\n const additional = globSync(additionalGlobs, {\n dot: true,\n absolute: true,\n }).map(normalizePath_);\n\n for (const f of appLocal) {\n appLocalFilesCache.add(f);\n }\n\n return [...appLocal, ...additional];\n }\n\n function scanContentFiles(): string[] {\n const appLocalGlobs = [\n `${root}/src/app/routes/**/*.md`,\n `${root}/src/app/pages/**/*.md`,\n `${root}/src/content/**/*.md`,\n ];\n const additionalGlobs = additionalContentDirs.map(\n (dir) => `${joinDir(dir)}/**/*.md`,\n );\n\n const appLocal = globSync(appLocalGlobs, {\n dot: true,\n absolute: true,\n }).map(normalizePath_);\n\n const additional = globSync(additionalGlobs, {\n dot: true,\n absolute: true,\n }).map(normalizePath_);\n\n for (const f of appLocal) {\n appLocalFilesCache.add(f);\n }\n\n return [...appLocal, ...additional];\n }\n\n function isAppLocalByPath(absolutePath: string): boolean {\n const normalized = normalizePath(absolutePath);\n return normalized.startsWith(root);\n }\n\n function ensureInitialized(): void {\n if (initialized) {\n return;\n }\n\n routeFilesCache = new Set(scanRouteFiles());\n contentFilesCache = new Set(scanContentFiles());\n initialized = true;\n }\n\n return {\n getRouteFiles(): string[] {\n ensureInitialized();\n return [...routeFilesCache].sort();\n },\n\n getContentFiles(): string[] {\n ensureInitialized();\n return [...contentFilesCache].sort();\n },\n\n getDiscoveredFileKind(path: string): 'route' | 'content' | null {\n return getDiscoveredFileKind(path);\n },\n\n updateDiscoveredFile(\n path: string,\n event: 'add' | 'change' | 'unlink',\n ): void {\n ensureInitialized();\n const kind = getDiscoveredFileKind(path);\n if (!kind) {\n return;\n }\n\n const normalizedPath = normalizePath_(path);\n const targetCache =\n kind === 'content' ? contentFilesCache : routeFilesCache;\n\n if (event === 'unlink') {\n targetCache.delete(normalizedPath);\n appLocalFilesCache.delete(normalizedPath);\n return;\n }\n\n targetCache.add(normalizedPath);\n if (isAppLocalByPath(path)) {\n appLocalFilesCache.add(normalizedPath);\n }\n },\n\n isAppLocal(normalizedFilename: string): boolean {\n ensureInitialized();\n return appLocalFilesCache.has(normalizedFilename);\n },\n\n reset(): void {\n initialized = false;\n appLocalFilesCache = new Set<string>();\n },\n };\n}\n"],"mappings":";;;;AA4BA,SAAgB,yBACd,SACoB;CACpB,MAAM,EAAE,MAAM,eAAe,qBAAqB,0BAChD;CAEF,IAAI,kCAAkB,IAAI,KAAa;CACvC,IAAI,oCAAoB,IAAI,KAAa;CACzC,IAAI,qCAAqB,IAAI,KAAa;CAC1C,IAAI,cAAc;CAClB,MAAM,WAAW,QACf,IAAI,WAAW,cAAc,GACzB,cAAc,IAAI,GAClB,IAAI,WAAW,IAAI,GACjB,cAAc,GAAG,gBAAgB,MAAM,GACvC,cAAc,QAAQ,eAAe,IAAI,CAAC;CAClD,MAAM,uBAAuB,oBAAoB,IAAI,QAAQ;CAC7D,MAAM,yBAAyB,sBAAsB,IAAI,QAAQ;CAEjE,SAAS,eAAe,cAA8B;EACpD,MAAM,aAAa,cAAc,aAAa;AAC9C,MAAI,WAAW,WAAW,KAAK,CAC7B,QAAO,WAAW,MAAM,KAAK,OAAO;AAEtC,MAAI,WAAW,WAAW,cAAc,CACtC,QAAO,WAAW,MAAM,cAAc,OAAO;AAE/C,SAAO;;CAGT,SAAS,YAAY,MAAc,KAAsB;AACvD,SAAO,SAAS,OAAO,KAAK,WAAW,GAAG,IAAI,GAAG;;CAGnD,SAAS,sBAAsB,MAA0C;EACvE,MAAM,aAAa,cAAc,KAAK;AAEtC,MACE,WAAW,SAAS,MAAM,KACzB,WAAW,SAAS,mBAAmB,IACtC,WAAW,SAAS,kBAAkB,IACtC,WAAW,SAAS,gBAAgB,IACpC,uBAAuB,MAAM,QAAQ,YAAY,YAAY,IAAI,CAAC,EAEpE,QAAO;AAGT,OACG,WAAW,SAAS,eAAe,IAClC,WAAW,SAAS,mBAAmB,KACzC,WAAW,SAAS,MAAM,CAE1B,QAAO;AAMT,MACE,WAAW,SAAS,WAAW,KAC9B,WAAW,SAAS,kBAAkB,IACrC,qBAAqB,MAAM,QAAQ,YAAY,YAAY,IAAI,CAAC,EAElE,QAAO;AAGT,SAAO;;CAGT,SAAS,iBAA2B;EAClC,MAAM,gBAAgB;GACpB,GAAG,KAAK;GACR,GAAG,KAAK;GACR,GAAG,KAAK;GACT;EACD,MAAM,kBAAkB,oBAAoB,KACzC,QAAQ,GAAG,QAAQ,IAAI,CAAC,eAC1B;EAED,MAAM,WAAW,SAAS,eAAe;GACvC,KAAK;GACL,UAAU;GACX,CAAC,CAAC,IAAI,eAAe;EAEtB,MAAM,aAAa,SAAS,iBAAiB;GAC3C,KAAK;GACL,UAAU;GACX,CAAC,CAAC,IAAI,eAAe;AAEtB,OAAK,MAAM,KAAK,SACd,oBAAmB,IAAI,EAAE;AAG3B,SAAO,CAAC,GAAG,UAAU,GAAG,WAAW;;CAGrC,SAAS,mBAA6B;EACpC,MAAM,gBAAgB;GACpB,GAAG,KAAK;GACR,GAAG,KAAK;GACR,GAAG,KAAK;GACT;EACD,MAAM,kBAAkB,sBAAsB,KAC3C,QAAQ,GAAG,QAAQ,IAAI,CAAC,UAC1B;EAED,MAAM,WAAW,SAAS,eAAe;GACvC,KAAK;GACL,UAAU;GACX,CAAC,CAAC,IAAI,eAAe;EAEtB,MAAM,aAAa,SAAS,iBAAiB;GAC3C,KAAK;GACL,UAAU;GACX,CAAC,CAAC,IAAI,eAAe;AAEtB,OAAK,MAAM,KAAK,SACd,oBAAmB,IAAI,EAAE;AAG3B,SAAO,CAAC,GAAG,UAAU,GAAG,WAAW;;CAGrC,SAAS,iBAAiB,cAA+B;AAEvD,SADmB,cAAc,aAAa,CAC5B,WAAW,KAAK;;CAGpC,SAAS,oBAA0B;AACjC,MAAI,YACF;AAGF,oBAAkB,IAAI,IAAI,gBAAgB,CAAC;AAC3C,sBAAoB,IAAI,IAAI,kBAAkB,CAAC;AAC/C,gBAAc;;AAGhB,QAAO;EACL,gBAA0B;AACxB,sBAAmB;AACnB,UAAO,CAAC,GAAG,gBAAgB,CAAC,MAAM;;EAGpC,kBAA4B;AAC1B,sBAAmB;AACnB,UAAO,CAAC,GAAG,kBAAkB,CAAC,MAAM;;EAGtC,sBAAsB,MAA0C;AAC9D,UAAO,sBAAsB,KAAK;;EAGpC,qBACE,MACA,OACM;AACN,sBAAmB;GACnB,MAAM,OAAO,sBAAsB,KAAK;AACxC,OAAI,CAAC,KACH;GAGF,MAAM,iBAAiB,eAAe,KAAK;GAC3C,MAAM,cACJ,SAAS,YAAY,oBAAoB;AAE3C,OAAI,UAAU,UAAU;AACtB,gBAAY,OAAO,eAAe;AAClC,uBAAmB,OAAO,eAAe;AACzC;;AAGF,eAAY,IAAI,eAAe;AAC/B,OAAI,iBAAiB,KAAK,CACxB,oBAAmB,IAAI,eAAe;;EAI1C,WAAW,oBAAqC;AAC9C,sBAAmB;AACnB,UAAO,mBAAmB,IAAI,mBAAmB;;EAGnD,QAAc;AACZ,iBAAc;AACd,wCAAqB,IAAI,KAAa;;EAEzC"}