@publish.os/nextjs 0.0.1-alpha.5 → 0.0.1-alpha.7

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 (400) hide show
  1. package/README.md +3 -5
  2. package/compiler-assets/nextjs/defaults/app/globals.css +6 -0
  3. package/compiler-assets/nextjs/defaults/group/layout.tsx +23 -0
  4. package/compiler-assets/nextjs/defaults/group/leaf.tsx +48 -0
  5. package/compiler-assets/nextjs/defaults/group/page.tsx +50 -0
  6. package/compiler-assets/nextjs/defaults/project/next.config.mjs +45 -0
  7. package/compiler-assets/nextjs/defaults/project/postcss.config.mjs +5 -0
  8. package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +41 -0
  9. package/compiler-assets/nextjs/defaults/root/css/animation.css +90 -0
  10. package/compiler-assets/nextjs/defaults/root/css/components/dialog.css +21 -0
  11. package/compiler-assets/nextjs/defaults/root/css/components/drawer.css +21 -0
  12. package/compiler-assets/nextjs/defaults/root/css/components/menu.css +23 -0
  13. package/compiler-assets/nextjs/defaults/root/css/components/navigation-menu.css +25 -0
  14. package/compiler-assets/nextjs/defaults/root/css/components/popover.css +17 -0
  15. package/compiler-assets/nextjs/defaults/root/css/components/select.css +23 -0
  16. package/compiler-assets/nextjs/defaults/root/css/components/toast.css +19 -0
  17. package/compiler-assets/nextjs/defaults/root/css/components/tooltip.css +15 -0
  18. package/compiler-assets/nextjs/defaults/root/css/layout.css +22 -0
  19. package/compiler-assets/nextjs/defaults/root/css/media.css +81 -0
  20. package/compiler-assets/nextjs/defaults/root/css/radius.css +49 -0
  21. package/compiler-assets/nextjs/defaults/root/css/scrollbar.css +43 -0
  22. package/compiler-assets/nextjs/defaults/root/css/shadow.css +145 -0
  23. package/compiler-assets/nextjs/defaults/root/css/typography.css +607 -0
  24. package/compiler-assets/nextjs/defaults/root/css/zindex.css +39 -0
  25. package/compiler-assets/nextjs/defaults/root/globals.css +191 -0
  26. package/compiler-assets/nextjs/defaults/root/layout.tsx +19 -0
  27. package/compiler-assets/nextjs/defaults/root/page.tsx +61 -0
  28. package/compiler-assets/nextjs/defaults/root/theme.css +50 -0
  29. package/compiler-assets/nextjs/defaults/source/_internal/logger.ts +21 -0
  30. package/compiler-assets/nextjs/shims/generated-group-layout.tsx +19 -0
  31. package/compiler-assets/nextjs/shims/generated-group-page.tsx +18 -0
  32. package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +21 -0
  33. package/compiler-assets/nextjs/shims/global-layout.tsx +134 -0
  34. package/compiler-assets/nextjs/shims/markdown-route.ts +29 -0
  35. package/compiler-assets/nextjs/shims/og-image-route.ts +18 -0
  36. package/compiler-assets/nextjs/shims/powered-by-footer.tsx +40 -0
  37. package/compiler-assets/nextjs/shims/providers.tsx +13 -0
  38. package/compiler-assets/nextjs/shims/proxy.ts +317 -0
  39. package/compiler-assets/nextjs/shims/publish-os-theme-provider.tsx +77 -0
  40. package/compiler-assets/nextjs/shims/root-page.tsx +13 -0
  41. package/compiler-assets/nextjs/shims/theme-defaults.css +177 -0
  42. package/dist/{kernel/components/ui/button.d.cts → button-CFdx-ohV.d.ts} +1 -3
  43. package/dist/cache/tags.js +6 -14
  44. package/dist/compiler.d.ts +100 -0
  45. package/dist/compiler.js +13379 -0
  46. package/dist/config/createNextConfig.d.ts +2 -1
  47. package/dist/config/createNextConfig.js +16 -12
  48. package/dist/icons.d.ts +1 -0
  49. package/dist/icons.js +2 -0
  50. package/dist/index.d.ts +303 -15
  51. package/dist/index.js +30 -1196
  52. package/dist/kernel/components/blocks/AgentActions.d.ts +9 -3
  53. package/dist/kernel/components/blocks/AgentActions.js +114 -200
  54. package/dist/kernel/components/blocks/animated-icon-swap.js +4 -25
  55. package/dist/kernel/components/blocks/color-palette.js +107 -157
  56. package/dist/kernel/components/blocks/design-system-preview.d.ts +38 -6
  57. package/dist/kernel/components/blocks/design-system-preview.js +44 -52
  58. package/dist/kernel/components/blocks/link-playground.js +23 -71
  59. package/dist/kernel/components/blocks/logo-block.js +19 -48
  60. package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +1 -1
  61. package/dist/kernel/components/blocks/nav-breadcrumb.js +28 -52
  62. package/dist/kernel/components/blocks/navbar.d.ts +1 -1
  63. package/dist/kernel/components/blocks/navbar.js +14 -41
  64. package/dist/kernel/components/blocks/navigation-progress-playground.js +56 -149
  65. package/dist/kernel/components/blocks/navigation-progress.js +53 -157
  66. package/dist/kernel/components/blocks/next-prev.d.ts +1 -1
  67. package/dist/kernel/components/blocks/next-prev.js +16 -42
  68. package/dist/kernel/components/blocks/page-list.d.ts +1 -1
  69. package/dist/kernel/components/blocks/page-list.js +11 -16
  70. package/dist/kernel/components/blocks/search.d.ts +13 -2
  71. package/dist/kernel/components/blocks/search.js +116 -247
  72. package/dist/kernel/components/blocks/sidebar-node.d.ts +2 -2
  73. package/dist/kernel/components/blocks/sidebar-node.js +56 -95
  74. package/dist/kernel/components/blocks/sidebar.d.ts +5 -23
  75. package/dist/kernel/components/blocks/sidebar.js +35 -103
  76. package/dist/kernel/components/blocks/theme-toggle.d.ts +7 -3
  77. package/dist/kernel/components/blocks/theme-toggle.js +2 -2
  78. package/dist/kernel/components/blocks/toc.js +42 -178
  79. package/dist/kernel/components/mdx/components/blockquote.js +3 -24
  80. package/dist/kernel/components/mdx/components/callout.d.ts +1 -1
  81. package/dist/kernel/components/mdx/components/callout.js +15 -47
  82. package/dist/kernel/components/mdx/components/code-block.js +2 -2
  83. package/dist/kernel/components/mdx/components/figure-caption.js +6 -24
  84. package/dist/kernel/components/mdx/components/figure.js +9 -36
  85. package/dist/kernel/components/mdx/components/footnotes.js +3 -24
  86. package/dist/kernel/components/mdx/components/heading-copy-link.js +13 -37
  87. package/dist/kernel/components/mdx/components/heading.d.ts +8 -3
  88. package/dist/kernel/components/mdx/components/heading.js +32 -116
  89. package/dist/kernel/components/mdx/components/hr.d.ts +5 -3
  90. package/dist/kernel/components/mdx/components/hr.js +2 -2
  91. package/dist/kernel/components/mdx/components/image-zoom.js +2 -3
  92. package/dist/kernel/components/mdx/components/image.js +23 -63
  93. package/dist/kernel/components/mdx/components/inline-code.js +3 -24
  94. package/dist/kernel/components/mdx/components/kbd.d.ts +9 -4
  95. package/dist/kernel/components/mdx/components/kbd.js +2 -2
  96. package/dist/kernel/components/mdx/components/link.d.ts +1 -2
  97. package/dist/kernel/components/mdx/components/link.js +2 -2
  98. package/dist/kernel/components/mdx/components/paragraph.js +13 -41
  99. package/dist/kernel/components/mdx/components/pre.js +3 -24
  100. package/dist/kernel/components/mdx/components/strikethrough.js +6 -24
  101. package/dist/kernel/components/mdx/components/table.js +2 -2
  102. package/dist/kernel/components/mdx/components/task-list.js +6 -28
  103. package/dist/kernel/components/mdx/components/video-player.js +53 -88
  104. package/dist/kernel/components/mdx/components/video.js +27 -75
  105. package/dist/kernel/components/mdx/error-boundary.d.ts +1 -1
  106. package/dist/kernel/components/mdx/error-boundary.js +12 -15
  107. package/dist/kernel/components/mdx/error-fallback.js +4 -4
  108. package/dist/kernel/components/mdx/mdx.d.ts +68 -11
  109. package/dist/kernel/components/mdx/mdx.js +29 -29
  110. package/dist/kernel/components/mdx/rehype-heading-ids.js +11 -67
  111. package/dist/kernel/components/mdx/types.d.ts +1 -1
  112. package/dist/kernel/components/ui/accordion.js +3 -26
  113. package/dist/kernel/components/ui/breadcrumb-trail.d.ts +26 -8
  114. package/dist/kernel/components/ui/breadcrumb-trail.js +32 -79
  115. package/dist/kernel/components/ui/breadcrumb.d.ts +2 -6
  116. package/dist/kernel/components/ui/breadcrumb.js +21 -70
  117. package/dist/kernel/components/ui/button-group.d.ts +4 -3
  118. package/dist/kernel/components/ui/button-group.js +7 -30
  119. package/dist/kernel/components/ui/button.js +13 -36
  120. package/dist/kernel/components/ui/card.d.ts +2 -2
  121. package/dist/kernel/components/ui/card.js +2 -23
  122. package/dist/kernel/components/ui/dialog.d.ts +9 -9
  123. package/dist/kernel/components/ui/dialog.js +15 -33
  124. package/dist/kernel/components/ui/drawer.d.ts +10 -10
  125. package/dist/kernel/components/ui/drawer.js +15 -33
  126. package/dist/kernel/components/ui/input.js +6 -30
  127. package/dist/kernel/components/ui/kbd.js +10 -31
  128. package/dist/kernel/components/ui/link.d.ts +1 -1
  129. package/dist/kernel/components/ui/link.js +53 -104
  130. package/dist/kernel/components/ui/menu.d.ts +21 -21
  131. package/dist/kernel/components/ui/menu.js +14 -36
  132. package/dist/kernel/components/ui/meta-key.d.ts +9 -4
  133. package/dist/kernel/components/ui/meta-key.js +2 -2
  134. package/dist/kernel/components/ui/navigation-menu.d.ts +14 -14
  135. package/dist/kernel/components/ui/navigation-menu.js +9 -30
  136. package/dist/kernel/components/ui/popover.d.ts +10 -10
  137. package/dist/kernel/components/ui/popover.js +13 -34
  138. package/dist/kernel/components/ui/progress.js +2 -25
  139. package/dist/kernel/components/ui/scroll-area.js +39 -118
  140. package/dist/kernel/components/ui/select.d.ts +15 -15
  141. package/dist/kernel/components/ui/select.js +19 -35
  142. package/dist/kernel/components/ui/separator.js +2 -25
  143. package/dist/kernel/components/ui/table.js +2 -23
  144. package/dist/kernel/components/ui/tabs.js +39 -99
  145. package/dist/kernel/components/ui/tag.d.ts +2 -2
  146. package/dist/kernel/components/ui/tag.js +4 -25
  147. package/dist/kernel/components/ui/text.d.ts +2 -2
  148. package/dist/kernel/components/ui/text.js +112 -131
  149. package/dist/kernel/components/ui/theme-toggle.d.ts +18 -4
  150. package/dist/kernel/components/ui/theme-toggle.js +18 -44
  151. package/dist/kernel/components/ui/toast.d.ts +10 -10
  152. package/dist/kernel/components/ui/toast.js +13 -35
  153. package/dist/kernel/components/ui/tooltip.d.ts +8 -8
  154. package/dist/kernel/components/ui/tooltip.js +9 -30
  155. package/dist/kernel/defaults.registry.d.ts +61 -70
  156. package/dist/kernel/defaults.registry.js +61 -69
  157. package/dist/kernel/framework-icons.d.ts +1 -0
  158. package/dist/kernel/framework-icons.js +39 -0
  159. package/dist/kernel/routes/agent/markdown.js +36 -65
  160. package/dist/kernel/routes/layouts/group.d.ts +1 -1
  161. package/dist/kernel/routes/layouts/group.js +20 -109
  162. package/dist/kernel/routes/metadata/feed.d.ts +1 -2
  163. package/dist/kernel/routes/metadata/feed.js +46 -127
  164. package/dist/kernel/routes/metadata/llms.d.ts +1 -2
  165. package/dist/kernel/routes/metadata/llms.js +42 -120
  166. package/dist/kernel/routes/metadata/og-image.d.ts +11 -1
  167. package/dist/kernel/routes/metadata/og-image.js +264 -198
  168. package/dist/kernel/routes/metadata/robots.d.ts +1 -2
  169. package/dist/kernel/routes/metadata/robots.js +21 -90
  170. package/dist/kernel/routes/metadata/sitemap.d.ts +1 -2
  171. package/dist/kernel/routes/metadata/sitemap.js +36 -102
  172. package/dist/kernel/routes/pages/group.d.ts +1 -1
  173. package/dist/kernel/routes/pages/group.js +42 -137
  174. package/dist/kernel/routes/pages/leaf.d.ts +1 -1
  175. package/dist/kernel/routes/pages/leaf.js +74 -213
  176. package/dist/kernel/routes/pages/root.d.ts +1 -1
  177. package/dist/kernel/routes/pages/root.js +37 -108
  178. package/dist/keyboard-shortcuts.js +69 -141
  179. package/dist/{kernel/components/ui/link.d.cts → link-CYaCRDb6.d.ts} +9 -5
  180. package/dist/resolvers/manifest-resolver.d.ts +3 -3
  181. package/dist/resolvers/manifest-resolver.js +15 -21
  182. package/dist/{kernel/routes/metadata/og-image.d.cts → route-metadata-og-image-BeKKFHg7.d.ts} +12 -16
  183. package/dist/search.d.ts +81 -4
  184. package/dist/search.js +124 -195
  185. package/dist/{kernel/components/blocks/sidebar.d.cts → sidebar-types-Bgchdfd6.d.ts} +2 -10
  186. package/dist/theme-scope.d.ts +15 -0
  187. package/dist/theme-scope.js +23 -0
  188. package/dist/types-B_b3C0U6.d.ts +63 -0
  189. package/dist/types-CIwwieNw.d.ts +127 -0
  190. package/dist/types-DHBm7-j6.d.ts +57 -0
  191. package/dist/types-sM2g9nW0.d.ts +12 -0
  192. package/dist/types.d.ts +0 -1
  193. package/dist/types.js +1 -1
  194. package/dist/utils/cn.d.ts +5 -9
  195. package/dist/utils/cn.js +13 -7
  196. package/dist/utils/heading-ids.js +20 -47
  197. package/dist/utils/pretty-date.js +7 -13
  198. package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.dark.png +0 -0
  199. package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.png +0 -0
  200. package/init/seed/minimal/publish.os/docs/content/get-started.mdx +54 -0
  201. package/init/seed/minimal/publish.os/docs/content/groups.mdx +31 -0
  202. package/init/seed/minimal/publish.os/docs/content/theme.mdx +64 -0
  203. package/init/seed/minimal/publish.os/publish.os.config.json +21 -0
  204. package/init/seed/minimal/publish.os/theme.css +47 -0
  205. package/init/seed/minimal/seed.json +13 -0
  206. package/package.json +470 -40
  207. package/release/{package.json → app/lucide/package.json} +14 -7
  208. package/release/app/lucide/pnpm-lock.yaml.template +2905 -0
  209. package/release/app/lucide/pnpm-workspace.yaml +11 -0
  210. package/release/app/phosphor/package.json +30 -0
  211. package/release/app/phosphor/pnpm-lock.yaml.template +2908 -0
  212. package/release/app/phosphor/pnpm-workspace.yaml +11 -0
  213. package/release/app/tabler/package.json +30 -0
  214. package/release/app/tabler/pnpm-lock.yaml.template +2911 -0
  215. package/release/app/tabler/pnpm-workspace.yaml +11 -0
  216. package/release/compiler/package.json +20 -0
  217. package/release/compiler/pnpm-lock.yaml.template +2432 -0
  218. package/release/compiler/pnpm-workspace.yaml +11 -0
  219. package/release/release.json +31 -7
  220. package/dist/cache/tags.cjs +0 -79
  221. package/dist/cache/tags.d.cts +0 -13
  222. package/dist/config/createNextConfig.cjs +0 -52
  223. package/dist/config/createNextConfig.d.cts +0 -8
  224. package/dist/config.cjs +0 -78
  225. package/dist/config.d.cts +0 -101
  226. package/dist/config.d.ts +0 -101
  227. package/dist/config.js +0 -48
  228. package/dist/index.cjs +0 -1266
  229. package/dist/index.d.cts +0 -18
  230. package/dist/kernel/components/blocks/AgentActions.cjs +0 -425
  231. package/dist/kernel/components/blocks/AgentActions.d.cts +0 -52
  232. package/dist/kernel/components/blocks/animated-icon-swap.cjs +0 -101
  233. package/dist/kernel/components/blocks/animated-icon-swap.d.cts +0 -16
  234. package/dist/kernel/components/blocks/color-palette.cjs +0 -413
  235. package/dist/kernel/components/blocks/color-palette.d.cts +0 -7
  236. package/dist/kernel/components/blocks/design-system-preview.cjs +0 -593
  237. package/dist/kernel/components/blocks/design-system-preview.d.cts +0 -29
  238. package/dist/kernel/components/blocks/link-playground.cjs +0 -816
  239. package/dist/kernel/components/blocks/link-playground.d.cts +0 -5
  240. package/dist/kernel/components/blocks/logo-block.cjs +0 -156
  241. package/dist/kernel/components/blocks/logo-block.d.cts +0 -21
  242. package/dist/kernel/components/blocks/nav-breadcrumb.cjs +0 -122
  243. package/dist/kernel/components/blocks/nav-breadcrumb.d.cts +0 -11
  244. package/dist/kernel/components/blocks/navbar.cjs +0 -154
  245. package/dist/kernel/components/blocks/navbar.d.cts +0 -16
  246. package/dist/kernel/components/blocks/navigation-progress-playground.cjs +0 -735
  247. package/dist/kernel/components/blocks/navigation-progress-playground.d.cts +0 -5
  248. package/dist/kernel/components/blocks/navigation-progress.cjs +0 -270
  249. package/dist/kernel/components/blocks/navigation-progress.d.cts +0 -16
  250. package/dist/kernel/components/blocks/next-prev.cjs +0 -142
  251. package/dist/kernel/components/blocks/next-prev.d.cts +0 -11
  252. package/dist/kernel/components/blocks/page-list.cjs +0 -59
  253. package/dist/kernel/components/blocks/page-list.d.cts +0 -11
  254. package/dist/kernel/components/blocks/search.cjs +0 -717
  255. package/dist/kernel/components/blocks/search.d.cts +0 -77
  256. package/dist/kernel/components/blocks/sidebar-node.cjs +0 -309
  257. package/dist/kernel/components/blocks/sidebar-node.d.cts +0 -8
  258. package/dist/kernel/components/blocks/sidebar.cjs +0 -317
  259. package/dist/kernel/components/blocks/theme-toggle.cjs +0 -31
  260. package/dist/kernel/components/blocks/theme-toggle.d.cts +0 -6
  261. package/dist/kernel/components/blocks/toc.cjs +0 -356
  262. package/dist/kernel/components/blocks/toc.d.cts +0 -10
  263. package/dist/kernel/components/mdx/components/blockquote.cjs +0 -66
  264. package/dist/kernel/components/mdx/components/blockquote.d.cts +0 -6
  265. package/dist/kernel/components/mdx/components/callout.cjs +0 -137
  266. package/dist/kernel/components/mdx/components/callout.d.cts +0 -18
  267. package/dist/kernel/components/mdx/components/code-block.cjs +0 -39
  268. package/dist/kernel/components/mdx/components/code-block.d.cts +0 -9
  269. package/dist/kernel/components/mdx/components/figure-caption.cjs +0 -63
  270. package/dist/kernel/components/mdx/components/figure-caption.d.cts +0 -6
  271. package/dist/kernel/components/mdx/components/figure.cjs +0 -78
  272. package/dist/kernel/components/mdx/components/figure.d.cts +0 -10
  273. package/dist/kernel/components/mdx/components/footnotes.cjs +0 -66
  274. package/dist/kernel/components/mdx/components/footnotes.d.cts +0 -6
  275. package/dist/kernel/components/mdx/components/heading-copy-link.cjs +0 -108
  276. package/dist/kernel/components/mdx/components/heading-copy-link.d.cts +0 -23
  277. package/dist/kernel/components/mdx/components/heading.cjs +0 -166
  278. package/dist/kernel/components/mdx/components/heading.d.cts +0 -8
  279. package/dist/kernel/components/mdx/components/hr.cjs +0 -34
  280. package/dist/kernel/components/mdx/components/hr.d.cts +0 -9
  281. package/dist/kernel/components/mdx/components/image-zoom.cjs +0 -49
  282. package/dist/kernel/components/mdx/components/image-zoom.d.cts +0 -10
  283. package/dist/kernel/components/mdx/components/image.cjs +0 -192
  284. package/dist/kernel/components/mdx/components/image.d.cts +0 -21
  285. package/dist/kernel/components/mdx/components/inline-code.cjs +0 -66
  286. package/dist/kernel/components/mdx/components/inline-code.d.cts +0 -6
  287. package/dist/kernel/components/mdx/components/kbd.cjs +0 -34
  288. package/dist/kernel/components/mdx/components/kbd.d.cts +0 -10
  289. package/dist/kernel/components/mdx/components/link.cjs +0 -49
  290. package/dist/kernel/components/mdx/components/link.d.cts +0 -11
  291. package/dist/kernel/components/mdx/components/paragraph.cjs +0 -87
  292. package/dist/kernel/components/mdx/components/paragraph.d.cts +0 -5
  293. package/dist/kernel/components/mdx/components/pre.cjs +0 -66
  294. package/dist/kernel/components/mdx/components/pre.d.cts +0 -6
  295. package/dist/kernel/components/mdx/components/strikethrough.cjs +0 -63
  296. package/dist/kernel/components/mdx/components/strikethrough.d.cts +0 -6
  297. package/dist/kernel/components/mdx/components/table.cjs +0 -59
  298. package/dist/kernel/components/mdx/components/table.d.cts +0 -10
  299. package/dist/kernel/components/mdx/components/task-list.cjs +0 -88
  300. package/dist/kernel/components/mdx/components/task-list.d.cts +0 -8
  301. package/dist/kernel/components/mdx/components/video-player.cjs +0 -173
  302. package/dist/kernel/components/mdx/components/video-player.d.cts +0 -18
  303. package/dist/kernel/components/mdx/components/video.cjs +0 -185
  304. package/dist/kernel/components/mdx/components/video.d.cts +0 -15
  305. package/dist/kernel/components/mdx/error-boundary.cjs +0 -62
  306. package/dist/kernel/components/mdx/error-boundary.d.cts +0 -8
  307. package/dist/kernel/components/mdx/error-fallback.cjs +0 -58
  308. package/dist/kernel/components/mdx/error-fallback.d.cts +0 -9
  309. package/dist/kernel/components/mdx/mdx.cjs +0 -141
  310. package/dist/kernel/components/mdx/mdx.d.cts +0 -22
  311. package/dist/kernel/components/mdx/rehype-heading-ids.cjs +0 -113
  312. package/dist/kernel/components/mdx/rehype-heading-ids.d.cts +0 -10
  313. package/dist/kernel/components/mdx/types.cjs +0 -18
  314. package/dist/kernel/components/mdx/types.d.cts +0 -18
  315. package/dist/kernel/components/ui/accordion.cjs +0 -104
  316. package/dist/kernel/components/ui/accordion.d.cts +0 -16
  317. package/dist/kernel/components/ui/breadcrumb-trail.cjs +0 -238
  318. package/dist/kernel/components/ui/breadcrumb-trail.d.cts +0 -13
  319. package/dist/kernel/components/ui/breadcrumb.cjs +0 -399
  320. package/dist/kernel/components/ui/breadcrumb.d.cts +0 -52
  321. package/dist/kernel/components/ui/button-group.cjs +0 -143
  322. package/dist/kernel/components/ui/button-group.d.cts +0 -19
  323. package/dist/kernel/components/ui/button.cjs +0 -139
  324. package/dist/kernel/components/ui/card.cjs +0 -133
  325. package/dist/kernel/components/ui/card.d.cts +0 -17
  326. package/dist/kernel/components/ui/dialog.cjs +0 -149
  327. package/dist/kernel/components/ui/dialog.d.cts +0 -22
  328. package/dist/kernel/components/ui/drawer.cjs +0 -163
  329. package/dist/kernel/components/ui/drawer.d.cts +0 -24
  330. package/dist/kernel/components/ui/input.cjs +0 -96
  331. package/dist/kernel/components/ui/input.d.cts +0 -18
  332. package/dist/kernel/components/ui/kbd.cjs +0 -105
  333. package/dist/kernel/components/ui/kbd.d.cts +0 -13
  334. package/dist/kernel/components/ui/link.cjs +0 -253
  335. package/dist/kernel/components/ui/menu.cjs +0 -301
  336. package/dist/kernel/components/ui/menu.d.cts +0 -70
  337. package/dist/kernel/components/ui/meta-key.cjs +0 -34
  338. package/dist/kernel/components/ui/meta-key.d.cts +0 -12
  339. package/dist/kernel/components/ui/navigation-menu.cjs +0 -253
  340. package/dist/kernel/components/ui/navigation-menu.d.cts +0 -47
  341. package/dist/kernel/components/ui/popover.cjs +0 -168
  342. package/dist/kernel/components/ui/popover.d.cts +0 -24
  343. package/dist/kernel/components/ui/progress.cjs +0 -112
  344. package/dist/kernel/components/ui/progress.d.cts +0 -16
  345. package/dist/kernel/components/ui/scroll-area.cjs +0 -413
  346. package/dist/kernel/components/ui/scroll-area.d.cts +0 -58
  347. package/dist/kernel/components/ui/select.cjs +0 -244
  348. package/dist/kernel/components/ui/select.d.cts +0 -40
  349. package/dist/kernel/components/ui/separator.cjs +0 -73
  350. package/dist/kernel/components/ui/separator.d.cts +0 -8
  351. package/dist/kernel/components/ui/table.cjs +0 -131
  352. package/dist/kernel/components/ui/table.d.cts +0 -11
  353. package/dist/kernel/components/ui/tabs.cjs +0 -450
  354. package/dist/kernel/components/ui/tabs.d.cts +0 -82
  355. package/dist/kernel/components/ui/tag.cjs +0 -104
  356. package/dist/kernel/components/ui/tag.d.cts +0 -14
  357. package/dist/kernel/components/ui/text.cjs +0 -184
  358. package/dist/kernel/components/ui/text.d.cts +0 -17
  359. package/dist/kernel/components/ui/theme-toggle.cjs +0 -108
  360. package/dist/kernel/components/ui/theme-toggle.d.cts +0 -10
  361. package/dist/kernel/components/ui/toast.cjs +0 -154
  362. package/dist/kernel/components/ui/toast.d.cts +0 -26
  363. package/dist/kernel/components/ui/tooltip.cjs +0 -127
  364. package/dist/kernel/components/ui/tooltip.d.cts +0 -20
  365. package/dist/kernel/defaults.registry.cjs +0 -541
  366. package/dist/kernel/defaults.registry.d.cts +0 -469
  367. package/dist/kernel/routes/agent/markdown.cjs +0 -202
  368. package/dist/kernel/routes/agent/markdown.d.cts +0 -58
  369. package/dist/kernel/routes/layouts/group.cjs +0 -181
  370. package/dist/kernel/routes/layouts/group.d.cts +0 -20
  371. package/dist/kernel/routes/metadata/feed.cjs +0 -293
  372. package/dist/kernel/routes/metadata/feed.d.cts +0 -20
  373. package/dist/kernel/routes/metadata/llms.cjs +0 -239
  374. package/dist/kernel/routes/metadata/llms.d.cts +0 -26
  375. package/dist/kernel/routes/metadata/og-image.cjs +0 -630
  376. package/dist/kernel/routes/metadata/robots.cjs +0 -148
  377. package/dist/kernel/routes/metadata/robots.d.cts +0 -6
  378. package/dist/kernel/routes/metadata/sitemap.cjs +0 -192
  379. package/dist/kernel/routes/metadata/sitemap.d.cts +0 -8
  380. package/dist/kernel/routes/pages/group.cjs +0 -263
  381. package/dist/kernel/routes/pages/group.d.cts +0 -17
  382. package/dist/kernel/routes/pages/leaf.cjs +0 -421
  383. package/dist/kernel/routes/pages/leaf.d.cts +0 -36
  384. package/dist/kernel/routes/pages/root.cjs +0 -229
  385. package/dist/kernel/routes/pages/root.d.cts +0 -16
  386. package/dist/keyboard-shortcuts.cjs +0 -345
  387. package/dist/keyboard-shortcuts.d.cts +0 -34
  388. package/dist/resolvers/manifest-resolver.cjs +0 -111
  389. package/dist/resolvers/manifest-resolver.d.cts +0 -13
  390. package/dist/search.cjs +0 -411
  391. package/dist/search.d.cts +0 -20
  392. package/dist/types.cjs +0 -30
  393. package/dist/types.d.cts +0 -269
  394. package/dist/utils/cn.cjs +0 -49
  395. package/dist/utils/cn.d.cts +0 -15
  396. package/dist/utils/heading-ids.cjs +0 -119
  397. package/dist/utils/heading-ids.d.cts +0 -15
  398. package/dist/utils/pretty-date.cjs +0 -55
  399. package/dist/utils/pretty-date.d.cts +0 -6
  400. package/release/pnpm-lock.yaml +0 -1215
@@ -1,117 +1,48 @@
1
- // src/kernel/routes/metadata/robots.ts
1
+ // src/route-metadata-robots.ts
2
+ import { tags } from "@publish.os/nextjs/cache/tags";
2
3
  import { cacheLife, cacheTag } from "next/cache";
3
4
 
4
- // src/cache/tags.ts
5
- import { createHash } from "crypto";
6
- var MAX_TAG_LEN = 256;
7
- var MAX_SEGMENT_LEN = 80;
8
- var TAG_PATTERN = /^[a-z0-9:_./-]+$/;
9
- function sha256(value) {
10
- return createHash("sha256").update(value).digest("hex").slice(0, 16);
11
- }
12
- function safeSegment(value) {
13
- const raw = value.trim().toLowerCase() || "root";
14
- const normalized = raw.replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\//, "").replace(/\/$/, "").replace(/[^a-z0-9:_./-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
15
- const segment = normalized || "root";
16
- if (segment.length <= MAX_SEGMENT_LEN) return segment;
17
- return `${segment.slice(0, 48)}.${sha256(segment)}`;
18
- }
19
- function assertTag(tag) {
20
- if (tag.length > MAX_TAG_LEN || !TAG_PATTERN.test(tag)) {
21
- return `tag:${sha256(tag)}`;
5
+ // src/lib/runtime/metadata/canonical-url.ts
6
+ function canonicalUrl(manifest, path) {
7
+ let origin = manifest.site.url?.replace(/\/+$/, "");
8
+ if (!origin) return path;
9
+ try {
10
+ return new URL(path, `${origin}/`).toString();
11
+ } catch {
12
+ return path;
22
13
  }
23
- return tag;
24
14
  }
25
- var tags = {
26
- site() {
27
- return "site";
28
- },
29
- pages() {
30
- return "pages";
31
- },
32
- group(group) {
33
- return assertTag(`group:${safeSegment(group)}`);
34
- },
35
- page(group, slug) {
36
- const path = Array.isArray(slug) ? slug.join("/") : slug;
37
- return assertTag(`page:${safeSegment(group)}:${safeSegment(path)}`);
38
- },
39
- manifest(contentHash) {
40
- return assertTag(`manifest:${safeSegment(contentHash)}`);
41
- },
42
- sitemap() {
43
- return "sitemap";
44
- },
45
- robots() {
46
- return "robots";
47
- },
48
- llms(scope = "root") {
49
- return assertTag(`llms:${safeSegment(scope)}`);
50
- },
51
- feed(format, scope = "site") {
52
- return assertTag(`feed:${safeSegment(format)}:${safeSegment(scope)}`);
53
- }
54
- };
55
15
 
56
- // src/kernel/routes/response.ts
57
- var CACHE_CONTROL = "public, max-age=300, s-maxage=86400, stale-while-revalidate=3600, must-revalidate";
58
- var CDN_CACHE_CONTROL = "public, max-age=2592000, stale-while-revalidate=31536000";
59
- var SHORT_CACHE_CONTROL = "public, max-age=60, s-maxage=600, stale-while-revalidate=300, must-revalidate";
60
- var SHORT_CDN_CACHE_CONTROL = "public, max-age=300, stale-while-revalidate=3600";
16
+ // src/lib/runtime/response/cached-text-response.ts
17
+ var CACHE_CONTROL = "public, max-age=300, s-maxage=3600, stale-while-revalidate=3600, must-revalidate", CDN_CACHE_CONTROL = "public, max-age=3600, stale-while-revalidate=3600, must-revalidate", SHORT_CACHE_CONTROL = "public, max-age=60, s-maxage=600, stale-while-revalidate=300, must-revalidate", SHORT_CDN_CACHE_CONTROL = "public, max-age=300, stale-while-revalidate=3600";
61
18
  function cacheControl(policy) {
62
- if (!policy || policy === "default") return CACHE_CONTROL;
63
- if (policy === "short") return SHORT_CACHE_CONTROL;
64
- return policy;
19
+ return !policy || policy === "default" ? CACHE_CONTROL : policy === "short" ? SHORT_CACHE_CONTROL : policy;
65
20
  }
66
21
  function cdnCacheControl(policy) {
67
- if (!policy || policy === "default") return CDN_CACHE_CONTROL;
68
- if (policy === "short") return SHORT_CDN_CACHE_CONTROL;
69
- return policy;
22
+ return !policy || policy === "default" ? CDN_CACHE_CONTROL : policy === "short" ? SHORT_CDN_CACHE_CONTROL : policy;
70
23
  }
71
24
  function cachedTextHeaders(contentType, options = {}) {
72
- const headers = new Headers(options.headers);
73
- headers.set("cache-control", cacheControl(options.cachePolicy));
74
- headers.set("cdn-cache-control", cdnCacheControl(options.cachePolicy));
75
- headers.set("vercel-cdn-cache-control", cdnCacheControl(options.cachePolicy));
76
- headers.set("content-type", contentType);
77
- headers.set("x-content-type-options", "nosniff");
78
- if (options.noindex) headers.set("x-robots-tag", "noindex");
79
- return headers;
25
+ let headers = new Headers(options.headers);
26
+ return headers.set("cache-control", cacheControl(options.cachePolicy)), headers.set("cdn-cache-control", cdnCacheControl(options.cachePolicy)), headers.set("vercel-cdn-cache-control", cdnCacheControl(options.cachePolicy)), headers.set("content-type", contentType), headers.set("x-content-type-options", "nosniff"), options.noindex && headers.set("x-robots-tag", "noindex"), headers;
80
27
  }
81
28
  function createCachedTextResponse(options) {
82
- const status = options.status ?? 200;
83
- const method = options.method ?? "GET";
84
- const headers = cachedTextHeaders(options.contentType, options);
29
+ let status = options.status ?? 200, method = options.method ?? "GET", headers = cachedTextHeaders(options.contentType, options);
85
30
  return new Response(method === "HEAD" ? null : options.body, {
86
31
  headers,
87
32
  status
88
33
  });
89
34
  }
90
35
 
91
- // src/kernel/routes/metadata/canonical-url.ts
92
- function canonicalUrl(manifest, path) {
93
- const origin = manifest.site.url?.replace(/\/+$/, "");
94
- if (!origin) return path;
95
- try {
96
- return new URL(path, `${origin}/`).toString();
97
- } catch {
98
- return path;
99
- }
100
- }
101
-
102
- // src/kernel/routes/metadata/robots.ts
36
+ // src/route-metadata-robots.ts
103
37
  async function robotsTxt(manifest) {
104
38
  "use cache";
105
- cacheLife("page");
106
- cacheTag(tags.site(), tags.robots(), tags.manifest(manifest.contentHash));
107
- const sitemapUrl = canonicalUrl(manifest, "/sitemap.xml");
108
- return `User-agent: *
39
+ return cacheLife("page"), cacheTag(tags.site(), tags.robots(), tags.manifest(manifest.contentHash)), `User-agent: *
109
40
  Allow: /
110
- Sitemap: ${sitemapUrl}
41
+ Sitemap: ${canonicalUrl(manifest, "/sitemap.xml")}
111
42
  `;
112
43
  }
113
44
  function createRobotsTxtRoute(manifest) {
114
- return async function GET() {
45
+ return async function() {
115
46
  return createCachedTextResponse({
116
47
  body: await robotsTxt(manifest),
117
48
  contentType: "text/plain; charset=utf-8"
@@ -1,6 +1,5 @@
1
- import { ManifestLike } from '../../../types.js';
2
1
  import { MarkdownRouteArtifactManifest } from '../agent/markdown.js';
3
- import 'react';
2
+ import { M as ManifestLike } from '../../../types-CIwwieNw.js';
4
3
 
5
4
  declare function createSitemapXmlRoute(manifest: ManifestLike): () => Promise<Response>;
6
5
  declare function createSitemapMarkdownRoute(manifest: ManifestLike, artifactManifest: MarkdownRouteArtifactManifest): () => Promise<Response>;
@@ -1,129 +1,61 @@
1
- // src/kernel/routes/metadata/sitemap.ts
1
+ // src/route-metadata-sitemap.ts
2
+ import { tags } from "@publish.os/nextjs/cache/tags";
2
3
  import { cacheLife, cacheTag } from "next/cache";
3
4
 
4
- // src/cache/tags.ts
5
- import { createHash } from "crypto";
6
- var MAX_TAG_LEN = 256;
7
- var MAX_SEGMENT_LEN = 80;
8
- var TAG_PATTERN = /^[a-z0-9:_./-]+$/;
9
- function sha256(value) {
10
- return createHash("sha256").update(value).digest("hex").slice(0, 16);
11
- }
12
- function safeSegment(value) {
13
- const raw = value.trim().toLowerCase() || "root";
14
- const normalized = raw.replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\//, "").replace(/\/$/, "").replace(/[^a-z0-9:_./-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
15
- const segment = normalized || "root";
16
- if (segment.length <= MAX_SEGMENT_LEN) return segment;
17
- return `${segment.slice(0, 48)}.${sha256(segment)}`;
18
- }
19
- function assertTag(tag) {
20
- if (tag.length > MAX_TAG_LEN || !TAG_PATTERN.test(tag)) {
21
- return `tag:${sha256(tag)}`;
5
+ // src/lib/runtime/metadata/canonical-url.ts
6
+ function canonicalUrl(manifest, path) {
7
+ let origin = manifest.site.url?.replace(/\/+$/, "");
8
+ if (!origin) return path;
9
+ try {
10
+ return new URL(path, `${origin}/`).toString();
11
+ } catch {
12
+ return path;
22
13
  }
23
- return tag;
24
14
  }
25
- var tags = {
26
- site() {
27
- return "site";
28
- },
29
- pages() {
30
- return "pages";
31
- },
32
- group(group) {
33
- return assertTag(`group:${safeSegment(group)}`);
34
- },
35
- page(group, slug) {
36
- const path = Array.isArray(slug) ? slug.join("/") : slug;
37
- return assertTag(`page:${safeSegment(group)}:${safeSegment(path)}`);
38
- },
39
- manifest(contentHash) {
40
- return assertTag(`manifest:${safeSegment(contentHash)}`);
41
- },
42
- sitemap() {
43
- return "sitemap";
44
- },
45
- robots() {
46
- return "robots";
47
- },
48
- llms(scope = "root") {
49
- return assertTag(`llms:${safeSegment(scope)}`);
50
- },
51
- feed(format, scope = "site") {
52
- return assertTag(`feed:${safeSegment(format)}:${safeSegment(scope)}`);
53
- }
54
- };
55
15
 
56
- // src/kernel/routes/response.ts
57
- var CACHE_CONTROL = "public, max-age=300, s-maxage=86400, stale-while-revalidate=3600, must-revalidate";
58
- var CDN_CACHE_CONTROL = "public, max-age=2592000, stale-while-revalidate=31536000";
59
- var SHORT_CACHE_CONTROL = "public, max-age=60, s-maxage=600, stale-while-revalidate=300, must-revalidate";
60
- var SHORT_CDN_CACHE_CONTROL = "public, max-age=300, stale-while-revalidate=3600";
16
+ // src/lib/runtime/response/cached-text-response.ts
17
+ var CACHE_CONTROL = "public, max-age=300, s-maxage=3600, stale-while-revalidate=3600, must-revalidate", CDN_CACHE_CONTROL = "public, max-age=3600, stale-while-revalidate=3600, must-revalidate", SHORT_CACHE_CONTROL = "public, max-age=60, s-maxage=600, stale-while-revalidate=300, must-revalidate", SHORT_CDN_CACHE_CONTROL = "public, max-age=300, stale-while-revalidate=3600";
61
18
  function cacheControl(policy) {
62
- if (!policy || policy === "default") return CACHE_CONTROL;
63
- if (policy === "short") return SHORT_CACHE_CONTROL;
64
- return policy;
19
+ return !policy || policy === "default" ? CACHE_CONTROL : policy === "short" ? SHORT_CACHE_CONTROL : policy;
65
20
  }
66
21
  function cdnCacheControl(policy) {
67
- if (!policy || policy === "default") return CDN_CACHE_CONTROL;
68
- if (policy === "short") return SHORT_CDN_CACHE_CONTROL;
69
- return policy;
22
+ return !policy || policy === "default" ? CDN_CACHE_CONTROL : policy === "short" ? SHORT_CDN_CACHE_CONTROL : policy;
70
23
  }
71
24
  function cachedTextHeaders(contentType, options = {}) {
72
- const headers = new Headers(options.headers);
73
- headers.set("cache-control", cacheControl(options.cachePolicy));
74
- headers.set("cdn-cache-control", cdnCacheControl(options.cachePolicy));
75
- headers.set("vercel-cdn-cache-control", cdnCacheControl(options.cachePolicy));
76
- headers.set("content-type", contentType);
77
- headers.set("x-content-type-options", "nosniff");
78
- if (options.noindex) headers.set("x-robots-tag", "noindex");
79
- return headers;
25
+ let headers = new Headers(options.headers);
26
+ return headers.set("cache-control", cacheControl(options.cachePolicy)), headers.set("cdn-cache-control", cdnCacheControl(options.cachePolicy)), headers.set("vercel-cdn-cache-control", cdnCacheControl(options.cachePolicy)), headers.set("content-type", contentType), headers.set("x-content-type-options", "nosniff"), options.noindex && headers.set("x-robots-tag", "noindex"), headers;
80
27
  }
81
28
  function createCachedTextResponse(options) {
82
- const status = options.status ?? 200;
83
- const method = options.method ?? "GET";
84
- const headers = cachedTextHeaders(options.contentType, options);
29
+ let status = options.status ?? 200, method = options.method ?? "GET", headers = cachedTextHeaders(options.contentType, options);
85
30
  return new Response(method === "HEAD" ? null : options.body, {
86
31
  headers,
87
32
  status
88
33
  });
89
34
  }
90
35
 
91
- // src/kernel/routes/metadata/canonical-url.ts
92
- function canonicalUrl(manifest, path) {
93
- const origin = manifest.site.url?.replace(/\/+$/, "");
94
- if (!origin) return path;
95
- try {
96
- return new URL(path, `${origin}/`).toString();
97
- } catch {
98
- return path;
99
- }
100
- }
101
-
102
- // src/kernel/routes/metadata/sitemap.ts
36
+ // src/route-metadata-sitemap.ts
103
37
  function xmlEscape(value) {
104
38
  return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
105
39
  }
106
40
  async function sitemapXml(manifest) {
107
41
  "use cache";
108
- cacheLife("page");
109
- cacheTag(tags.site(), tags.sitemap(), tags.manifest(manifest.contentHash));
110
- const urls = [
42
+ cacheLife("page"), cacheTag(tags.site(), tags.sitemap(), tags.manifest(manifest.contentHash));
43
+ let urls = [
111
44
  "/",
112
45
  ...Object.values(manifest.groups).map((g) => g.path),
113
46
  ...manifest.pages.filter((page) => page.status === "published").map((page) => page.path)
114
47
  ];
115
- const uniqueUrls = [...new Set(urls)];
116
- const body = uniqueUrls.map(
117
- (url) => ` <url><loc>${xmlEscape(canonicalUrl(manifest, url))}</loc></url>`
118
- ).join("\n");
119
48
  return `<?xml version="1.0" encoding="UTF-8"?>
120
49
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
121
- ${body}
50
+ ${[...new Set(urls)].map(
51
+ (url) => ` <url><loc>${xmlEscape(canonicalUrl(manifest, url))}</loc></url>`
52
+ ).join(`
53
+ `)}
122
54
  </urlset>
123
55
  `;
124
56
  }
125
57
  function createSitemapXmlRoute(manifest) {
126
- return async function GET() {
58
+ return async function() {
127
59
  return createCachedTextResponse({
128
60
  body: await sitemapXml(manifest),
129
61
  contentType: "application/xml; charset=utf-8"
@@ -131,12 +63,10 @@ function createSitemapXmlRoute(manifest) {
131
63
  };
132
64
  }
133
65
  async function sitemapMarkdown(manifest, artifactManifest) {
134
- const groups = Object.values(manifest.groups).sort((a, b) => a.path.localeCompare(b.path)).map(
66
+ let groups = Object.values(manifest.groups).sort((a, b) => a.path.localeCompare(b.path)).map(
135
67
  (group) => `- [${group.title}](${canonicalUrl(manifest, group.path)})`
136
- );
137
- const pages = manifest.pages.filter((page) => page.status === "published").sort((a, b) => a.path.localeCompare(b.path)).map((page) => {
138
- const markdownPath = artifactManifest.byHtmlPath[page.path];
139
- const markdown = markdownPath ? ` ([Markdown](${canonicalUrl(manifest, markdownPath)}))` : "";
68
+ ), pages = manifest.pages.filter((page) => page.status === "published").sort((a, b) => a.path.localeCompare(b.path)).map((page) => {
69
+ let markdownPath = artifactManifest.byHtmlPath[page.path], markdown = markdownPath ? ` ([Markdown](${canonicalUrl(manifest, markdownPath)}))` : "";
140
70
  return `- [${page.title}](${canonicalUrl(manifest, page.path)})${markdown}`;
141
71
  });
142
72
  return [
@@ -146,14 +76,18 @@ async function sitemapMarkdown(manifest, artifactManifest) {
146
76
  `- [Full LLMS index](${canonicalUrl(manifest, "/llms-full.txt")})`,
147
77
  `- [XML sitemap](${canonicalUrl(manifest, "/sitemap.xml")})`,
148
78
  "## Sections",
149
- groups.length ? groups.join("\n") : `- [Home](${canonicalUrl(manifest, "/")})`,
79
+ groups.length ? groups.join(`
80
+ `) : `- [Home](${canonicalUrl(manifest, "/")})`,
150
81
  "## Pages",
151
- pages.length ? pages.join("\n") : `- [Home](${canonicalUrl(manifest, "/")})`,
82
+ pages.length ? pages.join(`
83
+ `) : `- [Home](${canonicalUrl(manifest, "/")})`,
152
84
  ""
153
- ].join("\n\n");
85
+ ].join(`
86
+
87
+ `);
154
88
  }
155
89
  function createSitemapMarkdownRoute(manifest, artifactManifest) {
156
- return async function GET() {
90
+ return async function() {
157
91
  return createCachedTextResponse({
158
92
  body: await sitemapMarkdown(manifest, artifactManifest),
159
93
  contentType: "text/markdown; charset=utf-8"
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Metadata } from 'next';
3
3
  import { ReactElement } from 'react';
4
- import { ManifestLike, IndexPageProps } from '../../../types.js';
5
4
  import { OgManifestLike } from '../metadata/og-image.js';
5
+ import { M as ManifestLike, I as IndexPageProps } from '../../../types-CIwwieNw.js';
6
6
 
7
7
  type IndexPageComponent = (props: IndexPageProps) => ReactElement | Promise<ReactElement>;
8
8
  type GroupRouteConfig = {
@@ -1,65 +1,13 @@
1
- // src/kernel/routes/pages/group.tsx
1
+ // src/route-page-group.tsx
2
+ import { tags } from "@publish.os/nextjs/cache/tags";
3
+ import { resolveGroup } from "@publish.os/nextjs/resolvers/manifest-resolver";
2
4
  import { cacheLife, cacheTag } from "next/cache";
3
5
  import { notFound } from "next/navigation";
4
6
 
5
- // src/cache/tags.ts
6
- import { createHash } from "crypto";
7
- var MAX_TAG_LEN = 256;
8
- var MAX_SEGMENT_LEN = 80;
9
- var TAG_PATTERN = /^[a-z0-9:_./-]+$/;
10
- function sha256(value) {
11
- return createHash("sha256").update(value).digest("hex").slice(0, 16);
12
- }
13
- function safeSegment(value) {
14
- const raw = value.trim().toLowerCase() || "root";
15
- const normalized = raw.replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\//, "").replace(/\/$/, "").replace(/[^a-z0-9:_./-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
16
- const segment = normalized || "root";
17
- if (segment.length <= MAX_SEGMENT_LEN) return segment;
18
- return `${segment.slice(0, 48)}.${sha256(segment)}`;
19
- }
20
- function assertTag(tag) {
21
- if (tag.length > MAX_TAG_LEN || !TAG_PATTERN.test(tag)) {
22
- return `tag:${sha256(tag)}`;
23
- }
24
- return tag;
25
- }
26
- var tags = {
27
- site() {
28
- return "site";
29
- },
30
- pages() {
31
- return "pages";
32
- },
33
- group(group) {
34
- return assertTag(`group:${safeSegment(group)}`);
35
- },
36
- page(group, slug) {
37
- const path = Array.isArray(slug) ? slug.join("/") : slug;
38
- return assertTag(`page:${safeSegment(group)}:${safeSegment(path)}`);
39
- },
40
- manifest(contentHash) {
41
- return assertTag(`manifest:${safeSegment(contentHash)}`);
42
- },
43
- sitemap() {
44
- return "sitemap";
45
- },
46
- robots() {
47
- return "robots";
48
- },
49
- llms(scope = "root") {
50
- return assertTag(`llms:${safeSegment(scope)}`);
51
- },
52
- feed(format, scope = "site") {
53
- return assertTag(`feed:${safeSegment(format)}:${safeSegment(scope)}`);
54
- }
55
- };
56
-
57
- // src/internal/utils/logger.ts
58
- var isDev = process.env.NODE_ENV !== "production";
59
- var isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1";
60
- var log = {
7
+ // src/lib/runtime/logging/logger.ts
8
+ var isDev = process.env.NODE_ENV !== "production", isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1", log = {
61
9
  debug(...args) {
62
- if (isDev && isDebugEnabled) console.debug("[publish.os:debug]", ...args);
10
+ isDev && isDebugEnabled && console.debug("[publish.os:debug]", ...args);
63
11
  },
64
12
  info(...args) {
65
13
  console.log("[publish.os]", ...args);
@@ -72,34 +20,10 @@ var log = {
72
20
  }
73
21
  };
74
22
 
75
- // src/resolvers/manifest-resolver.ts
76
- function groupNode(group) {
77
- return {
78
- type: "section",
79
- id: group.key,
80
- title: group.title,
81
- path: group.path,
82
- group: group.key,
83
- children: group.tree
84
- };
85
- }
86
- function resolveGroup(manifest, group) {
87
- const groupData = manifest.groups[group];
88
- if (!groupData) return null;
89
- return {
90
- site: manifest.site,
91
- tree: groupData.tree,
92
- node: groupNode(groupData),
93
- currentPath: groupData.path,
94
- group
95
- };
96
- }
97
-
98
- // src/kernel/routes/pages/agent-metadata.ts
23
+ // src/lib/runtime/metadata/agent-metadata.ts
99
24
  function normalizePath(path) {
100
- const prefixed = path.startsWith("/") ? path : `/${path}`;
101
- if (prefixed === "/") return prefixed;
102
- return prefixed.replace(/\/+$/, "");
25
+ let prefixed = path.startsWith("/") ? path : `/${path}`;
26
+ return prefixed === "/" ? prefixed : prefixed.replace(/\/+$/, "");
103
27
  }
104
28
  function agentReadableAlternates({
105
29
  canonicalPath,
@@ -115,15 +39,14 @@ function agentReadableAlternates({
115
39
  };
116
40
  }
117
41
 
118
- // src/kernel/routes/pages/social-metadata.ts
119
- function isDevelopment() {
120
- return process.env.NODE_ENV === "development";
121
- }
122
- function absoluteUrl(path, siteUrl) {
123
- if (/^https:\/\//.test(path)) return path;
124
- if (isDevelopment()) return path;
125
- if (!siteUrl) return path;
126
- return new URL(path, siteUrl).toString();
42
+ // src/lib/runtime/metadata/social-metadata.ts
43
+ function absoluteUrl({
44
+ path,
45
+ siteUrl
46
+ }) {
47
+ if (/^https?:\/\//i.test(path)) return path;
48
+ if (siteUrl)
49
+ return new URL(path, siteUrl).toString();
127
50
  }
128
51
  function createSocialMetadata({
129
52
  canonicalPath,
@@ -133,26 +56,20 @@ function createSocialMetadata({
133
56
  title,
134
57
  type = "website"
135
58
  }) {
136
- const key = ogManifest?.routes?.[canonicalPath];
137
- const rootKey = ogManifest?.routes?.["/"];
138
- const entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0);
139
- if (!entry) {
140
- return {
141
- openGraph: {
142
- description,
143
- title,
144
- type,
145
- url: canonicalPath
146
- },
147
- twitter: {
148
- card: "summary",
149
- description,
150
- title
151
- }
152
- };
153
- }
154
- const imageUrl = absoluteUrl(entry.url, manifest.site.url);
155
- return {
59
+ let key = ogManifest?.routes?.[canonicalPath], rootKey = ogManifest?.routes?.["/"], entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0), url = absoluteUrl({ path: canonicalPath, siteUrl: manifest.site.url }), imageUrl = entry ? absoluteUrl({ path: entry.url, siteUrl: manifest.site.url }) : void 0;
60
+ return !entry || !imageUrl ? {
61
+ openGraph: {
62
+ description,
63
+ title,
64
+ type,
65
+ ...url ? { url } : {}
66
+ },
67
+ twitter: {
68
+ card: "summary",
69
+ description,
70
+ title
71
+ }
72
+ } : {
156
73
  openGraph: {
157
74
  description,
158
75
  images: [
@@ -166,7 +83,7 @@ function createSocialMetadata({
166
83
  siteName: manifest.site.name,
167
84
  title,
168
85
  type,
169
- url: canonicalPath
86
+ ...url ? { url } : {}
170
87
  },
171
88
  twitter: {
172
89
  card: "summary_large_image",
@@ -177,33 +94,24 @@ function createSocialMetadata({
177
94
  };
178
95
  }
179
96
 
180
- // src/kernel/routes/pages/group.tsx
97
+ // src/route-page-group.tsx
181
98
  import { jsx } from "react/jsx-runtime";
182
- var manifests = /* @__PURE__ */ new Map();
183
- var indexPages = /* @__PURE__ */ new Map();
99
+ var manifests = /* @__PURE__ */ new Map(), indexPages = /* @__PURE__ */ new Map();
184
100
  async function CachedGroupPage({ group }) {
185
101
  "use cache";
186
- cacheLife("page");
187
- cacheTag(tags.site(), tags.group(group));
188
- const manifest = manifests.get(group);
189
- const IndexPage = indexPages.get(group);
190
- if (!manifest || !IndexPage) notFound();
191
- cacheTag(tags.manifest(manifest.contentHash));
192
- log.debug("[cache]", group);
193
- const resolved = resolveGroup(manifest, group);
194
- if (!resolved) notFound();
195
- return /* @__PURE__ */ jsx(IndexPage, { ...resolved });
102
+ cacheLife("page"), cacheTag(tags.site(), tags.group(group));
103
+ let manifest = manifests.get(group), IndexPage = indexPages.get(group);
104
+ (!manifest || !IndexPage) && notFound(), cacheTag(tags.manifest(manifest.contentHash)), log.debug("[cache]", group);
105
+ let resolved = resolveGroup(manifest, group);
106
+ return resolved || notFound(), /* @__PURE__ */ jsx(IndexPage, { ...resolved });
196
107
  }
197
108
  function createGroupPage({
198
109
  group,
199
110
  manifest,
200
111
  IndexPage
201
112
  }) {
202
- manifests.set(group, manifest);
203
- indexPages.set(group, IndexPage);
204
- return async function Page() {
205
- log.debug("[render]", group);
206
- return /* @__PURE__ */ jsx(CachedGroupPage, { group });
113
+ return manifests.set(group, manifest), indexPages.set(group, IndexPage), async function() {
114
+ return log.debug("[render]", group), /* @__PURE__ */ jsx(CachedGroupPage, { group });
207
115
  };
208
116
  }
209
117
  function createGroupMetadata({
@@ -211,10 +119,7 @@ function createGroupMetadata({
211
119
  manifest,
212
120
  ogManifest
213
121
  }) {
214
- const groupData = manifest.groups[group];
215
- const title = groupData?.title ?? group;
216
- const description = manifest.site.description;
217
- const canonicalPath = groupData?.path ?? `/${group}`;
122
+ let groupData = manifest.groups[group], title = groupData?.title ?? group, description = manifest.site.description, canonicalPath = groupData?.path ?? `/${group}`;
218
123
  return {
219
124
  title,
220
125
  description,
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Metadata } from 'next';
3
3
  import { ReactElement, ReactNode } from 'react';
4
+ import { O as OgManifestLike } from '../../../route-metadata-og-image-BeKKFHg7.js';
4
5
  import { PageProps, ManifestLike, ResolvedAttribution } from '../../../types.js';
5
- import { OgManifestLike } from '../metadata/og-image.js';
6
6
 
7
7
  type LeafComponent = (props: PageProps) => ReactElement | Promise<ReactElement>;
8
8
  type PoweredByFooterComponent = (props: {