@publish.os/nextjs 0.0.1-alpha.90 → 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 (223) hide show
  1. package/compiler-assets/nextjs/defaults/group/layout.tsx +1 -5
  2. package/compiler-assets/nextjs/defaults/group/page.tsx +31 -22
  3. package/compiler-assets/nextjs/defaults/project/next.config.mjs +19 -10
  4. package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +10 -0
  5. package/compiler-assets/nextjs/defaults/root/css/components/code-block.css +18 -0
  6. package/compiler-assets/nextjs/shims/document.tsx +38 -0
  7. package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +2 -0
  8. package/compiler-assets/nextjs/shims/global-layout.tsx +8 -42
  9. package/compiler-assets/nextjs/shims/global-not-found.tsx +69 -0
  10. package/compiler-assets/nextjs/shims/markdown-route.ts +2 -0
  11. package/compiler-assets/nextjs/shims/metadata-icons.tsx +39 -0
  12. package/compiler-assets/nextjs/shims/not-found-content.tsx +53 -0
  13. package/compiler-assets/nextjs/shims/not-found-navigation.tsx +60 -0
  14. package/compiler-assets/nextjs/shims/proxy.ts +126 -60
  15. package/compiler-assets/nextjs/shims/site-fenced-code-block.tsx +2 -6
  16. package/compiler-assets/nextjs/shims/site-mdx-components.tsx +28 -16
  17. package/compiler-assets/nextjs/shims/site-mdx.tsx +6 -1
  18. package/dist/{build-operation-2JAYBSKF.js → build-operation-5QMLXF7N.js} +29 -23
  19. package/dist/{button-c3WGnxIj.d.ts → button-BdCScEKi.d.ts} +3 -3
  20. package/dist/capture-local-source-WGGDIUU2.js +258 -0
  21. package/dist/chunk-22RSSUNV.js +13 -0
  22. package/dist/{chunk-WKTEO6RS.js → chunk-4BC2L2KA.js} +46 -12
  23. package/dist/{chunk-WDY4IK6Z.js → chunk-5J3YUNRY.js} +3 -10
  24. package/dist/chunk-5KAD7W53.js +248 -0
  25. package/dist/{chunk-DWA3ZRGW.js → chunk-6C65KV7O.js} +2 -2
  26. package/dist/{chunk-GGKFQ3MA.js → chunk-6D2E6UMD.js} +144 -70
  27. package/dist/{chunk-7OGTPSKI.js → chunk-7NY22B5U.js} +8 -3
  28. package/dist/chunk-EFO6AWXN.js +19 -0
  29. package/dist/{chunk-726GV2NF.js → chunk-F3AGNDF4.js} +100 -67
  30. package/dist/chunk-GBPLER5H.js +426 -0
  31. package/dist/chunk-IL4RJOKI.js +186 -0
  32. package/dist/{chunk-DLDFHU7Y.js → chunk-NNBJZPFM.js} +4 -2
  33. package/dist/{chunk-VO2I7MTM.js → chunk-ORIUWJBQ.js} +8 -6
  34. package/dist/{chunk-H6XILMZX.js → chunk-OXOFRXEI.js} +1806 -831
  35. package/dist/chunk-UYGCOWRF.js +1709 -0
  36. package/dist/{chunk-YLTOLYWM.js → chunk-WL75GQ5M.js} +6 -18
  37. package/dist/compiler.d.ts +15 -2
  38. package/dist/compiler.js +90 -21
  39. package/dist/components/blocks/agent-actions.d.ts +81 -0
  40. package/dist/components/blocks/agent-actions.js +594 -0
  41. package/dist/components/blocks/toc.d.ts +43 -0
  42. package/dist/components/blocks/toc.js +136 -0
  43. package/dist/components/ui/button.d.ts +5 -0
  44. package/dist/components/ui/button.js +94 -0
  45. package/dist/compose-CVBJRAF6.js +16 -0
  46. package/dist/config/createNextConfig.js +17 -3
  47. package/dist/{dev-operation-TZDVJCN7.js → dev-operation-OSHHWRWK.js} +121 -81
  48. package/dist/{framework-selection-X4U6Y6QC.js → framework-selection-ZVO323PK.js} +3 -2
  49. package/dist/ide-support-CU6Z5PVR.js +16 -0
  50. package/dist/index.d.ts +40 -1
  51. package/dist/jsx-dev-runtime.d.ts +6 -0
  52. package/dist/jsx-dev-runtime.js +100 -0
  53. package/dist/jsx-runtime.d.ts +7 -0
  54. package/dist/jsx-runtime.js +97 -0
  55. package/dist/kernel/components/blocks/AgentActions.d.ts +35 -6
  56. package/dist/kernel/components/blocks/AgentActions.js +383 -142
  57. package/dist/kernel/components/blocks/agent-actions.d.ts +5 -0
  58. package/dist/kernel/components/blocks/agent-actions.js +594 -0
  59. package/dist/kernel/components/blocks/animated-icon-swap.js +1 -1
  60. package/dist/kernel/components/blocks/color-palette.js +4 -4
  61. package/dist/kernel/components/blocks/logo-block.js +1 -1
  62. package/dist/kernel/components/blocks/nav-breadcrumb.js +2 -2
  63. package/dist/kernel/components/blocks/navbar.js +17 -17
  64. package/dist/kernel/components/blocks/navigation-progress.js +2 -2
  65. package/dist/kernel/components/blocks/next-prev.js +1 -1
  66. package/dist/kernel/components/blocks/page-list.js +2 -2
  67. package/dist/kernel/components/blocks/search.d.ts +1 -1
  68. package/dist/kernel/components/blocks/search.js +16 -17
  69. package/dist/kernel/components/blocks/sidebar-node.js +1 -1
  70. package/dist/kernel/components/blocks/sidebar.js +7 -4
  71. package/dist/kernel/components/blocks/theme-toggle.d.ts +1 -1
  72. package/dist/kernel/components/blocks/theme-toggle.js +5 -5
  73. package/dist/kernel/components/blocks/toc-client.d.ts +40 -0
  74. package/dist/kernel/components/blocks/toc-client.js +495 -0
  75. package/dist/kernel/components/blocks/toc.d.ts +19 -1
  76. package/dist/kernel/components/blocks/toc.js +121 -179
  77. package/dist/kernel/components/mdx/components/blockquote.js +1 -1
  78. package/dist/kernel/components/mdx/components/callout.js +1 -1
  79. package/dist/kernel/components/mdx/components/code-block.js +2 -2
  80. package/dist/kernel/components/mdx/components/copy-code-button.js +5 -4
  81. package/dist/kernel/components/mdx/components/figure-caption.d.ts +1 -1
  82. package/dist/kernel/components/mdx/components/figure-caption.js +3 -2
  83. package/dist/kernel/components/mdx/components/figure.d.ts +6 -2
  84. package/dist/kernel/components/mdx/components/figure.js +23 -13
  85. package/dist/kernel/components/mdx/components/footnotes.js +1 -1
  86. package/dist/kernel/components/mdx/components/heading-copy-link.js +1 -1
  87. package/dist/kernel/components/mdx/components/heading.js +6 -3
  88. package/dist/kernel/components/mdx/components/hr.js +2 -2
  89. package/dist/kernel/components/mdx/components/image-zoom.js +1 -1
  90. package/dist/kernel/components/mdx/components/image.d.ts +1 -1
  91. package/dist/kernel/components/mdx/components/image.js +21 -16
  92. package/dist/kernel/components/mdx/components/inline-code.js +1 -1
  93. package/dist/kernel/components/mdx/components/kbd.js +2 -2
  94. package/dist/kernel/components/mdx/components/link.d.ts +3 -3
  95. package/dist/kernel/components/mdx/components/link.js +2 -2
  96. package/dist/kernel/components/mdx/components/paragraph.js +1 -1
  97. package/dist/kernel/components/mdx/components/strikethrough.js +1 -1
  98. package/dist/kernel/components/mdx/components/table.js +2 -2
  99. package/dist/kernel/components/mdx/components/task-list.js +1 -1
  100. package/dist/kernel/components/mdx/components/video-player.d.ts +6 -2
  101. package/dist/kernel/components/mdx/components/video-player.js +6 -2
  102. package/dist/kernel/components/mdx/components/video.d.ts +5 -3
  103. package/dist/kernel/components/mdx/components/video.js +7 -5
  104. package/dist/kernel/components/mdx/error-boundary.d.ts +1 -1
  105. package/dist/kernel/components/mdx/error-boundary.js +2 -2
  106. package/dist/kernel/components/mdx/error-fallback.js +1 -1
  107. package/dist/kernel/components/mdx/mdx.d.ts +20 -10
  108. package/dist/kernel/components/mdx/mdx.js +231 -34
  109. package/dist/kernel/components/mdx/rehype-heading-ids.d.ts +1 -0
  110. package/dist/kernel/components/mdx/rehype-heading-ids.js +5 -3
  111. package/dist/kernel/components/mdx/types.d.ts +1 -1
  112. package/dist/kernel/components/next-image.d.ts +12 -0
  113. package/dist/kernel/components/next-image.js +61 -0
  114. package/dist/kernel/components/ui/accordion.js +1 -1
  115. package/dist/kernel/components/ui/breadcrumb-trail.d.ts +2 -2
  116. package/dist/kernel/components/ui/breadcrumb-trail.js +2 -2
  117. package/dist/kernel/components/ui/breadcrumb.d.ts +1 -1
  118. package/dist/kernel/components/ui/breadcrumb.js +4 -4
  119. package/dist/kernel/components/ui/button-group.d.ts +1 -1
  120. package/dist/kernel/components/ui/button-group.js +3 -3
  121. package/dist/kernel/components/ui/button.d.ts +56 -4
  122. package/dist/kernel/components/ui/button.js +43 -39
  123. package/dist/kernel/components/ui/card.js +1 -1
  124. package/dist/kernel/components/ui/dialog.js +1 -1
  125. package/dist/kernel/components/ui/drawer.js +1 -1
  126. package/dist/kernel/components/ui/input.d.ts +2 -2
  127. package/dist/kernel/components/ui/input.js +1 -1
  128. package/dist/kernel/components/ui/kbd.d.ts +1 -1
  129. package/dist/kernel/components/ui/kbd.js +1 -1
  130. package/dist/kernel/components/ui/link.d.ts +8 -2
  131. package/dist/kernel/components/ui/link.js +2 -2
  132. package/dist/kernel/components/ui/menu.js +1 -1
  133. package/dist/kernel/components/ui/mod-key.js +2 -2
  134. package/dist/kernel/components/ui/navigation-menu.js +1 -1
  135. package/dist/kernel/components/ui/popover.js +1 -1
  136. package/dist/kernel/components/ui/progress.js +1 -1
  137. package/dist/kernel/components/ui/scroll-area.d.ts +8 -8
  138. package/dist/kernel/components/ui/scroll-area.js +1 -1
  139. package/dist/kernel/components/ui/select.js +1 -1
  140. package/dist/kernel/components/ui/separator.js +1 -1
  141. package/dist/kernel/components/ui/table.js +1 -1
  142. package/dist/kernel/components/ui/tabs.js +1 -1
  143. package/dist/kernel/components/ui/tag.js +1 -1
  144. package/dist/kernel/components/ui/text.d.ts +1 -1
  145. package/dist/kernel/components/ui/text.js +1 -1
  146. package/dist/kernel/components/ui/toast.js +1 -1
  147. package/dist/kernel/components/ui/tooltip.js +1 -1
  148. package/dist/kernel/defaults.registry.d.ts +2 -15
  149. package/dist/kernel/defaults.registry.js +2 -17
  150. package/dist/kernel/routes/agent/markdown.d.ts +3 -0
  151. package/dist/kernel/routes/agent/markdown.js +219 -48
  152. package/dist/kernel/routes/layouts/group.d.ts +1 -1
  153. package/dist/kernel/routes/layouts/group.js +5 -7
  154. package/dist/kernel/routes/metadata/feed.d.ts +1 -1
  155. package/dist/kernel/routes/metadata/feed.js +109 -83
  156. package/dist/kernel/routes/metadata/llms.d.ts +11 -3
  157. package/dist/kernel/routes/metadata/llms.js +154 -57
  158. package/dist/kernel/routes/metadata/og-image.js +1 -1
  159. package/dist/kernel/routes/metadata/robots.d.ts +1 -1
  160. package/dist/kernel/routes/metadata/sitemap.d.ts +22 -3
  161. package/dist/kernel/routes/metadata/sitemap.js +183 -43
  162. package/dist/kernel/routes/not-found.d.ts +34 -0
  163. package/dist/kernel/routes/not-found.js +213 -0
  164. package/dist/kernel/routes/pages/group.d.ts +2 -2
  165. package/dist/kernel/routes/pages/group.js +1 -1
  166. package/dist/kernel/routes/pages/leaf.d.ts +30 -3
  167. package/dist/kernel/routes/pages/leaf.js +5 -4
  168. package/dist/kernel/routes/pages/root.d.ts +2 -2
  169. package/dist/kernel/routes/pages/root.js +1 -1
  170. package/dist/keyboard-shortcuts.js +1 -1
  171. package/dist/route-metadata-og-image-BeKKFHg7.d.ts +58 -0
  172. package/dist/search.js +7 -9
  173. package/dist/theme-scope.js +1 -1
  174. package/dist/{types-BzkZty3r.d.ts → types-J2w_puPF.d.ts} +1 -20
  175. package/dist/types-sM2g9nW0.d.ts +12 -0
  176. package/dist/types.d.ts +1 -0
  177. package/dist/utils/heading-ids.js +30 -11
  178. package/dist/utils/toc-selection.d.ts +7 -0
  179. package/dist/utils/toc-selection.js +14 -0
  180. package/dist/validate-local-source-SV44DBQT.js +16 -0
  181. package/dist/validate-publish-os-source-NZJF3TB2.js +14 -0
  182. package/init/seed/minimal/publish.os/assets/blog/hello-world.svg +13 -0
  183. package/init/seed/minimal/publish.os/assets/favicon.dark.svg +13 -0
  184. package/init/seed/minimal/publish.os/assets/favicon.svg +13 -0
  185. package/init/seed/minimal/publish.os/blog/content/hello-world.mdx +48 -0
  186. package/init/seed/minimal/publish.os/blog/content/series-a.mdx +11 -0
  187. package/init/seed/minimal/publish.os/blog/index.tsx +82 -0
  188. package/init/seed/minimal/publish.os/blog/layout.tsx +13 -0
  189. package/init/seed/minimal/publish.os/blog/page.tsx +76 -0
  190. package/init/seed/minimal/publish.os/components/blog/copy-link.tsx +64 -0
  191. package/init/seed/minimal/publish.os/docs/content/get-started.mdx +2 -3
  192. package/init/seed/minimal/publish.os/docs/content/groups.mdx +5 -6
  193. package/init/seed/minimal/publish.os/publish.os.config.json +6 -2
  194. package/init/seed/minimal/publish.os/theme.css +3 -3
  195. package/init/seed/minimal/seed.json +11 -4
  196. package/init/seed/scratch/publish.os/docs/content/get-started.mdx +1 -1
  197. package/init/seed/scratch/publish.os/publish.os.config.json +1 -1
  198. package/package.json +45 -20
  199. package/release/app/phosphor/package.json +3 -3
  200. package/release/app/phosphor/pnpm-lock.yaml.template +88 -75
  201. package/release/compiler/package.json +5 -3
  202. package/release/compiler/pnpm-lock.yaml.template +118 -74
  203. package/release/release.json +6 -6
  204. package/dist/button-CtzUJB8u.d.ts +0 -11
  205. package/dist/chunk-535TM4A5.js +0 -1455
  206. package/dist/chunk-B2V22WRT.js +0 -297
  207. package/dist/chunk-NECL5IBJ.js +0 -318
  208. package/dist/chunk-SVYGXXYR.js +0 -36
  209. package/dist/chunk-UF6ATARM.js +0 -1100
  210. package/dist/compose-NN23UJGC.js +0 -13
  211. package/dist/ide-support-ZNW7ODFY.js +0 -15
  212. package/dist/kernel/components/blocks/design-system-preview.d.ts +0 -61
  213. package/dist/kernel/components/blocks/design-system-preview.js +0 -667
  214. package/dist/kernel/components/blocks/link-playground.d.ts +0 -5
  215. package/dist/kernel/components/blocks/link-playground.js +0 -744
  216. package/dist/kernel/components/blocks/navigation-progress-playground.d.ts +0 -5
  217. package/dist/kernel/components/blocks/navigation-progress-playground.js +0 -629
  218. package/dist/kernel/components/ui/theme-toggle.d.ts +0 -24
  219. package/dist/kernel/components/ui/theme-toggle.js +0 -53
  220. package/dist/validate-local-source-XRL2Y7XE.js +0 -14
  221. package/dist/validate-publish-os-source-DAPZ4QGE.js +0 -12
  222. package/init/seed/minimal/publish.os/assets/favicon/favicon.dark.png +0 -0
  223. package/init/seed/minimal/publish.os/assets/favicon/favicon.png +0 -0
@@ -1,297 +0,0 @@
1
- import {
2
- acquireOperationLock,
3
- assertGeneratedOutput,
4
- assertLocalDirectory,
5
- assertOperationOutput,
6
- ensureOutputOwnership,
7
- localOperationName,
8
- markOperationOutput
9
- } from "./chunk-GGKFQ3MA.js";
10
- import {
11
- assertPublishOsSourceBoundary
12
- } from "./chunk-7OGTPSKI.js";
13
- import {
14
- isExcludedSourcePath
15
- } from "./chunk-YLTOLYWM.js";
16
- import {
17
- AppError
18
- } from "./chunk-WDY4IK6Z.js";
19
-
20
- // src/lib/compiler/lifecycle/local-operation.ts
21
- import { mkdir as mkdir2, mkdtemp, realpath as realpath2, rename, rm } from "fs/promises";
22
- import { isAbsolute as isAbsolute2, join as join2, resolve as resolve2 } from "path";
23
-
24
- // src/lib/compiler/lifecycle/capture-local-source.ts
25
- import { createHash } from "crypto";
26
- import { constants } from "fs";
27
- import {
28
- lstat,
29
- mkdir,
30
- open,
31
- readdir,
32
- readFile,
33
- realpath,
34
- writeFile
35
- } from "fs/promises";
36
- import { dirname, isAbsolute, join, relative, resolve, sep } from "path";
37
- function isInside({ root, path }) {
38
- let value = relative(root, path);
39
- return value !== "" && value !== ".." && !value.startsWith(`..${sep}`) && !isAbsolute(value);
40
- }
41
- async function captureLocalSource({
42
- sourceRoot,
43
- captureDir,
44
- signal
45
- }) {
46
- signal?.throwIfAborted(), await assertPublishOsSourceBoundary(sourceRoot), signal?.throwIfAborted();
47
- let root = await realpath(sourceRoot), destination = resolve(captureDir), outputRoot = join(root, ".publish.os");
48
- if (!isInside({ root: outputRoot, path: destination }) || await realpath(dirname(destination)) !== dirname(destination))
49
- throw new AppError({
50
- code: "FRAMEWORK_CAPTURE_OUTPUT_INVALID",
51
- message: "Source capture requires an owned path inside source output."
52
- });
53
- await mkdir(destination).catch((error) => {
54
- if (error.code !== "EEXIST") throw error;
55
- });
56
- let destinationEntry = await lstat(destination);
57
- if (!destinationEntry.isDirectory() || destinationEntry.isSymbolicLink() || await realpath(destination) !== destination || (await readdir(destination)).length > 0)
58
- throw new AppError({
59
- code: "FRAMEWORK_CAPTURE_OUTPUT_INVALID",
60
- message: "Source capture requires an empty owned directory."
61
- });
62
- let capturedFiles = [], copyDirectory = async (relativeDirectory) => {
63
- signal?.throwIfAborted();
64
- let directory = join(root, relativeDirectory);
65
- for (let name of (await readdir(directory)).sort()) {
66
- signal?.throwIfAborted();
67
- let path = relativeDirectory ? `${relativeDirectory}/${name}` : name;
68
- if (isExcludedSourcePath(path) || relativeDirectory === "" && name.startsWith(".env"))
69
- continue;
70
- let sourcePath = join(root, path), outputPath = join(destination, path), entry = await lstat(sourcePath);
71
- if (entry.isSymbolicLink())
72
- throw new AppError({
73
- code: "FRAMEWORK_SOURCE_SYMLINK",
74
- message: "Symbolic links are not allowed inside publish.os."
75
- });
76
- if (!isInside({ root, path: await realpath(sourcePath) }))
77
- throw new AppError({
78
- code: "FRAMEWORK_SOURCE_PATH_ESCAPE",
79
- message: "A source entry resolves outside the selected source."
80
- });
81
- if (entry.isDirectory()) {
82
- await mkdir(outputPath), await copyDirectory(path);
83
- continue;
84
- }
85
- if (!entry.isFile())
86
- throw new AppError({
87
- code: "FRAMEWORK_SOURCE_ENTRY_NOT_REGULAR",
88
- message: "Source capture accepts only directories and regular files."
89
- });
90
- let file = await open(
91
- sourcePath,
92
- constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0) | (constants.O_NONBLOCK ?? 0)
93
- );
94
- try {
95
- let opened = await file.stat();
96
- if (!opened.isFile() || opened.dev !== entry.dev || opened.ino !== entry.ino)
97
- throw new AppError({
98
- code: "FRAMEWORK_CAPTURE_SOURCE_CHANGED",
99
- message: "A source entry changed before capture could read it."
100
- });
101
- signal?.throwIfAborted();
102
- let contents = await file.readFile({ signal });
103
- signal?.throwIfAborted(), await writeFile(outputPath, contents, { flag: "wx", signal }), capturedFiles.push(path);
104
- } finally {
105
- await file.close();
106
- }
107
- }
108
- };
109
- await copyDirectory("");
110
- let hash = createHash("sha256");
111
- for (let path of capturedFiles.sort()) {
112
- signal?.throwIfAborted();
113
- let contents = await readFile(join(destination, path), { signal });
114
- hash.update(JSON.stringify([path, contents.byteLength])), hash.update("\0"), hash.update(contents);
115
- }
116
- return signal?.throwIfAborted(), {
117
- sourceDir: captureDir,
118
- sourceRevision: `sha256:${hash.digest("hex")}`
119
- };
120
- }
121
-
122
- // src/lib/compiler/lifecycle/local-operation.ts
123
- async function withLocalOperation(options) {
124
- let operation = await openLocalOperation(options);
125
- try {
126
- operation.context.signal.throwIfAborted();
127
- let result = await options.run(operation.context);
128
- return options.signal?.throwIfAborted(), result;
129
- } finally {
130
- await operation.close();
131
- }
132
- }
133
- async function openLocalOperation(options) {
134
- if (options.signal?.throwIfAborted(), options.operation !== "build" && options.operation !== "dev")
135
- throw new AppError({
136
- code: "FRAMEWORK_LOCAL_OPERATION_INVALID",
137
- message: "Select a build or development operation."
138
- });
139
- if (!isAbsolute2(options.sourceRoot))
140
- throw new AppError({
141
- code: "FRAMEWORK_LOCAL_SOURCE_INVALID",
142
- message: "Supply an absolute publish.os source path."
143
- });
144
- await assertPublishOsSourceBoundary(options.sourceRoot);
145
- let operationName = localOperationName(options), sourceRoot = await realpath2(options.sourceRoot), outputRoot = join2(sourceRoot, ".publish.os"), outputDir = join2(outputRoot, operationName);
146
- if (options.outputDir && resolve2(options.outputDir) !== outputDir)
147
- throw new AppError({
148
- code: "FRAMEWORK_LOCAL_OUTPUT_INVALID",
149
- message: "Local output must use the selected source and operation directory."
150
- });
151
- let ownership = await ensureOutputOwnership({ sourceRoot }), output = {
152
- sourceRoot,
153
- outputDir,
154
- operation: options.operation,
155
- scope: options.scope
156
- };
157
- await assertOperationOutput(output), await assertGeneratedOutput(output);
158
- let releaseLock = await acquireOperationLock({
159
- sourceRoot,
160
- outputRoot,
161
- operation: options.operation,
162
- scope: options.scope,
163
- signal: options.signal
164
- }), stagingRoot;
165
- try {
166
- await mkdir2(join2(outputRoot, ".stages"), { recursive: !0 }), stagingRoot = await mkdtemp(
167
- join2(outputRoot, ".stages", `${operationName}-`)
168
- );
169
- } catch (error) {
170
- throw await releaseLock(), error;
171
- }
172
- let stagingIdentity = await assertLocalDirectory(stagingRoot), retainStaging = !1, assertStaging = async () => {
173
- try {
174
- await ownership.assertCurrent(), await assertLocalDirectory(stagingRoot, stagingIdentity);
175
- } catch (error) {
176
- throw retainStaging = !0, error;
177
- }
178
- }, controller = new AbortController(), signal = options.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal, sourceDir = sourceRoot, sourceRevision;
179
- try {
180
- if (options.operation === "build") {
181
- let capture = await captureLocalSource({
182
- sourceRoot,
183
- captureDir: join2(stagingRoot, "source"),
184
- signal
185
- });
186
- sourceDir = capture.sourceDir, sourceRevision = capture.sourceRevision;
187
- }
188
- } catch (error) {
189
- throw await assertStaging(), await rm(stagingRoot, { recursive: !0, force: !0 }), await releaseLock(), error;
190
- }
191
- let shutdown = [], shutdownFailures = [], acceptsShutdownRegistrations = !0, stopping, stopCallbacks = async (callbacks) => {
192
- let results = await Promise.allSettled(
193
- callbacks.map((callback) => Promise.resolve().then(callback))
194
- );
195
- shutdownFailures.push(
196
- ...results.filter((result) => result.status === "rejected").map((result) => result.reason)
197
- );
198
- }, stop = async () => {
199
- stopping ??= stopCallbacks(shutdown);
200
- let active = stopping;
201
- for (; await active, active !== stopping; )
202
- active = stopping;
203
- if (shutdownFailures.length)
204
- throw new AppError({
205
- code: "FRAMEWORK_PROCESS_SHUTDOWN_FAILED",
206
- message: "Owned resources did not stop. Output and locks remain in place. Confirm that all operation processes have stopped before recovery.",
207
- details: { failures: shutdownFailures }
208
- });
209
- }, abort = () => {
210
- stop().catch(() => {
211
- });
212
- };
213
- signal.addEventListener("abort", abort, { once: !0 });
214
- let replacementWork, replaceOutput = async (run) => {
215
- signal.throwIfAborted(), await assertStaging();
216
- let replacement = await mkdtemp(join2(stagingRoot, "output-")), replacementIdentity = await assertLocalDirectory(replacement), assertReplacement = async () => {
217
- try {
218
- await assertStaging(), await assertLocalDirectory(replacement, replacementIdentity);
219
- } catch (error) {
220
- throw retainStaging = !0, error;
221
- }
222
- }, incoming = join2(replacement, "app"), previous = join2(replacement, "previous"), movedPrevious = !1, published = !1;
223
- try {
224
- await mkdir2(incoming), await run(incoming), signal.throwIfAborted(), await assertReplacement(), await assertLocalDirectory(incoming), await assertOperationOutput(output), await assertGeneratedOutput(output), await markOperationOutput({ ...output, outputDir: incoming }), signal.throwIfAborted();
225
- try {
226
- await rename(outputDir, previous), movedPrevious = !0;
227
- } catch (error) {
228
- if (error.code !== "ENOENT") throw error;
229
- }
230
- try {
231
- signal.throwIfAborted(), await rename(incoming, outputDir), published = !0;
232
- } catch (error) {
233
- if (movedPrevious)
234
- try {
235
- await assertReplacement(), await rename(previous, outputDir);
236
- } catch (rollbackError) {
237
- throw retainStaging = !0, new AggregateError(
238
- [error, rollbackError],
239
- `Output replacement failed. Recover the prior output from ${previous}.`
240
- );
241
- }
242
- throw error;
243
- }
244
- } finally {
245
- published && (await assertReplacement(), await rm(replacement, { recursive: !0, force: !0 }));
246
- }
247
- };
248
- return {
249
- context: {
250
- sourceRoot,
251
- sourceDir,
252
- sourceRevision,
253
- outputDir,
254
- signal,
255
- onShutdown: (callback) => acceptsShutdownRegistrations ? stopping ? (stopping = stopping.then(() => stopCallbacks([callback])), () => {
256
- }) : (shutdown.push(callback), () => {
257
- let index = shutdown.indexOf(callback);
258
- index !== -1 && shutdown.splice(index, 1);
259
- }) : (signal.throwIfAborted(), () => {
260
- }),
261
- replaceOutput: (run) => {
262
- if (replacementWork)
263
- return Promise.reject(
264
- new AppError({
265
- code: "FRAMEWORK_LOCAL_REPLACEMENT_ACTIVE",
266
- message: "Wait for the current output replacement to finish."
267
- })
268
- );
269
- let work = replaceOutput(run);
270
- return replacementWork = work, work.finally(() => {
271
- replacementWork === work && (replacementWork = void 0);
272
- }).catch(() => {
273
- }), work;
274
- }
275
- },
276
- close: async () => {
277
- if (controller.abort(), acceptsShutdownRegistrations = !1, await stop().catch(async (error) => {
278
- try {
279
- await releaseLock({ shutdownUnverified: !0 });
280
- } catch (retentionFailure) {
281
- error instanceof AppError && error.details && (error.details.lockRetentionFailure = retentionFailure);
282
- }
283
- throw error;
284
- }), await replacementWork?.catch(() => {
285
- }), signal.removeEventListener("abort", abort), await assertStaging(), retainStaging)
286
- throw new AppError({
287
- code: "FRAMEWORK_LOCAL_OUTPUT_REDIRECTED",
288
- message: `Output cleanup stopped to preserve unverified data. Inspect ${stagingRoot} before recovery.`
289
- });
290
- await rm(stagingRoot, { recursive: !0, force: !0 }), await releaseLock();
291
- }
292
- };
293
- }
294
-
295
- export {
296
- withLocalOperation
297
- };
@@ -1,318 +0,0 @@
1
- // src/lib/compiler/packages/nextjs-runtime-surface.json
2
- var nextjs_runtime_surface_default = {
3
- packageExports: [
4
- ".",
5
- "./resolvers/manifest-resolver",
6
- "./mdx/error-boundary",
7
- "./mdx/error-fallback",
8
- "./mdx/mdx",
9
- "./mdx/rehype-heading-ids",
10
- "./mdx/types",
11
- "./mdx/components/blockquote",
12
- "./mdx/components/callout",
13
- "./mdx/components/code-block",
14
- "./mdx/components/figure-caption",
15
- "./mdx/components/figure",
16
- "./mdx/components/footnotes",
17
- "./mdx/components/heading-copy-link",
18
- "./mdx/components/heading",
19
- "./mdx/components/hr",
20
- "./mdx/components/image-zoom",
21
- "./mdx/components/image",
22
- "./mdx/components/inline-code",
23
- "./mdx/components/kbd",
24
- "./mdx/components/link",
25
- "./mdx/components/paragraph",
26
- "./mdx/components/strikethrough",
27
- "./mdx/components/table",
28
- "./mdx/components/task-list",
29
- "./mdx/components/video",
30
- "./mdx",
31
- "./cache/tags",
32
- "./keyboard-shortcuts",
33
- "./search",
34
- "./theme-scope",
35
- "./types",
36
- "./kernel/defaults.registry",
37
- "./kernel/routes/agent/markdown",
38
- "./kernel/routes/layouts/group",
39
- "./kernel/routes/metadata/feed",
40
- "./kernel/routes/metadata/llms",
41
- "./kernel/routes/metadata/og-image",
42
- "./kernel/routes/metadata/robots",
43
- "./kernel/routes/metadata/sitemap",
44
- "./kernel/routes/pages/group",
45
- "./kernel/routes/pages/leaf",
46
- "./kernel/routes/pages/root",
47
- "./kernel/components/blocks/AgentActions",
48
- "./kernel/components/blocks/animated-icon-swap",
49
- "./kernel/components/blocks/color-palette",
50
- "./kernel/components/blocks/design-system-preview",
51
- "./kernel/components/blocks/link-playground",
52
- "./kernel/components/blocks/logo-block",
53
- "./kernel/components/blocks/nav-breadcrumb",
54
- "./kernel/components/blocks/navbar",
55
- "./kernel/components/blocks/navigation-progress",
56
- "./kernel/components/blocks/navigation-progress-playground",
57
- "./kernel/components/blocks/next-prev",
58
- "./kernel/components/blocks/page-list",
59
- "./kernel/components/blocks/search",
60
- "./kernel/components/blocks/sidebar-node",
61
- "./kernel/components/blocks/sidebar",
62
- "./kernel/components/blocks/theme-toggle",
63
- "./kernel/components/blocks/toc",
64
- "./kernel/components/mdx/error-boundary",
65
- "./kernel/components/mdx/error-fallback",
66
- "./kernel/components/mdx/mdx",
67
- "./kernel/components/mdx/rehype-heading-ids",
68
- "./kernel/components/mdx/types",
69
- "./kernel/components/mdx/components/blockquote",
70
- "./kernel/components/mdx/components/callout",
71
- "./kernel/components/mdx/components/code-block",
72
- "./kernel/components/mdx/components/copy-code-button",
73
- "./kernel/components/mdx/components/figure-caption",
74
- "./kernel/components/mdx/components/figure",
75
- "./kernel/components/mdx/components/footnotes",
76
- "./kernel/components/mdx/components/heading-copy-link",
77
- "./kernel/components/mdx/components/heading",
78
- "./kernel/components/mdx/components/hr",
79
- "./kernel/components/mdx/components/image-zoom",
80
- "./kernel/components/mdx/components/image",
81
- "./kernel/components/mdx/components/inline-code",
82
- "./kernel/components/mdx/components/kbd",
83
- "./kernel/components/mdx/components/link",
84
- "./kernel/components/mdx/components/paragraph",
85
- "./kernel/components/mdx/components/strikethrough",
86
- "./kernel/components/mdx/components/table",
87
- "./kernel/components/mdx/components/task-list",
88
- "./kernel/components/mdx/components/video-player",
89
- "./kernel/components/mdx/components/video",
90
- "./kernel/components/ui/accordion",
91
- "./kernel/components/ui/breadcrumb-trail",
92
- "./kernel/components/ui/breadcrumb",
93
- "./kernel/components/ui/button-group",
94
- "./kernel/components/ui/button",
95
- "./kernel/components/ui/card",
96
- "./kernel/components/ui/dialog",
97
- "./kernel/components/ui/drawer",
98
- "./kernel/components/ui/input",
99
- "./kernel/components/ui/kbd",
100
- "./kernel/components/ui/link",
101
- "./kernel/components/ui/menu",
102
- "./kernel/components/ui/mod-key",
103
- "./kernel/components/ui/navigation-menu",
104
- "./kernel/components/ui/popover",
105
- "./kernel/components/ui/progress",
106
- "./kernel/components/ui/scroll-area",
107
- "./kernel/components/ui/select",
108
- "./kernel/components/ui/separator",
109
- "./kernel/components/ui/table",
110
- "./kernel/components/ui/tabs",
111
- "./kernel/components/ui/tag",
112
- "./kernel/components/ui/text",
113
- "./kernel/components/ui/theme-toggle",
114
- "./kernel/components/ui/toast",
115
- "./kernel/components/ui/tooltip",
116
- "./utils/pretty-date",
117
- "./utils/cn",
118
- "./utils/heading-ids",
119
- "./config/createNextConfig"
120
- ],
121
- allowedSourceImports: [
122
- "@publish.os/nextjs",
123
- "@publish.os/nextjs/cache/tags",
124
- "@publish.os/nextjs/config/createNextConfig",
125
- "@publish.os/nextjs/kernel/components/blocks/navigation-progress",
126
- "@publish.os/nextjs/kernel/routes/layouts/group",
127
- "@publish.os/nextjs/kernel/routes/metadata/feed",
128
- "@publish.os/nextjs/kernel/routes/metadata/llms",
129
- "@publish.os/nextjs/kernel/routes/metadata/og-image",
130
- "@publish.os/nextjs/kernel/routes/metadata/robots",
131
- "@publish.os/nextjs/kernel/routes/metadata/sitemap",
132
- "@publish.os/nextjs/kernel/routes/pages/group",
133
- "@publish.os/nextjs/kernel/routes/pages/leaf",
134
- "@publish.os/nextjs/kernel/routes/pages/root",
135
- "@publish.os/nextjs/keyboard-shortcuts",
136
- "@publish.os/nextjs/mdx",
137
- "@publish.os/nextjs/mdx/error-boundary",
138
- "@publish.os/nextjs/mdx/error-fallback",
139
- "@publish.os/nextjs/mdx/mdx",
140
- "@publish.os/nextjs/resolvers/manifest-resolver",
141
- "@publish.os/nextjs/search",
142
- "@publish.os/nextjs/theme-scope",
143
- "@publish.os/nextjs/types",
144
- "@publish.os/nextjs/utils/cn",
145
- "@publish.os/nextjs/utils/heading-ids",
146
- "@publish.os/nextjs/utils/pretty-date"
147
- ],
148
- allowedSourceDependencyImports: [
149
- "@phosphor-icons/react/ssr",
150
- "react",
151
- "react-dom",
152
- "class-variance-authority",
153
- "next/link",
154
- "next/image",
155
- "next/navigation",
156
- "@base-ui/react/accordion",
157
- "@base-ui/react/button",
158
- "@base-ui/react/checkbox",
159
- "@base-ui/react/dialog",
160
- "@base-ui/react/drawer",
161
- "@base-ui/react/input",
162
- "@base-ui/react/menu",
163
- "@base-ui/react/popover",
164
- "@base-ui/react/progress",
165
- "@base-ui/react/scroll-area",
166
- "@base-ui/react/select",
167
- "@base-ui/react/separator",
168
- "@base-ui/react/switch",
169
- "@base-ui/react/tabs",
170
- "@base-ui/react/tooltip",
171
- "@base-ui/react/toast"
172
- ],
173
- entries: {
174
- index: "src/index.ts",
175
- "cache/tags": "src/cache-tags.ts",
176
- "config/createNextConfig": "src/create-next-config.ts",
177
- "keyboard-shortcuts": "src/lib/keyboard/keyboard-shortcuts.tsx",
178
- search: "src/modules/search/search.tsx",
179
- "theme-scope": "src/lib/theme/theme-scope.tsx",
180
- "kernel/defaults.registry": "src/defaults-registry.ts",
181
- "kernel/components/blocks/AgentActions": "src/modules/agent-actions/agent-actions.tsx",
182
- "kernel/components/blocks/animated-icon-swap": "src/components/ui/animated-icon-swap.tsx",
183
- "kernel/components/blocks/color-palette": "src/modules/design-system/color-palette.tsx",
184
- "kernel/components/blocks/design-system-preview": "src/modules/design-system/design-system-preview.tsx",
185
- "kernel/components/blocks/link-playground": "src/modules/design-system/link-playground.tsx",
186
- "kernel/components/blocks/logo-block": "src/components/block/logo-block.tsx",
187
- "kernel/components/blocks/nav-breadcrumb": "src/components/block/navbar/nav-breadcrumb.tsx",
188
- "kernel/components/blocks/navbar": "src/components/block/navbar/navbar.tsx",
189
- "kernel/components/blocks/navigation-progress": "src/components/block/navigation-progress.tsx",
190
- "kernel/components/blocks/navigation-progress-playground": "src/modules/design-system/navigation-progress-playground.tsx",
191
- "kernel/components/blocks/next-prev": "src/components/block/page-navigation/next-prev.tsx",
192
- "kernel/components/blocks/page-list": "src/components/block/page-navigation/page-list.tsx",
193
- "kernel/components/blocks/search": "src/modules/search/search-block.tsx",
194
- "kernel/components/blocks/sidebar-node": "src/components/block/sidebar/sidebar-node.tsx",
195
- "kernel/components/blocks/sidebar": "src/components/block/sidebar/sidebar.tsx",
196
- "kernel/components/blocks/theme-toggle": "src/components/ui/theme-toggle.tsx",
197
- "kernel/components/blocks/toc": "src/components/block/toc/toc.tsx",
198
- "kernel/components/mdx/error-boundary": "src/components/mdx/error-boundary.tsx",
199
- "kernel/components/mdx/error-fallback": "src/components/mdx/error-fallback.tsx",
200
- "kernel/components/mdx/mdx": "src/components/mdx/mdx.tsx",
201
- "kernel/components/mdx/rehype-heading-ids": "src/components/mdx/plugins/rehype-heading-ids.ts",
202
- "kernel/components/mdx/types": "src/components/mdx/types.ts",
203
- "kernel/routes/layouts/group": "src/route-layout-group.tsx",
204
- "kernel/routes/agent/markdown": "src/route-agent-markdown.ts",
205
- "kernel/routes/metadata/feed": "src/route-metadata-feed.ts",
206
- "kernel/routes/metadata/llms": "src/route-metadata-llms.ts",
207
- "kernel/routes/metadata/og-image": "src/route-metadata-og-image.tsx",
208
- "kernel/routes/metadata/robots": "src/route-metadata-robots.ts",
209
- "kernel/routes/metadata/sitemap": "src/route-metadata-sitemap.ts",
210
- "kernel/routes/pages/group": "src/route-page-group.tsx",
211
- "kernel/routes/pages/leaf": "src/route-page-leaf.tsx",
212
- "kernel/routes/pages/root": "src/route-page-root.tsx",
213
- "resolvers/manifest-resolver": "src/manifest-resolver.ts",
214
- types: "src/types.ts",
215
- "utils/cn": "src/components/utils/cn.ts",
216
- "utils/heading-ids": "src/components/mdx/heading-ids.ts",
217
- "utils/pretty-date": "src/components/utils/pretty-date.ts",
218
- "kernel/components/mdx/components/blockquote": "src/components/mdx/blockquote.tsx",
219
- "kernel/components/mdx/components/callout": "src/components/mdx/callout.tsx",
220
- "kernel/components/mdx/components/code-block": "src/components/mdx/code-block/code-block.tsx",
221
- "kernel/components/mdx/components/copy-code-button": "src/components/mdx/code-block/copy-code-button.tsx",
222
- "kernel/components/mdx/components/figure-caption": "src/components/mdx/figure/figure-caption.tsx",
223
- "kernel/components/mdx/components/figure": "src/components/mdx/figure/figure.tsx",
224
- "kernel/components/mdx/components/footnotes": "src/components/mdx/footnotes.tsx",
225
- "kernel/components/mdx/components/heading-copy-link": "src/components/mdx/heading-copy-link.tsx",
226
- "kernel/components/mdx/components/heading": "src/components/mdx/heading.tsx",
227
- "kernel/components/mdx/components/hr": "src/components/mdx/hr.tsx",
228
- "kernel/components/mdx/components/image-zoom": "src/components/mdx/image/image-zoom.tsx",
229
- "kernel/components/mdx/components/image": "src/components/mdx/image/image.tsx",
230
- "kernel/components/mdx/components/inline-code": "src/components/mdx/inline-code.tsx",
231
- "kernel/components/mdx/components/kbd": "src/components/mdx/kbd.tsx",
232
- "kernel/components/mdx/components/link": "src/components/mdx/link.tsx",
233
- "kernel/components/mdx/components/paragraph": "src/components/mdx/paragraph.tsx",
234
- "kernel/components/mdx/components/strikethrough": "src/components/mdx/strikethrough.tsx",
235
- "kernel/components/mdx/components/table": "src/components/mdx/table.tsx",
236
- "kernel/components/mdx/components/task-list": "src/components/mdx/task-list.tsx",
237
- "kernel/components/mdx/components/video-player": "src/components/mdx/video/video-player.tsx",
238
- "kernel/components/mdx/components/video": "src/components/mdx/video/video.tsx",
239
- "kernel/components/ui/accordion": "src/components/ui/accordion.tsx",
240
- "kernel/components/ui/breadcrumb-trail": "src/components/ui/breadcrumb-trail.tsx",
241
- "kernel/components/ui/breadcrumb": "src/components/ui/breadcrumb.tsx",
242
- "kernel/components/ui/button-group": "src/components/ui/button-group.tsx",
243
- "kernel/components/ui/button": "src/components/ui/button.tsx",
244
- "kernel/components/ui/card": "src/components/ui/card.tsx",
245
- "kernel/components/ui/dialog": "src/components/ui/dialog.tsx",
246
- "kernel/components/ui/drawer": "src/components/ui/drawer.tsx",
247
- "kernel/components/ui/input": "src/components/ui/input.tsx",
248
- "kernel/components/ui/kbd": "src/components/ui/kbd.tsx",
249
- "kernel/components/ui/link": "src/components/ui/link.tsx",
250
- "kernel/components/ui/menu": "src/components/ui/menu.tsx",
251
- "kernel/components/ui/mod-key": "src/components/ui/mod-key.tsx",
252
- "kernel/components/ui/navigation-menu": "src/components/ui/navigation-menu.tsx",
253
- "kernel/components/ui/popover": "src/components/ui/popover.tsx",
254
- "kernel/components/ui/progress": "src/components/ui/progress.tsx",
255
- "kernel/components/ui/scroll-area": "src/components/ui/scroll-area.tsx",
256
- "kernel/components/ui/select": "src/components/ui/select.tsx",
257
- "kernel/components/ui/separator": "src/components/ui/separator.tsx",
258
- "kernel/components/ui/table": "src/components/ui/table.tsx",
259
- "kernel/components/ui/tabs": "src/components/ui/tabs.tsx",
260
- "kernel/components/ui/tag": "src/components/ui/tag.tsx",
261
- "kernel/components/ui/text": "src/components/ui/text.tsx",
262
- "kernel/components/ui/theme-toggle": "src/components/ui/theme-toggle.tsx",
263
- "kernel/components/ui/toast": "src/components/ui/toast.tsx",
264
- "kernel/components/ui/tooltip": "src/components/ui/tooltip.tsx"
265
- },
266
- browserEntries: [
267
- "src/lib/keyboard/keyboard-shortcuts.tsx",
268
- "src/modules/search/search.tsx",
269
- "src/lib/theme/theme-scope.tsx",
270
- "src/modules/agent-actions/agent-actions.tsx",
271
- "src/modules/design-system/color-palette.tsx",
272
- "src/modules/design-system/design-system-preview.tsx",
273
- "src/modules/design-system/link-playground.tsx",
274
- "src/components/block/navbar/navbar.tsx",
275
- "src/components/block/navigation-progress.tsx",
276
- "src/modules/design-system/navigation-progress-playground.tsx",
277
- "src/modules/search/search-block.tsx",
278
- "src/components/block/sidebar/sidebar.tsx",
279
- "src/components/block/toc/toc.tsx",
280
- "src/components/mdx/error-boundary.tsx",
281
- "src/components/mdx/types.ts",
282
- "src/types.ts",
283
- "src/components/utils/cn.ts",
284
- "src/components/mdx/heading-ids.ts",
285
- "src/components/utils/pretty-date.ts",
286
- "src/components/mdx/heading-copy-link.tsx",
287
- "src/components/mdx/image/image-zoom.tsx",
288
- "src/components/mdx/video/video-player.tsx",
289
- "src/components/ui/accordion.tsx",
290
- "src/components/ui/breadcrumb-trail.tsx",
291
- "src/components/ui/dialog.tsx",
292
- "src/components/ui/drawer.tsx",
293
- "src/components/ui/menu.tsx",
294
- "src/components/ui/navigation-menu.tsx",
295
- "src/components/ui/popover.tsx",
296
- "src/components/ui/progress.tsx",
297
- "src/components/ui/scroll-area.tsx",
298
- "src/components/ui/tabs.tsx",
299
- "src/components/ui/theme-toggle.tsx",
300
- "src/components/ui/toast.tsx",
301
- "src/components/ui/tooltip.tsx"
302
- ]
303
- };
304
-
305
- // src/lib/compiler/packages/nextjs-runtime-surface.ts
306
- var surface = nextjs_runtime_surface_default, allowedNextjsSourceImports = [...surface.allowedSourceImports], allowedNextjsSourceDependencyImports = [
307
- ...surface.allowedSourceDependencyImports
308
- ];
309
- function supportedNextjsSourceImports() {
310
- return [
311
- ...allowedNextjsSourceImports,
312
- ...allowedNextjsSourceDependencyImports
313
- ];
314
- }
315
-
316
- export {
317
- supportedNextjsSourceImports
318
- };
@@ -1,36 +0,0 @@
1
- import {
2
- AppError
3
- } from "./chunk-WDY4IK6Z.js";
4
-
5
- // src/lib/compiler/lifecycle/local-gates.ts
6
- async function requestLocalGate({
7
- options,
8
- gate
9
- }) {
10
- options.signal?.throwIfAborted();
11
- let approved = await new Promise((resolve, reject) => {
12
- let abort = () => reject(options.signal?.reason);
13
- options.signal?.addEventListener("abort", abort, { once: !0 }), options.signal?.aborted && abort(), Promise.resolve().then(() => options.onGate?.(gate)).then((value) => resolve(value === !0), reject).finally(() => options.signal?.removeEventListener("abort", abort));
14
- });
15
- if (options.signal?.throwIfAborted(), !approved)
16
- throw new AppError({
17
- code: "FRAMEWORK_GATE_DENIED",
18
- message: "The caller did not authorize the operation."
19
- });
20
- }
21
- async function approveLocalComposition({
22
- options
23
- }) {
24
- options.onGate && await requestLocalGate({
25
- options,
26
- gate: {
27
- id: "compose",
28
- kind: "compose",
29
- summary: "Compose the validated source."
30
- }
31
- });
32
- }
33
-
34
- export {
35
- approveLocalComposition
36
- };