@publish.os/nextjs 0.0.1-alpha.81 → 0.0.1-alpha.91

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 (265) hide show
  1. package/compiler-assets/nextjs/defaults/app/globals.css +1 -0
  2. package/compiler-assets/nextjs/defaults/group/index.tsx +50 -0
  3. package/compiler-assets/nextjs/defaults/group/layout.tsx +8 -8
  4. package/compiler-assets/nextjs/defaults/group/page.tsx +44 -43
  5. package/compiler-assets/nextjs/defaults/project/next.config.mjs +33 -13
  6. package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +10 -3
  7. package/compiler-assets/nextjs/defaults/root/css/animation.css +131 -0
  8. package/compiler-assets/nextjs/defaults/root/css/components/code-block.css +18 -0
  9. package/compiler-assets/nextjs/defaults/root/css/components/dialog.css +4 -1
  10. package/compiler-assets/nextjs/defaults/root/css/components/menu.css +1 -1
  11. package/compiler-assets/nextjs/defaults/root/css/components/navigation-menu.css +1 -1
  12. package/compiler-assets/nextjs/defaults/root/css/components/popover.css +1 -1
  13. package/compiler-assets/nextjs/defaults/root/css/components/select.css +1 -1
  14. package/compiler-assets/nextjs/defaults/root/css/components/tooltip.css +1 -1
  15. package/compiler-assets/nextjs/defaults/root/css/shadow.css +6 -25
  16. package/compiler-assets/nextjs/defaults/root/css/typography.css +51 -68
  17. package/compiler-assets/nextjs/defaults/root/globals.css +25 -0
  18. package/compiler-assets/nextjs/defaults/root/{page.tsx → index.tsx} +6 -2
  19. package/compiler-assets/nextjs/defaults/root/layout.tsx +7 -1
  20. package/compiler-assets/nextjs/defaults/root/theme.css +22 -22
  21. package/compiler-assets/nextjs/shims/document.tsx +38 -0
  22. package/compiler-assets/nextjs/shims/generated-group-page.tsx +19 -2
  23. package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +18 -2
  24. package/compiler-assets/nextjs/shims/global-layout.tsx +19 -85
  25. package/compiler-assets/nextjs/shims/global-not-found.tsx +69 -0
  26. package/compiler-assets/nextjs/shims/markdown-route.ts +2 -0
  27. package/compiler-assets/nextjs/shims/metadata-icons.tsx +39 -0
  28. package/compiler-assets/nextjs/shims/not-found-content.tsx +53 -0
  29. package/compiler-assets/nextjs/shims/not-found-navigation.tsx +60 -0
  30. package/compiler-assets/nextjs/shims/proxy.ts +143 -65
  31. package/compiler-assets/nextjs/shims/publish-os-theme-provider.tsx +76 -15
  32. package/compiler-assets/nextjs/shims/root-page.tsx +7 -1
  33. package/compiler-assets/nextjs/shims/site-fenced-code-block.tsx +30 -0
  34. package/compiler-assets/nextjs/shims/site-heading-level.tsx +14 -0
  35. package/compiler-assets/nextjs/shims/site-mdx-components.tsx +112 -0
  36. package/compiler-assets/nextjs/shims/site-mdx.tsx +17 -0
  37. package/compiler-assets/nextjs/shims/theme-defaults.css +41 -25
  38. package/dist/build-operation-5QMLXF7N.js +89 -0
  39. package/dist/{button-CFdx-ohV.d.ts → button-BdCScEKi.d.ts} +6 -6
  40. package/dist/capture-local-source-WGGDIUU2.js +258 -0
  41. package/dist/chunk-22RSSUNV.js +13 -0
  42. package/dist/chunk-4BC2L2KA.js +620 -0
  43. package/dist/chunk-5J3YUNRY.js +121 -0
  44. package/dist/chunk-5KAD7W53.js +248 -0
  45. package/dist/chunk-6C65KV7O.js +142 -0
  46. package/dist/chunk-6D2E6UMD.js +695 -0
  47. package/dist/chunk-7NY22B5U.js +161 -0
  48. package/dist/chunk-AI2UULNX.js +9 -0
  49. package/dist/chunk-EFO6AWXN.js +19 -0
  50. package/dist/chunk-F3AGNDF4.js +2377 -0
  51. package/dist/chunk-GBPLER5H.js +426 -0
  52. package/dist/chunk-IL4RJOKI.js +186 -0
  53. package/dist/chunk-NNBJZPFM.js +193 -0
  54. package/dist/chunk-ORIUWJBQ.js +58 -0
  55. package/dist/chunk-OXOFRXEI.js +7129 -0
  56. package/dist/chunk-UYGCOWRF.js +1709 -0
  57. package/dist/chunk-WL75GQ5M.js +80 -0
  58. package/dist/compiler.d.ts +54 -7
  59. package/dist/compiler.js +121 -13147
  60. package/dist/components/blocks/agent-actions.d.ts +81 -0
  61. package/dist/components/blocks/agent-actions.js +594 -0
  62. package/dist/components/blocks/toc.d.ts +43 -0
  63. package/dist/components/blocks/toc.js +136 -0
  64. package/dist/components/ui/button.d.ts +5 -0
  65. package/dist/components/ui/button.js +94 -0
  66. package/dist/compose-CVBJRAF6.js +16 -0
  67. package/dist/config/createNextConfig.js +27 -0
  68. package/dist/dev-operation-OSHHWRWK.js +1095 -0
  69. package/dist/framework-selection-ZVO323PK.js +11 -0
  70. package/dist/ide-support-CU6Z5PVR.js +16 -0
  71. package/dist/index.d.ts +55 -4
  72. package/dist/jsx-dev-runtime.d.ts +6 -0
  73. package/dist/jsx-dev-runtime.js +100 -0
  74. package/dist/jsx-runtime.d.ts +7 -0
  75. package/dist/jsx-runtime.js +97 -0
  76. package/dist/kernel/components/blocks/AgentActions.d.ts +35 -6
  77. package/dist/kernel/components/blocks/AgentActions.js +401 -150
  78. package/dist/kernel/components/blocks/agent-actions.d.ts +5 -0
  79. package/dist/kernel/components/blocks/agent-actions.js +594 -0
  80. package/dist/kernel/components/blocks/animated-icon-swap.js +1 -1
  81. package/dist/kernel/components/blocks/color-palette.js +4 -4
  82. package/dist/kernel/components/blocks/logo-block.js +3 -3
  83. package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +10 -2
  84. package/dist/kernel/components/blocks/nav-breadcrumb.js +22 -7
  85. package/dist/kernel/components/blocks/navbar.d.ts +2 -2
  86. package/dist/kernel/components/blocks/navbar.js +406 -65
  87. package/dist/kernel/components/blocks/navigation-progress.js +6 -3
  88. package/dist/kernel/components/blocks/next-prev.d.ts +1 -1
  89. package/dist/kernel/components/blocks/next-prev.js +12 -24
  90. package/dist/kernel/components/blocks/page-list.d.ts +1 -1
  91. package/dist/kernel/components/blocks/page-list.js +7 -6
  92. package/dist/kernel/components/blocks/search.d.ts +83 -58
  93. package/dist/kernel/components/blocks/search.js +554 -428
  94. package/dist/kernel/components/blocks/sidebar-node.d.ts +2 -2
  95. package/dist/kernel/components/blocks/sidebar-node.js +12 -10
  96. package/dist/kernel/components/blocks/sidebar.d.ts +3 -3
  97. package/dist/kernel/components/blocks/sidebar.js +24 -14
  98. package/dist/kernel/components/blocks/theme-toggle.d.ts +2 -2
  99. package/dist/kernel/components/blocks/theme-toggle.js +47 -1
  100. package/dist/kernel/components/blocks/toc-client.d.ts +40 -0
  101. package/dist/kernel/components/blocks/toc-client.js +495 -0
  102. package/dist/kernel/components/blocks/toc.d.ts +19 -1
  103. package/dist/kernel/components/blocks/toc.js +122 -180
  104. package/dist/kernel/components/mdx/components/blockquote.js +2 -2
  105. package/dist/kernel/components/mdx/components/callout.d.ts +5 -7
  106. package/dist/kernel/components/mdx/components/callout.js +67 -36
  107. package/dist/kernel/components/mdx/components/code-block.d.ts +5 -2
  108. package/dist/kernel/components/mdx/components/code-block.js +106 -5
  109. package/dist/kernel/components/mdx/components/copy-code-button.d.ts +8 -0
  110. package/dist/kernel/components/mdx/components/copy-code-button.js +61 -0
  111. package/dist/kernel/components/mdx/components/figure-caption.d.ts +1 -1
  112. package/dist/kernel/components/mdx/components/figure-caption.js +4 -3
  113. package/dist/kernel/components/mdx/components/figure.d.ts +6 -2
  114. package/dist/kernel/components/mdx/components/figure.js +24 -14
  115. package/dist/kernel/components/mdx/components/footnotes.js +1 -1
  116. package/dist/kernel/components/mdx/components/heading-copy-link.js +4 -4
  117. package/dist/kernel/components/mdx/components/heading.js +6 -3
  118. package/dist/kernel/components/mdx/components/hr.js +2 -2
  119. package/dist/kernel/components/mdx/components/image-zoom.js +2 -2
  120. package/dist/kernel/components/mdx/components/image.d.ts +1 -1
  121. package/dist/kernel/components/mdx/components/image.js +94 -68
  122. package/dist/kernel/components/mdx/components/inline-code.js +2 -2
  123. package/dist/kernel/components/mdx/components/kbd.d.ts +2 -2
  124. package/dist/kernel/components/mdx/components/kbd.js +5 -4
  125. package/dist/kernel/components/mdx/components/link.d.ts +35 -4
  126. package/dist/kernel/components/mdx/components/link.js +3 -3
  127. package/dist/kernel/components/mdx/components/paragraph.js +2 -5
  128. package/dist/kernel/components/mdx/components/strikethrough.js +1 -1
  129. package/dist/kernel/components/mdx/components/table.js +2 -2
  130. package/dist/kernel/components/mdx/components/task-list.js +2 -2
  131. package/dist/kernel/components/mdx/components/video-player.d.ts +6 -2
  132. package/dist/kernel/components/mdx/components/video-player.js +8 -4
  133. package/dist/kernel/components/mdx/components/video.d.ts +5 -3
  134. package/dist/kernel/components/mdx/components/video.js +8 -6
  135. package/dist/kernel/components/mdx/error-boundary.js +2 -2
  136. package/dist/kernel/components/mdx/error-fallback.js +1 -1
  137. package/dist/kernel/components/mdx/mdx.d.ts +28 -14
  138. package/dist/kernel/components/mdx/mdx.js +336 -63
  139. package/dist/kernel/components/mdx/rehype-heading-ids.d.ts +1 -0
  140. package/dist/kernel/components/mdx/rehype-heading-ids.js +6 -4
  141. package/dist/kernel/components/next-image.d.ts +12 -0
  142. package/dist/kernel/components/next-image.js +61 -0
  143. package/dist/kernel/components/ui/accordion.js +1 -1
  144. package/dist/kernel/components/ui/breadcrumb-trail.d.ts +6 -23
  145. package/dist/kernel/components/ui/breadcrumb-trail.js +2 -2
  146. package/dist/kernel/components/ui/breadcrumb.d.ts +11 -3
  147. package/dist/kernel/components/ui/breadcrumb.js +10 -8
  148. package/dist/kernel/components/ui/button-group.js +8 -7
  149. package/dist/kernel/components/ui/button.d.ts +58 -6
  150. package/dist/kernel/components/ui/button.js +43 -39
  151. package/dist/kernel/components/ui/card.d.ts +2 -2
  152. package/dist/kernel/components/ui/card.js +1 -1
  153. package/dist/kernel/components/ui/dialog.js +1 -1
  154. package/dist/kernel/components/ui/drawer.d.ts +3 -1
  155. package/dist/kernel/components/ui/drawer.js +6 -2
  156. package/dist/kernel/components/ui/input.d.ts +2 -2
  157. package/dist/kernel/components/ui/input.js +1 -1
  158. package/dist/kernel/components/ui/kbd.js +10 -17
  159. package/dist/kernel/components/ui/link.d.ts +11 -3
  160. package/dist/kernel/components/ui/link.js +12 -11
  161. package/dist/kernel/components/ui/menu.js +6 -6
  162. package/dist/kernel/components/ui/mod-key.d.ts +10 -0
  163. package/dist/kernel/components/ui/mod-key.js +36 -0
  164. package/dist/kernel/components/ui/navigation-menu.js +3 -3
  165. package/dist/kernel/components/ui/popover.js +1 -1
  166. package/dist/kernel/components/ui/progress.js +2 -2
  167. package/dist/kernel/components/ui/scroll-area.js +5 -5
  168. package/dist/kernel/components/ui/select.js +8 -11
  169. package/dist/kernel/components/ui/separator.js +1 -1
  170. package/dist/kernel/components/ui/table.js +1 -1
  171. package/dist/kernel/components/ui/tabs.js +1 -1
  172. package/dist/kernel/components/ui/tag.js +1 -1
  173. package/dist/kernel/components/ui/text.d.ts +2 -2
  174. package/dist/kernel/components/ui/text.js +1 -1
  175. package/dist/kernel/components/ui/toast.js +1 -1
  176. package/dist/kernel/components/ui/tooltip.js +1 -1
  177. package/dist/kernel/defaults.registry.d.ts +11 -24
  178. package/dist/kernel/defaults.registry.js +11 -26
  179. package/dist/kernel/routes/agent/markdown.d.ts +3 -1
  180. package/dist/kernel/routes/agent/markdown.js +219 -48
  181. package/dist/kernel/routes/layouts/group.d.ts +1 -1
  182. package/dist/kernel/routes/layouts/group.js +5 -7
  183. package/dist/kernel/routes/metadata/feed.d.ts +1 -1
  184. package/dist/kernel/routes/metadata/feed.js +111 -81
  185. package/dist/kernel/routes/metadata/llms.d.ts +12 -3
  186. package/dist/kernel/routes/metadata/llms.js +156 -59
  187. package/dist/kernel/routes/metadata/og-image.js +1 -1
  188. package/dist/kernel/routes/metadata/robots.d.ts +1 -1
  189. package/dist/kernel/routes/metadata/robots.js +2 -2
  190. package/dist/kernel/routes/metadata/sitemap.d.ts +26 -4
  191. package/dist/kernel/routes/metadata/sitemap.js +206 -38
  192. package/dist/kernel/routes/not-found.d.ts +34 -0
  193. package/dist/kernel/routes/not-found.js +213 -0
  194. package/dist/kernel/routes/pages/group.d.ts +2 -2
  195. package/dist/kernel/routes/pages/group.js +21 -13
  196. package/dist/kernel/routes/pages/leaf.d.ts +28 -1
  197. package/dist/kernel/routes/pages/leaf.js +25 -16
  198. package/dist/kernel/routes/pages/root.js +19 -13
  199. package/dist/keyboard-shortcuts.js +1 -1
  200. package/dist/resolvers/manifest-resolver.js +29 -6
  201. package/dist/search.d.ts +6 -7
  202. package/dist/search.js +52 -29
  203. package/dist/{sidebar-types-Bgchdfd6.d.ts → sidebar-types-DKpR27II.d.ts} +1 -1
  204. package/dist/theme-scope.js +1 -1
  205. package/dist/{types-DHBm7-j6.d.ts → types-CJWRG05y.d.ts} +20 -1
  206. package/dist/{types-B_b3C0U6.d.ts → types-CUtrppxt.d.ts} +8 -2
  207. package/dist/{types-CIwwieNw.d.ts → types-J2w_puPF.d.ts} +11 -10
  208. package/dist/types.d.ts +15 -6
  209. package/dist/utils/heading-ids.js +30 -11
  210. package/dist/utils/toc-selection.d.ts +7 -0
  211. package/dist/utils/toc-selection.js +14 -0
  212. package/dist/validate-local-source-SV44DBQT.js +16 -0
  213. package/dist/validate-publish-os-source-NZJF3TB2.js +14 -0
  214. package/init/seed/minimal/.gitignore +1 -0
  215. package/init/seed/minimal/publish.os/assets/blog/hello-world.svg +13 -0
  216. package/init/seed/minimal/publish.os/assets/favicon.dark.svg +13 -0
  217. package/init/seed/minimal/publish.os/assets/favicon.svg +13 -0
  218. package/init/seed/minimal/publish.os/blog/content/hello-world.mdx +48 -0
  219. package/init/seed/minimal/publish.os/blog/content/series-a.mdx +11 -0
  220. package/init/seed/minimal/publish.os/blog/index.tsx +82 -0
  221. package/init/seed/minimal/publish.os/blog/layout.tsx +13 -0
  222. package/init/seed/minimal/publish.os/blog/page.tsx +76 -0
  223. package/init/seed/minimal/publish.os/components/blog/copy-link.tsx +64 -0
  224. package/init/seed/minimal/publish.os/docs/content/get-started.mdx +6 -11
  225. package/init/seed/minimal/publish.os/docs/content/groups.mdx +6 -7
  226. package/init/seed/minimal/publish.os/docs/content/{theme.mdx → themes.mdx} +14 -12
  227. package/init/seed/minimal/publish.os/publish.os.config.json +7 -7
  228. package/init/seed/minimal/publish.os/theme.css +52 -24
  229. package/init/seed/minimal/publish.os/tsconfig.json +3 -0
  230. package/init/seed/minimal/seed.json +12 -2
  231. package/init/seed/scratch/publish.os/docs/content/get-started.mdx +6 -0
  232. package/init/seed/scratch/publish.os/publish.os.config.json +4 -0
  233. package/init/seed/scratch/seed.json +5 -0
  234. package/package.json +55 -44
  235. package/release/app/phosphor/package.json +5 -5
  236. package/release/app/phosphor/pnpm-lock.yaml.template +553 -377
  237. package/release/app/phosphor/pnpm-workspace.yaml +3 -0
  238. package/release/compiler/package.json +5 -3
  239. package/release/compiler/pnpm-lock.yaml.template +500 -303
  240. package/release/compiler/pnpm-workspace.yaml +3 -0
  241. package/release/release.json +8 -37
  242. package/compiler-assets/nextjs/defaults/group/leaf.tsx +0 -48
  243. package/dist/icons.d.ts +0 -1
  244. package/dist/icons.js +0 -2
  245. package/dist/kernel/components/blocks/design-system-preview.d.ts +0 -61
  246. package/dist/kernel/components/blocks/design-system-preview.js +0 -648
  247. package/dist/kernel/components/blocks/link-playground.d.ts +0 -5
  248. package/dist/kernel/components/blocks/link-playground.js +0 -744
  249. package/dist/kernel/components/blocks/navigation-progress-playground.d.ts +0 -5
  250. package/dist/kernel/components/blocks/navigation-progress-playground.js +0 -629
  251. package/dist/kernel/components/mdx/components/pre.d.ts +0 -6
  252. package/dist/kernel/components/mdx/components/pre.js +0 -18
  253. package/dist/kernel/components/ui/meta-key.d.ts +0 -17
  254. package/dist/kernel/components/ui/meta-key.js +0 -9
  255. package/dist/kernel/components/ui/theme-toggle.d.ts +0 -24
  256. package/dist/kernel/components/ui/theme-toggle.js +0 -58
  257. package/dist/kernel/framework-icons.d.ts +0 -1
  258. package/dist/kernel/framework-icons.js +0 -39
  259. package/dist/link-CYaCRDb6.d.ts +0 -35
  260. package/release/app/lucide/package.json +0 -30
  261. package/release/app/lucide/pnpm-lock.yaml.template +0 -2905
  262. package/release/app/lucide/pnpm-workspace.yaml +0 -11
  263. package/release/app/tabler/package.json +0 -30
  264. package/release/app/tabler/pnpm-lock.yaml.template +0 -2911
  265. package/release/app/tabler/pnpm-workspace.yaml +0 -11
@@ -0,0 +1,80 @@
1
+ // src/lib/compiler/internal/path-containment.ts
2
+ import * as systemPath from "path";
3
+ function relativePath(parent, child, pathImplementation) {
4
+ return pathImplementation.relative(
5
+ pathImplementation.resolve(parent),
6
+ pathImplementation.resolve(child)
7
+ );
8
+ }
9
+ function isContainedRelativePath(path, pathImplementation) {
10
+ return !pathImplementation.isAbsolute(path) && path !== ".." && !path.startsWith(`..${pathImplementation.sep}`);
11
+ }
12
+ function isSameOrDescendant(parent, child, pathImplementation = systemPath) {
13
+ let path = relativePath(parent, child, pathImplementation);
14
+ return path === "" || isContainedRelativePath(path, pathImplementation);
15
+ }
16
+ function isDescendant(parent, child, pathImplementation = systemPath) {
17
+ let path = relativePath(parent, child, pathImplementation);
18
+ return path !== "" && isContainedRelativePath(path, pathImplementation);
19
+ }
20
+
21
+ // src/lib/compiler/source/source-paths.ts
22
+ function isOsMetadataPath(relativePath2) {
23
+ return relativePath2.split(/[\\/]/).includes(".DS_Store");
24
+ }
25
+ function isExcludedSourcePath(relativePath2) {
26
+ let segments = relativePath2.split(/[\\/]/);
27
+ return isOsMetadataPath(relativePath2) || relativePath2 === "tsconfig.json" || segments[0] === ".publish.os" || segments.includes("publish.os");
28
+ }
29
+ var ROOT_FILES = /* @__PURE__ */ new Set(["publish.os.config.json", "tsconfig.json"]), RENDERER_FILES = /* @__PURE__ */ new Set([
30
+ "layout.tsx",
31
+ "index.tsx",
32
+ "page.tsx",
33
+ "(index)/layout.tsx",
34
+ "(index)/index.tsx",
35
+ "(page)/layout.tsx",
36
+ "(page)/page.tsx"
37
+ ]), ROOT_DIRECTORIES = ["assets/", "components/", "content/"], RESERVED_DIRECTORIES = /* @__PURE__ */ new Set([
38
+ "app",
39
+ "pages",
40
+ "node_modules",
41
+ ".publish.os",
42
+ "[...slug]"
43
+ ]), RESERVED_FILES = /* @__PURE__ */ new Set([
44
+ "postcss.config.js",
45
+ "postcss.config.mjs",
46
+ "postcss.config.cjs"
47
+ ]), FRAMEWORK_BOUNDARY_FILE_PATTERNS = [
48
+ /^middleware\.[cm]?[jt]sx?$/,
49
+ /^route\.[cm]?[jt]sx?$/,
50
+ /^instrumentation(?:\.[\w-]+)?\.[cm]?[jt]sx?$/,
51
+ /^proxy\.[cm]?[jt]sx?$/,
52
+ /^next\.config\./
53
+ ];
54
+ function isFrameworkBoundaryFile(name) {
55
+ return FRAMEWORK_BOUNDARY_FILE_PATTERNS.some((pattern) => pattern.test(name));
56
+ }
57
+ function isReservedFrameworkPath(path) {
58
+ let segments = path.split("/"), name = segments.at(-1) ?? path;
59
+ return segments.some((segment) => RESERVED_DIRECTORIES.has(segment)) || RESERVED_FILES.has(name) || isFrameworkBoundaryFile(name) || /^(?:loading|error|not-found)\.[cm]?[jt]sx?$/.test(name);
60
+ }
61
+ function isSourceCssPath(path) {
62
+ return path.endsWith(".css") && (!path.includes("/") || path.startsWith("css/"));
63
+ }
64
+ function isApprovedGroupPath(path, folder) {
65
+ if (!folder || !path.startsWith(`${folder}/`)) return !1;
66
+ let localPath = path.slice(folder.length + 1), groupName = folder.split("/").at(-1)?.replace(/^\((.*)\)$/, "$1");
67
+ return localPath === `${groupName}.config.json` || RENDERER_FILES.has(localPath) || isSourceCssPath(localPath) || localPath.startsWith("content/");
68
+ }
69
+ function isApprovedPublishOsPath(path, groupFolders) {
70
+ return ROOT_FILES.has(path) || RENDERER_FILES.has(path) || isSourceCssPath(path) || ROOT_DIRECTORIES.some((directory) => path.startsWith(directory)) || [...groupFolders].some((folder) => isApprovedGroupPath(path, folder));
71
+ }
72
+
73
+ export {
74
+ isSameOrDescendant,
75
+ isDescendant,
76
+ isOsMetadataPath,
77
+ isExcludedSourcePath,
78
+ isReservedFrameworkPath,
79
+ isApprovedPublishOsPath
80
+ };
@@ -1,4 +1,15 @@
1
1
  type FrameworkOperation = "validate" | "compose" | "dev" | "build";
2
+ type FrameworkPrivateComposition = {
3
+ appFiles: Array<{
4
+ path: string;
5
+ content: string;
6
+ }>;
7
+ publicPaths: string[];
8
+ sourceFiles: Array<{
9
+ path: string;
10
+ content: string;
11
+ }>;
12
+ };
2
13
  type LocalOperationContext = {
3
14
  sourceRoot: string;
4
15
  sourceDir: string;
@@ -6,11 +17,13 @@ type LocalOperationContext = {
6
17
  outputDir: string;
7
18
  signal: AbortSignal;
8
19
  replaceOutput: (run: (stagingDir: string) => Promise<void>) => Promise<void>;
9
- onShutdown: (stop: () => Promise<void>) => void;
20
+ onShutdown: (stop: () => Promise<void>) => () => void;
10
21
  };
11
22
  type LocalOperationOptions<T> = {
12
23
  sourceRoot: string;
13
24
  operation: "build" | "dev";
25
+ /** Private stable identity for one checkout preview; never an output path. */
26
+ scope?: string;
14
27
  outputDir?: string;
15
28
  signal?: AbortSignal;
16
29
  run: (context: LocalOperationContext) => Promise<T>;
@@ -24,6 +37,17 @@ type FrameworkRequest = {
24
37
  originalSource?: string;
25
38
  };
26
39
  context?: {
40
+ /** Explicit maintainer input. Omitted when execution follows the authored pin. */
41
+ framework?: {
42
+ packageName: "@publish.os/nextjs";
43
+ version: string;
44
+ } & ({
45
+ kind: "checkout";
46
+ packageRoot: string;
47
+ } | {
48
+ kind: "candidate";
49
+ integrity: string;
50
+ });
27
51
  archive?: {
28
52
  path: string;
29
53
  integrity: string;
@@ -37,18 +61,17 @@ type FrameworkRequest = {
37
61
  sourceRevision?: string;
38
62
  /** Exact caller-owned pnpm executable. Local commands never search PATH. */
39
63
  pnpmExecutable?: string;
40
- /** Request local IDE preparation; omitted for hosted validation and composition. */
64
+ /** Optional generated editor support for the selected framework. */
41
65
  ide?: {
42
66
  finalSourceRoot?: string;
43
67
  };
44
68
  /** Local development origin, supplied after selecting an available port. */
45
69
  previewUrl?: string;
46
- };
47
- consent?: {
48
- installation?: boolean;
49
- composition?: boolean;
70
+ /** App files supplied by a local maintainer launcher for checkout Dev. */
71
+ privateComposition?: FrameworkPrivateComposition;
50
72
  };
51
73
  port?: number;
74
+ portExplicit?: boolean;
52
75
  };
53
76
  type FrameworkDiagnostic = {
54
77
  code: string;
@@ -58,6 +81,9 @@ type FrameworkDiagnostic = {
58
81
  line?: number;
59
82
  column?: number;
60
83
  correction?: string;
84
+ sourceLine?: string;
85
+ length?: number;
86
+ propertyPath?: string;
61
87
  };
62
88
  type FrameworkGate = {
63
89
  id: string;
@@ -67,11 +93,23 @@ type FrameworkGate = {
67
93
  type FrameworkEvent = {
68
94
  type: "progress";
69
95
  message: string;
96
+ } | {
97
+ type: "restart";
98
+ target: "compiler" | "next";
99
+ reason: string;
70
100
  } | {
71
101
  type: "diagnostics";
72
102
  diagnostics: {
73
103
  diagnostics: FrameworkDiagnostic[];
74
104
  };
105
+ } | {
106
+ type: "changes";
107
+ changes: {
108
+ action: "added" | "edited" | "deleted";
109
+ path: string;
110
+ }[];
111
+ } | {
112
+ type: "updated";
75
113
  } | {
76
114
  type: "ready";
77
115
  url: string;
@@ -83,6 +121,7 @@ type FrameworkResult = {
83
121
  code: string;
84
122
  message: string;
85
123
  fix: string;
124
+ details?: Record<string, unknown>;
86
125
  };
87
126
  };
88
127
  type RunFrameworkOptions = {
@@ -92,9 +131,17 @@ type RunFrameworkOptions = {
92
131
  onGate?: (gate: FrameworkGate) => boolean | Promise<boolean>;
93
132
  };
94
133
 
134
+ /** Serialize checkout dependency mutations, not the lifetime of a preview. */
135
+ declare function withCheckoutPreparation<T>({ packageRoot, workspaceRoot, signal, prepare, }: {
136
+ packageRoot: string;
137
+ workspaceRoot?: string;
138
+ signal?: AbortSignal;
139
+ prepare: (confirmStopped: () => void) => Promise<T>;
140
+ }): Promise<T>;
141
+
95
142
  /** Own one local writer for its complete build or development lifetime. */
96
143
  declare function withLocalOperation<T>(options: LocalOperationOptions<T>): Promise<T>;
97
144
 
98
145
  declare function runFramework(options: RunFrameworkOptions): Promise<FrameworkResult>;
99
146
 
100
- export { type FrameworkDiagnostic, type FrameworkEvent, type FrameworkGate, type FrameworkOperation, type FrameworkRequest, type FrameworkResult, type LocalOperationContext, type LocalOperationOptions, type RunFrameworkOptions, runFramework, withLocalOperation };
147
+ export { type FrameworkDiagnostic, type FrameworkEvent, type FrameworkGate, type FrameworkOperation, type FrameworkRequest, type FrameworkResult, type LocalOperationContext, type LocalOperationOptions, type RunFrameworkOptions, runFramework, withCheckoutPreparation, withLocalOperation };