eddev 2.0.0-beta.23 → 2.0.0-beta.231

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 (463) hide show
  1. package/css/editor-styles.css +4 -0
  2. package/dist/app/entry/HydrationOverlay.d.ts +2 -0
  3. package/dist/app/entry/HydrationOverlay.d.ts.map +1 -0
  4. package/dist/app/entry/HydrationOverlay.js +2 -0
  5. package/dist/app/entry/MetaTags.d.ts +8 -0
  6. package/dist/app/entry/MetaTags.d.ts.map +1 -0
  7. package/dist/app/entry/MetaTags.js +30 -0
  8. package/dist/app/entry/boot-admin.d.ts +1 -0
  9. package/dist/app/entry/boot-admin.d.ts.map +1 -0
  10. package/dist/app/entry/boot-admin.js +7 -3
  11. package/dist/app/entry/hydration-script.d.ts +2 -0
  12. package/dist/app/entry/hydration-script.d.ts.map +1 -0
  13. package/dist/app/entry/hydration-script.js +18 -0
  14. package/dist/app/entry/spa-root.d.ts +1 -0
  15. package/dist/app/entry/spa-root.d.ts.map +1 -0
  16. package/dist/app/entry/spa-root.js +3 -5
  17. package/dist/app/entry/ssr-root-client.d.ts +4 -1
  18. package/dist/app/entry/ssr-root-client.d.ts.map +1 -0
  19. package/dist/app/entry/ssr-root-client.js +18 -6
  20. package/dist/app/entry/ssr-root.d.ts +6 -4
  21. package/dist/app/entry/ssr-root.d.ts.map +1 -0
  22. package/dist/app/entry/ssr-root.js +20 -19
  23. package/dist/app/lib/admin/defineField.d.ts +1 -0
  24. package/dist/app/lib/admin/defineField.d.ts.map +1 -0
  25. package/dist/app/lib/admin/defineWidget.d.ts +1 -0
  26. package/dist/app/lib/admin/defineWidget.d.ts.map +1 -0
  27. package/dist/app/lib/admin/index.d.ts +1 -0
  28. package/dist/app/lib/admin/index.d.ts.map +1 -0
  29. package/dist/app/lib/admin/installFieldTypes.d.ts +1 -0
  30. package/dist/app/lib/admin/installFieldTypes.d.ts.map +1 -0
  31. package/dist/app/lib/admin/installFieldTypes.js +2 -0
  32. package/dist/app/lib/admin/runWidgets.d.ts +1 -0
  33. package/dist/app/lib/admin/runWidgets.d.ts.map +1 -0
  34. package/dist/app/lib/admin/runWidgets.js +7 -2
  35. package/dist/app/lib/blocks/ContentBlocks.d.ts +8 -5
  36. package/dist/app/lib/blocks/ContentBlocks.d.ts.map +1 -0
  37. package/dist/app/lib/blocks/ContentBlocks.js +16 -3
  38. package/dist/app/lib/blocks/EditableText.d.ts +30 -5
  39. package/dist/app/lib/blocks/EditableText.d.ts.map +1 -0
  40. package/dist/app/lib/blocks/EditableText.js +34 -5
  41. package/dist/app/lib/blocks/InnerBlocks.d.ts +21 -6
  42. package/dist/app/lib/blocks/InnerBlocks.d.ts.map +1 -0
  43. package/dist/app/lib/blocks/InnerBlocks.js +73 -25
  44. package/dist/app/lib/blocks/SlotBlocks.d.ts +8 -0
  45. package/dist/app/lib/blocks/SlotBlocks.d.ts.map +1 -0
  46. package/dist/app/lib/blocks/SlotBlocks.js +46 -0
  47. package/dist/app/lib/blocks/block-utils.d.ts +2 -1
  48. package/dist/app/lib/blocks/block-utils.d.ts.map +1 -0
  49. package/dist/app/lib/blocks/block-utils.js +3 -1
  50. package/dist/app/lib/blocks/builtin-blocks.d.ts +2 -0
  51. package/dist/app/lib/blocks/builtin-blocks.d.ts.map +1 -0
  52. package/dist/app/lib/blocks/builtin-blocks.js +55 -0
  53. package/dist/app/lib/blocks/defineBlock.d.ts +4 -0
  54. package/dist/app/lib/blocks/defineBlock.d.ts.map +1 -0
  55. package/dist/app/lib/blocks/defineBlock.js +9 -0
  56. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts +8 -0
  57. package/dist/app/lib/blocks/editor/EditorHighlights.d.ts.map +1 -0
  58. package/dist/app/lib/blocks/editor/EditorHighlights.js +164 -0
  59. package/dist/app/lib/blocks/editor/EditorSupport.d.ts +1 -0
  60. package/dist/app/lib/blocks/editor/EditorSupport.d.ts.map +1 -0
  61. package/dist/app/lib/blocks/editor/EditorSupport.js +17 -10
  62. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts +2 -1
  63. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts.map +1 -0
  64. package/dist/app/lib/blocks/editor/block-templates.d.ts +8 -1
  65. package/dist/app/lib/blocks/editor/block-templates.d.ts.map +1 -0
  66. package/dist/app/lib/blocks/editor/block-templates.js +71 -2
  67. package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts +1 -0
  68. package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts.map +1 -0
  69. package/dist/app/lib/blocks/editor/controls.d.ts +1 -0
  70. package/dist/app/lib/blocks/editor/controls.d.ts.map +1 -0
  71. package/dist/app/lib/blocks/editor/create-block.d.ts +10 -0
  72. package/dist/app/lib/blocks/editor/create-block.d.ts.map +1 -0
  73. package/dist/app/lib/blocks/editor/create-block.js +13 -0
  74. package/dist/app/lib/blocks/editor/editor-config.d.ts +77 -8
  75. package/dist/app/lib/blocks/editor/editor-config.d.ts.map +1 -0
  76. package/dist/app/lib/blocks/editor/editor-config.js +29 -62
  77. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts +4 -0
  78. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts.map +1 -0
  79. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +126 -21
  80. package/dist/app/lib/blocks/editor/root-blocks.d.ts +7 -0
  81. package/dist/app/lib/blocks/editor/root-blocks.d.ts.map +1 -0
  82. package/dist/app/lib/blocks/editor/root-blocks.js +30 -0
  83. package/dist/app/lib/blocks/editor/usePostEditor.d.ts +12 -1
  84. package/dist/app/lib/blocks/editor/usePostEditor.d.ts.map +1 -0
  85. package/dist/app/lib/blocks/editor/usePostEditor.js +33 -13
  86. package/dist/app/lib/blocks/index.d.ts +8 -5
  87. package/dist/app/lib/blocks/index.d.ts.map +1 -0
  88. package/dist/app/lib/blocks/index.js +7 -5
  89. package/dist/app/lib/blocks/inline-editing.d.ts +10 -0
  90. package/dist/app/lib/blocks/inline-editing.d.ts.map +1 -0
  91. package/dist/app/lib/blocks/inline-editing.js +12 -2
  92. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts +1 -0
  93. package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts.map +1 -0
  94. package/dist/app/lib/devtools/components/BreakpointIndicator.js +2 -2
  95. package/dist/app/lib/devtools/components/DevUI.d.ts +1 -0
  96. package/dist/app/lib/devtools/components/DevUI.d.ts.map +1 -0
  97. package/dist/app/lib/devtools/components/DevUI.js +3 -2
  98. package/dist/app/lib/devtools/components/GridIndicator.d.ts +2 -0
  99. package/dist/app/lib/devtools/components/GridIndicator.d.ts.map +1 -0
  100. package/dist/app/lib/devtools/components/GridIndicator.js +29 -0
  101. package/dist/app/lib/devtools/dev-tools-store.d.ts +1 -0
  102. package/dist/app/lib/devtools/dev-tools-store.d.ts.map +1 -0
  103. package/dist/app/lib/devtools/hooks/usePersistState.d.ts +2 -1
  104. package/dist/app/lib/devtools/hooks/usePersistState.d.ts.map +1 -0
  105. package/dist/app/lib/devtools/hooks/usePersistState.js +11 -2
  106. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +1378 -333
  107. package/dist/app/lib/devtools/hooks/useTailwind.d.ts.map +1 -0
  108. package/dist/app/lib/devtools/index.d.ts +1 -0
  109. package/dist/app/lib/devtools/index.d.ts.map +1 -0
  110. package/dist/app/lib/devtools/loader.d.ts +1 -0
  111. package/dist/app/lib/devtools/loader.d.ts.map +1 -0
  112. package/dist/app/lib/devtools/loader.js +8 -7
  113. package/dist/app/lib/devtools/tailwind.config.d.ts +1 -0
  114. package/dist/app/lib/devtools/tailwind.config.d.ts.map +1 -0
  115. package/dist/app/lib/devtools/useQueryDebug.d.ts +8 -1
  116. package/dist/app/lib/devtools/useQueryDebug.d.ts.map +1 -0
  117. package/dist/app/lib/devtools/useQueryDebug.js +5 -8
  118. package/dist/app/lib/dynamic/dynamic.d.ts +2 -1
  119. package/dist/app/lib/dynamic/dynamic.d.ts.map +1 -0
  120. package/dist/app/lib/dynamic/dynamic.js +5 -1
  121. package/dist/app/lib/dynamic/index.d.ts +1 -0
  122. package/dist/app/lib/dynamic/index.d.ts.map +1 -0
  123. package/dist/app/lib/hooks/index.d.ts +3 -3
  124. package/dist/app/lib/hooks/index.d.ts.map +1 -0
  125. package/dist/app/lib/hooks/index.js +2 -3
  126. package/dist/app/lib/hooks/{queryUtils.d.ts → query-hooks.d.ts} +42 -3
  127. package/dist/app/lib/hooks/query-hooks.d.ts.map +1 -0
  128. package/dist/app/lib/hooks/{queryUtils.js → query-hooks.js} +90 -28
  129. package/dist/app/lib/hooks/useAppData.d.ts +1 -0
  130. package/dist/app/lib/hooks/useAppData.d.ts.map +1 -0
  131. package/dist/app/lib/hooks/useAppData.js +11 -0
  132. package/dist/app/lib/hooks/useRPC.d.ts +1 -4
  133. package/dist/app/lib/hooks/useRPC.d.ts.map +1 -0
  134. package/dist/app/lib/hooks/useRPC.js +0 -8
  135. package/dist/app/lib/integrations/gravityforms/index.d.ts +3 -0
  136. package/dist/app/lib/integrations/gravityforms/index.d.ts.map +1 -0
  137. package/dist/app/lib/integrations/gravityforms/index.js +2 -0
  138. package/dist/app/lib/integrations/gravityforms/types.d.ts +145 -0
  139. package/dist/app/lib/integrations/gravityforms/types.d.ts.map +1 -0
  140. package/dist/app/lib/integrations/gravityforms/types.js +1 -0
  141. package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts +31 -0
  142. package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts.map +1 -0
  143. package/dist/app/lib/integrations/gravityforms/useGravityForm.js +295 -0
  144. package/dist/app/lib/internal/finalize-rpc.d.ts +18 -0
  145. package/dist/app/lib/internal/finalize-rpc.d.ts.map +1 -0
  146. package/dist/app/lib/internal/finalize-rpc.js +3 -0
  147. package/dist/app/lib/internal/index.d.ts +2 -0
  148. package/dist/app/lib/internal/index.d.ts.map +1 -0
  149. package/dist/app/lib/internal/index.js +1 -0
  150. package/dist/app/lib/internal/internal-store.d.ts +1 -0
  151. package/dist/app/lib/internal/internal-store.d.ts.map +1 -0
  152. package/dist/app/lib/internal/read-admin-manifest.d.ts +1 -0
  153. package/dist/app/lib/internal/read-admin-manifest.d.ts.map +1 -0
  154. package/dist/app/lib/internal/read-block-manifest.d.ts +2 -0
  155. package/dist/app/lib/internal/read-block-manifest.d.ts.map +1 -0
  156. package/dist/app/lib/internal/read-block-manifest.js +7 -0
  157. package/dist/app/lib/internal/read-view-manifest.d.ts +7 -4
  158. package/dist/app/lib/internal/read-view-manifest.d.ts.map +1 -0
  159. package/dist/app/lib/internal/read-view-manifest.js +18 -0
  160. package/dist/app/lib/legacy-stitches/createStitches.d.ts +510 -1
  161. package/dist/app/lib/legacy-stitches/createStitches.d.ts.map +1 -0
  162. package/dist/app/lib/legacy-stitches/index.d.ts +1 -0
  163. package/dist/app/lib/legacy-stitches/index.d.ts.map +1 -0
  164. package/dist/app/lib/routing/components/BackButton.d.ts +50 -0
  165. package/dist/app/lib/routing/components/BackButton.d.ts.map +1 -0
  166. package/dist/app/lib/routing/components/BackButton.js +47 -0
  167. package/dist/app/lib/routing/components/BrowserRouter.d.ts +10 -1
  168. package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -0
  169. package/dist/app/lib/routing/components/BrowserRouter.js +170 -25
  170. package/dist/app/lib/routing/components/ClientOnly.d.ts +2 -1
  171. package/dist/app/lib/routing/components/ClientOnly.d.ts.map +1 -0
  172. package/dist/app/lib/routing/components/ClientOnly.js +3 -3
  173. package/dist/app/lib/routing/components/Link.d.ts +22 -2
  174. package/dist/app/lib/routing/components/Link.d.ts.map +1 -0
  175. package/dist/app/lib/routing/components/Link.js +53 -25
  176. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts +10 -0
  177. package/dist/app/lib/routing/components/NativeLinkHandler.d.ts.map +1 -0
  178. package/dist/app/lib/routing/components/NativeLinkHandler.js +23 -0
  179. package/dist/app/lib/routing/components/RouteRenderer.d.ts +1 -0
  180. package/dist/app/lib/routing/components/RouteRenderer.d.ts.map +1 -0
  181. package/dist/app/lib/routing/components/RouteRenderer.js +17 -3
  182. package/dist/app/lib/routing/components/SSRRouter.d.ts +3 -0
  183. package/dist/app/lib/routing/components/SSRRouter.d.ts.map +1 -0
  184. package/dist/app/lib/routing/components/SSRRouter.js +3 -2
  185. package/dist/app/lib/routing/components/ScrollRestoration.d.ts +1 -0
  186. package/dist/app/lib/routing/components/ScrollRestoration.d.ts.map +1 -0
  187. package/dist/app/lib/routing/components/ScrollRestoration.js +4 -1
  188. package/dist/app/lib/routing/context.d.ts +9 -5
  189. package/dist/app/lib/routing/context.d.ts.map +1 -0
  190. package/dist/app/lib/routing/context.js +12 -95
  191. package/dist/app/lib/routing/hooks/{useIsSSR.d.ts → useHydrating.d.ts} +7 -0
  192. package/dist/app/lib/routing/hooks/useHydrating.d.ts.map +1 -0
  193. package/dist/app/lib/routing/hooks/{useIsSSR.js → useHydrating.js} +9 -1
  194. package/dist/app/lib/routing/hooks/useRestorableState.d.ts +3 -1
  195. package/dist/app/lib/routing/hooks/useRestorableState.d.ts.map +1 -0
  196. package/dist/app/lib/routing/hooks/useRoute.d.ts +16 -0
  197. package/dist/app/lib/routing/hooks/useRoute.d.ts.map +1 -0
  198. package/dist/app/lib/routing/hooks/useRoute.js +21 -0
  199. package/dist/app/lib/routing/hooks/useRouteMeta.d.ts +6 -0
  200. package/dist/app/lib/routing/hooks/useRouteMeta.d.ts.map +1 -0
  201. package/dist/app/lib/routing/hooks/useRouteMeta.js +9 -0
  202. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts +1 -0
  203. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts.map +1 -0
  204. package/dist/app/lib/routing/hooks/useRouter.d.ts +1 -0
  205. package/dist/app/lib/routing/hooks/useRouter.d.ts.map +1 -0
  206. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts +1 -0
  207. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts.map +1 -0
  208. package/dist/app/lib/routing/hooks/useRouterState.d.ts +1 -0
  209. package/dist/app/lib/routing/hooks/useRouterState.d.ts.map +1 -0
  210. package/dist/app/lib/routing/hooks/useSearchParams.d.ts +78 -6
  211. package/dist/app/lib/routing/hooks/useSearchParams.d.ts.map +1 -0
  212. package/dist/app/lib/routing/hooks/useSearchParams.js +75 -15
  213. package/dist/app/lib/routing/index.d.ts +5 -1
  214. package/dist/app/lib/routing/index.d.ts.map +1 -0
  215. package/dist/app/lib/routing/index.js +4 -1
  216. package/dist/app/lib/routing/loader.d.ts +1 -0
  217. package/dist/app/lib/routing/loader.d.ts.map +1 -0
  218. package/dist/app/lib/routing/loader.js +19 -10
  219. package/dist/app/lib/routing/types.d.ts +73 -13
  220. package/dist/app/lib/routing/types.d.ts.map +1 -0
  221. package/dist/app/lib/routing/utils.d.ts +7 -2
  222. package/dist/app/lib/routing/utils.d.ts.map +1 -0
  223. package/dist/app/lib/routing/utils.js +41 -4
  224. package/dist/app/lib/{hooks → runtime}/apiConfig.d.ts +11 -2
  225. package/dist/app/lib/runtime/apiConfig.d.ts.map +1 -0
  226. package/dist/app/lib/runtime/apiConfig.js +6 -0
  227. package/dist/app/lib/runtime/errorHandling.d.ts +40 -0
  228. package/dist/app/lib/runtime/errorHandling.d.ts.map +1 -0
  229. package/dist/app/lib/runtime/errorHandling.js +6 -0
  230. package/dist/app/lib/runtime/index.d.ts +3 -0
  231. package/dist/app/lib/runtime/index.d.ts.map +1 -0
  232. package/dist/app/lib/runtime/index.js +2 -0
  233. package/dist/app/lib/views/defineView.d.ts +2 -1
  234. package/dist/app/lib/views/defineView.d.ts.map +1 -0
  235. package/dist/app/lib/views/index.d.ts +1 -0
  236. package/dist/app/lib/views/index.d.ts.map +1 -0
  237. package/dist/app/server/index.d.ts +4 -1
  238. package/dist/app/server/index.d.ts.map +1 -0
  239. package/dist/app/server/index.js +3 -1
  240. package/dist/app/server/proxy-wp-admin.d.ts +2 -2
  241. package/dist/app/server/proxy-wp-admin.d.ts.map +1 -0
  242. package/dist/app/server/proxy-wp-admin.js +46 -13
  243. package/dist/app/server/render-ai-page.d.ts +13 -0
  244. package/dist/app/server/render-ai-page.d.ts.map +1 -0
  245. package/dist/app/server/render-ai-page.js +102 -0
  246. package/dist/app/server/render-ssr-page.d.ts +32 -3
  247. package/dist/app/server/render-ssr-page.d.ts.map +1 -0
  248. package/dist/app/server/render-ssr-page.js +237 -10
  249. package/dist/app/server/rpc.d.ts +52 -0
  250. package/dist/app/server/rpc.d.ts.map +1 -0
  251. package/dist/app/server/rpc.js +18 -0
  252. package/dist/app/server/server-context.d.ts +53 -7
  253. package/dist/app/server/server-context.d.ts.map +1 -0
  254. package/dist/app/server/server-context.js +375 -37
  255. package/dist/app/server/server-custom-config.d.ts +3 -0
  256. package/dist/app/server/server-custom-config.d.ts.map +1 -0
  257. package/dist/app/server/server-custom-config.js +1 -0
  258. package/dist/app/server/utils/content-security.d.ts +26 -0
  259. package/dist/app/server/utils/content-security.d.ts.map +1 -0
  260. package/dist/app/server/utils/content-security.js +124 -0
  261. package/dist/app/server/utils/headers.d.ts +1 -0
  262. package/dist/app/server/utils/headers.d.ts.map +1 -0
  263. package/dist/app/server/utils/replace-host.d.ts +2 -1
  264. package/dist/app/server/utils/replace-host.d.ts.map +1 -0
  265. package/dist/app/server/utils/replace-host.js +10 -2
  266. package/dist/app/server/utils/swr-cache.d.ts +5 -0
  267. package/dist/app/server/utils/swr-cache.d.ts.map +1 -0
  268. package/dist/app/server/utils/swr-cache.js +31 -0
  269. package/dist/app/utils/APIProvider.d.ts +3 -0
  270. package/dist/app/utils/APIProvider.d.ts.map +1 -0
  271. package/dist/app/utils/APIProvider.js +5 -0
  272. package/dist/app/utils/BlockErrorBoundary.d.ts +20 -0
  273. package/dist/app/utils/BlockErrorBoundary.d.ts.map +1 -0
  274. package/dist/app/utils/BlockErrorBoundary.js +38 -0
  275. package/dist/app/utils/ErrorMessage.d.ts +6 -0
  276. package/dist/app/utils/ErrorMessage.d.ts.map +1 -0
  277. package/dist/app/utils/ErrorMessage.js +14 -0
  278. package/dist/app/utils/RouteErrorBoundary.d.ts +20 -0
  279. package/dist/app/utils/RouteErrorBoundary.d.ts.map +1 -0
  280. package/dist/app/utils/RouteErrorBoundary.js +41 -0
  281. package/dist/app/utils/asset-capture.d.ts +3 -0
  282. package/dist/app/utils/asset-capture.d.ts.map +1 -0
  283. package/dist/app/utils/asset-capture.js +5 -0
  284. package/dist/app/utils/hydration-debugger.d.ts +14 -0
  285. package/dist/app/utils/hydration-debugger.d.ts.map +1 -0
  286. package/dist/app/utils/hydration-debugger.js +11 -0
  287. package/dist/app/utils/query-client.d.ts +3 -0
  288. package/dist/app/utils/query-client.d.ts.map +1 -0
  289. package/dist/app/utils/query-client.js +5 -1
  290. package/dist/app/utils/query-monitor.d.ts +27 -0
  291. package/dist/app/utils/query-monitor.d.ts.map +1 -0
  292. package/dist/app/utils/query-monitor.js +7 -0
  293. package/dist/app/utils/trpc-client.d.ts +3 -0
  294. package/dist/app/utils/trpc-client.d.ts.map +1 -0
  295. package/dist/app/utils/trpc-client.js +39 -0
  296. package/dist/app/utils/wp.d.ts +11 -10
  297. package/dist/app/utils/wp.d.ts.map +1 -0
  298. package/dist/node/cli/cli-mode.d.ts +1 -0
  299. package/dist/node/cli/cli-mode.d.ts.map +1 -0
  300. package/dist/node/cli/cli-worker.d.ts +1 -0
  301. package/dist/node/cli/cli-worker.d.ts.map +1 -0
  302. package/dist/node/cli/cli-worker.js +7 -3
  303. package/dist/node/cli/cli.d.ts +1 -0
  304. package/dist/node/cli/cli.d.ts.map +1 -0
  305. package/dist/node/cli/cli.js +120 -7
  306. package/dist/node/cli/display/CLIApp.d.ts +1 -0
  307. package/dist/node/cli/display/CLIApp.d.ts.map +1 -0
  308. package/dist/node/cli/display/CLIApp.js +1 -1
  309. package/dist/node/cli/display/boot-cli-app.d.ts +1 -0
  310. package/dist/node/cli/display/boot-cli-app.d.ts.map +1 -0
  311. package/dist/node/cli/display/boot-cli-app.js +1 -1
  312. package/dist/node/cli/display/components/Fullscreen.d.ts +1 -0
  313. package/dist/node/cli/display/components/Fullscreen.d.ts.map +1 -0
  314. package/dist/node/cli/display/components/LogEntries.d.ts +1 -0
  315. package/dist/node/cli/display/components/LogEntries.d.ts.map +1 -0
  316. package/dist/node/cli/display/components/MenuItem.d.ts +1 -0
  317. package/dist/node/cli/display/components/MenuItem.d.ts.map +1 -0
  318. package/dist/node/cli/display/components/TextInput.d.ts +1 -0
  319. package/dist/node/cli/display/components/TextInput.d.ts.map +1 -0
  320. package/dist/node/cli/display/hooks/useManifest.d.ts +1 -0
  321. package/dist/node/cli/display/hooks/useManifest.d.ts.map +1 -0
  322. package/dist/node/cli/display/hooks/useStatefulLog.d.ts +1 -0
  323. package/dist/node/cli/display/hooks/useStatefulLog.d.ts.map +1 -0
  324. package/dist/node/cli/display/tools/BlockList.d.ts +1 -0
  325. package/dist/node/cli/display/tools/BlockList.d.ts.map +1 -0
  326. package/dist/node/cli/display/tools/CreateBlock.d.ts +1 -0
  327. package/dist/node/cli/display/tools/CreateBlock.d.ts.map +1 -0
  328. package/dist/node/cli/display/tools/cli-tool-list.d.ts +1 -0
  329. package/dist/node/cli/display/tools/cli-tool-list.d.ts.map +1 -0
  330. package/dist/node/cli/display/tools/cli-tools.d.ts +1 -0
  331. package/dist/node/cli/display/tools/cli-tools.d.ts.map +1 -0
  332. package/dist/node/cli/display/util/colors.d.ts +1 -0
  333. package/dist/node/cli/display/util/colors.d.ts.map +1 -0
  334. package/dist/node/cli/version.d.ts +2 -1
  335. package/dist/node/cli/version.d.ts.map +1 -0
  336. package/dist/node/cli/version.js +1 -1
  337. package/dist/node/compiler/build-vinxi.d.ts +1 -0
  338. package/dist/node/compiler/build-vinxi.d.ts.map +1 -0
  339. package/dist/node/compiler/build-vinxi.js +2 -1
  340. package/dist/node/compiler/bundler.admin.d.ts +1 -0
  341. package/dist/node/compiler/bundler.admin.d.ts.map +1 -0
  342. package/dist/node/compiler/bundler.admin.js +1 -0
  343. package/dist/node/compiler/bundler.frontend.d.ts +2 -0
  344. package/dist/node/compiler/bundler.frontend.d.ts.map +1 -0
  345. package/dist/node/compiler/bundler.frontend.js +26 -11
  346. package/dist/node/compiler/cache-config.d.ts +3 -0
  347. package/dist/node/compiler/cache-config.d.ts.map +1 -0
  348. package/dist/node/compiler/cache-config.js +16 -0
  349. package/dist/node/compiler/dev-server.d.ts +4 -1
  350. package/dist/node/compiler/dev-server.d.ts.map +1 -0
  351. package/dist/node/compiler/dev-server.js +34 -11
  352. package/dist/node/compiler/get-vite-config.d.ts +12 -1
  353. package/dist/node/compiler/get-vite-config.d.ts.map +1 -0
  354. package/dist/node/compiler/get-vite-config.js +176 -42
  355. package/dist/node/compiler/vinxi-app.d.ts +13 -0
  356. package/dist/node/compiler/vinxi-app.d.ts.map +1 -0
  357. package/dist/node/compiler/vinxi-app.js +151 -32
  358. package/dist/node/compiler/vinxi-codegen.d.ts +1 -0
  359. package/dist/node/compiler/vinxi-codegen.d.ts.map +1 -0
  360. package/dist/node/compiler/vinxi-codegen.js +394 -108
  361. package/dist/node/graphql/graphql-codegen.d.ts +12 -1
  362. package/dist/node/graphql/graphql-codegen.d.ts.map +1 -0
  363. package/dist/node/graphql/graphql-codegen.js +239 -37
  364. package/dist/node/graphql/graphql-schema-loader.d.ts +3 -1
  365. package/dist/node/graphql/graphql-schema-loader.d.ts.map +1 -0
  366. package/dist/node/graphql/graphql-schema-loader.js +5 -16
  367. package/dist/node/graphql/plugins/gql-plugin-files.d.ts +3 -1
  368. package/dist/node/graphql/plugins/gql-plugin-files.d.ts.map +1 -0
  369. package/dist/node/graphql/plugins/gql-plugin-files.js +3 -2
  370. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts +1 -0
  371. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts.map +1 -0
  372. package/dist/node/graphql/plugins/gql-plugin-queries.d.ts +1 -0
  373. package/dist/node/graphql/plugins/gql-plugin-queries.d.ts.map +1 -0
  374. package/dist/node/graphql/plugins/gql-plugin-queries.js +2 -2
  375. package/dist/node/graphql/query-files-loader.d.ts +4 -0
  376. package/dist/node/graphql/query-files-loader.d.ts.map +1 -0
  377. package/dist/node/graphql/query-files-loader.js +5 -0
  378. package/dist/node/graphql/wp-info-query.d.ts +1 -0
  379. package/dist/node/graphql/wp-info-query.d.ts.map +1 -0
  380. package/dist/node/project/config.d.ts +260 -69
  381. package/dist/node/project/config.d.ts.map +1 -0
  382. package/dist/node/project/config.js +100 -21
  383. package/dist/node/project/eddev-build-file.d.ts +1 -0
  384. package/dist/node/project/eddev-build-file.d.ts.map +1 -0
  385. package/dist/node/project/eddev-build-file.js +4 -2
  386. package/dist/node/project/env.d.ts +5 -0
  387. package/dist/node/project/env.d.ts.map +1 -0
  388. package/dist/node/project/env.js +1 -0
  389. package/dist/node/project/favicons.d.ts +1 -1
  390. package/dist/node/project/favicons.d.ts.map +1 -0
  391. package/dist/node/project/favicons.js +1 -1
  392. package/dist/node/project/manifest/block-manifest.d.ts +1 -0
  393. package/dist/node/project/manifest/block-manifest.d.ts.map +1 -0
  394. package/dist/node/project/manifest/block-manifest.js +6 -2
  395. package/dist/node/project/manifest/field-manifest.d.ts +1 -0
  396. package/dist/node/project/manifest/field-manifest.d.ts.map +1 -0
  397. package/dist/node/project/manifest/manifest.d.ts +2 -0
  398. package/dist/node/project/manifest/manifest.d.ts.map +1 -0
  399. package/dist/node/project/manifest/manifest.js +14 -10
  400. package/dist/node/project/manifest/routes-manifest.d.ts +21 -0
  401. package/dist/node/project/manifest/routes-manifest.d.ts.map +1 -0
  402. package/dist/node/project/manifest/routes-manifest.js +74 -0
  403. package/dist/node/project/manifest/view-manifest.d.ts +1 -0
  404. package/dist/node/project/manifest/view-manifest.d.ts.map +1 -0
  405. package/dist/node/project/manifest/widget-manifest.d.ts +1 -0
  406. package/dist/node/project/manifest/widget-manifest.d.ts.map +1 -0
  407. package/dist/node/project/project.d.ts +12 -0
  408. package/dist/node/project/project.d.ts.map +1 -0
  409. package/dist/node/project/project.js +55 -1
  410. package/dist/node/project/wp-info.d.ts +3 -0
  411. package/dist/node/project/wp-info.d.ts.map +1 -0
  412. package/dist/node/project/wp-info.js +10 -1
  413. package/dist/node/storybook/index.d.ts +3 -0
  414. package/dist/node/storybook/index.d.ts.map +1 -0
  415. package/dist/node/storybook/index.js +13 -0
  416. package/dist/node/types/block-type.d.ts +37 -5
  417. package/dist/node/types/block-type.d.ts.map +1 -0
  418. package/dist/node/types/block-type.js +4 -1
  419. package/dist/node/types/view-type.d.ts +1 -0
  420. package/dist/node/types/view-type.d.ts.map +1 -0
  421. package/dist/node/utils/fetch-wp.d.ts +2 -0
  422. package/dist/node/utils/fetch-wp.d.ts.map +1 -0
  423. package/dist/node/utils/fetch-wp.js +28 -0
  424. package/dist/node/utils/format-zod-error.d.ts +1 -0
  425. package/dist/node/utils/format-zod-error.d.ts.map +1 -0
  426. package/dist/node/utils/fs-codegen.d.ts +4 -0
  427. package/dist/node/utils/fs-codegen.d.ts.map +1 -0
  428. package/dist/node/utils/fs-codegen.js +10 -2
  429. package/dist/node/utils/fs.d.ts +6 -1
  430. package/dist/node/utils/fs.d.ts.map +1 -0
  431. package/dist/node/utils/get-repo-info.d.ts +1 -0
  432. package/dist/node/utils/get-repo-info.d.ts.map +1 -0
  433. package/dist/node/utils/helpers.d.ts +1 -0
  434. package/dist/node/utils/helpers.d.ts.map +1 -0
  435. package/dist/node/utils/highlight-code.d.ts +1 -0
  436. package/dist/node/utils/highlight-code.d.ts.map +1 -0
  437. package/dist/node/utils/is-deploying.d.ts +1 -0
  438. package/dist/node/utils/is-deploying.d.ts.map +1 -0
  439. package/dist/node/utils/is-deploying.js +1 -1
  440. package/dist/node/utils/report-builder.d.ts +7 -6
  441. package/dist/node/utils/report-builder.d.ts.map +1 -0
  442. package/dist/node/utils/self-signed-cert.d.ts +5 -0
  443. package/dist/node/utils/self-signed-cert.d.ts.map +1 -0
  444. package/dist/node/utils/self-signed-cert.js +28 -4
  445. package/dist/node/utils/stateful-log.d.ts +1 -0
  446. package/dist/node/utils/stateful-log.d.ts.map +1 -0
  447. package/dist/node/utils/stateful-log.js +2 -0
  448. package/dist/node/utils/ts-export-extractor.d.ts +1 -0
  449. package/dist/node/utils/ts-export-extractor.d.ts.map +1 -0
  450. package/dist/node/utils/watch-file-tree.d.ts +18 -3
  451. package/dist/node/utils/watch-file-tree.d.ts.map +1 -0
  452. package/dist/node/utils/watch-file-tree.js +12 -5
  453. package/package.json +40 -24
  454. package/tsconfig.app.json +10 -5
  455. package/tsconfig.node.json +3 -2
  456. package/types.app.d.ts +2 -0
  457. package/types.env.d.ts +3 -0
  458. package/types.meta.d.ts +449 -136
  459. package/dist/app/lib/blocks/ErrorBoundaryFrontend.d.ts +0 -15
  460. package/dist/app/lib/blocks/ErrorBoundaryFrontend.js +0 -35
  461. package/dist/app/lib/hooks/apiConfig.js +0 -4
  462. package/dist/app/lib/hooks/usePageLoad.d.ts +0 -6
  463. package/dist/app/lib/hooks/usePageLoad.js +0 -5
@@ -1,5 +1,8 @@
1
- import { code } from "ts-poet";
1
+ import { camelCase, pascalCase } from "change-case-all";
2
+ import { code, imp } from "ts-poet";
3
+ import { ProjectEnvUtils } from "../project/env.js";
2
4
  import { FSCodegen } from "../utils/fs-codegen.js";
5
+ import { getCacheConfig } from "./cache-config.js";
3
6
  export function getVinxiFolder(opts) {
4
7
  return (opts.mode === "development" ? "dev" : "prod") + (opts.serverless ? "" : "-spa");
5
8
  }
@@ -17,28 +20,37 @@ export function createVinxiCodegen(opts) {
17
20
  if (opts.serverless) {
18
21
  codegen.registerFile({
19
22
  name: "context.ts",
20
- generate: () => {
23
+ generate: async () => {
21
24
  const args = {
22
- dev: true,
25
+ dev: opts.mode === "development",
23
26
  origin: project.origin,
24
27
  replaceUrls: {
25
28
  from: project.origin,
26
29
  to: opts.endpoint ?? "",
27
30
  prefixes: [
28
- { prefix: "/wp-content/uploads", replace: project.config?.serverless.uploads === "proxy" },
29
- { prefix: "/wp-content/plugins", replace: project.config?.serverless.plugins === "proxy" },
31
+ { prefix: "/wp-content/uploads", replace: project.config?.serverless.uploads === "remote" },
32
+ { prefix: "/wp-content/plugins", replace: project.config?.serverless.plugins === "remote" },
30
33
  ],
31
34
  },
35
+ rpcBases: (await project.serverRoutes.get()).bases ?? [],
36
+ config: project.config,
37
+ cacheConfig: getCacheConfig(project.origin, project.config),
32
38
  };
33
39
  return code /* tsx */ `
34
40
  import { ServerContext } from "eddev/server"
35
41
  import { getManifest } from "vinxi/manifest"
42
+ import { apiConfig } from 'eddev/hooks'
43
+
44
+ ServerContext.setRuntime({
45
+ getManifest
46
+ })
36
47
 
37
48
  export const serverContext = new ServerContext({${Object.entries(args)
38
49
  .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)
39
- .join(",\n")},
40
- getManifest
50
+ .join(",\n")}
41
51
  })
52
+
53
+ apiConfig.apiKey = ${JSON.stringify(ProjectEnvUtils.getSafe("SITE_API_KEY") ?? "")}
42
54
  `.toString();
43
55
  },
44
56
  });
@@ -54,13 +66,31 @@ export function createVinxiCodegen(opts) {
54
66
  `,
55
67
  });
56
68
  }
69
+ if (opts.serverless) {
70
+ // codegen.registerFile({
71
+ // name: "manifest/extra-routes.ts",
72
+ // generate: code/* tsx */ `
73
+ // import { createRouter, eventHandler, getRouterParam, getQuery, getWebRequest, getRequestHeaders } from "vinxi/http"
74
+ // import { serverContext } from "./context.js"
75
+ // export const routes = [
76
+ // {
77
+ // pattern: '/test1',
78
+ // handler: () => import('../../../test.ts')
79
+ // }
80
+ // ]
81
+ // export default eventHandler((event) => {
82
+ // routes
83
+ // })
84
+ // `,
85
+ // })
86
+ }
57
87
  codegen.registerFile({
58
88
  name: "entry.admin.tsx",
59
89
  generate: () => {
60
90
  return code /* tsx */ `
61
91
  ${opts.serverless ? `import "./react-shim.js"` : ""}
62
92
  ${opts.serverless ? `import "vinxi/client"` : ""}
63
- import "../../views/index.css"
93
+ import "../../${project.cssEntryFile}"
64
94
  import "./manifest/admin"
65
95
  import "./manifest/blocks"
66
96
  import "./manifest/styles"
@@ -85,7 +115,7 @@ export function createVinxiCodegen(opts) {
85
115
  * Also ensures that the assets used during SSR are loaded.
86
116
  */
87
117
  import "vinxi/client"
88
- import "../../views/index.css"
118
+ import "../../${project.cssEntryFile}"
89
119
  import "./manifest/blocks"
90
120
  import "./manifest/views"
91
121
 
@@ -96,6 +126,16 @@ export function createVinxiCodegen(opts) {
96
126
  import { createAssets } from "@vinxi/react"
97
127
  import { devToolsStore } from 'eddev/devtools'
98
128
 
129
+ ${process.env.VERCEL_SKEW_PROTECTION_ENABLED &&
130
+ code /* tsx*/ `
131
+ // Skew protection
132
+ const updateSkewCookie = () => {
133
+ document.cookie = "__vdpl=${process.env.VERCEL_DEPLOYMENT_ID}; expires=" + new Date(Date.now() + 24 * 60 * 60 * 1000).toUTCString() + "; path=/"
134
+ }
135
+ window.onfocus = updateSkewCookie
136
+ updateSkewCookie()
137
+ `}
138
+
99
139
  // Set up a dynamic entry which will load the configured tailwind manifest
100
140
  devToolsStore.loadTailwindConfig = () => import('./manifest/tailwind-config.js')
101
141
 
@@ -108,15 +148,17 @@ export function createVinxiCodegen(opts) {
108
148
  window.$reactRoot =
109
149
  window.$reactRoot ||
110
150
  hydrateRoot(
111
- document,
112
- <SSRClientRoot assets={getAssets()} />,
151
+ document.getElementById('root')!,
152
+ <React.Suspense><SSRClientRoot assets={getAssets()} metaTags={window._PAGE_DATA?.meta?.head} /></React.Suspense>,
153
+ {
154
+ identifierPrefix: "ed",
155
+ }
113
156
  )
114
157
 
115
158
  if (import.meta.hot) {
116
159
  import.meta.hot.accept((mod) => {
117
160
  if (mod) {
118
- const Assets = createAssets(getManifest("client").handler, getManifest("client"))
119
- const app = <SSRClientRoot assets={getAssets()} />
161
+ const app = <React.Suspense><SSRClientRoot assets={getAssets()} metaTags={window._PAGE_DATA?.meta?.head} /></React.Suspense>
120
162
  window.$reactRoot?.render(app)
121
163
  }
122
164
  })
@@ -125,6 +167,7 @@ export function createVinxiCodegen(opts) {
125
167
  declare global {
126
168
  interface Window {
127
169
  $reactRoot?: Root
170
+ _PAGE_DATA: any
128
171
  }
129
172
  }
130
173
 
@@ -138,7 +181,7 @@ export function createVinxiCodegen(opts) {
138
181
  */
139
182
  import "./manifest/blocks"
140
183
  import "./manifest/views"
141
- import "../../views/index.css"
184
+ import "../../${project.cssEntryFile}"
142
185
  import { devToolsStore } from 'eddev/devtools'
143
186
  import { createRoot } from "react-dom/client"
144
187
  import { SPARoot } from "eddev/_internal/spa-root.js"
@@ -146,149 +189,293 @@ export function createVinxiCodegen(opts) {
146
189
 
147
190
  devToolsStore.loadTailwindConfig = () => import('./manifest/tailwind-config')
148
191
 
149
- createRoot(document.getElementById("root")!).render(<SPARoot />)
192
+ createRoot(document.getElementById("root")!).render(<React.Suspense><SPARoot /></React.Suspense>)
150
193
  `;
151
194
  }
152
195
  },
153
196
  });
154
197
  if (opts.serverless) {
155
198
  codegen.registerFile({
156
- name: "handler.data-api.ts",
199
+ name: "handler.bypass.ts",
157
200
  generate: code /* tsx */ `
158
201
  /// <reference types="vinxi/types/server" />
159
- import { createRouter, eventHandler, getRouterParam, getQuery, getWebRequest, getRequestHeaders } from "vinxi/http"
202
+ import { createRouter, eventHandler, getCookie, setCookie } from "vinxi/http"
203
+
204
+ const BYPASS_TOKEN = process.env.VERCEL_BYPASS_TOKEN
205
+ const COOKIE_NAME = "__prerender_bypass"
206
+
207
+ const router = createRouter()
208
+ .get(
209
+ "/enable",
210
+ eventHandler(async (event) => {
211
+ if (!BYPASS_TOKEN) return false
212
+
213
+ setCookie(event, COOKIE_NAME, BYPASS_TOKEN, {
214
+ expires: new Date(Date.now() + 1000 * 60 * 60 * 24),
215
+ })
216
+
217
+ return true
218
+ }),
219
+ )
220
+ .get(
221
+ "/disable",
222
+ eventHandler(async (event) => {
223
+ setCookie(event, COOKIE_NAME, "")
224
+
225
+ return true
226
+ }),
227
+ )
228
+ .get(
229
+ "/check",
230
+ eventHandler(async (event) => {
231
+ const cookie = getCookie(event, COOKIE_NAME)
232
+
233
+ if (cookie === BYPASS_TOKEN) {
234
+ return true
235
+ }
236
+
237
+ return false
238
+ }),
239
+ )
240
+ export default router.handler
241
+ `,
242
+ });
243
+ }
244
+ if (opts.serverless) {
245
+ codegen.registerFile({
246
+ name: "handler.ssr-page.ts",
247
+ generate: code /* tsx */ `
248
+ /// <reference types="vinxi/types/server" />
249
+ import "../../${project.cssEntryFile}"
250
+ import "./manifest/blocks.js"
251
+ import "./manifest/styles.js"
252
+ import "./manifest/views.js"
253
+ import "./context.js"
254
+ import { proxyWpAdmin, renderPage, renderPageForIndexing, ServerContext } from "eddev/server"
255
+ import {
256
+ createRouter,
257
+ eventHandler,
258
+ getQuery,
259
+ getRequestHeaders,
260
+ getRequestURL,
261
+ getRouterParam,
262
+ getWebRequest,
263
+ getCookie,
264
+ setCookie
265
+ } from "vinxi/http"
266
+ import { handleRPC } from "./rpc.js"
160
267
  import { serverContext } from "./context.js"
268
+ import { getManifest } from "vinxi/manifest"
269
+ import { inspect } from "node:util"
270
+ import { withTrailingSlash } from 'ufo'
271
+ import { viewManifestReader, blockManifestReader } from 'eddev/_internal'
161
272
 
162
273
  const router = createRouter()
163
274
  .get(
164
- "/route/",
275
+ "/_data/route/",
165
276
  eventHandler(async (event) => {
166
277
  const id = "/"
278
+ const url = getRequestURL(event)
167
279
 
168
- return await serverContext.fetchRouteData({
169
- pathname: id,
170
- withAppData: false,
171
- })
280
+ return await serverContext.fetchRouteData({ pathname: id, newOrigin: url.origin, bypass: serverContext.shouldBypass(event) })
172
281
  }),
173
282
  )
174
283
  .get(
175
- "/route/**:name",
284
+ "/_data/route/**:name",
176
285
  eventHandler(async (event) => {
177
286
  const id = "/" + getRouterParam(event, "name")
287
+ const url = getRequestURL(event)
178
288
 
179
- return await serverContext.fetchRouteData({
180
- pathname: id,
181
- withAppData: false,
182
- })
289
+ return await serverContext.fetchRouteData({ pathname: id, newOrigin: url.origin, bypass: serverContext.shouldBypass(event) })
183
290
  }),
184
291
  )
185
292
  .get(
186
- "/query/**:name",
293
+ "/_data/query/**:name",
187
294
  eventHandler(async (event) => {
188
295
  const id = "/" + getRouterParam(event, "name")
296
+ const url = getRequestURL(event)
189
297
  const paramString = getQuery(event).params
190
298
 
191
- const params = typeof paramString === "string" && paramString.length ? JSON.parse(paramString) : {}
299
+ const req = getWebRequest(event)
192
300
 
193
- return await serverContext.fetchNamedQuery({
194
- name: id,
195
- params: params,
196
- headers: getRequestHeaders(event),
197
- })
301
+ let params = {}
302
+ try {
303
+ params = typeof paramString === "string" && paramString.length ? JSON.parse(paramString) : {}
304
+ } catch (e) {
305
+ throw new Error("Invalid query parameters")
306
+ }
307
+
308
+ return await serverContext.fetchNamedQuery({ name: id, newOrigin: url.origin, params: params, headers: getRequestHeaders(event), bypass: serverContext.shouldBypass(event) })
309
+ }),
310
+ )
311
+ .get(
312
+ "/_data/manifest/**:input",
313
+ eventHandler(async (event) => {
314
+ const manifest = getManifest("client")
315
+ const id = getRouterParam(event, "input")
316
+ const input = manifest.inputs[id === 'handler' ? manifest.handler : id]
317
+ const result = {
318
+ ...input,
319
+ id,
320
+ assets: await input.assets(),
321
+ }
322
+ const code = inspect(result, { depth: 10 })
323
+ return new Response(code, { headers: { "Content-Type": "text/plain" } })
198
324
  }),
199
325
  )
200
326
  .post(
201
- "/mutation/**:name",
327
+ "/_data/mutation/**:name",
202
328
  eventHandler(async (event) => {
203
329
  const id = "/" + getRouterParam(event, "name")
204
330
  const body = await getWebRequest(event).json()
205
- return await serverContext.fetchMutation({
206
- name: id,
207
- body,
208
- headers: {},
331
+ return await serverContext.fetchMutation({ name: id, body, headers: getRequestHeaders(event) })
332
+ }),
333
+ )
334
+ .post(
335
+ "/_data/submit-gf",
336
+ eventHandler(async (event) => {
337
+ const req = getWebRequest(event)
338
+ const headers = new Headers(req.headers)
339
+ headers.delete("content-length")
340
+ headers.delete("host")
341
+ headers.delete("connection")
342
+ headers.delete("pragma")
343
+ return await serverContext.fetchOrigin("/wp-json/ed/v1/gf/submit/", {
344
+ method: "POST",
345
+ headers: headers,
346
+ body: await req.blob(),
347
+ })
348
+ }),
349
+ )
350
+
351
+ const aiRouter = createRouter()
352
+ .get(
353
+ "/_ai/page",
354
+ eventHandler(async (event) => {
355
+ const id = "/"
356
+ const url = getRequestURL(event)
357
+ const page = await renderPageForIndexing({ pathname: id, newOrigin: url.origin, hostname: url.hostname })
358
+ return new Response(page.contents, {
359
+ headers: {
360
+ "Content-Type": "text/html; charset=utf-8",
361
+ "Cache-Control": "no-store",
362
+ },
363
+ })
364
+ }),
365
+ )
366
+ .get(
367
+ "/_ai/page/**:name",
368
+ eventHandler(async (event) => {
369
+ const id = "/" + getRouterParam(event, "name")
370
+ const url = getRequestURL(event)
371
+
372
+ const page = await renderPageForIndexing({ pathname: id, newOrigin: url.origin, hostname: url.hostname })
373
+ return new Response(page.contents, {
374
+ headers: {
375
+ "Content-Type": "text/html; charset=utf-8",
376
+ "Cache-Control": "no-store",
377
+ },
209
378
  })
210
379
  }),
211
380
  )
212
381
 
213
- export default router.handler
382
+ export default eventHandler({
383
+ handler: async (event) => {
384
+ const serverContext = ServerContext.main
385
+ const url = getRequestURL(event)
214
386
 
215
- `,
216
- });
217
- }
218
- if (opts.serverless) {
219
- codegen.registerFile({
220
- name: "handler.ssr-page.ts",
221
- generate: code /* tsx */ `
222
- /// <reference types="vinxi/types/server" />
223
- import "../../views/index.css"
224
- import "./manifest/blocks.js"
225
- import "./manifest/styles.js"
226
- import "./manifest/views.js"
227
-
228
- import { renderPageToSSRStream, proxyWpAdmin } from "eddev/server"
229
- import { eventHandler, setResponseHeader, setResponseStatus, getRequestURL } from "vinxi/http"
230
- import { serverContext } from "./context.js"
231
- import { getManifest } from "vinxi/manifest"
232
-
233
- export default eventHandler({
234
- handler: async (event) => {
235
- const url = getRequestURL(event)
236
-
237
- if (url.pathname.includes('.')) {
238
- return proxyWpAdmin(event, serverContext)
239
- }
387
+ await Promise.allSettled([viewManifestReader.preloadAll(), blockManifestReader.preloadAll()])
240
388
 
241
- const response = await serverContext.fetchRouteData({
242
- pathname: url.pathname,
243
- withAppData: true,
244
- headers: {},
245
- query: {},
246
- })
247
- if (response.ok) {
248
- setResponseStatus(event, response.status)
249
- setResponseHeader(event, "Content-Type", "text/html; charset=utf-8")
250
- return renderPageToSSRStream(url.pathname, await response.json(), serverContext)
251
- } else {
252
- return response
253
- }
254
- },
255
- })
389
+ // RPC
390
+ const isRPC = serverContext.rpcBases.some((base) => url.pathname.startsWith(base))
391
+ if (isRPC) {
392
+ return handleRPC(event)
393
+ }
394
+
395
+ // Data API
396
+ if (url.pathname.startsWith("/_data/")) {
397
+ return router.handler(event)
398
+ }
399
+
400
+ // LLM indexing route
401
+ if (url.pathname.startsWith("/_ai/")) {
402
+ return aiRouter.handler(event)
403
+ }
256
404
 
405
+ // Outdated build assets
406
+ if (url.pathname.match(/^\\/(_build|_admin)/)) {
407
+ return new Response("", { status: 404 })
408
+ }
409
+
410
+ // Proxy WordPress
411
+ if (url.pathname.includes(".") || url.pathname.startsWith("/graphql") || url.pathname.startsWith("/wp-")) {
412
+ return proxyWpAdmin(event)
413
+ }
414
+
415
+ // Enforce trailing slashes
416
+ if (!url.pathname.endsWith("/")) {
417
+ url.pathname = withTrailingSlash(url.pathname)
418
+ return Response.redirect(url, 301)
419
+ }
420
+
421
+ ${process.env.VERCEL_SKEW_PROTECTION_ENABLED &&
422
+ code /* tsx*/ `
423
+ // Skew protection
424
+ setCookie(event, "__vdpl", ${JSON.stringify(process.env.VERCEL_DEPLOYMENT_ID ?? "")}, {
425
+ httpOnly: false,
426
+ path: "/",
427
+ })
428
+ `}
429
+
430
+ // SSR
431
+ return renderPage({ pathname: url.pathname, newOrigin: url.origin, hostname: url.hostname, bypass: serverContext.shouldBypass(event) })
432
+ },
433
+ })
257
434
  `,
258
435
  });
259
436
  }
260
437
  if (opts.serverless) {
261
- codegen.registerFile({
262
- name: "handler.wp-proxy.ts",
263
- generate: code /* tsx */ `
264
- /// <reference types="vinxi/types/server" />
265
- import { proxyWpAdmin } from "eddev/server"
266
- import { eventHandler } from "vinxi/http"
267
- import { serverContext } from "./context.js"
268
-
269
- export default eventHandler(async (event) => {
270
- return proxyWpAdmin(event, serverContext)
271
- })
272
- `,
273
- });
438
+ // codegen.registerFile({
439
+ // name: "handler.wp-proxy.ts",
440
+ // generate: code/* tsx */ `
441
+ // /// <reference types="vinxi/types/server" />
442
+ // import { proxyWpAdmin } from "eddev/server"
443
+ // import { eventHandler } from "vinxi/http"
444
+ // import "./context.js"
445
+ // export default eventHandler(async (event) => {
446
+ // return proxyWpAdmin(event)
447
+ // })
448
+ // `,
449
+ // })
274
450
  }
275
451
  codegen.registerFile({
276
452
  name: "manifest/blocks.ts",
277
453
  generate: async () => {
278
454
  const blockManifest = await project.blocks.get();
455
+ let blockImports = [];
456
+ let blockEntries = [];
457
+ for (const [name, block] of Object.entries(blockManifest.blocks)) {
458
+ if (name.match(/^_[a-z]+$/i))
459
+ continue;
460
+ const importSource = JSON.stringify("../../../" + block.fileName);
461
+ const jsName = pascalCase(name);
462
+ if (block.dynamic) {
463
+ const importStatement = `dynamic(() => import(${importSource}), ${JSON.stringify(block.fileName)})`;
464
+ blockEntries.push(JSON.stringify(block.acfName) + ": " + importStatement);
465
+ }
466
+ else {
467
+ blockImports.push(`import ${jsName} from ${importSource}`);
468
+ blockEntries.push(JSON.stringify(block.acfName) + ": " + jsName);
469
+ }
470
+ }
279
471
  return code /* ts */ `
280
472
  import { blockManifestReader } from 'eddev/_internal'
281
473
  import { dynamic } from 'eddev/dynamic'
282
474
  import core from '../../../blocks/_core'
475
+ ${blockImports.join("\n")}
283
476
 
284
477
  const manifest = {
285
- ${Object.entries(blockManifest.blocks)
286
- .filter(([name]) => !name.match(/^_[a-z]+$/i))
287
- .map(([name, block]) => {
288
- const importStatement = `dynamic(() => import(${JSON.stringify("../../../" + block.fileName)}))`;
289
- return JSON.stringify(block.acfName) + ": " + importStatement;
290
- })
291
- .join(",\n")},
478
+ ${blockEntries.join(",\n")},
292
479
  ...core
293
480
  }
294
481
 
@@ -369,14 +556,19 @@ export function createVinxiCodegen(opts) {
369
556
  return code /* ts */ `
370
557
  import { viewManifestReader } from 'eddev/_internal'
371
558
  import { dynamic } from 'eddev/dynamic'
372
- const manifest = {${Object.entries(viewManifest.views)
373
- .map(([name, view]) => {
374
- const importStatement = `dynamic(() => import(${JSON.stringify("../../../" + view.fileName)}))`;
375
- return JSON.stringify(view.slug) + ": " + importStatement;
376
- })
377
- .join(",\n")}}
378
-
379
- viewManifestReader.value = manifest
559
+ const manifest = {${Object.entries(viewManifest.views).map(([name, view]) => {
560
+ const src = "../../../" + view.fileName;
561
+ let importStatement;
562
+ if (name.startsWith("_")) {
563
+ importStatement = imp(name + "=" + src);
564
+ }
565
+ else {
566
+ importStatement = code `dynamic(() => import(${JSON.stringify(src)}), ${JSON.stringify(view.fileName)})`;
567
+ }
568
+ return code `${JSON.stringify(view.slug)}: ${importStatement},\n`;
569
+ })}}
570
+
571
+ viewManifestReader.set(manifest)
380
572
 
381
573
  export default manifest
382
574
 
@@ -413,5 +605,99 @@ export function createVinxiCodegen(opts) {
413
605
  `;
414
606
  },
415
607
  });
608
+ if (opts.serverless) {
609
+ codegen.registerFile({
610
+ name: "manifest/routes.ts",
611
+ generate: async () => {
612
+ const routeManifest = await project.serverRoutes.get();
613
+ return code /* ts */ `
614
+ import { instantiateRouter } from "eddev/server"
615
+ ${routeManifest.contextFileName
616
+ ? code /*ts*/ `
617
+ import createContext from "../../../${routeManifest.contextFileName}"
618
+ `
619
+ : code /*ts*/ `
620
+ const createContext = () => ({})
621
+ `}
622
+
623
+ const router = instantiateRouter({${Object.entries(routeManifest.routes).map(([name, route]) => {
624
+ const src = "../../../" + route.fileName;
625
+ const importStatement = imp(camelCase(name) + "=" + src);
626
+ return code `${JSON.stringify(route.prefix)}: ${importStatement},\n`;
627
+ })}})
628
+
629
+ export { createContext, router }
630
+ `;
631
+ },
632
+ subscribe: project.serverRoutes.subscribe,
633
+ });
634
+ codegen.registerFile({
635
+ name: "rpc.ts",
636
+ generate: code /* tsx */ `
637
+ /// <reference types="vinxi/types/server" />
638
+ import "./context.js"
639
+ import { fetchRequestHandler } from "@trpc/server/adapters/fetch"
640
+ import { parseURL, stringifyParsedURL } from "ufo"
641
+ import { EventHandlerRequest, getWebRequest, H3Event, setResponseHeaders } from "vinxi/http"
642
+ import { createContext, router } from "./manifest/routes.ts"
643
+ import { ServerContext } from "eddev/server"
644
+
645
+ export function handleRPC(event: H3Event<EventHandlerRequest>) {
646
+ const serverContext = ServerContext.main
647
+
648
+ // Handle CORS
649
+ setResponseHeaders(event, serverContext.getCorsHeaders(event.headers.get("origin") ?? event.headers.get("referer") ?? ""))
650
+ if (event.method === "OPTIONS") {
651
+ event.node.res.statusCode = 204
652
+ event.node.res.statusMessage = "No Content."
653
+ return "OK"
654
+ }
655
+
656
+ // Update URLs with dots, which tRPC prefers
657
+ const originalReq = getWebRequest(event)
658
+ const parsed = parseURL(originalReq.url)
659
+ parsed.pathname = "/" + parsed.pathname.replace(/(^\\/|\\/$)/g, "").replace(/\\//g, ".")
660
+ const req = new Request(stringifyParsedURL(parsed), originalReq)
661
+
662
+ // Handle any early results which are Responses
663
+ function processEarlyResult(value: any): Response | undefined {
664
+ if (value instanceof Response) {
665
+ return value
666
+ }
667
+ }
668
+
669
+ return new Promise(async (resolve) => {
670
+ let sent = false
671
+ const defaultResponse = await fetchRequestHandler({
672
+ endpoint: "/",
673
+ req: req,
674
+ router: router,
675
+ createContext: async (opts) => {
676
+ return {
677
+ ...(await createContext(opts)),
678
+ searchParams: opts.info.url?.searchParams,
679
+ server: serverContext,
680
+ }
681
+ },
682
+ onError: (err) => console.error(err),
683
+ batching: { enabled: false },
684
+ // If a Response object is returned by a route, it will be sent as the response
685
+ responseMeta(opts) {
686
+ const value = opts?.data?.[0]?.["result"]?.["data"]
687
+ const response = processEarlyResult(value)
688
+ if (response) {
689
+ sent = true
690
+ resolve(response)
691
+ }
692
+ return {}
693
+ },
694
+ })
695
+ if (sent) return
696
+ resolve(defaultResponse)
697
+ })
698
+ }
699
+ `,
700
+ });
701
+ }
416
702
  return codegen;
417
703
  }