polen 0.8.0-next.9 → 0.8.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 (561) hide show
  1. package/README.md +25 -0
  2. package/build/api/api.d.ts +3 -3
  3. package/build/api/api.js +3 -3
  4. package/build/api/builder/builder.d.ts +1 -1
  5. package/build/api/builder/builder.d.ts.map +1 -1
  6. package/build/api/builder/builder.js +12 -4
  7. package/build/api/builder/builder.js.map +1 -1
  8. package/build/api/builder/index.d.ts +1 -1
  9. package/build/api/builder/index.js +1 -1
  10. package/build/api/config/config.d.ts +4 -4
  11. package/build/api/config/config.js +4 -4
  12. package/build/api/config/configurator.d.ts +21 -4
  13. package/build/api/config/configurator.d.ts.map +1 -1
  14. package/build/api/config/configurator.js +6 -2
  15. package/build/api/config/configurator.js.map +1 -1
  16. package/build/api/config/define.d.ts +1 -1
  17. package/build/api/config/index.d.ts +1 -1
  18. package/build/api/config/index.js +1 -1
  19. package/build/api/config/load.d.ts +1 -1
  20. package/build/api/config/load.d.ts.map +1 -1
  21. package/build/api/config/load.js +71 -19
  22. package/build/api/config/load.js.map +1 -1
  23. package/build/api/config/merge.d.ts +1 -1
  24. package/build/api/config/merge.js +1 -1
  25. package/build/api/config/merge.js.map +1 -1
  26. package/build/api/config-resolver/config-resolver.d.ts +2 -2
  27. package/build/api/config-resolver/config-resolver.js +2 -2
  28. package/build/api/config-resolver/index.d.ts +1 -1
  29. package/build/api/config-resolver/index.js +1 -1
  30. package/build/api/config-resolver/resolve.d.ts +3 -3
  31. package/build/api/config-resolver/resolve.d.ts.map +1 -1
  32. package/build/api/config-resolver/resolve.js +8 -5
  33. package/build/api/config-resolver/resolve.js.map +1 -1
  34. package/build/api/config-resolver/vite.d.ts +2 -2
  35. package/build/api/config-resolver/vite.d.ts.map +1 -1
  36. package/build/api/config-resolver/vite.js +2 -2
  37. package/build/api/config-resolver/vite.js.map +1 -1
  38. package/build/api/index.d.ts +1 -1
  39. package/build/api/index.js +1 -1
  40. package/build/api/schema/data-sources/data-sources.d.ts +3 -3
  41. package/build/api/schema/data-sources/data-sources.js +3 -3
  42. package/build/api/schema/data-sources/index.d.ts +1 -1
  43. package/build/api/schema/data-sources/index.js +1 -1
  44. package/build/api/schema/data-sources/memory/memory.d.ts +1 -1
  45. package/build/api/schema/data-sources/memory/memory.js +2 -2
  46. package/build/api/schema/data-sources/memory/memory.js.map +1 -1
  47. package/build/api/schema/data-sources/schema-directory/file-name-expression/index.d.ts +1 -1
  48. package/build/api/schema/data-sources/schema-directory/file-name-expression/index.js +1 -1
  49. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts +1 -1
  50. package/build/api/schema/data-sources/schema-directory/schema-directory.js +5 -5
  51. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  52. package/build/api/schema/data-sources/schema-file/schema-file.d.ts +1 -1
  53. package/build/api/schema/data-sources/schema-file/schema-file.js +2 -2
  54. package/build/api/schema/data-sources/schema-file/schema-file.js.map +1 -1
  55. package/build/api/schema/index.d.ts +1 -1
  56. package/build/api/schema/index.js +1 -1
  57. package/build/api/schema/read.d.ts +2 -2
  58. package/build/api/schema/read.js +1 -1
  59. package/build/api/schema/schema.d.ts +3 -3
  60. package/build/api/schema/schema.d.ts.map +1 -1
  61. package/build/api/schema/schema.js +2 -2
  62. package/build/api/schema-augmentation/augmentations/description.d.ts +2 -2
  63. package/build/api/schema-augmentation/augmentations/description.d.ts.map +1 -1
  64. package/build/api/schema-augmentation/augmentations/description.js +1 -1
  65. package/build/api/schema-augmentation/index.d.ts +1 -1
  66. package/build/api/schema-augmentation/index.js +1 -1
  67. package/build/api/schema-augmentation/schema-augmentation.d.ts +2 -2
  68. package/build/api/schema-augmentation/schema-augmentation.d.ts.map +1 -1
  69. package/build/api/schema-augmentation/schema-augmentation.js +1 -1
  70. package/build/api/schema-augmentation/target.d.ts +1 -1
  71. package/build/api/schema-augmentation/target.d.ts.map +1 -1
  72. package/build/api/schema-augmentation/target.js +1 -1
  73. package/build/api/schema-augmentation/target.js.map +1 -1
  74. package/build/api/singletons/markdown/index.d.ts +1 -1
  75. package/build/api/singletons/markdown/index.js +1 -1
  76. package/build/api/vite/log-filters.d.ts +1 -1
  77. package/build/api/vite/log-filters.d.ts.map +1 -1
  78. package/build/api/vite/log-filters.js +1 -1
  79. package/build/api/vite/log-filters.js.map +1 -1
  80. package/build/api/vite/logger.d.ts +1 -1
  81. package/build/api/vite/logger.d.ts.map +1 -1
  82. package/build/api/vite/logger.js +21 -7
  83. package/build/api/vite/logger.js.map +1 -1
  84. package/build/api/vite/plugins/build.d.ts +2 -2
  85. package/build/api/vite/plugins/build.d.ts.map +1 -1
  86. package/build/api/vite/plugins/build.js +14 -6
  87. package/build/api/vite/plugins/build.js.map +1 -1
  88. package/build/api/vite/plugins/core.d.ts +3 -3
  89. package/build/api/vite/plugins/core.d.ts.map +1 -1
  90. package/build/api/vite/plugins/core.js +148 -208
  91. package/build/api/vite/plugins/core.js.map +1 -1
  92. package/build/api/vite/plugins/main.d.ts +2 -2
  93. package/build/api/vite/plugins/main.d.ts.map +1 -1
  94. package/build/api/vite/plugins/main.js +3 -3
  95. package/build/api/vite/plugins/pages-tree.d.ts +16 -0
  96. package/build/api/vite/plugins/pages-tree.d.ts.map +1 -0
  97. package/build/api/vite/plugins/pages-tree.js +152 -0
  98. package/build/api/vite/plugins/pages-tree.js.map +1 -0
  99. package/build/api/vite/plugins/serve.d.ts +2 -2
  100. package/build/api/vite/plugins/serve.d.ts.map +1 -1
  101. package/build/api/vite/plugins/serve.js +41 -26
  102. package/build/api/vite/plugins/serve.js.map +1 -1
  103. package/build/api/vite/vi.d.ts +2 -2
  104. package/build/api/vite/vi.d.ts.map +1 -1
  105. package/build/api/vite/vi.js +2 -2
  106. package/build/api/vite/vi.js.map +1 -1
  107. package/build/cli/_/self-contained-mode.d.ts +16 -0
  108. package/build/cli/_/self-contained-mode.d.ts.map +1 -0
  109. package/build/cli/_/self-contained-mode.js +58 -0
  110. package/build/cli/_/self-contained-mode.js.map +1 -0
  111. package/build/cli/commands/build.js +2 -2
  112. package/build/cli/commands/build.js.map +1 -1
  113. package/build/cli/commands/dev.js +3 -4
  114. package/build/cli/commands/dev.js.map +1 -1
  115. package/build/cli/commands/open.js +4 -4
  116. package/build/cli/commands/open.js.map +1 -1
  117. package/build/dep/graphql-inspector/index.d.ts +1 -1
  118. package/build/dep/graphql-inspector/index.js +1 -1
  119. package/build/dep/hono/hono.d.ts +1 -1
  120. package/build/dep/hono/hono.js +1 -1
  121. package/build/dep/hono/index.d.ts +1 -1
  122. package/build/dep/hono/index.js +1 -1
  123. package/build/dep/superjson/index.d.ts +1 -1
  124. package/build/dep/superjson/index.js +1 -1
  125. package/build/dep/tiny-globby/index.d.ts +1 -1
  126. package/build/dep/tiny-globby/index.js +1 -1
  127. package/build/dep/vite/index.d.ts +1 -1
  128. package/build/dep/vite/index.js +1 -1
  129. package/build/exports/index.d.ts +1 -1
  130. package/build/exports/index.js +1 -1
  131. package/build/exports/polen.d.ts +3 -3
  132. package/build/exports/polen.d.ts.map +1 -1
  133. package/build/exports/polen.js +3 -3
  134. package/build/exports/polen.js.map +1 -1
  135. package/build/lib/apple-touch-icon/index.d.ts +1 -1
  136. package/build/lib/apple-touch-icon/index.js +1 -1
  137. package/build/lib/debug/debug.d.ts +3 -3
  138. package/build/lib/debug/debug.d.ts.map +1 -1
  139. package/build/lib/debug/debug.js +39 -10
  140. package/build/lib/debug/debug.js.map +1 -1
  141. package/build/lib/debug/environment-variable.d.ts +2 -1
  142. package/build/lib/debug/environment-variable.d.ts.map +1 -1
  143. package/build/lib/debug/environment-variable.js +27 -7
  144. package/build/lib/debug/environment-variable.js.map +1 -1
  145. package/build/lib/debug/index.d.ts +1 -1
  146. package/build/lib/debug/index.js +1 -1
  147. package/build/lib/errors/ContextualAggregateError.d.ts +1 -1
  148. package/build/lib/errors/ContextualAggregateError.js +1 -1
  149. package/build/lib/errors/ContextualError.d.ts +1 -1
  150. package/build/lib/errors/ErrorInternal.d.ts +2 -2
  151. package/build/lib/errors/ErrorInternal.js +1 -1
  152. package/build/lib/errors/errors.d.ts +4 -4
  153. package/build/lib/errors/errors.js +4 -4
  154. package/build/lib/errors/index.d.ts +1 -1
  155. package/build/lib/errors/index.js +1 -1
  156. package/build/lib/errors/types.d.ts +1 -1
  157. package/build/lib/favicon/index.d.ts +1 -1
  158. package/build/lib/favicon/index.js +1 -1
  159. package/build/lib/file-router/diagnostic-reporter.d.ts +3 -0
  160. package/build/lib/file-router/diagnostic-reporter.d.ts.map +1 -0
  161. package/build/lib/file-router/diagnostic-reporter.js +18 -0
  162. package/build/lib/file-router/diagnostic-reporter.js.map +1 -0
  163. package/build/lib/file-router/file-router.d.ts +5 -3
  164. package/build/lib/file-router/file-router.d.ts.map +1 -1
  165. package/build/lib/file-router/file-router.js +5 -3
  166. package/build/lib/file-router/file-router.js.map +1 -1
  167. package/build/lib/file-router/index.d.ts +1 -1
  168. package/build/lib/file-router/index.js +1 -1
  169. package/build/lib/file-router/linter.d.ts +25 -2
  170. package/build/lib/file-router/linter.d.ts.map +1 -1
  171. package/build/lib/file-router/linter.js +44 -3
  172. package/build/lib/file-router/linter.js.map +1 -1
  173. package/build/lib/file-router/route.d.ts +1 -0
  174. package/build/lib/file-router/route.d.ts.map +1 -1
  175. package/build/lib/file-router/route.js +1 -1
  176. package/build/lib/file-router/route.js.map +1 -1
  177. package/build/lib/file-router/scan-tree.d.ts +20 -0
  178. package/build/lib/file-router/scan-tree.d.ts.map +1 -0
  179. package/build/lib/file-router/scan-tree.js +158 -0
  180. package/build/lib/file-router/scan-tree.js.map +1 -0
  181. package/build/lib/file-router/scan.d.ts +2 -2
  182. package/build/lib/file-router/scan.d.ts.map +1 -1
  183. package/build/lib/file-router/scan.js +26 -10
  184. package/build/lib/file-router/scan.js.map +1 -1
  185. package/build/lib/file-router/sidebar/index.d.ts +3 -0
  186. package/build/lib/file-router/sidebar/index.d.ts.map +1 -0
  187. package/build/lib/file-router/sidebar/index.js +4 -0
  188. package/build/lib/file-router/sidebar/index.js.map +1 -0
  189. package/build/lib/file-router/sidebar/sidebar-tree.d.ts +9 -0
  190. package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +1 -0
  191. package/build/lib/file-router/sidebar/sidebar-tree.js +85 -0
  192. package/build/lib/file-router/sidebar/sidebar-tree.js.map +1 -0
  193. package/build/lib/file-router/sidebar/types.d.ts +17 -0
  194. package/build/lib/file-router/sidebar/types.d.ts.map +1 -0
  195. package/build/lib/file-router/sidebar/types.js +2 -0
  196. package/build/lib/file-router/sidebar/types.js.map +1 -0
  197. package/build/lib/grafaid/_Nodes.d.ts +1 -1
  198. package/build/lib/grafaid/_Nodes.js +1 -1
  199. package/build/lib/grafaid/document/OperationTypeNode.d.ts +1 -1
  200. package/build/lib/grafaid/document/OperationTypeNode.js +1 -1
  201. package/build/lib/grafaid/document/kind.d.ts +1 -1
  202. package/build/lib/grafaid/document/kind.js +1 -1
  203. package/build/lib/grafaid/document.d.ts +4 -4
  204. package/build/lib/grafaid/document.js +6 -6
  205. package/build/lib/grafaid/grafaid.d.ts +4 -4
  206. package/build/lib/grafaid/grafaid.js +4 -4
  207. package/build/lib/grafaid/graphql.d.ts +2 -2
  208. package/build/lib/grafaid/graphql.js +2 -2
  209. package/build/lib/grafaid/http/__.d.ts +1 -1
  210. package/build/lib/grafaid/http/__.js +1 -1
  211. package/build/lib/grafaid/http/http.js +1 -1
  212. package/build/lib/grafaid/index.d.ts +1 -1
  213. package/build/lib/grafaid/index.js +1 -1
  214. package/build/lib/grafaid/schema/KindMap/_.d.ts +3 -3
  215. package/build/lib/grafaid/schema/KindMap/_.js +4 -4
  216. package/build/lib/grafaid/schema/KindMap/__.d.ts +2 -2
  217. package/build/lib/grafaid/schema/KindMap/__.js +1 -1
  218. package/build/lib/grafaid/schema/OperationType/__.d.ts +2 -2
  219. package/build/lib/grafaid/schema/OperationType/__.js +1 -1
  220. package/build/lib/grafaid/schema/RootDetails.d.ts +3 -3
  221. package/build/lib/grafaid/schema/RootDetails.js +2 -2
  222. package/build/lib/grafaid/schema/RootTypeMap.d.ts +2 -2
  223. package/build/lib/grafaid/schema/RootTypeMap.js +2 -2
  224. package/build/lib/grafaid/schema/nodes-like.d.ts +1 -1
  225. package/build/lib/grafaid/schema/nodes-like.js +1 -1
  226. package/build/lib/grafaid/schema/schema.d.ts +14 -14
  227. package/build/lib/grafaid/schema/schema.js +15 -15
  228. package/build/lib/grafaid/schema/type-kind-name.d.ts +1 -1
  229. package/build/lib/grafaid/schema/type-kind-name.js +1 -1
  230. package/build/lib/grafaid/schema/type.d.ts +1 -1
  231. package/build/lib/grafaid/schema/typeGuards.js +1 -1
  232. package/build/lib/grafaid-old/grafaid.d.ts +1 -1
  233. package/build/lib/grafaid-old/grafaid.js +1 -1
  234. package/build/lib/grafaid-old/index.d.ts +1 -1
  235. package/build/lib/grafaid-old/index.js +1 -1
  236. package/build/lib/graphql-change/graphql-change.d.ts +2 -2
  237. package/build/lib/graphql-change/graphql-change.d.ts.map +1 -1
  238. package/build/lib/graphql-change/graphql-change.js +1 -1
  239. package/build/lib/graphql-change/graphql-change.js.map +1 -1
  240. package/build/lib/graphql-change/index.d.ts +1 -1
  241. package/build/lib/graphql-change/index.js +1 -1
  242. package/build/lib/graphql-changeset/graphql-changeset.d.ts +2 -2
  243. package/build/lib/graphql-changeset/graphql-changeset.d.ts.map +1 -1
  244. package/build/lib/graphql-changeset/index.d.ts +1 -1
  245. package/build/lib/graphql-changeset/index.js +1 -1
  246. package/build/lib/graphql-schema-loader/graphql-schema-loader.d.ts +1 -1
  247. package/build/lib/graphql-schema-loader/graphql-schema-loader.d.ts.map +1 -1
  248. package/build/lib/graphql-schema-loader/graphql-schema-loader.js +1 -1
  249. package/build/lib/graphql-schema-loader/graphql-schema-loader.js.map +1 -1
  250. package/build/lib/graphql-schema-loader/index.d.ts +1 -1
  251. package/build/lib/graphql-schema-loader/index.js +1 -1
  252. package/build/lib/hono-aid/hono-aid.d.ts +1 -1
  253. package/build/lib/hono-aid/hono-aid.d.ts.map +1 -1
  254. package/build/lib/hono-aid/index.d.ts +1 -1
  255. package/build/lib/hono-aid/index.js +1 -1
  256. package/build/lib/kit-temp.d.ts +6 -0
  257. package/build/lib/kit-temp.d.ts.map +1 -1
  258. package/build/lib/kit-temp.js +3 -0
  259. package/build/lib/kit-temp.js.map +1 -1
  260. package/build/lib/react-router-aid/get-paths-patterns.d.ts +1 -1
  261. package/build/lib/react-router-aid/get-paths-patterns.d.ts.map +1 -1
  262. package/build/lib/react-router-aid/index.d.ts +1 -1
  263. package/build/lib/react-router-aid/index.js +1 -1
  264. package/build/lib/react-router-aid/react-router-aid.d.ts +2 -2
  265. package/build/lib/react-router-aid/react-router-aid.d.ts.map +1 -1
  266. package/build/lib/react-router-aid/react-router-aid.js +1 -1
  267. package/build/lib/react-router-loader/react-router-loader.js +1 -1
  268. package/build/lib/stack-processor/index.d.ts +1 -1
  269. package/build/lib/stack-processor/index.js +1 -1
  270. package/build/lib/superjson-codec/codec.d.ts +1 -1
  271. package/build/lib/superjson-codec/codec.d.ts.map +1 -1
  272. package/build/lib/superjson-codec/codecs/graphql-schema.d.ts +2 -2
  273. package/build/lib/superjson-codec/codecs/graphql-schema.d.ts.map +1 -1
  274. package/build/lib/superjson-codec/codecs/graphql-schema.js +2 -2
  275. package/build/lib/superjson-codec/codecs/graphql-schema.js.map +1 -1
  276. package/build/lib/superjson-codec/exports.d.ts +2 -2
  277. package/build/lib/superjson-codec/exports.js +2 -2
  278. package/build/lib/superjson-codec/index.d.ts +1 -1
  279. package/build/lib/superjson-codec/index.js +1 -1
  280. package/build/lib/tree/index.d.ts +3 -0
  281. package/build/lib/tree/index.d.ts.map +1 -0
  282. package/build/lib/tree/index.js +2 -0
  283. package/build/lib/tree/index.js.map +1 -0
  284. package/build/lib/tree/tree.d.ts +62 -0
  285. package/build/lib/tree/tree.d.ts.map +1 -0
  286. package/build/lib/tree/tree.js +134 -0
  287. package/build/lib/tree/tree.js.map +1 -0
  288. package/build/lib/vite-plugin-config/vite-plugin-config.d.ts +1 -1
  289. package/build/lib/vite-plugin-config/vite-plugin-config.d.ts.map +1 -1
  290. package/build/lib/vite-plugin-mdx/index.d.ts +1 -1
  291. package/build/lib/vite-plugin-mdx/index.d.ts.map +1 -1
  292. package/build/lib/vite-plugin-mdx/index.js +1 -3
  293. package/build/lib/vite-plugin-mdx/index.js.map +1 -1
  294. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts +22 -0
  295. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.d.ts.map +1 -1
  296. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js +55 -71
  297. package/build/lib/vite-plugin-mdx/vite-plugin-mdx.js.map +1 -1
  298. package/build/lib/vite-plugins/index.d.ts +1 -1
  299. package/build/lib/vite-plugins/index.js +1 -1
  300. package/build/lib/vite-plugins/vite-plugins.d.ts +1 -1
  301. package/build/lib/vite-plugins/vite-plugins.js +1 -1
  302. package/build/lib/vite-virtual/debug.d.ts +3 -0
  303. package/build/lib/vite-virtual/debug.d.ts.map +1 -0
  304. package/build/lib/vite-virtual/debug.js +3 -0
  305. package/build/lib/vite-virtual/debug.js.map +1 -0
  306. package/build/lib/vite-virtual/hooks.d.ts +1 -1
  307. package/build/lib/vite-virtual/hooks.d.ts.map +1 -1
  308. package/build/lib/vite-virtual/identified-loader.d.ts +3 -3
  309. package/build/lib/vite-virtual/identified-loader.d.ts.map +1 -1
  310. package/build/lib/vite-virtual/identified-loader.js +2 -2
  311. package/build/lib/vite-virtual/identified-loader.js.map +1 -1
  312. package/build/lib/vite-virtual/identifier.js +1 -1
  313. package/build/lib/vite-virtual/index.d.ts +1 -1
  314. package/build/lib/vite-virtual/index.js +1 -1
  315. package/build/lib/vite-virtual/vite-virtual.d.ts +3 -3
  316. package/build/lib/vite-virtual/vite-virtual.js +3 -3
  317. package/build/package-paths.d.ts +7 -0
  318. package/build/package-paths.d.ts.map +1 -1
  319. package/build/package-paths.js +12 -1
  320. package/build/package-paths.js.map +1 -1
  321. package/build/project-data.d.ts +4 -20
  322. package/build/project-data.d.ts.map +1 -1
  323. package/build/singletons/debug.d.ts +3 -0
  324. package/build/singletons/debug.d.ts.map +1 -0
  325. package/build/singletons/debug.js +3 -0
  326. package/build/singletons/debug.js.map +1 -0
  327. package/build/singletons/superjson.d.ts +1 -1
  328. package/build/singletons/superjson.d.ts.map +1 -1
  329. package/build/singletons/superjson.js +2 -2
  330. package/build/singletons/superjson.js.map +1 -1
  331. package/build/template/components/ArgumentListAnnotation.jsx +1 -1
  332. package/build/template/components/ArgumentListAnnotation.jsx.map +1 -1
  333. package/build/template/components/Changelog.d.ts +1 -1
  334. package/build/template/components/Changelog.jsx +2 -2
  335. package/build/template/components/Changelog.jsx.map +1 -1
  336. package/build/template/components/DeprecationReason.d.ts +1 -1
  337. package/build/template/components/DeprecationReason.d.ts.map +1 -1
  338. package/build/template/components/Description.d.ts +1 -1
  339. package/build/template/components/Description.d.ts.map +1 -1
  340. package/build/template/components/Field.d.ts +1 -1
  341. package/build/template/components/Field.d.ts.map +1 -1
  342. package/build/template/components/Field.jsx +1 -1
  343. package/build/template/components/Field.jsx.map +1 -1
  344. package/build/template/components/FieldList.d.ts +1 -1
  345. package/build/template/components/FieldList.d.ts.map +1 -1
  346. package/build/template/components/FieldList.jsx +1 -1
  347. package/build/template/components/FieldList.jsx.map +1 -1
  348. package/build/template/components/FieldListSection.jsx +1 -1
  349. package/build/template/components/FieldListSection.jsx.map +1 -1
  350. package/build/template/components/Markdown.jsx +1 -1
  351. package/build/template/components/Markdown.jsx.map +1 -1
  352. package/build/template/components/Sidebar.d.ts +2 -2
  353. package/build/template/components/Sidebar.d.ts.map +1 -1
  354. package/build/template/components/Sidebar.jsx +2 -2
  355. package/build/template/components/Sidebar.jsx.map +1 -1
  356. package/build/template/components/TypeIndex.jsx +1 -1
  357. package/build/template/components/TypeIndex.jsx.map +1 -1
  358. package/build/template/components/graphql/type-kind-icon.d.ts +2 -2
  359. package/build/template/components/graphql/type-kind-icon.d.ts.map +1 -1
  360. package/build/template/components/graphql/type-kind-icon.jsx +1 -1
  361. package/build/template/components/graphql/type-link.d.ts +1 -1
  362. package/build/template/components/graphql/type-link.d.ts.map +1 -1
  363. package/build/template/components/graphql/type-link.jsx +2 -2
  364. package/build/template/components/graphql/type-link.jsx.map +1 -1
  365. package/build/template/entry.client.jsx +1 -1
  366. package/build/template/entry.client.jsx.map +1 -1
  367. package/build/template/routes/changelog.d.ts +1 -1
  368. package/build/template/routes/changelog.jsx +2 -2
  369. package/build/template/routes/changelog.jsx.map +1 -1
  370. package/build/template/routes/index.d.ts +1 -1
  371. package/build/template/routes/index.d.ts.map +1 -1
  372. package/build/template/routes/index.jsx +1 -1
  373. package/build/template/routes/index.jsx.map +1 -1
  374. package/build/template/routes/reference.$type.$field.jsx +3 -3
  375. package/build/template/routes/reference.$type.$field.jsx.map +1 -1
  376. package/build/template/routes/reference.$type.jsx +2 -2
  377. package/build/template/routes/reference.$type.jsx.map +1 -1
  378. package/build/template/routes/reference.jsx +2 -2
  379. package/build/template/routes/reference.jsx.map +1 -1
  380. package/build/template/routes/root.d.ts +1 -1
  381. package/build/template/routes/root.d.ts.map +1 -1
  382. package/build/template/routes/root.jsx +3 -3
  383. package/build/template/routes/root.jsx.map +1 -1
  384. package/build/template/server/app.d.ts +1 -1
  385. package/build/template/server/app.d.ts.map +1 -1
  386. package/build/template/server/app.js +5 -4
  387. package/build/template/server/app.js.map +1 -1
  388. package/build/template/server/main.js +3 -3
  389. package/build/template/server/manifest.d.ts +1 -1
  390. package/build/template/server/manifest.d.ts.map +1 -1
  391. package/build/template/server/render-page.d.ts +1 -1
  392. package/build/template/server/render-page.d.ts.map +1 -1
  393. package/build/template/server/render-page.jsx +2 -2
  394. package/build/template/server/ssg/generate.d.ts +1 -1
  395. package/build/template/server/ssg/generate.d.ts.map +1 -1
  396. package/build/template/server/ssg/generate.js +3 -3
  397. package/build/template/server/ssg/generate.js.map +1 -1
  398. package/build/template/server/ssg/get-route-paths.js +2 -2
  399. package/build/template/server/ssg/get-route-paths.js.map +1 -1
  400. package/package.json +70 -54
  401. package/src/api/api.ts +3 -3
  402. package/src/api/builder/builder.ts +3 -3
  403. package/src/api/builder/index.ts +1 -1
  404. package/src/api/config/config.ts +4 -4
  405. package/src/api/config/configurator.ts +27 -5
  406. package/src/api/config/define.ts +1 -1
  407. package/src/api/config/index.ts +1 -1
  408. package/src/api/config/load.ts +74 -23
  409. package/src/api/config/merge.ts +2 -2
  410. package/src/api/config-resolver/config-resolver.ts +2 -2
  411. package/src/api/config-resolver/index.ts +1 -1
  412. package/src/api/config-resolver/resolve.ts +8 -5
  413. package/src/api/config-resolver/vite.ts +3 -3
  414. package/src/api/index.ts +1 -1
  415. package/src/api/schema/data-sources/data-sources.ts +3 -3
  416. package/src/api/schema/data-sources/index.ts +1 -1
  417. package/src/api/schema/data-sources/memory/memory.ts +4 -4
  418. package/src/api/schema/data-sources/schema-directory/file-name-expression/index.ts +1 -1
  419. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +7 -7
  420. package/src/api/schema/data-sources/schema-file/schema-file.ts +4 -4
  421. package/src/api/schema/index.ts +1 -1
  422. package/src/api/schema/read.ts +2 -2
  423. package/src/api/schema/schema.ts +3 -3
  424. package/src/api/schema-augmentation/augmentations/description.ts +3 -3
  425. package/src/api/schema-augmentation/index.ts +1 -1
  426. package/src/api/schema-augmentation/schema-augmentation.ts +2 -2
  427. package/src/api/schema-augmentation/target.ts +1 -1
  428. package/src/api/singletons/markdown/index.ts +1 -1
  429. package/src/api/vite/log-filters.ts +1 -1
  430. package/src/api/vite/logger.ts +23 -7
  431. package/src/api/vite/plugins/build.ts +6 -6
  432. package/src/api/vite/plugins/core.ts +165 -245
  433. package/src/api/vite/plugins/main.ts +5 -5
  434. package/src/api/vite/plugins/pages-tree.ts +186 -0
  435. package/src/api/vite/plugins/serve.ts +52 -29
  436. package/src/api/vite/vi.ts +2 -2
  437. package/src/cli/_/self-contained-mode.ts +85 -0
  438. package/src/cli/commands/build.ts +2 -2
  439. package/src/cli/commands/dev.ts +3 -4
  440. package/src/cli/commands/open.ts +4 -4
  441. package/src/dep/graphql-inspector/index.ts +1 -1
  442. package/src/dep/hono/hono.ts +1 -1
  443. package/src/dep/hono/index.ts +1 -1
  444. package/src/dep/superjson/index.ts +1 -1
  445. package/src/dep/tiny-globby/index.ts +1 -1
  446. package/src/dep/vite/index.ts +1 -1
  447. package/src/exports/index.ts +1 -1
  448. package/src/exports/polen.ts +3 -3
  449. package/src/lib/apple-touch-icon/index.ts +1 -1
  450. package/src/lib/debug/debug.ts +45 -18
  451. package/src/lib/debug/environment-variable.ts +28 -7
  452. package/src/lib/debug/index.ts +1 -1
  453. package/src/lib/errors/ContextualAggregateError.ts +1 -1
  454. package/src/lib/errors/ContextualError.ts +1 -1
  455. package/src/lib/errors/ErrorInternal.ts +2 -2
  456. package/src/lib/errors/errors.ts +4 -4
  457. package/src/lib/errors/index.ts +1 -1
  458. package/src/lib/errors/types.ts +1 -1
  459. package/src/lib/favicon/index.ts +1 -1
  460. package/src/lib/file-router/diagnostic-reporter.ts +22 -0
  461. package/src/lib/file-router/file-router.ts +5 -3
  462. package/src/lib/file-router/index.test.ts +2 -2
  463. package/src/lib/file-router/index.ts +1 -1
  464. package/src/lib/file-router/linter.test.ts +115 -0
  465. package/src/lib/file-router/linter.ts +78 -4
  466. package/src/lib/file-router/route.ts +2 -1
  467. package/src/lib/file-router/scan-tree.test.ts +189 -0
  468. package/src/lib/file-router/scan-tree.ts +205 -0
  469. package/src/lib/file-router/scan.ts +27 -12
  470. package/src/lib/file-router/sidebar/index.ts +3 -0
  471. package/src/lib/file-router/sidebar/sidebar-tree.test.ts +123 -0
  472. package/src/lib/file-router/sidebar/sidebar-tree.ts +110 -0
  473. package/src/lib/file-router/sidebar/types.ts +19 -0
  474. package/src/lib/grafaid/_Nodes.ts +1 -1
  475. package/src/lib/grafaid/document/OperationTypeNode.ts +1 -1
  476. package/src/lib/grafaid/document/kind.ts +1 -1
  477. package/src/lib/grafaid/document.ts +6 -6
  478. package/src/lib/grafaid/grafaid.ts +4 -4
  479. package/src/lib/grafaid/graphql.ts +3 -3
  480. package/src/lib/grafaid/http/__.ts +1 -1
  481. package/src/lib/grafaid/http/http.ts +1 -1
  482. package/src/lib/grafaid/index.ts +1 -1
  483. package/src/lib/grafaid/schema/KindMap/_.ts +6 -6
  484. package/src/lib/grafaid/schema/KindMap/__.ts +2 -2
  485. package/src/lib/grafaid/schema/OperationType/__.ts +2 -2
  486. package/src/lib/grafaid/schema/RootDetails.ts +3 -3
  487. package/src/lib/grafaid/schema/RootTypeMap.ts +2 -2
  488. package/src/lib/grafaid/schema/nodes-like.ts +2 -2
  489. package/src/lib/grafaid/schema/schema.ts +15 -15
  490. package/src/lib/grafaid/schema/type-kind-name.ts +1 -1
  491. package/src/lib/grafaid/schema/type.ts +1 -1
  492. package/src/lib/grafaid/schema/typeGuards.ts +1 -1
  493. package/src/lib/grafaid-old/grafaid.ts +1 -1
  494. package/src/lib/grafaid-old/index.ts +1 -1
  495. package/src/lib/graphql-change/graphql-change.ts +2 -2
  496. package/src/lib/graphql-change/index.ts +1 -1
  497. package/src/lib/graphql-changeset/graphql-changeset.ts +2 -2
  498. package/src/lib/graphql-changeset/index.ts +1 -1
  499. package/src/lib/graphql-schema-loader/graphql-schema-loader.ts +1 -1
  500. package/src/lib/graphql-schema-loader/index.ts +1 -1
  501. package/src/lib/hono-aid/hono-aid.ts +1 -1
  502. package/src/lib/hono-aid/index.ts +1 -1
  503. package/src/lib/kit-temp.ts +10 -0
  504. package/src/lib/react-router-aid/get-paths-patterns.ts +1 -1
  505. package/src/lib/react-router-aid/index.ts +1 -1
  506. package/src/lib/react-router-aid/react-router-aid.ts +2 -2
  507. package/src/lib/react-router-loader/react-router-loader.ts +1 -1
  508. package/src/lib/stack-processor/index.ts +1 -1
  509. package/src/lib/superjson-codec/codec.ts +1 -1
  510. package/src/lib/superjson-codec/codecs/graphql-schema.ts +2 -2
  511. package/src/lib/superjson-codec/exports.ts +2 -2
  512. package/src/lib/superjson-codec/index.ts +1 -1
  513. package/src/lib/tree/index.ts +2 -0
  514. package/src/lib/tree/tree.test.ts +117 -0
  515. package/src/lib/tree/tree.ts +183 -0
  516. package/src/lib/vite-plugin-config/vite-plugin-config.ts +1 -1
  517. package/src/lib/vite-plugin-mdx/index.ts +1 -2
  518. package/src/lib/vite-plugin-mdx/vite-plugin-mdx.ts +80 -70
  519. package/src/lib/vite-plugins/index.ts +1 -1
  520. package/src/lib/vite-plugins/vite-plugins.ts +1 -1
  521. package/src/lib/vite-virtual/debug.ts +3 -0
  522. package/src/lib/vite-virtual/hooks.ts +1 -1
  523. package/src/lib/vite-virtual/identified-loader.ts +5 -5
  524. package/src/lib/vite-virtual/identifier.ts +1 -1
  525. package/src/lib/vite-virtual/index.ts +1 -1
  526. package/src/lib/vite-virtual/vite-virtual.ts +3 -3
  527. package/src/package-paths.ts +22 -1
  528. package/src/project-data.ts +4 -24
  529. package/src/singletons/debug.ts +3 -0
  530. package/src/singletons/superjson.ts +2 -2
  531. package/src/template/components/ArgumentListAnnotation.tsx +1 -1
  532. package/src/template/components/Changelog.tsx +6 -6
  533. package/src/template/components/DeprecationReason.tsx +1 -1
  534. package/src/template/components/Description.tsx +1 -1
  535. package/src/template/components/Field.tsx +1 -1
  536. package/src/template/components/FieldList.tsx +1 -1
  537. package/src/template/components/FieldListSection.tsx +1 -1
  538. package/src/template/components/Markdown.tsx +1 -1
  539. package/src/template/components/Sidebar.tsx +7 -6
  540. package/src/template/components/TypeIndex.tsx +1 -1
  541. package/src/template/components/graphql/type-kind-icon.tsx +3 -3
  542. package/src/template/components/graphql/type-kind-tokens.ts +1 -1
  543. package/src/template/components/graphql/type-link.tsx +2 -2
  544. package/src/template/entry.client.tsx +1 -1
  545. package/src/template/routes/changelog.tsx +2 -2
  546. package/src/template/routes/index.tsx +1 -1
  547. package/src/template/routes/reference.$type.$field.tsx +3 -3
  548. package/src/template/routes/reference.$type.tsx +2 -2
  549. package/src/template/routes/reference.tsx +2 -2
  550. package/src/template/routes/root.tsx +4 -5
  551. package/src/template/server/app.ts +6 -4
  552. package/src/template/server/main.ts +3 -3
  553. package/src/template/server/manifest.ts +1 -1
  554. package/src/template/server/render-page.tsx +4 -4
  555. package/src/template/server/ssg/generate.ts +4 -4
  556. package/src/template/server/ssg/get-route-paths.ts +2 -2
  557. package/build/lib/file-router/sidebar.d.ts +0 -2
  558. package/build/lib/file-router/sidebar.d.ts.map +0 -1
  559. package/build/lib/file-router/sidebar.js +0 -2
  560. package/build/lib/file-router/sidebar.js.map +0 -1
  561. package/src/lib/file-router/sidebar.ts +0 -0
@@ -1,129 +1,156 @@
1
- import type { Config } from '#api/config/index.js'
2
- import type { ReactRouter } from '#dep/react-router/index.js'
3
- import type { Vite } from '#dep/vite/index.js'
4
- import { FileRouter } from '#lib/file-router/index.js'
5
- import { ViteVirtual } from '#lib/vite-virtual/index.js'
6
- import mdx from '@mdx-js/rollup'
7
- import { Cache, Idx, Json, Path, Str } from '@wollybeard/kit'
1
+ import type { Config } from '#api/config/index'
2
+ import { VitePluginSelfContainedMode } from '#cli/_/self-contained-mode'
3
+ import type { ReactRouter } from '#dep/react-router/index'
4
+ import type { Vite } from '#dep/vite/index'
5
+ import { reportDiagnostics } from '#lib/file-router/diagnostic-reporter'
6
+ import { FileRouter } from '#lib/file-router/index'
7
+ import { Tree } from '#lib/tree/index'
8
+ import { ViteVirtual } from '#lib/vite-virtual/index'
9
+ import { debug } from '#singletons/debug'
10
+ import { Json, Str } from '@wollybeard/kit'
8
11
  import jsesc from 'jsesc'
9
- import remarkGfm from 'remark-gfm'
10
- import type {
11
- ProjectData,
12
- Sidebar,
13
- SidebarIndex,
14
- SidebarNav,
15
- SidebarSection,
16
- SiteNavigationItem,
17
- } from '../../../project-data.js'
18
- import { superjson } from '../../../singletons/superjson.js'
19
- import { SchemaAugmentation } from '../../schema-augmentation/index.js'
20
- import { Schema } from '../../schema/index.js'
21
- import { logger } from '../logger.js'
22
- import { vi as pvi } from '../vi.js'
12
+ import type { ProjectData, SidebarIndex, SiteNavigationItem } from '../../../project-data.ts'
13
+ import { superjson } from '../../../singletons/superjson.ts'
14
+ import { SchemaAugmentation } from '../../schema-augmentation/index.ts'
15
+ import { Schema } from '../../schema/index.ts'
16
+ import { logger } from '../logger.ts'
17
+ import { polenVirtual } from '../vi.ts'
18
+ import { createPagesTreePlugin, getRouteTree } from './pages-tree.ts'
23
19
 
24
- const viTemplateVariables = pvi([`template`, `variables`])
25
- const viTemplateSchemaAugmentations = pvi([`template`, `schema-augmentations`])
26
- const viProjectData = pvi([`project`, `data`])
20
+ const _debug = debug.sub(`vite-plugin-core`)
21
+
22
+ const viTemplateVariables = polenVirtual([`template`, `variables`])
23
+ const viTemplateSchemaAugmentations = polenVirtual([`template`, `schema-augmentations`])
24
+ const viProjectData = polenVirtual([`project`, `data`])
27
25
 
28
- const viProjectPages = pvi([`project`, `pages.jsx`], { allowPluginProcessing: true })
29
26
  export interface ProjectPagesModule {
30
27
  pages: ReactRouter.RouteObject[]
31
28
  }
32
29
 
33
30
  export const Core = (config: Config.Config): Vite.PluginOption[] => {
34
- const scanPageRoutes = Cache.memoize(async () =>
35
- await FileRouter.scan({
36
- dir: config.paths.project.absolute.pages,
37
- glob: `**/*.{md,mdx}`,
38
- })
39
- )
40
- const readSchema = Cache.memoize(async () => {
41
- const schema = await Schema.readOrThrow({
42
- ...config.schema,
43
- projectRoot: config.paths.project.rootDir,
44
- })
45
- // todo: augmentations scoped to a version
46
- schema?.versions.forEach(version => {
47
- SchemaAugmentation.apply(version.after, config.schemaAugmentations)
48
- })
49
- return schema
50
- })
31
+ // State for current pages data (updated by pages plugin)
32
+ let currentPagesData: FileRouter.ScanResult | null = null
33
+ let currentTreeData: FileRouter.RouteTreeNode | null = null
34
+ let viteDevServer: Vite.ViteDevServer | null = null
35
+
36
+ // Schema cache management
37
+ let schemaCache: Awaited<ReturnType<typeof Schema.readOrThrow>> | null = null
38
+
39
+ const readSchema = async () => {
40
+ if (schemaCache === null) {
41
+ const schema = await Schema.readOrThrow({
42
+ ...config.schema,
43
+ projectRoot: config.paths.project.rootDir,
44
+ })
45
+ // todo: augmentations scoped to a version
46
+ schema?.versions.forEach(version => {
47
+ SchemaAugmentation.apply(version.after, config.schemaAugmentations)
48
+ })
49
+ schemaCache = schema
50
+ }
51
+ return schemaCache
52
+ }
53
+
54
+ const plugins: Vite.Plugin[] = []
55
+
56
+ // Note: The main use for this right now is to resolve the react imports
57
+ // from the mdx vite plugin which have to go through the Polen exports since Polen keeps those deps bundled.
58
+ //
59
+ // If we manage to get the mdx vite plugin that defers JSX transform to Rolldown then we can remove this!
60
+ //
61
+ if (config.advanced.isSelfContainedMode) {
62
+ plugins.push(VitePluginSelfContainedMode({
63
+ projectDirPathExp: config.paths.project.rootDir,
64
+ }))
65
+ }
51
66
 
52
67
  return [
53
- // @see https://mdxjs.com/docs/getting-started/#vite
54
- {
55
- enforce: `pre`,
56
- // TODO: Use inline vite-plugin-mdx once transform hooks can change module type
57
- // @see https://github.com/rolldown/rolldown/issues/4004
58
- ...mdx({
59
- jsxImportSource: `polen/react`,
60
- remarkPlugins: [
61
- remarkGfm,
62
- ],
63
- }),
64
- },
65
- // TODO: We can remove, mdx subsumes this
66
- // TODO: First we need to investigate how e can make our api singleton Markdown used by MDX.
67
- // If we cannot, then we might want to ditch MDX instead and use our lower level solution here.
68
- // It depends in part on how complex our Markdown singleton gets.
69
- // {
70
- // name: `polen:markdown`,
71
- // enforce: `pre`,
72
- // resolveId(id) {
73
- // if (id.endsWith(`.md`)) {
74
- // return id
75
- // }
76
- // return null
77
- // },
78
- // async load(id) {
79
- // if (id.endsWith(`.md`)) {
80
- // const markdownString = await Fs.read(id)
81
- // if (!markdownString) return null
82
- // const htmlString = await Markdown.parse(markdownString)
68
+ ...plugins,
69
+
70
+ // Self-contained pages plugin
71
+ ...createPagesTreePlugin({
72
+ config,
73
+ onPagesChange: (pages) => {
74
+ currentPagesData = pages
75
+ // Invalidate project data virtual module to regenerate navigation/sidebar
76
+ if (viteDevServer) {
77
+ const projectDataModule = viteDevServer.moduleGraph.getModuleById(viProjectData.resolved)
78
+ if (projectDataModule) {
79
+ viteDevServer.moduleGraph.invalidateModule(projectDataModule)
80
+ }
81
+ }
82
+ },
83
+ onTreeChange: (tree) => {
84
+ currentTreeData = tree
85
+ },
86
+ }),
87
+ /**
88
+ * If a `polen*` import is encountered from the user's project, resolve it to the currently
89
+ * running source code of Polen rather than the user's node_modules.
90
+ *
91
+ * Useful for the following cases:
92
+ *
93
+ * 1. Main: Using Polen CLI from the source code against some local example/development project.
94
+ *
95
+ * 2. Secondary: Using Polen CLI on a project that does not have Polen installed.
96
+ * (User would likely not want to do this because they would not be able to achieve type safety)
97
+ */
83
98
 
84
- // const code = `export default ${JSON.stringify(htmlString)}`
85
- // return code
86
- // }
87
- // return null
88
- // },
89
- // },
90
99
  {
91
- name: `polen:core:alias`,
100
+ name: `polen:internal-import-alias`,
92
101
  resolveId(id, importer) {
93
- if (!(importer && pvi.includes(importer))) return null
102
+ const d = debug.sub(`vite-plugin:internal-import-alias`)
103
+
104
+ const isPolenImporter = Boolean(
105
+ importer
106
+ && (
107
+ importer.startsWith(config.paths.framework.sourceDir)
108
+ || polenVirtual.includes(importer)
109
+ /*
110
+ TODO: can we make index.html be in the source dir?
111
+ Example case:
112
+
113
+ POLEN VITE_PLUGIN_INTERNAL_IMPORT_ALIAS CHECK {
114
+ id: '#singletons/superjson',
115
+ importer: '/Users/jasonkuhrt/projects/the-guild-org/polen/index.html',
116
+ isPolenImporter: false
117
+ }
118
+ */
119
+ || (importer.startsWith(config.paths.framework.rootDir) && importer.endsWith(`index.html`))
120
+ ),
121
+ )
122
+
123
+ if (!isPolenImporter) return null
124
+ d(`check candidate`, { id, importer, isPolenImporter })
94
125
 
95
126
  const find = Str.pattern<{ groups: [`path`] }>(/^#(?<path>.+)/)
96
127
  const match = Str.match(id, find)
97
128
  if (!match) return null
98
129
 
99
- const replacement = `${config.paths.framework.sourceDir}/${match.groups.path}`
100
- return replacement
130
+ const to = `${config.paths.framework.sourceDir}/${match.groups.path}${config.paths.framework.sourceExtension}`
131
+ d(`did resolve`, { from: id, to })
132
+
133
+ return to
101
134
  },
102
135
  },
103
136
  {
104
137
  name: `polen:core`,
138
+ configureServer(server) {
139
+ viteDevServer = server
140
+ },
105
141
  config(_, { command }) {
106
142
  // isServing = command === `serve`
107
143
  return {
108
144
  root: config.paths.framework.rootDir,
109
145
  define: {
110
- __BUILDING__: Json.codec.serialize(command === `build`),
111
- __SERVING__: Json.codec.serialize(command === `serve`),
112
- __COMMAND__: Json.codec.serialize(command),
113
- __BUILD_ARCHITECTURE__: Json.codec.serialize(config.build.architecture),
114
- __BUILD_ARCHITECTURE_SSG__: Json.codec.serialize(config.build.architecture === `ssg`),
115
- },
116
- server: {
117
- port: 3000,
146
+ __BUILDING__: Json.encode(command === `build`),
147
+ __SERVING__: Json.encode(command === `serve`),
148
+ __COMMAND__: Json.encode(command),
149
+ __BUILD_ARCHITECTURE__: Json.encode(config.build.architecture),
150
+ __BUILD_ARCHITECTURE_SSG__: Json.encode(config.build.architecture === `ssg`),
118
151
  },
119
152
  customLogger: logger,
120
153
  esbuild: false,
121
- // oxc: {
122
- // jsx: {
123
- // runtime: 'automatic',
124
- // importSource: 'react',
125
- // },
126
- // },
127
154
  build: {
128
155
  target: `esnext`,
129
156
  assetsDir: config.paths.project.relative.build.relative.assets,
@@ -159,9 +186,27 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
159
186
  {
160
187
  identifier: viProjectData,
161
188
  async loader() {
189
+ _debug(`loadingViProjectDataVirtualModule`)
162
190
  // todo: parallel
163
191
  const schema = await readSchema()
164
- const pagesScanResult = await scanPageRoutes()
192
+
193
+ // Get pages data from the pages plugin or load initially
194
+ if (!currentPagesData) {
195
+ _debug(`loadingPagesDataInitially`)
196
+ currentPagesData = await FileRouter.scan({
197
+ dir: config.paths.project.absolute.pages,
198
+ glob: `**/*.{md,mdx}`,
199
+ })
200
+ // Report any diagnostics from initial scan
201
+ reportDiagnostics(currentPagesData.diagnostics)
202
+ }
203
+ if (!currentTreeData) {
204
+ _debug(`loadingTreeDataInitially`)
205
+ currentTreeData = await getRouteTree(config)
206
+ }
207
+ const pagesScanResult = currentPagesData
208
+ const routeTree = currentTreeData
209
+ _debug(`usingPageRoutesFromPagesPlugin`, pagesScanResult.routes.length)
165
210
 
166
211
  const siteNavigationItems: SiteNavigationItem[] = []
167
212
 
@@ -169,37 +214,24 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
169
214
  // ━━ Build Navbar
170
215
  //
171
216
 
172
- // Top pages become navigation items
173
- const topPages = pagesScanResult.routes.filter(FileRouter.routeIsTopLevel)
174
-
175
- for (const page of topPages) {
176
- const path = FileRouter.routeToPathExpression(page)
177
- const title = Str.titlizeSlug(path)
178
- siteNavigationItems.push({ pathExp: path, title })
179
- }
180
-
181
- // Top directories become navigation items
182
- const topDirsPaths = pagesScanResult.routes
183
- .filter(FileRouter.routeIsSubLevel)
184
- // todo: kit, slice that understands non-empty
185
- // Arr.slice(route.path.segments, 1)
186
- .map(route => [route.logical.path[0]])
187
-
188
- for (const dir of topDirsPaths) {
189
- const pathExp = FileRouter.pathToExpression(dir)
190
- const title = Str.titlizeSlug(pathExp)
191
- // todo: this should never happen, if it does, swarn user
192
- // Only add if not already added as a top page
193
- if (!siteNavigationItems.some(item => item.pathExp === pathExp)) {
194
- siteNavigationItems.push({ pathExp: pathExp, title })
217
+ // Process first-level children as navigation items
218
+ for (const child of routeTree.children) {
219
+ if (child.value.type === 'directory') {
220
+ const pathExp = FileRouter.pathToExpression([child.value.name])
221
+ const title = Str.titlizeSlug(child.value.name)
222
+ siteNavigationItems.push({ pathExp: pathExp.startsWith('/') ? pathExp.slice(1) : pathExp, title })
223
+ } else if (child.value.type === 'file' && child.value.name !== 'index') {
224
+ const pathExp = FileRouter.pathToExpression([child.value.name])
225
+ const title = Str.titlizeSlug(child.value.name)
226
+ siteNavigationItems.push({ pathExp: pathExp.startsWith('/') ? pathExp.slice(1) : pathExp, title })
195
227
  }
196
228
  }
197
229
 
198
230
  // ━ Schema presence causes adding some navbar items
199
231
  if (schema) {
200
- siteNavigationItems.push({ pathExp: `/reference`, title: `Reference` })
232
+ siteNavigationItems.push({ pathExp: `reference`, title: `Reference` })
201
233
  if (schema.versions.length > 1) {
202
- siteNavigationItems.push({ pathExp: `/changelog`, title: `Changelog` })
234
+ siteNavigationItems.push({ pathExp: `changelog`, title: `Changelog` })
203
235
  }
204
236
  }
205
237
 
@@ -209,9 +241,16 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
209
241
 
210
242
  const sidebarIndex: SidebarIndex = {}
211
243
 
212
- for (const dirPath of topDirsPaths) {
213
- const childPages = pagesScanResult.routes.filter(page => FileRouter.routeIsSubOf(page, dirPath))
214
- sidebarIndex[FileRouter.pathToExpression(dirPath)] = buildSidebar(childPages, dirPath)
244
+ // Build sidebar for each top-level directory
245
+ for (const child of routeTree.children) {
246
+ if (child.value.type === 'directory') {
247
+ const pathExp = `/${child.value.name}`
248
+ // Create a subtree starting from this directory
249
+ const subtree = Tree.node(child.value, child.children)
250
+ const sidebar = FileRouter.Sidebar.buildFromTree(subtree, [])
251
+ _debug(`Built sidebar for ${pathExp}:`, sidebar)
252
+ sidebarIndex[pathExp] = sidebar
253
+ }
215
254
  }
216
255
 
217
256
  //
@@ -239,7 +278,7 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
239
278
 
240
279
  const projectDataCode = jsesc(superjson.stringify(projectData))
241
280
  const content = `
242
- import { superjson } from '#singletons/superjson.js'
281
+ import { superjson } from '#singletons/superjson'
243
282
 
244
283
  export const PROJECT_DATA = superjson.parse('${projectDataCode}')
245
284
  `
@@ -247,126 +286,7 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
247
286
  return content
248
287
  },
249
288
  },
250
- {
251
- identifier: viProjectPages,
252
- async loader() {
253
- const pagesScanResult = await scanPageRoutes()
254
-
255
- const $ = {
256
- pages: `pages`,
257
- }
258
-
259
- const s = Str.Builder()
260
- s`export const ${$.pages} = []`
261
-
262
- // todo: kit fs should accept parsed file paths
263
- for (const route of pagesScanResult.routes) {
264
- const filePathExp = Path.format(route.file.path.absolute)
265
- const pathExp = FileRouter.routeToPathExpression(route)
266
- const ident = Str.Case.camel(`page ` + Str.titlizeSlug(pathExp))
267
-
268
- s`
269
- import ${ident} from '${filePathExp}'
270
-
271
- ${$.pages}.push({
272
- path: '${pathExp}',
273
- Component: ${ident}
274
- })
275
- `
276
- }
277
-
278
- return s.render()
279
- },
280
- },
281
289
  ),
282
290
  },
283
291
  ]
284
292
  }
285
-
286
- /**
287
- * Helper function to build sidebar items recursively
288
- */
289
- const buildSidebar = (pages: FileRouter.Route[], basePath: FileRouter.Path): Sidebar => {
290
- const navs: SidebarNav[] = []
291
- const sections = Idx.create<SidebarSection, string>({ key: (item) => item.pathExp })
292
-
293
- // Items
294
- for (const page of pages) {
295
- const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath)
296
-
297
- if (FileRouter.routeIsRootLevel(pageRelative)) {
298
- continue
299
- }
300
-
301
- if (FileRouter.routeIsTopLevel(pageRelative)) {
302
- // Section (index)
303
- if (FileRouter.routeIsFromIndexFile(pageRelative)) {
304
- const sectionPath = page.logical.path
305
- const sectionPathExp = FileRouter.pathToExpression(sectionPath)
306
-
307
- let section: SidebarSection | undefined
308
- section = sections.getAt(sectionPathExp)
309
-
310
- if (!section) {
311
- const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(pageRelative.logical.path))
312
- section = {
313
- type: `SidebarSection`,
314
- title: sectionTitle,
315
- pathExp: sectionPathExp,
316
- isNavToo: false,
317
- navs: [],
318
- }
319
-
320
- sections.set(section)
321
- }
322
- section.isNavToo = true
323
- continue
324
- }
325
-
326
- // Nav
327
- navs.push(pageToSidebarNav(page, basePath))
328
- continue
329
- }
330
-
331
- // Section (sub-page)
332
- if (FileRouter.routeIsSubLevel(pageRelative)) {
333
- const sectionRelativePath = [pageRelative.logical.path[0]]
334
- const sectionPath = [...basePath, ...sectionRelativePath]
335
- const sectionPathExp = FileRouter.pathToExpression(sectionPath)
336
-
337
- let section: SidebarSection | undefined
338
- section = sections.getAt(sectionPathExp)
339
-
340
- if (!section) {
341
- const sectionTitle = Str.titlizeSlug(FileRouter.pathToExpression(sectionRelativePath))
342
- section = {
343
- type: `SidebarSection`,
344
- title: sectionTitle,
345
- pathExp: sectionPathExp,
346
- isNavToo: false,
347
- navs: [],
348
- }
349
- sections.set(section)
350
- }
351
- section.navs.push(pageToSidebarNav(page, sectionPath))
352
- }
353
- }
354
-
355
- const items = [...navs, ...sections.toArray()]
356
-
357
- return {
358
- items,
359
- }
360
- }
361
-
362
- const pageToSidebarNav = (page: FileRouter.Route, basePath: FileRouter.Path): SidebarNav => {
363
- const pagePathExp = FileRouter.routeToPathExpression(page)
364
- const pageRelative = FileRouter.makeRelativeUnsafe(page, basePath)
365
- const pageRelativePathExp = FileRouter.routeToPathExpression(pageRelative)
366
-
367
- return {
368
- type: `SidebarItem`,
369
- pathExp: pagePathExp,
370
- title: Str.titlizeSlug(pageRelativePathExp),
371
- }
372
- }
@@ -1,12 +1,12 @@
1
- import type { Config } from '#api/config/index.js'
2
- import type { Vite } from '#dep/vite/index.js'
1
+ import type { Config } from '#api/config/index'
2
+ import type { Vite } from '#dep/vite/index'
3
3
  import ViteReact from '@vitejs/plugin-react-oxc'
4
4
  // import { Arr, Path } from '@wollybeard/kit'
5
5
  // import Inspect from 'vite-plugin-inspect'
6
6
  // import Restart from 'vite-plugin-restart'
7
- import { Build } from './build.js'
8
- import { Core } from './core.js'
9
- import { Serve } from './serve.js'
7
+ import { Build } from './build.ts'
8
+ import { Core } from './core.ts'
9
+ import { Serve } from './serve.ts'
10
10
 
11
11
  export const Main = (
12
12
  config: Config.Config,