eddev 2.0.0-beta.24 → 2.0.0-beta.241

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