eddev 0.3.35 → 2.0.0-beta.1

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 (567) hide show
  1. package/bin/eddev.js +1 -3
  2. package/css/devtools.css +15 -0
  3. package/css/editor-styles.css +94 -0
  4. package/dist/app/entry/Root.d.ts +1 -0
  5. package/dist/app/entry/Root.js +9 -0
  6. package/dist/app/entry/main.admin.d.ts +3 -0
  7. package/dist/app/entry/main.admin.js +10 -0
  8. package/dist/app/entry/main.frontend.spa.d.ts +3 -0
  9. package/dist/app/entry/main.frontend.spa.js +13 -0
  10. package/dist/app/entry/main.frontend.ssr.d.ts +21 -0
  11. package/dist/app/entry/main.frontend.ssr.js +79 -0
  12. package/dist/app/entry/main.serverless.dev.d.ts +4 -0
  13. package/dist/app/entry/main.serverless.dev.js +21 -0
  14. package/{admin → dist/app/lib/admin}/defineField.d.ts +2 -2
  15. package/dist/app/lib/admin/defineField.js +3 -0
  16. package/{admin → dist/app/lib/admin}/defineWidget.d.ts +1 -1
  17. package/dist/app/lib/admin/defineWidget.js +6 -0
  18. package/dist/app/lib/admin/index.d.ts +2 -0
  19. package/dist/app/lib/admin/index.js +2 -0
  20. package/dist/app/lib/admin/installFieldTypes.js +92 -0
  21. package/dist/app/lib/admin/runWidgets.js +38 -0
  22. package/dist/app/lib/blocks/ContentBlocks.d.ts +83 -0
  23. package/dist/app/lib/blocks/ContentBlocks.js +92 -0
  24. package/dist/app/lib/blocks/EditableText.d.ts +41 -0
  25. package/dist/app/lib/blocks/EditableText.js +50 -0
  26. package/{blocks → dist/app/lib/blocks}/ErrorBoundaryFrontend.d.ts +2 -2
  27. package/dist/app/lib/blocks/ErrorBoundaryFrontend.js +35 -0
  28. package/dist/app/lib/blocks/InnerBlocks.d.ts +42 -0
  29. package/dist/app/lib/blocks/InnerBlocks.js +55 -0
  30. package/dist/app/lib/blocks/block-utils.d.ts +24 -0
  31. package/dist/app/lib/blocks/block-utils.js +41 -0
  32. package/dist/app/lib/blocks/defineBlock.d.ts +2 -0
  33. package/dist/app/lib/blocks/defineBlock.js +3 -0
  34. package/dist/app/lib/blocks/editor/EditorSupport.d.ts +5 -0
  35. package/dist/app/lib/blocks/editor/EditorSupport.js +19 -0
  36. package/{blocks → dist/app/lib/blocks/editor}/ErrorBoundaryEditor.d.ts +1 -1
  37. package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.js +28 -0
  38. package/dist/app/lib/blocks/editor/block-templates.d.ts +3 -0
  39. package/dist/app/lib/blocks/editor/block-templates.js +9 -0
  40. package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts +7 -0
  41. package/dist/app/lib/blocks/editor/blocks-by-tag.js +42 -0
  42. package/dist/app/lib/blocks/editor/controls.d.ts +10 -0
  43. package/dist/app/lib/blocks/editor/controls.js +20 -0
  44. package/dist/app/lib/blocks/editor/editor-config.d.ts +58 -0
  45. package/dist/app/lib/blocks/editor/editor-config.js +191 -0
  46. package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts +2 -0
  47. package/dist/app/lib/blocks/editor/installGutenbergHooks.js +131 -0
  48. package/dist/app/lib/blocks/editor/usePostEditor.d.ts +27 -0
  49. package/dist/app/lib/blocks/editor/usePostEditor.js +79 -0
  50. package/dist/app/lib/blocks/index.d.ts +9 -0
  51. package/dist/app/lib/blocks/index.js +9 -0
  52. package/dist/app/lib/blocks/inline-editing.d.ts +54 -0
  53. package/dist/app/lib/blocks/inline-editing.js +114 -0
  54. package/dist/app/lib/devtools/components/BreakpointIndicator.js +79 -0
  55. package/{dev-ui → dist/app/lib/devtools}/components/DevUI.d.ts +1 -0
  56. package/dist/app/lib/devtools/components/DevUI.js +6 -0
  57. package/dist/app/lib/devtools/hooks/usePersistState.js +31 -0
  58. package/dist/app/lib/devtools/hooks/useTailwind.d.ts +4184 -0
  59. package/dist/app/lib/devtools/hooks/useTailwind.js +6 -0
  60. package/dist/app/lib/devtools/index.js +1 -0
  61. package/dist/app/lib/devtools/loader.js +23 -0
  62. package/dist/app/lib/devtools/tailwind.config.d.ts +23 -0
  63. package/dist/app/lib/devtools/tailwind.config.js +24 -0
  64. package/{hooks → dist/app/lib/devtools}/useQueryDebug.d.ts +1 -1
  65. package/dist/app/lib/devtools/useQueryDebug.js +13 -0
  66. package/dist/app/lib/dynamic/dynamic.d.ts +8 -0
  67. package/dist/app/lib/dynamic/dynamic.js +25 -0
  68. package/dist/app/lib/dynamic/index.d.ts +1 -0
  69. package/dist/app/lib/dynamic/index.js +1 -0
  70. package/dist/app/lib/hooks/apiConfig.d.ts +18 -0
  71. package/dist/app/lib/hooks/apiConfig.js +4 -0
  72. package/{hooks → dist/app/lib/hooks}/index.d.ts +2 -0
  73. package/dist/app/lib/hooks/index.js +5 -0
  74. package/dist/app/lib/hooks/queryUtils.d.ts +46 -0
  75. package/dist/app/lib/hooks/queryUtils.js +183 -0
  76. package/dist/app/lib/hooks/useAppData.d.ts +4 -0
  77. package/dist/app/lib/hooks/useAppData.js +11 -0
  78. package/{hooks → dist/app/lib/hooks}/usePageLoad.d.ts +1 -1
  79. package/dist/app/lib/hooks/usePageLoad.js +5 -0
  80. package/dist/app/lib/hooks/useRPC.d.ts +9 -0
  81. package/dist/app/lib/hooks/useRPC.js +9 -0
  82. package/dist/app/lib/internal/index.d.ts +4 -0
  83. package/dist/app/lib/internal/index.js +4 -0
  84. package/dist/app/lib/internal/internal-store.d.ts +11 -0
  85. package/dist/app/lib/internal/internal-store.js +9 -0
  86. package/dist/app/lib/internal/read-admin-manifest.d.ts +19 -0
  87. package/dist/app/lib/internal/read-admin-manifest.js +17 -0
  88. package/dist/app/lib/internal/read-block-manifest.d.ts +15 -0
  89. package/dist/app/lib/internal/read-block-manifest.js +16 -0
  90. package/dist/app/lib/internal/read-view-manifest.d.ts +12 -0
  91. package/dist/app/lib/internal/read-view-manifest.js +3 -0
  92. package/dist/app/lib/legacy-stitches/createStitches.d.ts +615 -0
  93. package/dist/app/lib/legacy-stitches/createStitches.js +439 -0
  94. package/dist/app/lib/legacy-stitches/index.js +1 -0
  95. package/{components → dist/app/lib/routing/components}/BrowserRouter.d.ts +2 -4
  96. package/dist/app/lib/routing/components/BrowserRouter.js +351 -0
  97. package/dist/app/lib/routing/components/ClientOnly.d.ts +12 -0
  98. package/dist/app/lib/routing/components/ClientOnly.js +14 -0
  99. package/dist/app/lib/routing/components/Link.d.ts +26 -0
  100. package/dist/app/lib/routing/components/Link.js +93 -0
  101. package/dist/app/lib/routing/components/RouteRenderer.d.ts +9 -0
  102. package/dist/app/lib/routing/components/RouteRenderer.js +28 -0
  103. package/dist/app/lib/routing/components/SSRRouter.d.ts +9 -0
  104. package/dist/app/lib/routing/components/SSRRouter.js +14 -0
  105. package/dist/app/lib/routing/components/ScrollRestoration.d.ts +15 -0
  106. package/dist/app/lib/routing/components/ScrollRestoration.js +32 -0
  107. package/dist/app/lib/routing/context.d.ts +5 -0
  108. package/dist/app/lib/routing/context.js +129 -0
  109. package/dist/app/lib/routing/hooks/useIsSSR.d.ts +8 -0
  110. package/dist/app/lib/routing/hooks/useIsSSR.js +22 -0
  111. package/dist/app/lib/routing/hooks/useRestorableState.d.ts +5 -0
  112. package/dist/app/lib/routing/hooks/useRestorableState.js +17 -0
  113. package/dist/app/lib/routing/hooks/useRoute.d.ts +2 -0
  114. package/dist/app/lib/routing/hooks/useRoute.js +5 -0
  115. package/dist/app/lib/routing/hooks/useRouteTransition.d.ts +4 -0
  116. package/dist/app/lib/routing/hooks/useRouteTransition.js +12 -0
  117. package/dist/app/lib/routing/hooks/useRouter.d.ts +2 -0
  118. package/dist/app/lib/routing/hooks/useRouter.js +11 -0
  119. package/dist/app/lib/routing/hooks/useRouterEvents.d.ts +2 -0
  120. package/dist/app/lib/routing/hooks/useRouterEvents.js +10 -0
  121. package/dist/app/lib/routing/hooks/useRouterState.d.ts +2 -0
  122. package/dist/app/lib/routing/hooks/useRouterState.js +8 -0
  123. package/dist/app/lib/routing/hooks/useSearchParams.d.ts +10 -0
  124. package/dist/app/lib/routing/hooks/useSearchParams.js +30 -0
  125. package/dist/app/lib/routing/index.d.ts +13 -0
  126. package/dist/app/lib/routing/index.js +13 -0
  127. package/dist/app/lib/routing/loader.d.ts +30 -0
  128. package/dist/app/lib/routing/loader.js +106 -0
  129. package/dist/app/lib/routing/types.d.ts +138 -0
  130. package/dist/app/lib/routing/utils.d.ts +15 -0
  131. package/dist/app/lib/routing/utils.js +94 -0
  132. package/dist/app/lib/views/defineView.d.ts +4 -0
  133. package/dist/app/lib/views/defineView.js +3 -0
  134. package/dist/app/lib/views/index.js +1 -0
  135. package/dist/app/server/create-api-builtin-hono.d.ts +8 -0
  136. package/dist/app/server/create-api-builtin-hono.js +80 -0
  137. package/dist/app/server/create-ssr-hono.d.ts +18 -0
  138. package/dist/app/server/create-ssr-hono.js +104 -0
  139. package/dist/app/server/utils/headers.d.ts +4 -0
  140. package/dist/app/server/utils/headers.js +11 -0
  141. package/dist/app/server/utils/index.html.d.ts +2 -0
  142. package/dist/app/server/utils/index.html.js +14 -0
  143. package/dist/app/server/utils/replace-host.d.ts +8 -0
  144. package/dist/app/server/utils/replace-host.js +14 -0
  145. package/dist/app/utils/query-client.d.ts +2 -0
  146. package/dist/app/utils/query-client.js +16 -0
  147. package/dist/app/utils/wp.d.ts +26 -0
  148. package/dist/node/cli/cli-mode.d.ts +10 -0
  149. package/dist/node/cli/cli-mode.js +12 -0
  150. package/dist/node/cli/cli-worker.d.ts +13 -0
  151. package/dist/node/cli/cli-worker.js +114 -0
  152. package/dist/node/cli/cli.js +166 -0
  153. package/dist/node/cli/display/CLIApp.d.ts +16 -0
  154. package/dist/node/cli/display/CLIApp.js +117 -0
  155. package/dist/node/cli/display/boot-cli-app.d.ts +2 -0
  156. package/dist/node/cli/display/boot-cli-app.js +10 -0
  157. package/{cli → dist/node/cli}/display/components/Fullscreen.d.ts +1 -1
  158. package/dist/node/cli/display/components/Fullscreen.js +24 -0
  159. package/dist/node/cli/display/components/LogEntries.d.ts +13 -0
  160. package/dist/node/cli/display/components/LogEntries.js +87 -0
  161. package/dist/node/cli/display/components/MenuItem.d.ts +6 -0
  162. package/dist/node/cli/display/components/MenuItem.js +11 -0
  163. package/dist/node/cli/display/components/TextInput.d.ts +44 -0
  164. package/dist/node/cli/display/components/TextInput.js +105 -0
  165. package/dist/node/cli/display/hooks/useManifest.d.ts +2 -0
  166. package/dist/node/cli/display/hooks/useManifest.js +8 -0
  167. package/dist/node/cli/display/hooks/useStatefulLog.d.ts +11 -0
  168. package/dist/node/cli/display/hooks/useStatefulLog.js +51 -0
  169. package/dist/node/cli/display/tools/BlockList.d.ts +2 -0
  170. package/dist/node/cli/display/tools/BlockList.js +10 -0
  171. package/dist/node/cli/display/tools/CreateBlock.d.ts +2 -0
  172. package/dist/node/cli/display/tools/CreateBlock.js +8 -0
  173. package/dist/node/cli/display/tools/cli-tool-list.d.ts +2 -0
  174. package/dist/node/cli/display/tools/cli-tool-list.js +23 -0
  175. package/dist/node/cli/display/tools/cli-tools.d.ts +26 -0
  176. package/dist/node/cli/display/tools/cli-tools.js +15 -0
  177. package/dist/node/cli/display/util/colors.d.ts +4 -0
  178. package/dist/node/cli/display/util/colors.js +63 -0
  179. package/dist/node/cli/version.d.ts +1 -0
  180. package/dist/node/cli/version.js +1 -0
  181. package/dist/node/compiler/bundler.admin.d.ts +13 -0
  182. package/dist/node/compiler/bundler.admin.js +37 -0
  183. package/dist/node/compiler/bundler.frontend.d.ts +13 -0
  184. package/dist/node/compiler/bundler.frontend.js +37 -0
  185. package/dist/node/compiler/index.html.d.ts +2 -0
  186. package/dist/node/compiler/index.html.js +15 -0
  187. package/dist/node/compiler/serverless.dev.d.ts +16 -0
  188. package/dist/node/compiler/serverless.dev.js +215 -0
  189. package/dist/node/compiler/vite/get-vite-config.d.ts +13 -0
  190. package/dist/node/compiler/vite/get-vite-config.js +315 -0
  191. package/dist/node/compiler/vite/plugin-admin.d.ts +4 -0
  192. package/dist/node/compiler/vite/plugin-admin.js +67 -0
  193. package/dist/node/compiler/vite/plugin-blocks.d.ts +4 -0
  194. package/dist/node/compiler/vite/plugin-blocks.js +73 -0
  195. package/dist/node/compiler/vite/plugin-entry.d.ts +6 -0
  196. package/dist/node/compiler/vite/plugin-entry.js +16 -0
  197. package/dist/node/compiler/vite/plugin-resolved-tailwind.d.ts +4 -0
  198. package/dist/node/compiler/vite/plugin-resolved-tailwind.js +29 -0
  199. package/dist/node/compiler/vite/plugin-theme.d.ts +4 -0
  200. package/dist/node/compiler/vite/plugin-theme.js +40 -0
  201. package/dist/node/compiler/vite/plugin-views.d.ts +4 -0
  202. package/dist/node/compiler/vite/plugin-views.js +51 -0
  203. package/dist/node/graphql/graphql-codegen.d.ts +30 -0
  204. package/dist/node/graphql/graphql-codegen.js +503 -0
  205. package/dist/node/graphql/graphql-schema-loader.d.ts +17 -0
  206. package/dist/node/graphql/graphql-schema-loader.js +94 -0
  207. package/dist/node/graphql/plugins/gql-plugin-files.d.ts +14 -0
  208. package/dist/node/graphql/plugins/gql-plugin-files.js +66 -0
  209. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts +8 -0
  210. package/dist/node/graphql/plugins/gql-plugin-no-duplicates.js +10 -0
  211. package/dist/node/graphql/plugins/gql-plugin-queries.d.ts +8 -0
  212. package/dist/node/graphql/plugins/gql-plugin-queries.js +263 -0
  213. package/dist/node/graphql/query-files-loader.d.ts +26 -0
  214. package/dist/node/graphql/query-files-loader.js +54 -0
  215. package/dist/node/graphql/wp-info-query.d.ts +1 -0
  216. package/dist/node/graphql/wp-info-query.js +29 -0
  217. package/{config/config-schema.d.ts → dist/node/project/config.d.ts} +54 -38
  218. package/dist/node/project/config.js +138 -0
  219. package/dist/node/project/eddev-build-file.d.ts +10 -0
  220. package/dist/node/project/eddev-build-file.js +79 -0
  221. package/dist/node/project/env.d.ts +39 -0
  222. package/dist/node/project/env.js +77 -0
  223. package/dist/node/project/favicons.d.ts +0 -0
  224. package/dist/node/project/favicons.js +1 -0
  225. package/dist/node/project/manifest/block-manifest.d.ts +19 -0
  226. package/dist/node/project/manifest/block-manifest.js +206 -0
  227. package/dist/node/project/manifest/field-manifest.d.ts +17 -0
  228. package/dist/node/project/manifest/field-manifest.js +42 -0
  229. package/dist/node/project/manifest/manifest.d.ts +30 -0
  230. package/dist/node/project/manifest/manifest.js +105 -0
  231. package/dist/node/project/manifest/view-manifest.d.ts +19 -0
  232. package/dist/node/project/manifest/view-manifest.js +152 -0
  233. package/dist/node/project/manifest/widget-manifest.d.ts +17 -0
  234. package/dist/node/project/manifest/widget-manifest.js +42 -0
  235. package/dist/node/project/project.d.ts +57 -0
  236. package/dist/node/project/project.js +115 -0
  237. package/dist/node/project/wp-info.d.ts +32 -0
  238. package/dist/node/project/wp-info.js +34 -0
  239. package/dist/node/types/block-type.d.ts +92 -0
  240. package/dist/node/types/block-type.js +82 -0
  241. package/dist/node/types/view-type.d.ts +31 -0
  242. package/dist/node/types/view-type.js +54 -0
  243. package/dist/node/utils/console.d.ts +21 -0
  244. package/dist/node/utils/console.js +28 -0
  245. package/dist/node/utils/export-extractor.d.ts +9 -0
  246. package/dist/node/utils/export-extractor.js +71 -0
  247. package/dist/node/utils/formatZodError.d.ts +3 -0
  248. package/dist/node/utils/formatZodError.js +33 -0
  249. package/dist/node/utils/fs.d.ts +106 -0
  250. package/dist/node/utils/fs.js +56 -0
  251. package/dist/node/utils/getRepoInfo.d.ts +7 -0
  252. package/dist/node/utils/getRepoInfo.js +21 -0
  253. package/dist/node/utils/helpers.d.ts +2 -0
  254. package/dist/node/utils/helpers.js +14 -0
  255. package/dist/node/utils/highlightCode.d.ts +10 -0
  256. package/dist/node/utils/highlightCode.js +30 -0
  257. package/dist/node/utils/isDeploying.d.ts +4 -0
  258. package/dist/node/utils/isDeploying.js +6 -0
  259. package/dist/node/utils/report-builder.d.ts +9 -0
  260. package/dist/node/utils/report-builder.js +51 -0
  261. package/dist/node/utils/selfSignedCert.d.ts +4 -0
  262. package/dist/node/utils/selfSignedCert.js +35 -0
  263. package/dist/node/utils/statefulLog.d.ts +65 -0
  264. package/dist/node/utils/statefulLog.js +223 -0
  265. package/dist/node/utils/unsafe-fetch.d.ts +2 -0
  266. package/dist/node/utils/unsafe-fetch.js +19 -0
  267. package/dist/node/utils/watchFileTree.d.ts +11 -0
  268. package/dist/node/utils/watchFileTree.js +58 -0
  269. package/package.json +123 -102
  270. package/stitches-archive/config.d.ts +210 -0
  271. package/stitches-archive/css-util.d.ts +119 -0
  272. package/stitches-archive/css.d.ts +9797 -0
  273. package/stitches-archive/index.d.mts +144 -0
  274. package/stitches-archive/index.d.ts +82 -0
  275. package/stitches-archive/index.mjs +2 -0
  276. package/stitches-archive/stitches.d.ts +288 -0
  277. package/stitches-archive/styled-component.d.ts +163 -0
  278. package/stitches-archive/theme.d.ts +43 -0
  279. package/stitches-archive/util.d.ts +32 -0
  280. package/tsconfig.app.json +20 -0
  281. package/tsconfig.json +2 -104
  282. package/tsconfig.node.json +20 -0
  283. package/tsup.config.ts +40 -0
  284. package/types.app.d.ts +22 -0
  285. package/types.app.internal.d.ts +13 -0
  286. package/types.env.d.ts +16 -0
  287. package/types.manifests.d.ts +22 -0
  288. package/types.meta.d.ts +319 -0
  289. package/types.node.d.ts +3 -0
  290. package/admin/components/FileWell.d.ts +0 -8
  291. package/admin/components/FileWell.js +0 -189
  292. package/admin/components/ImageWell.d.ts +0 -9
  293. package/admin/components/ImageWell.js +0 -209
  294. package/admin/defineField.js +0 -7
  295. package/admin/defineWidget.js +0 -10
  296. package/admin/index.d.ts +0 -4
  297. package/admin/index.js +0 -16
  298. package/admin/installFieldTypes.js +0 -71
  299. package/admin/runWidgets.js +0 -55
  300. package/admin/selectMedia.d.ts +0 -31
  301. package/admin/selectMedia.js +0 -9
  302. package/blocks/ContentBlocks.d.ts +0 -40
  303. package/blocks/ContentBlocks.js +0 -125
  304. package/blocks/ErrorBoundaryEditor.js +0 -64
  305. package/blocks/ErrorBoundaryFrontend.js +0 -69
  306. package/blocks/InspectorControls.d.ts +0 -2
  307. package/blocks/InspectorControls.js +0 -13
  308. package/blocks/blockAttributes.d.ts +0 -20
  309. package/blocks/blockAttributes.js +0 -81
  310. package/blocks/defineBlock.d.ts +0 -2
  311. package/blocks/defineBlock.js +0 -7
  312. package/blocks/index.d.ts +0 -5
  313. package/blocks/index.js +0 -23
  314. package/blocks/inlineEditing.d.ts +0 -32
  315. package/blocks/inlineEditing.js +0 -141
  316. package/blocks/installGutenbergHooks.d.ts +0 -2
  317. package/blocks/installGutenbergHooks.js +0 -211
  318. package/build/babel/plugin-name-defined-components.d.ts +0 -7
  319. package/build/babel/plugin-name-defined-components.js +0 -47
  320. package/build/build-favicon.d.ts +0 -1
  321. package/build/build-favicon.js +0 -71
  322. package/build/clean.d.ts +0 -1
  323. package/build/clean.js +0 -60
  324. package/build/create-codegen-worker.d.ts +0 -3
  325. package/build/create-codegen-worker.js +0 -71
  326. package/build/create-serverless-dev-worker.d.ts +0 -3
  327. package/build/create-serverless-dev-worker.js +0 -99
  328. package/build/create-webpack-worker.d.ts +0 -3
  329. package/build/create-webpack-worker.js +0 -64
  330. package/build/file-tree.d.ts +0 -5
  331. package/build/file-tree.js +0 -45
  332. package/build/get-webpack-config.d.ts +0 -3
  333. package/build/get-webpack-config.js +0 -426
  334. package/build/graphql-codegen/graphql-codegen-blocks.d.ts +0 -1
  335. package/build/graphql-codegen/graphql-codegen-blocks.js +0 -7
  336. package/build/graphql-codegen/graphql-codegen-files.js +0 -64
  337. package/build/graphql-codegen/graphql-codegen-no-duplicates.js +0 -13
  338. package/build/graphql-codegen/graphql-codegen-queries.d.ts +0 -1
  339. package/build/graphql-codegen/graphql-codegen-queries.js +0 -248
  340. package/build/manifests/manifest-blocks.d.ts +0 -12
  341. package/build/manifests/manifest-blocks.js +0 -61
  342. package/build/manifests/manifest-fields.d.ts +0 -12
  343. package/build/manifests/manifest-fields.js +0 -42
  344. package/build/manifests/manifest-views.d.ts +0 -12
  345. package/build/manifests/manifest-views.js +0 -49
  346. package/build/manifests/manifest-widgets.d.ts +0 -12
  347. package/build/manifests/manifest-widgets.js +0 -42
  348. package/build/manifests/manifest.d.ts +0 -11
  349. package/build/manifests/manifest.js +0 -100
  350. package/build/reporter.d.ts +0 -12
  351. package/build/reporter.js +0 -102
  352. package/build/serverless/create-next-app.d.ts +0 -9
  353. package/build/serverless/create-next-app.js +0 -536
  354. package/build/state/codegen-state.d.ts +0 -32
  355. package/build/state/codegen-state.js +0 -2
  356. package/build/state/compiler-state.d.ts +0 -49
  357. package/build/state/compiler-state.js +0 -2
  358. package/build/state/serverless-state.d.ts +0 -26
  359. package/build/state/serverless-state.js +0 -2
  360. package/build/workers/codegen-worker-script.d.ts +0 -2
  361. package/build/workers/codegen-worker-script.js +0 -624
  362. package/build/workers/serverless-worker-dev-script.d.ts +0 -1
  363. package/build/workers/serverless-worker-dev-script.js +0 -21
  364. package/build/workers/webpack-worker-script.d.ts +0 -2
  365. package/build/workers/webpack-worker-script.js +0 -171
  366. package/cli/build.dev.d.ts +0 -7
  367. package/cli/build.dev.js +0 -136
  368. package/cli/build.prod.d.ts +0 -5
  369. package/cli/build.prod.js +0 -107
  370. package/cli/cli.js +0 -90
  371. package/cli/display/components/BundleDisplay.d.ts +0 -5
  372. package/cli/display/components/BundleDisplay.js +0 -56
  373. package/cli/display/components/CodegenDisplay.d.ts +0 -5
  374. package/cli/display/components/CodegenDisplay.js +0 -62
  375. package/cli/display/components/DevCLIDisplay.d.ts +0 -12
  376. package/cli/display/components/DevCLIDisplay.js +0 -42
  377. package/cli/display/components/Fullscreen.js +0 -39
  378. package/cli/display/components/ServerlessDisplay.d.ts +0 -8
  379. package/cli/display/components/ServerlessDisplay.js +0 -68
  380. package/cli/display/components/StatusIcon.d.ts +0 -5
  381. package/cli/display/components/StatusIcon.js +0 -9
  382. package/cli/preinstall.d.ts +0 -1
  383. package/cli/preinstall.js +0 -19
  384. package/cli/setup.d.ts +0 -1
  385. package/cli/setup.js +0 -90
  386. package/components/AdminBar.d.ts +0 -1
  387. package/components/AdminBar.js +0 -9
  388. package/components/BrowserRouter.js +0 -155
  389. package/components/InlinePage.d.ts +0 -11
  390. package/components/InlinePage.js +0 -70
  391. package/components/NextRouter.d.ts +0 -9
  392. package/components/NextRouter.js +0 -45
  393. package/components/index.d.ts +0 -2
  394. package/components/index.js +0 -14
  395. package/config/config-schema.js +0 -38
  396. package/config/create-schema-file.d.ts +0 -1
  397. package/config/create-schema-file.js +0 -20
  398. package/config/get-config.d.ts +0 -78
  399. package/config/get-config.js +0 -32
  400. package/config/index.d.ts +0 -2
  401. package/config/index.js +0 -14
  402. package/config/parse-config.d.ts +0 -51
  403. package/config/parse-config.js +0 -8
  404. package/config/print-zod-errors.d.ts +0 -2
  405. package/config/print-zod-errors.js +0 -14
  406. package/dev-ui/components/BreakpointColumnHeader.d.ts +0 -10
  407. package/dev-ui/components/BreakpointColumnHeader.js +0 -47
  408. package/dev-ui/components/BreakpointIndicator.js +0 -139
  409. package/dev-ui/components/DevUI.js +0 -28
  410. package/dev-ui/components/Launcher.d.ts +0 -98
  411. package/dev-ui/components/Launcher.js +0 -94
  412. package/dev-ui/components/PanelWrapper.d.ts +0 -8
  413. package/dev-ui/components/PanelWrapper.js +0 -37
  414. package/dev-ui/components/ResponsiveLerpControl.d.ts +0 -7
  415. package/dev-ui/components/ResponsiveLerpControl.js +0 -176
  416. package/dev-ui/components/ResponsiveScaleEditor.d.ts +0 -25
  417. package/dev-ui/components/ResponsiveScaleEditor.js +0 -238
  418. package/dev-ui/components/atoms/Button.d.ts +0 -47
  419. package/dev-ui/components/atoms/Button.js +0 -67
  420. package/dev-ui/components/atoms/Dropdown.d.ts +0 -13
  421. package/dev-ui/components/atoms/Dropdown.js +0 -50
  422. package/dev-ui/components/atoms/NumberField.d.ts +0 -11
  423. package/dev-ui/components/atoms/NumberField.js +0 -111
  424. package/dev-ui/components/atoms/Spacer.d.ts +0 -42
  425. package/dev-ui/components/atoms/Spacer.js +0 -8
  426. package/dev-ui/components/atoms/Text.d.ts +0 -45
  427. package/dev-ui/components/atoms/Text.js +0 -39
  428. package/dev-ui/components/atoms/ToggleButton.d.ts +0 -8
  429. package/dev-ui/components/atoms/ToggleButton.js +0 -41
  430. package/dev-ui/components/atoms/Tooltip.d.ts +0 -9
  431. package/dev-ui/components/atoms/Tooltip.js +0 -66
  432. package/dev-ui/components/panels/AppDataDebugger.d.ts +0 -1
  433. package/dev-ui/components/panels/AppDataDebugger.js +0 -29
  434. package/dev-ui/components/panels/ColorEditor.d.ts +0 -1
  435. package/dev-ui/components/panels/ColorEditor.js +0 -128
  436. package/dev-ui/components/panels/PageDataDebugger.d.ts +0 -1
  437. package/dev-ui/components/panels/PageDataDebugger.js +0 -30
  438. package/dev-ui/components/panels/QueryDebugger.d.ts +0 -1
  439. package/dev-ui/components/panels/QueryDebugger.js +0 -46
  440. package/dev-ui/components/panels/SpacingEditor.d.ts +0 -1
  441. package/dev-ui/components/panels/SpacingEditor.js +0 -88
  442. package/dev-ui/components/panels/TypographyEditor.d.ts +0 -1
  443. package/dev-ui/components/panels/TypographyEditor.js +0 -97
  444. package/dev-ui/hooks/useBreakpoint.d.ts +0 -11
  445. package/dev-ui/hooks/useBreakpoint.js +0 -59
  446. package/dev-ui/hooks/usePersistState.js +0 -36
  447. package/dev-ui/hooks/useStylesheet.d.ts +0 -4
  448. package/dev-ui/hooks/useStylesheet.js +0 -31
  449. package/dev-ui/icons.d.ts +0 -15
  450. package/dev-ui/icons.js +0 -30
  451. package/dev-ui/index.d.ts +0 -1
  452. package/dev-ui/index.js +0 -13
  453. package/dev-ui/loader.js +0 -44
  454. package/dev-ui/panels.d.ts +0 -11
  455. package/dev-ui/panels.js +0 -47
  456. package/dev-ui/theme.d.ts +0 -151
  457. package/dev-ui/theme.js +0 -50
  458. package/dynamic/dynamic-component.d.ts +0 -10
  459. package/dynamic/dynamic-component.js +0 -8
  460. package/dynamic/index.d.ts +0 -1
  461. package/dynamic/index.js +0 -13
  462. package/entry/Root.d.ts +0 -3
  463. package/entry/Root.js +0 -56
  464. package/entry/entry.admin.dev.d.ts +0 -1
  465. package/entry/entry.admin.dev.js +0 -26
  466. package/entry/entry.admin.prod.d.ts +0 -1
  467. package/entry/entry.admin.prod.js +0 -16
  468. package/entry/entry.monolith.dev.d.ts +0 -6
  469. package/entry/entry.monolith.dev.js +0 -19
  470. package/entry/entry.monolith.prod.d.ts +0 -6
  471. package/entry/entry.monolith.prod.js +0 -18
  472. package/entry/entry.publicPath.js +0 -6
  473. package/gravityforms/index.d.ts +0 -2
  474. package/gravityforms/index.js +0 -14
  475. package/gravityforms/types.d.ts +0 -140
  476. package/gravityforms/types.js +0 -2
  477. package/gravityforms/useGravityForm.d.ts +0 -30
  478. package/gravityforms/useGravityForm.js +0 -292
  479. package/hooks/index.js +0 -15
  480. package/hooks/queryUtils.d.ts +0 -63
  481. package/hooks/queryUtils.js +0 -281
  482. package/hooks/useAppData.d.ts +0 -10
  483. package/hooks/useAppData.js +0 -37
  484. package/hooks/usePageLoad.js +0 -11
  485. package/hooks/useQuery.d.ts +0 -1
  486. package/hooks/useQuery.js +0 -10
  487. package/hooks/useQueryDebug.js +0 -21
  488. package/hooks/useRPC.d.ts +0 -12
  489. package/hooks/useRPC.js +0 -20
  490. package/index.d.ts +0 -1
  491. package/index.js +0 -5
  492. package/routing/index.d.ts +0 -1
  493. package/routing/index.js +0 -13
  494. package/routing/remoteProps.d.ts +0 -22
  495. package/routing/remoteProps.js +0 -103
  496. package/routing/routing.d.ts +0 -96
  497. package/routing/routing.js +0 -442
  498. package/routing/updateEditLink.d.ts +0 -1
  499. package/routing/updateEditLink.js +0 -12
  500. package/routing/updateHeadTags.d.ts +0 -2
  501. package/routing/updateHeadTags.js +0 -11
  502. package/serverless/define-api.d.ts +0 -2
  503. package/serverless/define-api.js +0 -66
  504. package/serverless/define-rpc-router.d.ts +0 -6
  505. package/serverless/define-rpc-router.js +0 -35
  506. package/serverless/error-codes.d.ts +0 -2
  507. package/serverless/error-codes.js +0 -14
  508. package/serverless/index.d.ts +0 -5
  509. package/serverless/index.js +0 -18
  510. package/serverless/rpc-provider.d.ts +0 -1
  511. package/serverless/rpc-provider.js +0 -5
  512. package/serverless-template/README.md +0 -34
  513. package/serverless-template/_utils/PageMeta.tsx +0 -44
  514. package/serverless-template/_utils/ed-config.ts +0 -5
  515. package/serverless-template/_utils/fetch-wordpress-props.ts +0 -62
  516. package/serverless-template/_utils/fetch-wp.ts +0 -34
  517. package/serverless-template/_utils/swr.ts +0 -43
  518. package/serverless-template/global.d.ts +0 -15
  519. package/serverless-template/next-env.d.ts +0 -3
  520. package/serverless-template/next.config.js +0 -119
  521. package/serverless-template/null.ts +0 -1
  522. package/serverless-template/package.json +0 -21
  523. package/serverless-template/pages/404.tsx +0 -12
  524. package/serverless-template/pages/[...slug].tsx +0 -35
  525. package/serverless-template/pages/_app.tsx +0 -55
  526. package/serverless-template/pages/_document.tsx +0 -65
  527. package/serverless-template/pages/api/rest/[...method].ts +0 -54
  528. package/serverless-template/pages/api/robots.ts +0 -49
  529. package/serverless-template/pages/api/sitemap/[...sitemap].ts +0 -56
  530. package/serverless-template/pages/api/trpc/[...trpc].ts +0 -41
  531. package/serverless-template/pages/index.tsx +0 -15
  532. package/serverless-template/tsconfig.json +0 -39
  533. package/style/createStitches.d.ts +0 -1058
  534. package/style/createStitches.js +0 -443
  535. package/style/index.js +0 -13
  536. package/utils/Observable.d.ts +0 -11
  537. package/utils/Observable.js +0 -34
  538. package/utils/getRepoName.d.ts +0 -4
  539. package/utils/getRepoName.js +0 -30
  540. package/utils/merge-refs.d.ts +0 -2
  541. package/utils/merge-refs.js +0 -17
  542. package/utils/promptIfRepoNameIncorrect.d.ts +0 -1
  543. package/utils/promptIfRepoNameIncorrect.js +0 -72
  544. package/utils/refreshOverlayInterop.d.ts +0 -4
  545. package/utils/refreshOverlayInterop.js +0 -12
  546. package/utils/reportErrorStack.d.ts +0 -7
  547. package/utils/reportErrorStack.js +0 -13
  548. package/utils/serverlessAppContext.d.ts +0 -3
  549. package/utils/serverlessAppContext.js +0 -6
  550. package/utils/updateEnvFile.d.ts +0 -1
  551. package/utils/updateEnvFile.js +0 -76
  552. package/utils/useObservable.d.ts +0 -2
  553. package/utils/useObservable.js +0 -12
  554. package/views/defineView.d.ts +0 -2
  555. package/views/defineView.js +0 -7
  556. package/views/index.js +0 -13
  557. /package/{admin → dist/app/lib/admin}/installFieldTypes.d.ts +0 -0
  558. /package/{admin → dist/app/lib/admin}/runWidgets.d.ts +0 -0
  559. /package/{dev-ui → dist/app/lib/devtools}/components/BreakpointIndicator.d.ts +0 -0
  560. /package/{dev-ui → dist/app/lib/devtools}/hooks/usePersistState.d.ts +0 -0
  561. /package/{entry/entry.publicPath.d.ts → dist/app/lib/devtools/index.d.ts} +0 -0
  562. /package/{dev-ui → dist/app/lib/devtools}/loader.d.ts +0 -0
  563. /package/{style → dist/app/lib/legacy-stitches}/index.d.ts +0 -0
  564. /package/{build/graphql-codegen/graphql-codegen-files.d.ts → dist/app/lib/routing/types.js} +0 -0
  565. /package/{views → dist/app/lib/views}/index.d.ts +0 -0
  566. /package/{build/graphql-codegen/graphql-codegen-no-duplicates.d.ts → dist/app/utils/wp.js} +0 -0
  567. /package/{cli → dist/node/cli}/cli.d.ts +0 -0
@@ -0,0 +1,138 @@
1
+ import { objFormat } from "obj-console";
2
+ import path from "path";
3
+ import { z } from "zod";
4
+ import { zodToJsonSchema } from "zod-to-json-schema";
5
+ import { cliMode } from "../cli/cli-mode.js";
6
+ import { fs } from "../utils/fs.js";
7
+ import { isDeploying } from "../utils/isDeploying.js";
8
+ import { projectLog as console } from "./project.js";
9
+ export const EDConfigSchema = z.object({
10
+ $schema: z.string().optional(),
11
+ version: z.enum(["1", "2"]).refine((v) => v === "2", { message: "Only version 2 is supported" }),
12
+ legacyMetadata: z
13
+ .boolean()
14
+ .optional()
15
+ .default(false)
16
+ .describe("Whether to use legacy comments or exported JSON for block and view metadata"),
17
+ legacyStitches: z.boolean().optional().default(true).describe("Whether this site is using Stitches"),
18
+ tracking: z
19
+ .object({
20
+ tagManagerID: z.string().optional(),
21
+ ga: z
22
+ .object({
23
+ trackingID: z.string().optional(),
24
+ version: z.enum(["3", "4"]),
25
+ })
26
+ .optional(),
27
+ })
28
+ .optional(),
29
+ serverless: z.object({
30
+ enabled: z.boolean().default(true).describe("Whether to deploy the site as a serverless app"),
31
+ uploads: z
32
+ .enum(["proxy", "remote"])
33
+ .describe("Whether to proxy plugin assets or serve them from the serverless endpoint.\nDefault is `remote`, but `proxy` can be used to hide the CMS origin, but may incur additional bandwidth costs."),
34
+ plugins: z
35
+ .enum(["proxy", "remote"])
36
+ .default("remote")
37
+ .describe("Whether to proxy plugin assets or serve them from the serverless endpoint.\nDefault is `remote`, but `proxy` can be used to hide the CMS origin."),
38
+ // theme: z.enum(["proxy", "copy", "remote"]),
39
+ themeAssets: z
40
+ .array(z.string())
41
+ .optional()
42
+ .default(["assets"])
43
+ .describe('Files to include in a serverless deployment.\nDefault is `["assets"]`'),
44
+ apiOnly: z.boolean().optional().default(false).describe("Whether to deploy only the API, not the frontend"),
45
+ endpoints: z
46
+ .record(z.string(), z.string())
47
+ .describe("A map of WordPress hostnames -> serverless hostnames. You can use `*` as a wildcard for the key.\n\nFor example, `{'cms.ed.studio': 'ed.studio'}` tells the WordPress frontend where it can find any serverless API endpoints."),
48
+ defaultRevalidate: z.number().optional(),
49
+ defaultRevalidateQueries: z.number().optional(),
50
+ }),
51
+ cache: z
52
+ .record(z.string(), z.object({
53
+ props: z.number(),
54
+ queries: z.number(),
55
+ }))
56
+ .optional(),
57
+ devUI: z.enum(["disabled", "enabled"]).default("enabled"),
58
+ });
59
+ export class Configurator {
60
+ project;
61
+ config;
62
+ constructor(project) {
63
+ this.project = project;
64
+ }
65
+ static async create(project) {
66
+ const config = new Configurator(project);
67
+ await config.load();
68
+ return config;
69
+ }
70
+ async load() {
71
+ console.verbose("Booting up configurator...");
72
+ if (!cliMode.readonly) {
73
+ await this.ensureConfigSchema();
74
+ }
75
+ this.config = await this.loadConfig(cliMode.exitOnValidationError);
76
+ }
77
+ async ensureConfigSchema() {
78
+ if (isDeploying())
79
+ return;
80
+ console.verbose("Ensuring config schema exists...");
81
+ const schemaPath = path.resolve(this.project.rootDir, ".ed.config.schema.json");
82
+ const didChange = await fs.writeJsonIfUnchanged(schemaPath, zodToJsonSchema(EDConfigSchema)).catch((err) => {
83
+ console.error("Failed to write config schema file:\n", err);
84
+ });
85
+ if (didChange) {
86
+ console.verbose("Updated config schema");
87
+ }
88
+ }
89
+ async loadConfig(exitOnError) {
90
+ let loaded = await fs.readJson(this.project.configFile).catch((err) => {
91
+ console.error("Failed to read config file:\n");
92
+ throw err;
93
+ });
94
+ console.verbose("Raw Config:\n", loaded);
95
+ const result = EDConfigSchema.safeParse(loaded);
96
+ if (result.success) {
97
+ console.verbose("Config parsed successfully:\n", result.data);
98
+ if (cliMode.detailed) {
99
+ if (!result.data) {
100
+ console.fail("Config could not be loaded");
101
+ return;
102
+ }
103
+ else {
104
+ console.startGroup("Config:");
105
+ console.success("Loaded ed.config.json successfully");
106
+ console.log(Configurator.describeConfig(result.data, this.project));
107
+ console.endGroup();
108
+ }
109
+ }
110
+ delete result.data.$schema;
111
+ return result.data;
112
+ }
113
+ else {
114
+ this.reportError(result.error);
115
+ this.config = undefined;
116
+ if (exitOnError) {
117
+ console.flush();
118
+ process.exit(0);
119
+ }
120
+ }
121
+ }
122
+ reportError(error) {
123
+ console.startGroup(`Validation failed for '${this.project.configFile}'`, "error");
124
+ console.zodError(error);
125
+ console.help(`Please open '${this.project.configFile}' and look for the validation errors.`);
126
+ console.endGroup();
127
+ }
128
+ static describeConfig(config, project) {
129
+ // TODO: Make this human-readable!
130
+ return objFormat(config, {
131
+ unfoldDepth: 2,
132
+ omitBrackets: true,
133
+ quote: "",
134
+ omitEolCommas: true,
135
+ padding: " ",
136
+ });
137
+ }
138
+ }
@@ -0,0 +1,10 @@
1
+ import type { Project } from "./project.js";
2
+ /**
3
+ * This class writes theme info to the theme-manifest.json file, which is then consumed by PHP code.
4
+ */
5
+ export declare class BuildInfoWriter {
6
+ project: Project;
7
+ constructor(project: Project);
8
+ watch(): void;
9
+ write(): Promise<void>;
10
+ }
@@ -0,0 +1,79 @@
1
+ import { join } from "path";
2
+ import { fs } from "../utils/fs.js";
3
+ import { kebabCase, snakeCase } from "change-case-all";
4
+ /**
5
+ * This class writes theme info to the theme-manifest.json file, which is then consumed by PHP code.
6
+ */
7
+ export class BuildInfoWriter {
8
+ project;
9
+ constructor(project) {
10
+ this.project = project;
11
+ }
12
+ watch() {
13
+ this.project.blocks.subscribeFuture((blocks) => {
14
+ this.write();
15
+ });
16
+ this.project.views.subscribeFuture((blocks) => {
17
+ this.write();
18
+ });
19
+ }
20
+ async write() {
21
+ const [blockManifest, viewManifest] = await Promise.all([this.project.blocks.get(), this.project.views.get()]);
22
+ const toAcfBlockName = (name) => {
23
+ if (blockManifest.blocks[name]?.acfName) {
24
+ return blockManifest.blocks[name].acfName;
25
+ }
26
+ return name;
27
+ };
28
+ const data = {
29
+ blocks: Object.values(blockManifest.blocks)
30
+ .sort((a, b) => b.fileName.localeCompare(a.fileName))
31
+ .map((block) => {
32
+ // See https://github.com/WordPress/wordpress-develop/blob/6.4/src/wp-includes/class-wp-block-type.php#L18-L541
33
+ return {
34
+ id: block.slug,
35
+ acfName: block.acfName,
36
+ graphqlFieldName: snakeCase(block.slug.replace("/", "-")),
37
+ name: kebabCase(block.slug.replace("/", "-")),
38
+ title: block.title,
39
+ category: block.category,
40
+ types: block.types,
41
+ templates: block.templates,
42
+ parent: block.parent?.length > 0 ? block.parent.map(toAcfBlockName) : [],
43
+ ancestor: block.ancestors?.length > 0 ? block.ancestors.map(toAcfBlockName) : undefined,
44
+ icon: block.icon ? kebabCase(block.icon) : undefined,
45
+ description: block.description,
46
+ keywords: block.keywords,
47
+ tags: block.tags,
48
+ flags: block.flags,
49
+ childTags: block.childTags?.length ? block.childTags : undefined,
50
+ allowed_blocks: block.childBlocks?.length ? block.childBlocks.map(toAcfBlockName) : undefined,
51
+ supports: {
52
+ align: false,
53
+ align_text: false,
54
+ align_center: false,
55
+ multiple: block.allowMultiple ? true : false,
56
+ mode: block.mode ?? "preview",
57
+ customClassName: false,
58
+ inserter: block.inserter,
59
+ },
60
+ mode: block.mode ?? "preview",
61
+ canCache: block.cache,
62
+ frontendMode: block.frontendMode,
63
+ postmeta: block.postMetaBlock,
64
+ };
65
+ }),
66
+ templates: Object.values(viewManifest.views)
67
+ .filter((view) => view.isCustomTemplate)
68
+ .map((view) => {
69
+ return {
70
+ postType: view.postType,
71
+ fileName: view.fileName,
72
+ cache: view.cache,
73
+ title: view.title,
74
+ };
75
+ }),
76
+ };
77
+ fs.writeJsonIfUnchanged(join(this.project.rootDir, "ed.dist.json"), data);
78
+ }
79
+ }
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+ export type ProjectEnvMap = z.infer<typeof ProjectEnvSchema>;
3
+ export declare const fields: {
4
+ readonly DEBUG_GRAPHQL_URL: z.ZodString;
5
+ readonly SITE_URL: z.ZodString;
6
+ readonly DEV_HOT_PORT: z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string | number, string | undefined>, number, string | undefined>;
7
+ readonly DEV_SERVERLESS_PORT: z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string | number, string | undefined>, number, string | undefined>;
8
+ };
9
+ export declare const ProjectEnvSchema: z.ZodObject<{
10
+ readonly DEBUG_GRAPHQL_URL: z.ZodOptional<z.ZodString>;
11
+ readonly SITE_URL: z.ZodOptional<z.ZodString>;
12
+ readonly DEV_HOT_PORT: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string | number, string | undefined>, number, string | undefined>>;
13
+ readonly DEV_SERVERLESS_PORT: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string | number, string | undefined>, number, string | undefined>>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ DEBUG_GRAPHQL_URL?: string | undefined;
16
+ SITE_URL?: string | undefined;
17
+ DEV_HOT_PORT?: number | undefined;
18
+ DEV_SERVERLESS_PORT?: number | undefined;
19
+ }, {
20
+ DEBUG_GRAPHQL_URL?: string | undefined;
21
+ SITE_URL?: string | undefined;
22
+ DEV_HOT_PORT?: string | undefined;
23
+ DEV_SERVERLESS_PORT?: string | undefined;
24
+ }>;
25
+ export type ProjectEnvKey = keyof typeof fields;
26
+ export declare const ProjectEnvUtils: {
27
+ /**
28
+ * Ensure environment variables are in the correct syntax
29
+ * All environment variables are optional
30
+ */
31
+ parse(exitOnFail: boolean): {
32
+ valid: true;
33
+ env: ProjectEnvMap;
34
+ } | {
35
+ valid: false;
36
+ };
37
+ getSafe<T extends ProjectEnvKey>(key: T): Required<ProjectEnvMap[T]> | undefined;
38
+ get<T extends ProjectEnvKey>(key: T, cons?: import("../utils/statefulLog.js").StatefulLog<import("./project.js").Project>): z.infer<(typeof fields)[T]>;
39
+ };
@@ -0,0 +1,77 @@
1
+ import { z } from "zod";
2
+ import { cliMode } from "../cli/cli-mode.js";
3
+ import { projectLog as console } from "./project.js";
4
+ import { formatZodError } from "../utils/formatZodError.js";
5
+ const portNumber = z
6
+ .string()
7
+ .default("0")
8
+ .transform((val) => (val === "0" ? Math.floor(8000 + Math.random() * 1000) : val))
9
+ .transform((val) => (typeof val === "string" ? parseInt(val) : val));
10
+ export const fields = {
11
+ DEBUG_GRAPHQL_URL: z
12
+ .string()
13
+ .url()
14
+ .describe("The GraphQL endpoint served by GraphQL, needed for Typescript code generation. It should be automatically set when running running WordPress with the stack configured correctly. If this is a new site, you may need to refresh the admin panel."),
15
+ SITE_URL: z.string().url().describe("The URL of the site"),
16
+ DEV_HOT_PORT: portNumber,
17
+ DEV_SERVERLESS_PORT: portNumber,
18
+ };
19
+ export const ProjectEnvSchema = z.object(fields).partial();
20
+ export const ProjectEnvUtils = {
21
+ /**
22
+ * Ensure environment variables are in the correct syntax
23
+ * All environment variables are optional
24
+ */
25
+ parse(exitOnFail) {
26
+ const result = ProjectEnvSchema.safeParse(process.env);
27
+ if (result.success) {
28
+ if (cliMode.verbose) {
29
+ console.success("No formatting issues with provided environment variables");
30
+ }
31
+ for (let k in result.data) {
32
+ process.env[k] = result.data[k];
33
+ }
34
+ return {
35
+ valid: true,
36
+ env: result.data,
37
+ };
38
+ }
39
+ else {
40
+ const error = result.error;
41
+ if (error) {
42
+ console.error("Failed to validate some environment variables variables:\n", error);
43
+ }
44
+ if (exitOnFail) {
45
+ console.flush();
46
+ process.exit(1);
47
+ }
48
+ return {
49
+ valid: false,
50
+ };
51
+ }
52
+ },
53
+ getSafe(key) {
54
+ const result = fields[key].safeParse(process.env[key]);
55
+ if (result.success) {
56
+ return result.data;
57
+ }
58
+ else {
59
+ return undefined;
60
+ }
61
+ },
62
+ get(key, cons = console) {
63
+ const schema = fields[key];
64
+ const result = schema.safeParse(process.env[key]);
65
+ if (result.success) {
66
+ return result.data;
67
+ }
68
+ else {
69
+ cons.error(`Missing or invalid environment variable:\n"${key}"\n${formatZodError(result.error)}`);
70
+ if (schema.description) {
71
+ cons.info(`About "${key}":\n` + schema.description + "\n");
72
+ }
73
+ cons.flush();
74
+ process.exit(1);
75
+ }
76
+ },
77
+ };
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,19 @@
1
+ import { BlockMetadata, BlockMetadataConstructor } from "../../types/block-type.js";
2
+ import { Project } from "../project.js";
3
+ export type BlockManifest = {
4
+ blocks: {
5
+ [K: string]: BlockMetadata;
6
+ };
7
+ validationMessages: {
8
+ blockKey: string;
9
+ message: string;
10
+ severity: "error" | "warning";
11
+ }[];
12
+ };
13
+ type BlockLoadResult = {
14
+ data: BlockMetadataConstructor | null;
15
+ error?: string;
16
+ };
17
+ export type BlockManifestGenerator = ReturnType<typeof loadBlockManifest>;
18
+ export declare function loadBlockManifest(project: Project): import("./manifest.js").ManifestGenerator<BlockLoadResult, BlockManifest>;
19
+ export {};
@@ -0,0 +1,206 @@
1
+ import { camelCase, kebabCase } from "change-case-all";
2
+ import { cliMode } from "../../cli/cli-mode.js";
3
+ import { BlockMetaSchema } from "../../types/block-type.js";
4
+ import { metaExtractor } from "../../utils/export-extractor.js";
5
+ import { formatZodError } from "../../utils/formatZodError.js";
6
+ import { fs } from "../../utils/fs.js";
7
+ import { createManifestGenerator } from "./manifest.js";
8
+ export function loadBlockManifest(project) {
9
+ return createManifestGenerator({
10
+ baseDir: project.rootDir,
11
+ pattern: "blocks/**/*.tsx",
12
+ watch: cliMode.watch,
13
+ async generateManifest(entries) {
14
+ let result = {
15
+ blocks: {},
16
+ validationMessages: [],
17
+ };
18
+ Object.entries(entries)
19
+ .sort(([b1], [b2]) => {
20
+ return b1.localeCompare(b2);
21
+ })
22
+ .forEach(([key, entry]) => {
23
+ const { data, error: initialError } = entry.value;
24
+ // Add the block to the manifest, even though it might be broken.
25
+ // Any broken blocks will have warnings/errors attached.
26
+ result.blocks[key] = data;
27
+ // If there was an error loading the block, add it to the manifest
28
+ if (initialError) {
29
+ result.validationMessages.push({
30
+ blockKey: key,
31
+ message: initialError,
32
+ severity: "error",
33
+ });
34
+ return;
35
+ }
36
+ else {
37
+ // Validate the structure of the metadata
38
+ const parsed = BlockMetaSchema.safeParse(data);
39
+ if (parsed.success) {
40
+ // The block metadata matches our schema, and may have been transformed
41
+ result.blocks[key] = parsed.data;
42
+ }
43
+ else {
44
+ result.validationMessages.push({
45
+ blockKey: key,
46
+ message: "Metadata validation error:\n" + formatZodError(parsed.error),
47
+ severity: "warning",
48
+ });
49
+ }
50
+ }
51
+ });
52
+ return result;
53
+ },
54
+ getKey(path) {
55
+ // Ignore files which start with an underscore
56
+ if (path.startsWith("_core"))
57
+ return null;
58
+ // Strip the blocks folder name + extension
59
+ return path.replace(/\.tsx$/, "").replace(/^blocks\//, "");
60
+ },
61
+ onFileChange(path) {
62
+ metaExtractor.invalidate(path);
63
+ },
64
+ async loadValue(path, key) {
65
+ const contents = await fs.readFile(path, "utf8");
66
+ // Start with a default value
67
+ let metadata = {
68
+ acfName: `acf/${key.toLowerCase().replace(/\//g, "-").replace("_", "")}`,
69
+ fileName: path,
70
+ slug: key,
71
+ graphqlFieldName: key
72
+ .split("/")
73
+ .map((s) => camelCase(s))
74
+ .join("_"),
75
+ title: key,
76
+ types: [],
77
+ };
78
+ let result;
79
+ /**
80
+ * If the project is configured to use legacy metadata, read the metadata from
81
+ * the comment header.
82
+ *
83
+ * Otherwise, we'll pull it as JSON straight from the .tsx file
84
+ */
85
+ if (project.config?.legacyMetadata) {
86
+ result = readBlockDataAsComment(contents);
87
+ if (!result) {
88
+ return {
89
+ data: metadata,
90
+ error: `Could not read block metadata from comment header`,
91
+ };
92
+ }
93
+ }
94
+ else {
95
+ result = readBlockDataAsJSONExport(path, contents);
96
+ if (!result) {
97
+ return {
98
+ data: metadata,
99
+ error: "Could not find `export const meta` in file, or it was not statically parsable.",
100
+ };
101
+ }
102
+ }
103
+ Object.assign(metadata, result);
104
+ // Compute the various names for this block
105
+ return {
106
+ data: metadata,
107
+ };
108
+ },
109
+ });
110
+ }
111
+ /**
112
+ * Rip the JSON metadata directly from the .tsx file
113
+ */
114
+ function readBlockDataAsJSONExport(file, contents) {
115
+ const userData = metaExtractor.extract(file, contents);
116
+ if (!userData)
117
+ return null;
118
+ const result = {};
119
+ result.title = userData.title;
120
+ result.description = userData.description;
121
+ result.category = userData.category;
122
+ result.icon = userData.icon ? kebabCase(userData.icon) : undefined;
123
+ result.cache = userData.cache;
124
+ result.tags = userData.tags;
125
+ result.flags = userData.flags;
126
+ // result.childTags = userData.innerBlocks?.allowedTags
127
+ // result.childBlocks = userData.innerBlocks?.allowedBlocks
128
+ result.ancestors = userData.conditions?.parents;
129
+ result.parent = userData.conditions?.parents;
130
+ result.types = userData.conditions?.postTypes;
131
+ result.templates = userData.conditions?.templates;
132
+ result.allowMultiple = userData.conditions?.multiple !== false;
133
+ result.inserter = userData.inserter;
134
+ result.frontendMode = userData.frontendMode;
135
+ if (userData.postMetaBlock) {
136
+ result.postMetaBlock = {
137
+ fieldName: userData.postMetaBlock.fieldName,
138
+ };
139
+ result.types = userData.postMetaBlock.postTypes;
140
+ result.allowMultiple = false;
141
+ }
142
+ return result;
143
+ }
144
+ /**
145
+ * Parse as a legacy comment header
146
+ */
147
+ function readBlockDataAsComment(file) {
148
+ let meta = {};
149
+ // Ensure the comment header is set
150
+ if (!/^\/\*.+?\*\//s.test(file))
151
+ return null;
152
+ // Get the comment section
153
+ const commentSection = file.match(/^.+\*\//s);
154
+ if (!commentSection)
155
+ return null;
156
+ const lines = commentSection[0].split("\n");
157
+ lines.forEach((line, i) => {
158
+ const match = line.match(/\s*\*?\s*([^:]+):\s*(.+)\s*/);
159
+ if (!match)
160
+ return;
161
+ let key = match[1].replace(/\s/g, "").toLocaleLowerCase();
162
+ let value = match[2].trim();
163
+ switch (key) {
164
+ case "title":
165
+ meta.title = value;
166
+ return;
167
+ case "description":
168
+ meta.description = value;
169
+ return;
170
+ case "category":
171
+ meta.category = value;
172
+ return;
173
+ case "icon":
174
+ meta.icon = value ? kebabCase(value) : "";
175
+ return;
176
+ case "keywords":
177
+ meta.keywords = value.split(/,\s*/);
178
+ return;
179
+ case "types":
180
+ meta.types = value.split(/,\s*/);
181
+ return;
182
+ case "templates":
183
+ meta.templates = value.split(/,\s*/);
184
+ return;
185
+ case "mode":
186
+ meta.mode = value;
187
+ return;
188
+ case "tags":
189
+ meta.tags = value.split(/,\s*/);
190
+ return;
191
+ case "childTags":
192
+ meta.childTags = value.split(/,\s*/);
193
+ return;
194
+ case "dynamic":
195
+ meta.dynamic = value === "true";
196
+ return;
197
+ case "cache":
198
+ meta.cache = value === "true";
199
+ return;
200
+ case "supportsmultiple":
201
+ meta.allowMultiple = value === "true";
202
+ return;
203
+ }
204
+ });
205
+ return meta;
206
+ }
@@ -0,0 +1,17 @@
1
+ import { Project } from "../project.js";
2
+ export type FieldManifest = {
3
+ fields: Record<string, FieldInfo>;
4
+ validationMessages: {
5
+ fieldKey: string;
6
+ message: string;
7
+ severity: "error" | "warning";
8
+ }[];
9
+ };
10
+ type FieldInfo = {
11
+ fileName: string;
12
+ slug: string;
13
+ error?: string;
14
+ };
15
+ export type FieldManifestGenerator = ReturnType<typeof loadFieldManifest>;
16
+ export declare function loadFieldManifest(project: Project): import("./manifest.js").ManifestGenerator<FieldInfo, FieldManifest>;
17
+ export {};
@@ -0,0 +1,42 @@
1
+ import { cliMode } from "../../cli/cli-mode.js";
2
+ import { createManifestGenerator } from "./manifest.js";
3
+ export function loadFieldManifest(project) {
4
+ return createManifestGenerator({
5
+ baseDir: project.rootDir,
6
+ pattern: "backend/fields/*.tsx",
7
+ watch: cliMode.watch,
8
+ async generateManifest(entries) {
9
+ let result = {
10
+ fields: {},
11
+ validationMessages: [],
12
+ };
13
+ Object.entries(entries)
14
+ .sort(([b1], [b2]) => {
15
+ return b1.localeCompare(b2);
16
+ })
17
+ .forEach(([key, entry]) => {
18
+ const { error: initialError } = entry.value;
19
+ result.fields[key] = entry.value;
20
+ if (initialError) {
21
+ result.validationMessages.push({
22
+ fieldKey: key,
23
+ message: initialError,
24
+ severity: "error",
25
+ });
26
+ return;
27
+ }
28
+ });
29
+ return result;
30
+ },
31
+ getKey(path) {
32
+ // Strip the views folder name + extension
33
+ return path.replace(/\.tsx$/, "").replace(/^backend\/fields\//, "");
34
+ },
35
+ async loadValue(fileName, key) {
36
+ return {
37
+ slug: key,
38
+ fileName,
39
+ };
40
+ },
41
+ });
42
+ }
@@ -0,0 +1,30 @@
1
+ import { FileEvent } from "../../utils/watchFileTree.js";
2
+ type ManifestEntry<TEntryData> = {
3
+ key: string;
4
+ relativePath: string;
5
+ fullPath: string;
6
+ value: TEntryData;
7
+ };
8
+ type ManifestGeneratorArgs<TEntryData, TManifest> = {
9
+ baseDir: string;
10
+ pattern: string | string[];
11
+ watch: boolean;
12
+ loadValue: (path: string, key: string) => Promise<TEntryData>;
13
+ getKey: (path: string) => string | null;
14
+ generateManifest: (entries: {
15
+ [key: string]: ManifestEntry<TEntryData>;
16
+ }) => Promise<TManifest>;
17
+ onFileChange?(path: string): void;
18
+ };
19
+ export type ManifestGenerator<TEntryData, TManifest> = {
20
+ /** Destroy the generator, and stop watching for changes */
21
+ dispose: () => void;
22
+ /** Subscribe to changes, and also kick off the monitor process if it hasn't already started */
23
+ subscribe: (callback: (manifest: TManifest, events?: FileEvent[]) => void) => () => void;
24
+ /** Subscribe to future changes */
25
+ subscribeFuture: (callback: (manifest: TManifest, events?: FileEvent[]) => void) => () => void;
26
+ /** Get the existing manifest, or generate a new one if one hasn'tyet been created */
27
+ get(): Promise<TManifest>;
28
+ };
29
+ export declare function createManifestGenerator<TEntryData, TManifest>(args: ManifestGeneratorArgs<TEntryData, TManifest>): ManifestGenerator<TEntryData, TManifest>;
30
+ export {};