polen 0.9.1-next.1 → 0.10.0-next.10

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 (481) hide show
  1. package/README.md +49 -364
  2. package/build/api/api.d.ts +1 -0
  3. package/build/api/api.d.ts.map +1 -1
  4. package/build/api/api.js +1 -0
  5. package/build/api/api.js.map +1 -1
  6. package/build/api/config/configurator.d.ts +9 -1
  7. package/build/api/config/configurator.d.ts.map +1 -1
  8. package/build/api/config/configurator.js +18 -6
  9. package/build/api/config/configurator.js.map +1 -1
  10. package/build/api/config/load.js +5 -5
  11. package/build/api/config/load.js.map +1 -1
  12. package/build/api/config-resolver/resolve.js +2 -2
  13. package/build/api/config-resolver/resolve.js.map +1 -1
  14. package/build/api/content/$$.d.ts +7 -0
  15. package/build/api/content/$$.d.ts.map +1 -0
  16. package/build/api/content/$$.js +7 -0
  17. package/build/api/content/$$.js.map +1 -0
  18. package/build/api/content/$.d.ts +2 -0
  19. package/build/api/content/$.d.ts.map +1 -0
  20. package/build/api/content/$.js +2 -0
  21. package/build/api/content/$.js.map +1 -0
  22. package/build/api/content/metadata.d.ts +10 -0
  23. package/build/api/content/metadata.d.ts.map +1 -0
  24. package/build/api/content/metadata.js +9 -0
  25. package/build/api/content/metadata.js.map +1 -0
  26. package/build/api/content/navbar.d.ts +10 -0
  27. package/build/api/content/navbar.d.ts.map +1 -0
  28. package/build/api/content/navbar.js +45 -0
  29. package/build/api/content/navbar.js.map +1 -0
  30. package/build/api/content/page.d.ts +11 -0
  31. package/build/api/content/page.d.ts.map +1 -0
  32. package/build/api/content/page.js +2 -0
  33. package/build/api/content/page.js.map +1 -0
  34. package/build/api/content/scan.d.ts +19 -0
  35. package/build/api/content/scan.d.ts.map +1 -0
  36. package/build/api/content/scan.js +90 -0
  37. package/build/api/content/scan.js.map +1 -0
  38. package/build/api/content/sidebar.d.ts +104 -0
  39. package/build/api/content/sidebar.d.ts.map +1 -0
  40. package/build/api/content/sidebar.js +166 -0
  41. package/build/api/content/sidebar.js.map +1 -0
  42. package/build/api/content/utils.d.ts +5 -0
  43. package/build/api/content/utils.d.ts.map +1 -0
  44. package/build/api/content/utils.js +8 -0
  45. package/build/api/content/utils.js.map +1 -0
  46. package/build/api/schema/data-sources/schema-directory/schema-directory.d.ts.map +1 -1
  47. package/build/api/schema/data-sources/schema-directory/schema-directory.js +3 -2
  48. package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
  49. package/build/api/static/index.d.ts +2 -0
  50. package/build/api/static/index.d.ts.map +1 -0
  51. package/build/api/static/index.js +2 -0
  52. package/build/api/static/index.js.map +1 -0
  53. package/build/api/static/manifest.d.ts +18 -0
  54. package/build/api/static/manifest.d.ts.map +1 -0
  55. package/build/api/static/manifest.js +13 -0
  56. package/build/api/static/manifest.js.map +1 -0
  57. package/build/api/static/rebase.d.ts +14 -0
  58. package/build/api/static/rebase.d.ts.map +1 -0
  59. package/build/api/static/rebase.js +110 -0
  60. package/build/api/static/rebase.js.map +1 -0
  61. package/build/api/static/static.d.ts +3 -0
  62. package/build/api/static/static.d.ts.map +1 -0
  63. package/build/api/static/static.js +3 -0
  64. package/build/api/static/static.js.map +1 -0
  65. package/build/api/vite/plugins/branding/index.d.ts +4 -0
  66. package/build/api/vite/plugins/branding/index.d.ts.map +1 -0
  67. package/build/api/vite/plugins/branding/index.js +80 -0
  68. package/build/api/vite/plugins/branding/index.js.map +1 -0
  69. package/build/api/vite/plugins/build.d.ts.map +1 -1
  70. package/build/api/vite/plugins/build.js +22 -1
  71. package/build/api/vite/plugins/build.js.map +1 -1
  72. package/build/api/vite/plugins/core.d.ts +2 -2
  73. package/build/api/vite/plugins/core.d.ts.map +1 -1
  74. package/build/api/vite/plugins/core.js +4 -5
  75. package/build/api/vite/plugins/core.js.map +1 -1
  76. package/build/api/vite/plugins/main.d.ts.map +1 -1
  77. package/build/api/vite/plugins/main.js +2 -1
  78. package/build/api/vite/plugins/main.js.map +1 -1
  79. package/build/api/vite/plugins/pages.d.ts +8 -14
  80. package/build/api/vite/plugins/pages.d.ts.map +1 -1
  81. package/build/api/vite/plugins/pages.js +110 -183
  82. package/build/api/vite/plugins/pages.js.map +1 -1
  83. package/build/api/vite/plugins/serve.js +5 -5
  84. package/build/api/vite/plugins/serve.js.map +1 -1
  85. package/build/cli/_/self-contained-mode.js +5 -5
  86. package/build/cli/_/self-contained-mode.js.map +1 -1
  87. package/build/cli/commands/static/$default.d.ts +3 -0
  88. package/build/cli/commands/static/$default.d.ts.map +1 -0
  89. package/build/cli/commands/static/$default.js +38 -0
  90. package/build/cli/commands/static/$default.js.map +1 -0
  91. package/build/cli/commands/static/rebase.d.ts +2 -0
  92. package/build/cli/commands/static/rebase.d.ts.map +1 -0
  93. package/build/cli/commands/static/rebase.js +26 -0
  94. package/build/cli/commands/static/rebase.js.map +1 -0
  95. package/build/cli/commands/static.d.ts +3 -0
  96. package/build/cli/commands/static.d.ts.map +1 -0
  97. package/build/cli/commands/static.js +5 -0
  98. package/build/cli/commands/static.js.map +1 -0
  99. package/build/exports/components.d.ts +2 -0
  100. package/build/exports/components.d.ts.map +1 -0
  101. package/build/exports/components.js +2 -0
  102. package/build/exports/components.js.map +1 -0
  103. package/build/lib/demos/builder.d.ts +83 -0
  104. package/build/lib/demos/builder.d.ts.map +1 -0
  105. package/build/lib/demos/builder.js +237 -0
  106. package/build/lib/demos/builder.js.map +1 -0
  107. package/build/lib/demos/config-schema.d.ts +243 -0
  108. package/build/lib/demos/config-schema.d.ts.map +1 -0
  109. package/build/lib/demos/config-schema.js +52 -0
  110. package/build/lib/demos/config-schema.js.map +1 -0
  111. package/build/lib/demos/config.d.ts +40 -0
  112. package/build/lib/demos/config.d.ts.map +1 -0
  113. package/build/lib/demos/config.js +180 -0
  114. package/build/lib/demos/config.js.map +1 -0
  115. package/build/lib/demos/index.d.ts +9 -0
  116. package/build/lib/demos/index.d.ts.map +1 -0
  117. package/build/lib/demos/index.js +8 -0
  118. package/build/lib/demos/index.js.map +1 -0
  119. package/build/lib/demos/ui/components.d.ts +33 -0
  120. package/build/lib/demos/ui/components.d.ts.map +1 -0
  121. package/build/lib/demos/ui/components.js +699 -0
  122. package/build/lib/demos/ui/components.js.map +1 -0
  123. package/build/lib/demos/ui/data-collector.d.ts +88 -0
  124. package/build/lib/demos/ui/data-collector.d.ts.map +1 -0
  125. package/build/lib/demos/ui/data-collector.js +174 -0
  126. package/build/lib/demos/ui/data-collector.js.map +1 -0
  127. package/build/lib/demos/ui/landing-page-cli.d.ts +3 -0
  128. package/build/lib/demos/ui/landing-page-cli.d.ts.map +1 -0
  129. package/build/lib/demos/ui/landing-page-cli.js +21 -0
  130. package/build/lib/demos/ui/landing-page-cli.js.map +1 -0
  131. package/build/lib/demos/ui/landing-page.d.ts +32 -0
  132. package/build/lib/demos/ui/landing-page.d.ts.map +1 -0
  133. package/build/lib/demos/ui/landing-page.js +83 -0
  134. package/build/lib/demos/ui/landing-page.js.map +1 -0
  135. package/build/lib/demos/ui/page-renderer.d.ts +26 -0
  136. package/build/lib/demos/ui/page-renderer.d.ts.map +1 -0
  137. package/build/lib/demos/ui/page-renderer.js +104 -0
  138. package/build/lib/demos/ui/page-renderer.js.map +1 -0
  139. package/build/lib/demos/utils.d.ts +14 -0
  140. package/build/lib/demos/utils.d.ts.map +1 -0
  141. package/build/lib/demos/utils.js +37 -0
  142. package/build/lib/demos/utils.js.map +1 -0
  143. package/build/lib/deployment/$$.d.ts +3 -0
  144. package/build/lib/deployment/$$.d.ts.map +1 -0
  145. package/build/lib/deployment/$$.js +3 -0
  146. package/build/lib/deployment/$$.js.map +1 -0
  147. package/build/lib/deployment/$.d.ts +2 -0
  148. package/build/lib/deployment/$.d.ts.map +1 -0
  149. package/build/lib/deployment/$.js +2 -0
  150. package/build/lib/deployment/$.js.map +1 -0
  151. package/build/lib/deployment/metadata.d.ts +32 -0
  152. package/build/lib/deployment/metadata.d.ts.map +1 -0
  153. package/build/lib/deployment/metadata.js +37 -0
  154. package/build/lib/deployment/metadata.js.map +1 -0
  155. package/build/lib/deployment/path-manager.d.ts +41 -0
  156. package/build/lib/deployment/path-manager.d.ts.map +1 -0
  157. package/build/lib/deployment/path-manager.js +157 -0
  158. package/build/lib/deployment/path-manager.js.map +1 -0
  159. package/build/lib/file-router/file-router.d.ts +0 -2
  160. package/build/lib/file-router/file-router.d.ts.map +1 -1
  161. package/build/lib/file-router/file-router.js +0 -2
  162. package/build/lib/file-router/file-router.js.map +1 -1
  163. package/build/lib/file-router/route.d.ts +2 -0
  164. package/build/lib/file-router/route.d.ts.map +1 -1
  165. package/build/lib/file-router/route.js.map +1 -1
  166. package/build/lib/file-router/scan.d.ts.map +1 -1
  167. package/build/lib/file-router/scan.js +22 -13
  168. package/build/lib/file-router/scan.js.map +1 -1
  169. package/build/lib/github-actions/git-controller.d.ts +50 -0
  170. package/build/lib/github-actions/git-controller.d.ts.map +1 -0
  171. package/build/lib/github-actions/git-controller.js +90 -0
  172. package/build/lib/github-actions/git-controller.js.map +1 -0
  173. package/build/lib/github-actions/github-actions.d.ts +7 -0
  174. package/build/lib/github-actions/github-actions.d.ts.map +1 -0
  175. package/build/lib/github-actions/github-actions.js +7 -0
  176. package/build/lib/github-actions/github-actions.js.map +1 -0
  177. package/build/lib/github-actions/index.d.ts +2 -0
  178. package/build/lib/github-actions/index.d.ts.map +1 -0
  179. package/build/lib/github-actions/index.js +2 -0
  180. package/build/lib/github-actions/index.js.map +1 -0
  181. package/build/lib/github-actions/lib/get-pr-deployments.d.ts +12 -0
  182. package/build/lib/github-actions/lib/get-pr-deployments.d.ts.map +1 -0
  183. package/build/lib/github-actions/lib/get-pr-deployments.js +51 -0
  184. package/build/lib/github-actions/lib/get-pr-deployments.js.map +1 -0
  185. package/build/lib/github-actions/pr-controller.d.ts +39 -0
  186. package/build/lib/github-actions/pr-controller.d.ts.map +1 -0
  187. package/build/lib/github-actions/pr-controller.js +122 -0
  188. package/build/lib/github-actions/pr-controller.js.map +1 -0
  189. package/build/lib/github-actions/run-step-cli.d.ts +9 -0
  190. package/build/lib/github-actions/run-step-cli.d.ts.map +1 -0
  191. package/build/lib/github-actions/run-step-cli.js +71 -0
  192. package/build/lib/github-actions/run-step-cli.js.map +1 -0
  193. package/build/lib/github-actions/runner.d.ts +17 -0
  194. package/build/lib/github-actions/runner.d.ts.map +1 -0
  195. package/build/lib/github-actions/runner.js +195 -0
  196. package/build/lib/github-actions/runner.js.map +1 -0
  197. package/build/lib/github-actions/schemas/context.d.ts +933 -0
  198. package/build/lib/github-actions/schemas/context.d.ts.map +1 -0
  199. package/build/lib/github-actions/schemas/context.js +407 -0
  200. package/build/lib/github-actions/schemas/context.js.map +1 -0
  201. package/build/lib/github-actions/schemas/index.d.ts +5 -0
  202. package/build/lib/github-actions/schemas/index.d.ts.map +1 -0
  203. package/build/lib/github-actions/schemas/index.js +5 -0
  204. package/build/lib/github-actions/schemas/index.js.map +1 -0
  205. package/build/lib/github-actions/search-module.d.ts +38 -0
  206. package/build/lib/github-actions/search-module.d.ts.map +1 -0
  207. package/build/lib/github-actions/search-module.js +40 -0
  208. package/build/lib/github-actions/search-module.js.map +1 -0
  209. package/build/lib/github-actions/step.d.ts +163 -0
  210. package/build/lib/github-actions/step.d.ts.map +1 -0
  211. package/build/lib/github-actions/step.js +121 -0
  212. package/build/lib/github-actions/step.js.map +1 -0
  213. package/build/lib/helpers.d.ts.map +1 -1
  214. package/build/lib/helpers.js +5 -3
  215. package/build/lib/helpers.js.map +1 -1
  216. package/build/lib/kit-temp.d.ts +54 -0
  217. package/build/lib/kit-temp.d.ts.map +1 -1
  218. package/build/lib/kit-temp.js +82 -14
  219. package/build/lib/kit-temp.js.map +1 -1
  220. package/build/lib/kit-temp.test-d.d.ts +2 -0
  221. package/build/lib/kit-temp.test-d.d.ts.map +1 -0
  222. package/build/lib/kit-temp.test-d.js +75 -0
  223. package/build/lib/kit-temp.test-d.js.map +1 -0
  224. package/build/lib/mask/$$.d.ts +3 -0
  225. package/build/lib/mask/$$.d.ts.map +1 -0
  226. package/build/lib/mask/$$.js +3 -0
  227. package/build/lib/mask/$$.js.map +1 -0
  228. package/build/lib/mask/$.d.ts +2 -0
  229. package/build/lib/mask/$.d.ts.map +1 -0
  230. package/build/lib/mask/$.js +2 -0
  231. package/build/lib/mask/$.js.map +1 -0
  232. package/build/lib/mask/apply.d.ts +86 -0
  233. package/build/lib/mask/apply.d.ts.map +1 -0
  234. package/build/lib/mask/apply.js +86 -0
  235. package/build/lib/mask/apply.js.map +1 -0
  236. package/build/lib/mask/mask.d.ts +124 -0
  237. package/build/lib/mask/mask.d.ts.map +1 -0
  238. package/build/lib/mask/mask.js +137 -0
  239. package/build/lib/mask/mask.js.map +1 -0
  240. package/build/lib/mask/mask.test-d.d.ts +2 -0
  241. package/build/lib/mask/mask.test-d.d.ts.map +1 -0
  242. package/build/lib/mask/mask.test-d.js +102 -0
  243. package/build/lib/mask/mask.test-d.js.map +1 -0
  244. package/build/lib/mutation-type.d.ts +18 -0
  245. package/build/lib/mutation-type.d.ts.map +1 -0
  246. package/build/lib/mutation-type.js +16 -0
  247. package/build/lib/mutation-type.js.map +1 -0
  248. package/build/lib/task/$$.d.ts +3 -0
  249. package/build/lib/task/$$.d.ts.map +1 -0
  250. package/build/lib/task/$$.js +3 -0
  251. package/build/lib/task/$$.js.map +1 -0
  252. package/build/lib/task/$.d.ts +2 -0
  253. package/build/lib/task/$.d.ts.map +1 -0
  254. package/build/lib/task/$.js +2 -0
  255. package/build/lib/task/$.js.map +1 -0
  256. package/build/lib/task/report.d.ts +28 -0
  257. package/build/lib/task/report.d.ts.map +1 -0
  258. package/build/lib/task/report.js +33 -0
  259. package/build/lib/task/report.js.map +1 -0
  260. package/build/lib/task/task.d.ts +44 -0
  261. package/build/lib/task/task.d.ts.map +1 -0
  262. package/build/lib/task/task.js +63 -0
  263. package/build/lib/task/task.js.map +1 -0
  264. package/build/lib/version-history/index.d.ts +3 -0
  265. package/build/lib/version-history/index.d.ts.map +1 -0
  266. package/build/lib/version-history/index.js +2 -0
  267. package/build/lib/version-history/index.js.map +1 -0
  268. package/build/lib/version-history/types.d.ts +64 -0
  269. package/build/lib/version-history/types.d.ts.map +1 -0
  270. package/build/lib/version-history/types.js +5 -0
  271. package/build/lib/version-history/types.js.map +1 -0
  272. package/build/lib/version-history/version-history.d.ts +85 -0
  273. package/build/lib/version-history/version-history.d.ts.map +1 -0
  274. package/build/lib/version-history/version-history.js +248 -0
  275. package/build/lib/version-history/version-history.js.map +1 -0
  276. package/build/lib/vite-virtual/debug.d.ts +1 -1
  277. package/build/lib/vite-virtual/debug.d.ts.map +1 -1
  278. package/build/lib/vite-virtual/debug.js +1 -1
  279. package/build/lib/vite-virtual/debug.js.map +1 -1
  280. package/build/project-data.d.ts +0 -1
  281. package/build/project-data.d.ts.map +1 -1
  282. package/build/sandbox.d.ts +2 -0
  283. package/build/sandbox.d.ts.map +1 -0
  284. package/build/sandbox.js +18 -0
  285. package/build/sandbox.js.map +1 -0
  286. package/build/singletons/debug.d.ts +2 -2
  287. package/build/singletons/debug.d.ts.map +1 -1
  288. package/build/singletons/debug.js +2 -2
  289. package/build/singletons/debug.js.map +1 -1
  290. package/build/template/components/HamburgerMenu.d.ts +9 -0
  291. package/build/template/components/HamburgerMenu.d.ts.map +1 -0
  292. package/build/template/components/HamburgerMenu.jsx +53 -0
  293. package/build/template/components/HamburgerMenu.jsx.map +1 -0
  294. package/build/template/components/Link.jsx +1 -1
  295. package/build/template/components/Logo.d.ts +9 -0
  296. package/build/template/components/Logo.d.ts.map +1 -0
  297. package/build/template/components/Logo.jsx +29 -0
  298. package/build/template/components/Logo.jsx.map +1 -0
  299. package/build/template/components/NotFound.d.ts +2 -0
  300. package/build/template/components/NotFound.d.ts.map +1 -0
  301. package/build/template/components/NotFound.jsx +26 -0
  302. package/build/template/components/NotFound.jsx.map +1 -0
  303. package/build/template/components/ThemeToggle.d.ts +3 -0
  304. package/build/template/components/ThemeToggle.d.ts.map +1 -0
  305. package/build/template/components/ThemeToggle.jsx +10 -0
  306. package/build/template/components/ThemeToggle.jsx.map +1 -0
  307. package/build/template/components/content/$$.d.ts +2 -0
  308. package/build/template/components/content/$$.d.ts.map +1 -0
  309. package/build/template/components/content/$$.js +2 -0
  310. package/build/template/components/content/$$.js.map +1 -0
  311. package/build/template/components/sidebar/Sidebar.d.ts +2 -2
  312. package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
  313. package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
  314. package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
  315. package/build/template/components/sidebar/SidebarItem.jsx +1 -1
  316. package/build/template/components/sidebar/SidebarItem.jsx.map +1 -1
  317. package/build/template/contexts/ThemeContext.d.ts +12 -0
  318. package/build/template/contexts/ThemeContext.d.ts.map +1 -0
  319. package/build/template/contexts/ThemeContext.jsx +41 -0
  320. package/build/template/contexts/ThemeContext.jsx.map +1 -0
  321. package/build/template/routes/root.d.ts.map +1 -1
  322. package/build/template/routes/root.jsx +66 -53
  323. package/build/template/routes/root.jsx.map +1 -1
  324. package/build/template/server/app.d.ts.map +1 -1
  325. package/build/template/server/app.js +2 -21
  326. package/build/template/server/app.js.map +1 -1
  327. package/package.json +42 -28
  328. package/src/api/api.ts +1 -0
  329. package/src/api/config/configurator.ts +28 -6
  330. package/src/api/config/load.ts +5 -5
  331. package/src/api/config-resolver/resolve.ts +2 -2
  332. package/src/api/content/$$.ts +6 -0
  333. package/src/api/content/$.test.ts +72 -0
  334. package/src/api/content/$.ts +1 -0
  335. package/src/api/content/metadata.ts +11 -0
  336. package/src/api/content/navbar.test.ts +55 -0
  337. package/src/api/content/navbar.ts +61 -0
  338. package/src/api/content/page.ts +12 -0
  339. package/src/api/content/scan.ts +117 -0
  340. package/src/api/content/sidebar.test.ts +297 -0
  341. package/src/api/content/sidebar.ts +283 -0
  342. package/src/api/content/utils.ts +7 -0
  343. package/src/api/schema/data-sources/schema-directory/schema-directory.ts +3 -2
  344. package/src/api/singletons/markdown/markdown.test.ts +1 -1
  345. package/src/api/static/index.ts +1 -0
  346. package/src/api/static/manifest.test.ts +106 -0
  347. package/src/api/static/manifest.ts +16 -0
  348. package/src/api/static/rebase.test.ts +229 -0
  349. package/src/api/static/rebase.ts +140 -0
  350. package/src/api/static/static.ts +2 -0
  351. package/src/api/utils/asset-url/asset-url.test.ts +4 -4
  352. package/src/api/vite/plugins/branding/index.ts +108 -0
  353. package/src/api/vite/plugins/build.ts +25 -1
  354. package/src/api/vite/plugins/core.ts +6 -7
  355. package/src/api/vite/plugins/main.ts +2 -0
  356. package/src/api/vite/plugins/pages.ts +131 -207
  357. package/src/api/vite/plugins/serve.ts +5 -5
  358. package/src/cli/_/self-contained-mode.ts +5 -5
  359. package/src/cli/commands/static/$default.ts +43 -0
  360. package/src/cli/commands/static/rebase.ts +37 -0
  361. package/src/cli/commands/static.ts +6 -0
  362. package/src/exports/components.ts +1 -0
  363. package/src/lib/demos/builder.ts +298 -0
  364. package/src/lib/demos/config-schema.ts +56 -0
  365. package/src/lib/demos/config.test.ts +193 -0
  366. package/src/lib/demos/config.ts +205 -0
  367. package/src/lib/demos/index.ts +9 -0
  368. package/src/lib/demos/ui/components.ts +739 -0
  369. package/src/lib/demos/ui/data-collector.ts +246 -0
  370. package/src/lib/demos/ui/landing-page-cli.ts +23 -0
  371. package/src/lib/demos/ui/landing-page.ts +126 -0
  372. package/src/lib/demos/ui/page-renderer.ts +124 -0
  373. package/src/lib/demos/utils.ts +43 -0
  374. package/src/lib/deployment/$$.ts +2 -0
  375. package/src/lib/deployment/$.test.ts +53 -0
  376. package/src/lib/deployment/$.ts +1 -0
  377. package/src/lib/deployment/metadata.ts +40 -0
  378. package/src/lib/deployment/path-manager.ts +186 -0
  379. package/src/lib/file-router/file-router.ts +0 -2
  380. package/src/lib/file-router/linter.test.ts +2 -0
  381. package/src/lib/file-router/route.ts +2 -0
  382. package/src/lib/file-router/scan.ts +26 -14
  383. package/src/lib/github-actions/git-controller.ts +151 -0
  384. package/src/lib/github-actions/github-actions.ts +6 -0
  385. package/src/lib/github-actions/index.ts +1 -0
  386. package/src/lib/github-actions/lib/get-pr-deployments.ts +76 -0
  387. package/src/lib/github-actions/pr-controller.test.ts +172 -0
  388. package/src/lib/github-actions/pr-controller.ts +183 -0
  389. package/src/lib/github-actions/run-step-cli.ts +84 -0
  390. package/src/lib/github-actions/runner.test.ts +192 -0
  391. package/src/lib/github-actions/runner.ts +226 -0
  392. package/src/lib/github-actions/schemas/context.ts +424 -0
  393. package/src/lib/github-actions/schemas/index.ts +5 -0
  394. package/src/lib/github-actions/search-module.test.ts +110 -0
  395. package/src/lib/github-actions/search-module.ts +76 -0
  396. package/src/lib/github-actions/step.test.ts +149 -0
  397. package/src/lib/github-actions/step.ts +232 -0
  398. package/src/lib/helpers.ts +4 -3
  399. package/src/lib/kit-temp.test-d.ts +115 -0
  400. package/src/lib/kit-temp.test.ts +127 -0
  401. package/src/lib/kit-temp.ts +128 -14
  402. package/src/lib/mask/$$.ts +2 -0
  403. package/src/lib/mask/$.test.ts +248 -0
  404. package/src/lib/mask/$.ts +1 -0
  405. package/src/lib/mask/apply.ts +134 -0
  406. package/src/lib/mask/mask.test-d.ts +144 -0
  407. package/src/lib/mask/mask.ts +244 -0
  408. package/src/lib/mutation-type.ts +20 -0
  409. package/src/lib/shiki/shiki.test.ts +1 -1
  410. package/src/lib/task/$$.ts +2 -0
  411. package/src/lib/task/$.test.ts +209 -0
  412. package/src/lib/task/$.ts +1 -0
  413. package/src/lib/task/report.ts +72 -0
  414. package/src/lib/task/task.ts +112 -0
  415. package/src/lib/version-history/index.test.ts +196 -0
  416. package/src/lib/version-history/index.ts +4 -0
  417. package/src/lib/version-history/types.ts +68 -0
  418. package/src/lib/version-history/version-history.ts +293 -0
  419. package/src/lib/vite-virtual/debug.ts +1 -1
  420. package/src/project-data.ts +0 -1
  421. package/src/sandbox.ts +20 -0
  422. package/src/singletons/debug.ts +2 -2
  423. package/src/template/components/HamburgerMenu.tsx +96 -0
  424. package/src/template/components/Link.tsx +1 -1
  425. package/src/template/components/Logo.tsx +46 -0
  426. package/src/template/components/NotFound.tsx +28 -0
  427. package/src/template/components/ThemeToggle.tsx +21 -0
  428. package/src/template/components/content/$$.ts +1 -0
  429. package/src/template/components/sidebar/Sidebar.tsx +2 -2
  430. package/src/template/components/sidebar/SidebarItem.tsx +8 -8
  431. package/src/template/contexts/ThemeContext.tsx +60 -0
  432. package/src/template/routes/root.tsx +85 -74
  433. package/src/template/server/app.ts +2 -27
  434. package/build/lib/debug/debug.d.ts +0 -13
  435. package/build/lib/debug/debug.d.ts.map +0 -1
  436. package/build/lib/debug/debug.js +0 -86
  437. package/build/lib/debug/debug.js.map +0 -1
  438. package/build/lib/debug/environment-variable.d.ts +0 -6
  439. package/build/lib/debug/environment-variable.d.ts.map +0 -1
  440. package/build/lib/debug/environment-variable.js +0 -48
  441. package/build/lib/debug/environment-variable.js.map +0 -1
  442. package/build/lib/debug/index.d.ts +0 -2
  443. package/build/lib/debug/index.d.ts.map +0 -1
  444. package/build/lib/debug/index.js +0 -2
  445. package/build/lib/debug/index.js.map +0 -1
  446. package/build/lib/file-router/scan-tree.d.ts +0 -20
  447. package/build/lib/file-router/scan-tree.d.ts.map +0 -1
  448. package/build/lib/file-router/scan-tree.js +0 -158
  449. package/build/lib/file-router/scan-tree.js.map +0 -1
  450. package/build/lib/file-router/sidebar/index.d.ts +0 -3
  451. package/build/lib/file-router/sidebar/index.d.ts.map +0 -1
  452. package/build/lib/file-router/sidebar/index.js +0 -4
  453. package/build/lib/file-router/sidebar/index.js.map +0 -1
  454. package/build/lib/file-router/sidebar/sidebar-tree.d.ts +0 -9
  455. package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +0 -1
  456. package/build/lib/file-router/sidebar/sidebar-tree.js +0 -85
  457. package/build/lib/file-router/sidebar/sidebar-tree.js.map +0 -1
  458. package/build/lib/file-router/sidebar/types.d.ts +0 -17
  459. package/build/lib/file-router/sidebar/types.d.ts.map +0 -1
  460. package/build/lib/file-router/sidebar/types.js +0 -2
  461. package/build/lib/file-router/sidebar/types.js.map +0 -1
  462. package/build/lib/tree/index.d.ts +0 -3
  463. package/build/lib/tree/index.d.ts.map +0 -1
  464. package/build/lib/tree/index.js +0 -2
  465. package/build/lib/tree/index.js.map +0 -1
  466. package/build/lib/tree/tree.d.ts +0 -62
  467. package/build/lib/tree/tree.d.ts.map +0 -1
  468. package/build/lib/tree/tree.js +0 -134
  469. package/build/lib/tree/tree.js.map +0 -1
  470. package/src/lib/debug/debug.ts +0 -120
  471. package/src/lib/debug/environment-variable.ts +0 -56
  472. package/src/lib/debug/index.ts +0 -1
  473. package/src/lib/file-router/scan-tree.test.ts +0 -189
  474. package/src/lib/file-router/scan-tree.ts +0 -205
  475. package/src/lib/file-router/sidebar/index.ts +0 -3
  476. package/src/lib/file-router/sidebar/sidebar-tree.test.ts +0 -123
  477. package/src/lib/file-router/sidebar/sidebar-tree.ts +0 -110
  478. package/src/lib/file-router/sidebar/types.ts +0 -19
  479. package/src/lib/tree/index.ts +0 -2
  480. package/src/lib/tree/tree.test.ts +0 -117
  481. package/src/lib/tree/tree.ts +0 -183
@@ -0,0 +1,140 @@
1
+ import { TinyGlobby } from '#dep/tiny-globby/index'
2
+ import { Fs, Path } from '@wollybeard/kit'
3
+ import { Err } from '@wollybeard/kit'
4
+ import { buildManifest, type PolenBuildManifest } from './manifest.ts'
5
+
6
+ export type RebasePlan = RebaseOverwritePlan | RebaseCopyPlan
7
+
8
+ export interface RebaseOverwritePlan {
9
+ changeMode: 'mutate'
10
+ newBasePath: string
11
+ sourcePath: string
12
+ }
13
+
14
+ export interface RebaseCopyPlan {
15
+ changeMode: 'copy'
16
+ newBasePath: string
17
+ sourcePath: string
18
+ targetPath: string
19
+ }
20
+
21
+ export const rebase = async (plan: RebasePlan): Promise<void> => {
22
+ // 1. Validate source is a Polen build
23
+ const manifestResult = await buildManifest.read(plan.sourcePath)
24
+ if (Err.is(manifestResult)) {
25
+ throw new Error(`Polen build manifest not found at: ${Path.join(plan.sourcePath, '.polen', 'build.json')}`)
26
+ }
27
+ const manifest = manifestResult
28
+
29
+ // 2. Validate newBasePath is valid URL path
30
+ if (!isValidUrlPath(plan.newBasePath)) {
31
+ throw new Error(`Invalid base path: ${plan.newBasePath}`)
32
+ }
33
+
34
+ // 3. Handle copy vs mutate
35
+ let workingPath: string
36
+ if (plan.changeMode === 'copy') {
37
+ if (await Fs.exists(plan.targetPath)) {
38
+ const isEmpty = await Fs.isEmptyDir(plan.targetPath)
39
+ if (!isEmpty) {
40
+ throw new Error(`Target path already exists and is not empty: ${plan.targetPath}`)
41
+ }
42
+ }
43
+ await Fs.copyDir({ from: plan.sourcePath, to: plan.targetPath })
44
+ workingPath = plan.targetPath
45
+ } else {
46
+ workingPath = plan.sourcePath
47
+ }
48
+
49
+ // 4. Update HTML files with new base path
50
+ await updateHtmlFiles(workingPath, manifest.basePath, plan.newBasePath)
51
+
52
+ // 5. Update manifest
53
+ await updateManifest(workingPath, { basePath: plan.newBasePath })
54
+ }
55
+
56
+ //
57
+ //
58
+ //
59
+ //
60
+ // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • Local Helpers
61
+ //
62
+ //
63
+
64
+ // TODO: this is very generic, factor out to kit-temp
65
+ const isValidUrlPath = (path: string): boolean => {
66
+ // URL path should start with / and not contain invalid characters
67
+ if (!path.startsWith('/')) return false
68
+ if (!path.endsWith('/')) return false
69
+
70
+ // Basic validation - no spaces, proper URL characters
71
+ const urlPathRegex = /^\/[a-zA-Z0-9\-._~:/?#[\]@!$&'()*+,;=%]*\/$/
72
+ return urlPathRegex.test(path)
73
+ }
74
+
75
+ const updateHtmlFiles = async (buildPath: string, oldBasePath: string, newBasePath: string): Promise<void> => {
76
+ // Find all HTML files recursively
77
+ const htmlFiles = await findHtmlFiles(buildPath)
78
+
79
+ for (const htmlFile of htmlFiles) {
80
+ await updateHtmlFile(htmlFile, oldBasePath, newBasePath)
81
+ }
82
+ }
83
+
84
+ const findHtmlFiles = async (dir: string): Promise<string[]> => {
85
+ return await TinyGlobby.glob('**/*.html', {
86
+ absolute: true,
87
+ cwd: dir,
88
+ onlyFiles: true,
89
+ })
90
+ }
91
+
92
+ const updateHtmlFile = async (filePath: string, oldBasePath: string, newBasePath: string): Promise<void> => {
93
+ const content = await Fs.read(filePath)
94
+
95
+ if (content === null) {
96
+ throw new Error(`Could not read HTML file: ${filePath}`)
97
+ }
98
+
99
+ // Simple regex-based approach to update base tag
100
+ // Look for existing base tag first
101
+ const baseTagRegex = /<base\s+href\s*=\s*["']([^"']*)["'][^>]*>/i
102
+
103
+ let updatedContent: string
104
+
105
+ if (baseTagRegex.test(content)) {
106
+ // Update existing base tag
107
+ updatedContent = content.replace(baseTagRegex, `<base href="${newBasePath}">`)
108
+ } else {
109
+ // Insert new base tag in head
110
+ const headRegex = /<head[^>]*>/i
111
+ const headMatch = content.match(headRegex)
112
+
113
+ if (headMatch) {
114
+ const insertPosition = headMatch.index! + headMatch[0].length
115
+ updatedContent = content.slice(0, insertPosition)
116
+ + `\n <base href="${newBasePath}">`
117
+ + content.slice(insertPosition)
118
+ } else {
119
+ throw new Error(`Could not find <head> tag in HTML file: ${filePath}`)
120
+ }
121
+ }
122
+
123
+ await Fs.write({ path: filePath, content: updatedContent })
124
+ }
125
+
126
+ const updateManifest = async (buildPath: string, updates: Partial<PolenBuildManifest>): Promise<void> => {
127
+ const manifestPath = Path.join(buildPath, '.polen', 'build.json')
128
+ const manifestResult = await buildManifest.read(buildPath)
129
+ if (Err.is(manifestResult)) {
130
+ throw new Error(`Polen build manifest not found at: ${manifestPath}`)
131
+ }
132
+ const currentManifest = manifestResult
133
+
134
+ const updatedManifest = { ...currentManifest, ...updates }
135
+
136
+ await Fs.write({
137
+ path: manifestPath,
138
+ content: JSON.stringify(updatedManifest, null, 2),
139
+ })
140
+ }
@@ -0,0 +1,2 @@
1
+ export * from './manifest.ts'
2
+ export * from './rebase.ts'
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, test } from 'vitest'
2
- import { assetUrl, faviconUrl, joinPaths, pageUrl } from './asset-url.js'
2
+ import { assetUrl, faviconUrl, joinPaths, pageUrl } from './asset-url.ts'
3
3
 
4
4
  describe('asset-url helpers', () => {
5
5
  describe('joinPaths', () => {
@@ -20,9 +20,9 @@ describe('asset-url helpers', () => {
20
20
 
21
21
  describe('assetUrl', () => {
22
22
  test('creates asset URLs with base path', () => {
23
- expect(assetUrl('assets/app.js', '/')).toBe('/assets/app.js')
24
- expect(assetUrl('assets/app.js', '/my-app/')).toBe('/my-app/assets/app.js')
25
- expect(assetUrl('/assets/app.js', '/my-app/')).toBe('/my-app/assets/app.js')
23
+ expect(assetUrl('assets/app.ts', '/')).toBe('/assets/app.ts')
24
+ expect(assetUrl('assets/app.ts', '/my-app/')).toBe('/my-app/assets/app.ts')
25
+ expect(assetUrl('/assets/app.ts', '/my-app/')).toBe('/my-app/assets/app.ts')
26
26
  })
27
27
  })
28
28
 
@@ -0,0 +1,108 @@
1
+ import type { Config } from '#api/api'
2
+ import { polenVirtual } from '#api/vite/vi'
3
+ import type { Vite } from '#dep/vite/index'
4
+ import { type ExistenceDiff, getMutationType, MutationType } from '#lib/mutation-type'
5
+ import { debugPolen } from '#singletons/debug'
6
+ import { Fs } from '@wollybeard/kit'
7
+ import type { Plugin } from 'vite'
8
+
9
+ const viLogo = polenVirtual(['project', 'assets', 'logo.svg'])
10
+
11
+ const generateDefaultLogo = async () => {
12
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128">
13
+ <circle cx="64" cy="64" r="48" fill="none" stroke="black" stroke-width="8"/>
14
+ </svg>`
15
+ }
16
+
17
+ export function Branding(config: Config.Config): Plugin {
18
+ const debug = debugPolen.sub('vite-plugin:branding')
19
+ debug('initialized')
20
+
21
+ return {
22
+ name: 'polen:branding',
23
+ enforce: 'pre',
24
+
25
+ async buildStart() {
26
+ this.addWatchFile(config.paths.project.absolute.public.logo)
27
+ },
28
+
29
+ async handleHotUpdate({ file, server }) {
30
+ return await handleWatchedFileChange({
31
+ watchedFile: config.paths.project.absolute.public.logo,
32
+ changedFile: file,
33
+ moduleId: viLogo.resolved,
34
+ server,
35
+ debug: debug,
36
+ })
37
+ },
38
+
39
+ resolveId(id) {
40
+ if (id === viLogo.id) {
41
+ return viLogo.resolved
42
+ }
43
+ },
44
+
45
+ async load(id) {
46
+ if (id === viLogo.resolved) {
47
+ const logoFileContent = await Fs.read(config.paths.project.absolute.public.logo)
48
+ const content = logoFileContent ? logoFileContent : await generateDefaultLogo()
49
+ const dataUrl = `data:image/svg+xml;base64,${Buffer.from(content).toString('base64')}`
50
+ return `export default ${JSON.stringify(dataUrl)}`
51
+ }
52
+ },
53
+ }
54
+ }
55
+
56
+ interface HandleWatchedFileChangeParams {
57
+ watchedFile: string
58
+ changedFile: string
59
+ moduleId: string
60
+ server: Vite.ViteDevServer
61
+ debug: (msg: string, data?: any) => void
62
+ }
63
+
64
+ const handleWatchedFileChange = async (
65
+ params: HandleWatchedFileChangeParams,
66
+ ): Promise<Array<Vite.ModuleNode> | void> => {
67
+ const { watchedFile, changedFile, moduleId, server, debug } = params
68
+
69
+ // Check if change is for watched file
70
+ if (changedFile !== watchedFile) return
71
+
72
+ // Check current existence
73
+ const existsNow = await Fs.exists(watchedFile)
74
+
75
+ // Check previous existence via module graph
76
+ const module = server.moduleGraph.getModuleById(moduleId)
77
+ const existedBefore = !!module
78
+
79
+ // Early return if no mutation
80
+ if (!existedBefore && !existsNow) {
81
+ debug(`no mutation detected - file didn't exist before or after`, { file: changedFile })
82
+ return
83
+ }
84
+
85
+ const mutationType = getMutationType({
86
+ before: existedBefore,
87
+ after: existsNow,
88
+ } as ExistenceDiff)
89
+
90
+ debug(`file ${mutationType}`, { file: changedFile })
91
+
92
+ switch (mutationType) {
93
+ case MutationType.Create:
94
+ // Full reload needed - module never existed
95
+ server.ws.send({
96
+ type: 'full-reload',
97
+ path: '*',
98
+ })
99
+ break
100
+
101
+ case MutationType.Update:
102
+ case MutationType.Delete:
103
+ // Invalidate module for HMR
104
+ server.moduleGraph.invalidateModule(module!)
105
+ // Return empty array to prevent default HMR
106
+ return []
107
+ }
108
+ }
@@ -1,7 +1,9 @@
1
1
  import type { Config } from '#api/config/index'
2
+ import type { PolenBuildManifest } from '#api/static/manifest'
2
3
  import { Vite } from '#dep/vite/index'
3
4
  import { ViteVirtual } from '#lib/vite-virtual/index'
4
5
  import { Fs, Path } from '@wollybeard/kit'
6
+ import packageJson from '../../../../package.json' with { type: 'json' }
5
7
  import { isKitUnusedExternalImport, isRadixModuleLevelDirective } from '../log-filters.ts'
6
8
  import { polenVirtual } from '../vi.ts'
7
9
 
@@ -10,7 +12,7 @@ export const Build = (config: Config.Config): Vite.Plugin[] => {
10
12
 
11
13
  // const outDir = Path.join(config.paths.project.rootDir, `dist`)
12
14
 
13
- return [Manifest(config), {
15
+ return [Manifest(config), BuildManifest(config), {
14
16
  name: `polen:build-client`,
15
17
  apply: `build`,
16
18
  applyToEnvironment: Vite.isEnvironmentClient,
@@ -144,3 +146,25 @@ const Manifest = (config: Config.Config): Vite.Plugin => {
144
146
  ),
145
147
  }
146
148
  }
149
+
150
+ const BuildManifest = (config: Config.Config): Vite.Plugin => {
151
+ return {
152
+ name: 'polen:build-manifest',
153
+ apply: 'build',
154
+ applyToEnvironment: Vite.isEnvironmentClient,
155
+ async generateBundle() {
156
+ const manifest: PolenBuildManifest = {
157
+ type: config.build.architecture === 'ssr' ? 'ssr' : 'ssg',
158
+ version: packageJson.version,
159
+ basePath: config.build.base || '/',
160
+ }
161
+
162
+ // Emit the manifest as an asset
163
+ this.emitFile({
164
+ type: 'asset',
165
+ fileName: '.polen/build.json',
166
+ source: JSON.stringify(manifest, null, 2),
167
+ })
168
+ },
169
+ }
170
+ }
@@ -6,7 +6,7 @@ import type { Vite } from '#dep/vite/index'
6
6
  import { VitePluginJson } from '#lib/vite-plugin-json/index'
7
7
  import { VitePluginReactiveData } from '#lib/vite-plugin-reactive-data/index'
8
8
  import { ViteVirtual } from '#lib/vite-virtual/index'
9
- import { debug } from '#singletons/debug'
9
+ import { debugPolen } from '#singletons/debug'
10
10
  import { superjson } from '#singletons/superjson'
11
11
  import { Json, Str } from '@wollybeard/kit'
12
12
  import type { ProjectData } from '../../../project-data.ts'
@@ -16,14 +16,14 @@ import { createLogger } from '../logger.ts'
16
16
  import { polenVirtual } from '../vi.ts'
17
17
  import { Pages } from './pages.ts'
18
18
 
19
- const _debug = debug.sub(`vite-plugin-core`)
19
+ const debug = debugPolen.sub(`vite-plugin-core`)
20
20
 
21
21
  const viTemplateVariables = polenVirtual([`template`, `variables`])
22
22
  const viTemplateSchemaAugmentations = polenVirtual([`template`, `schema-augmentations`])
23
23
  const viProjectData = polenVirtual([`project`, `data.jsonsuper`], { allowPluginProcessing: true })
24
24
 
25
- export interface ProjectPagesModule {
26
- pages: ReactRouter.RouteObject[]
25
+ export interface ProjectRoutesModule {
26
+ routes: ReactRouter.RouteObject[]
27
27
  }
28
28
 
29
29
  export const Core = (config: Config.Config): Vite.PluginOption[] => {
@@ -87,7 +87,7 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
87
87
  name: `polen:internal-import-alias`,
88
88
  enforce: 'pre' as const,
89
89
  resolveId(id, importer) {
90
- const d = debug.sub(`vite-plugin:internal-import-alias`)
90
+ const d = debugPolen.sub(`vite-plugin:internal-import-alias`)
91
91
 
92
92
  const isPolenImporter = Boolean(
93
93
  importer
@@ -183,7 +183,7 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
183
183
  {
184
184
  identifier: viProjectData,
185
185
  async loader() {
186
- _debug(`loadingViProjectDataVirtualModule`)
186
+ debug(`loadingViProjectDataVirtualModule`)
187
187
  const schema = await readSchema()
188
188
 
189
189
  // ━ Schema presence causes adding some navbar items
@@ -206,7 +206,6 @@ export const Core = (config: Config.Config): Vite.PluginOption[] => {
206
206
 
207
207
  const projectData: ProjectData = {
208
208
  schema,
209
- faviconPath: `/logo.svg`,
210
209
  basePath: config.build.base,
211
210
  paths: config.paths.project,
212
211
  server: {
@@ -4,6 +4,7 @@ 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 { Branding } from './branding/index.ts'
7
8
  import { Build } from './build.ts'
8
9
  import { Core } from './core.ts'
9
10
  import { Serve } from './serve.ts'
@@ -34,6 +35,7 @@ export const Main = (
34
35
 
35
36
  plugins.push(
36
37
  ViteReact(),
38
+ Branding(config),
37
39
  Core(config),
38
40
  Serve(config),
39
41
  Build(config),