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,503 @@
1
+ import { codegen } from "@graphql-codegen/core";
2
+ import { Kind } from "graphql";
3
+ import { NoUnusedFragmentsRule, specifiedRules, validate } from "graphql/validation/index.js";
4
+ import { join, relative, resolve } from "path";
5
+ import { ProjectEnvUtils } from "../project/env.js";
6
+ import { fs } from "../utils/fs.js";
7
+ import { GraphQLSchemaLoader } from "./graphql-schema-loader.js";
8
+ import { createGraphQLFileLoader } from "./query-files-loader.js";
9
+ import * as typescriptPlugin from "@graphql-codegen/typescript";
10
+ import * as typescriptOperationsPlugin from "@graphql-codegen/typescript-operations";
11
+ import chalk from "chalk";
12
+ import { code } from "ts-poet";
13
+ import { highlightCode } from "../utils/highlightCode.js";
14
+ import { createConsole } from "../utils/statefulLog.js";
15
+ import { watchFileTreeForChanges } from "../utils/watchFileTree.js";
16
+ import pluginFiles from "./plugins/gql-plugin-files.js";
17
+ import pluginNoDuplicates from "./plugins/gql-plugin-no-duplicates.js";
18
+ import pluginQueries from "./plugins/gql-plugin-queries.js";
19
+ export const graphqlLog = createConsole("GraphQL Codegen", "graphql");
20
+ const console = graphqlLog;
21
+ class GraphQLValidationError {
22
+ message;
23
+ path;
24
+ line;
25
+ col;
26
+ source;
27
+ constructor(message, path, line, col, source) {
28
+ this.message = message;
29
+ this.path = path;
30
+ this.line = line;
31
+ this.col = col;
32
+ this.source = source;
33
+ }
34
+ toString() {
35
+ return this.format();
36
+ }
37
+ format() {
38
+ return highlightCode({
39
+ fileName: this.path,
40
+ code: this.source,
41
+ language: "graphql",
42
+ error: this.message,
43
+ pointTo: {
44
+ column: this.col,
45
+ line: this.line,
46
+ },
47
+ });
48
+ }
49
+ }
50
+ export class GraphQLGenerator {
51
+ project;
52
+ needsRegenerate = false;
53
+ needsReload = true;
54
+ regenerateReason = "";
55
+ regenerateReasonInfo = [];
56
+ isGenerating = false;
57
+ schemaLoader;
58
+ fileLoader;
59
+ debouncer;
60
+ retryTimer;
61
+ constructor(project) {
62
+ this.project = project;
63
+ this.schemaLoader = new GraphQLSchemaLoader(ProjectEnvUtils.get("DEBUG_GRAPHQL_URL"));
64
+ this.fileLoader = createGraphQLFileLoader(this.project, [
65
+ {
66
+ baseFolder: "blocks",
67
+ pattern: "**/*.graphql",
68
+ key: "blocks",
69
+ },
70
+ {
71
+ baseFolder: "views",
72
+ pattern: "**/*.graphql",
73
+ key: "views",
74
+ },
75
+ {
76
+ baseFolder: "queries/fragments",
77
+ pattern: "**/*.graphql",
78
+ key: "fragments",
79
+ },
80
+ {
81
+ baseFolder: "queries",
82
+ pattern: "**/*.graphql",
83
+ key: "queries",
84
+ },
85
+ ]);
86
+ }
87
+ async queueRegenerate(full, reason, info) {
88
+ this.needsRegenerate = true;
89
+ if (full)
90
+ this.needsReload = true;
91
+ this.regenerateReason = reason;
92
+ if (info) {
93
+ this.regenerateReasonInfo.push(...(Array.isArray(info) ? info : [info]));
94
+ }
95
+ clearTimeout(this.debouncer);
96
+ clearTimeout(this.retryTimer);
97
+ this.debouncer = setTimeout(async () => {
98
+ if (this.isGenerating)
99
+ return;
100
+ this.isGenerating = true;
101
+ this.generate().finally(() => {
102
+ this.isGenerating = false;
103
+ });
104
+ }, 50);
105
+ }
106
+ async start() {
107
+ // Do initial load of blocks
108
+ await this.project.blocks.get();
109
+ await this.project.views.get();
110
+ try {
111
+ await this.generate();
112
+ }
113
+ catch (err) { }
114
+ this.project.blocks.subscribeFuture(() => {
115
+ this.generateUtilTypes();
116
+ });
117
+ this.listen();
118
+ }
119
+ async listen() {
120
+ // Subscribe to changes in block names
121
+ this.project.blocks.subscribeFuture((manifest, changes) => {
122
+ const updates = changes?.filter((change) => change.type !== "changed");
123
+ if (updates?.length) {
124
+ this.queueRegenerate(true, "Block component manifest was updated", updates?.map(stringifyFileEvent));
125
+ }
126
+ });
127
+ this.project.views.subscribeFuture((manifest, changes) => {
128
+ const updates = changes?.filter((change) => change.type !== "changed");
129
+ if (updates?.length) {
130
+ this.queueRegenerate(true, "View component manifest was updates", updates?.map(stringifyFileEvent));
131
+ }
132
+ });
133
+ function stringifyFileEvent(event) {
134
+ return `[${chalk.yellow(event.type)}] ${chalk.yellowBright(event.file)}`;
135
+ }
136
+ // Subscribe to Query files
137
+ this.fileLoader.subscribeFuture((manifest, events) => {
138
+ this.queueRegenerate(false, "GraphQL file(s) modifed", events?.map(stringifyFileEvent));
139
+ });
140
+ // Look out for PHP and acf-json file changes
141
+ watchFileTreeForChanges(["backend/**/*.php"], (event) => {
142
+ this.queueRegenerate(true, "PHP file change detected", stringifyFileEvent(event));
143
+ });
144
+ watchFileTreeForChanges(["vendor/**/*.php"], (change) => {
145
+ this.queueRegenerate(true, "PHP Vendor folder change detected", stringifyFileEvent(change));
146
+ });
147
+ watchFileTreeForChanges(["acf-json/**/*.json"], (change) => {
148
+ this.queueRegenerate(true, "ACF Field change detected", stringifyFileEvent(change));
149
+ });
150
+ }
151
+ scheduleRetry() {
152
+ clearTimeout(this.retryTimer);
153
+ this.retryTimer = setTimeout(() => {
154
+ this.queueRegenerate(true, "Retrying...");
155
+ }, 5000);
156
+ }
157
+ async generate() {
158
+ clearTimeout(this.retryTimer);
159
+ console.resetLog();
160
+ console.setWorking(true);
161
+ // Print out the reason for the generation
162
+ if (this.needsRegenerate) {
163
+ const reasonInfo = this.regenerateReasonInfo.length > 0 ? "\n" + this.regenerateReasonInfo.map((f) => "- " + f).join("\n") : "";
164
+ if (this.regenerateReason) {
165
+ console.info("Regenerating: " + this.regenerateReason + reasonInfo);
166
+ }
167
+ this.needsRegenerate = false;
168
+ this.regenerateReason = "";
169
+ this.regenerateReasonInfo = [];
170
+ }
171
+ // Get blocks and views
172
+ const blockManifest = await this.project.blocks.get();
173
+ const viewManifest = await this.project.views.get();
174
+ // Get WP basics
175
+ const wp = await this.project.getWordpressInfo();
176
+ // Load the schema
177
+ const schemaResult = await this.schemaLoader.get(this.needsReload);
178
+ this.needsReload = false;
179
+ if (schemaResult instanceof Error) {
180
+ console.error(`Failed to load schema:`, schemaResult);
181
+ console.help("Is the WordPress server running?");
182
+ console.setWorking(false);
183
+ this.scheduleRetry();
184
+ return;
185
+ }
186
+ this.writeSchemaFile(schemaResult.schema);
187
+ // Get GraphQL files
188
+ const graphQLFiles = await this.fileLoader.get();
189
+ // Validate them against the schema
190
+ const validationErrors = this.validateGraphQLFiles(graphQLFiles, schemaResult.rawSchema);
191
+ if (validationErrors.length > 0) {
192
+ console.startGroup("GraphQL document validation failed", "error");
193
+ validationErrors.forEach((err) => {
194
+ console.fail(err.format());
195
+ });
196
+ console.endGroup();
197
+ console.help("Please fix the above error(s) to continue");
198
+ console.setWorking(false);
199
+ return;
200
+ }
201
+ const getDocuments = (keys) => {
202
+ const result = [];
203
+ for (const key of keys) {
204
+ const group = graphQLFiles[key];
205
+ for (const [_, entry] of Object.entries(group).sort((a, b) => a[0].localeCompare(b[0]))) {
206
+ result.push({
207
+ document: entry.ast,
208
+ rawDSL: entry.contents,
209
+ location: entry.path,
210
+ });
211
+ }
212
+ }
213
+ return result;
214
+ };
215
+ const hasDocuments = (keys) => {
216
+ for (const key of keys) {
217
+ const group = graphQLFiles[key];
218
+ if (Object.keys(group).length > 0) {
219
+ return true;
220
+ }
221
+ }
222
+ return false;
223
+ };
224
+ const errors = (await Promise.all([
225
+ this.generateUtilTypes(),
226
+ this.generateTS("types.graphql.ts", schemaResult.rawSchema, {
227
+ documents: getDocuments(["queries", "views", "blocks", "fragments"]),
228
+ hasDocuments: true,
229
+ banner: `import { ContentBlock } from "eddev/blocks"`,
230
+ plugins: {
231
+ typescript: [typescriptPlugin, {}],
232
+ typescriptOperations: [typescriptOperationsPlugin, {}],
233
+ noDuplicates: [pluginNoDuplicates, {}],
234
+ },
235
+ config: {
236
+ // maybeValue: "T",
237
+ avoidOptionals: {
238
+ field: true,
239
+ inputValue: false,
240
+ object: false,
241
+ defaultValue: false,
242
+ },
243
+ exportFragmentSpreadSubTypes: true,
244
+ // exportFragmentSpreadSubTypes: true,
245
+ inlineFragmentTypes: "combine",
246
+ scalars: {
247
+ ContentBlocks: "ContentBlock[]",
248
+ ...wp.scalarTypes,
249
+ },
250
+ onlyOperationTypes: true,
251
+ skipTypename: true,
252
+ preResolveTypes: true,
253
+ maybeValue: "T | null",
254
+ inputMaybeValue: "T | null | undefined",
255
+ }, // satisfies TypeScriptPluginConfig & TypeScriptDocumentsPluginConfig,
256
+ }),
257
+ this.generateTS("types.views.ts", schemaResult.rawSchema, {
258
+ documents: getDocuments(["views", "fragments"]),
259
+ hasDocuments: hasDocuments(["views"]),
260
+ plugins: {
261
+ files: [
262
+ pluginFiles,
263
+ {
264
+ names: Object.keys(viewManifest.views),
265
+ },
266
+ ],
267
+ },
268
+ config: {
269
+ rootDir: this.project.rootDir,
270
+ folderName: "views",
271
+ globalName: "ViewProps",
272
+ additionalTypes: {},
273
+ },
274
+ }),
275
+ this.generateTS("types.blocks.ts", schemaResult.rawSchema, {
276
+ documents: getDocuments(["blocks", "fragments"]),
277
+ hasDocuments: hasDocuments(["blocks"]),
278
+ plugins: {
279
+ files: [
280
+ pluginFiles,
281
+ {
282
+ names: Object.keys(blockManifest.blocks),
283
+ },
284
+ ],
285
+ },
286
+ config: {
287
+ rootDir: this.project.rootDir,
288
+ globalName: "BlockProps",
289
+ folderName: "blocks",
290
+ getType: (importedName, def) => {
291
+ // const queryKeyVals: any[] = []
292
+ let blockSelection = "";
293
+ let hasOthers = false;
294
+ for (const item of def.selectionSet.selections) {
295
+ if (item.name.value === "block") {
296
+ const blockField = item?.selectionSet?.selections[0]?.name?.value;
297
+ blockSelection = `Exclude<${importedName}["block"][${JSON.stringify(blockField)}], null | undefined>`;
298
+ }
299
+ else {
300
+ hasOthers = true;
301
+ }
302
+ }
303
+ const type = [];
304
+ if (hasOthers)
305
+ type.push(`Omit<${importedName}, 'block'>`);
306
+ if (blockSelection)
307
+ type.push(blockSelection);
308
+ if (type.length === 0)
309
+ return {};
310
+ return type.join(" & ");
311
+ },
312
+ },
313
+ }),
314
+ this.generateTS("hooks/queries.ts", schemaResult.rawSchema, {
315
+ documents: getDocuments(["queries"]),
316
+ hasDocuments: true,
317
+ plugins: {
318
+ queries: [pluginQueries, {}],
319
+ },
320
+ config: {
321
+ rootDir: this.project.rootDir,
322
+ },
323
+ }),
324
+ ])).flat();
325
+ if (errors.length > 0) {
326
+ errors.forEach((err) => {
327
+ console.fail(err);
328
+ });
329
+ }
330
+ console.success("Generated TypeScript definitions");
331
+ console.setWorking(false);
332
+ // If a regeneration request has come through, start again!
333
+ if (this.needsRegenerate) {
334
+ this.generate();
335
+ }
336
+ }
337
+ /**
338
+ * Validates a GraphQL manifest against a schema, ensuring there are no user errors.
339
+ */
340
+ validateGraphQLFiles(graphQLFiles, schema) {
341
+ /**
342
+ * Use all rules, except for No Unused Fragments — since we prepend those fragments to every test
343
+ */
344
+ const validationRules = specifiedRules.filter((rule) => rule !== NoUnusedFragmentsRule);
345
+ /**
346
+ * Validate everything
347
+ */
348
+ const report = [];
349
+ for (let [groupName, fileMap] of Object.entries(graphQLFiles)) {
350
+ for (let [path, file] of Object.entries(fileMap)) {
351
+ if (file.parseError) {
352
+ report.push(new GraphQLValidationError(file.parseError.message, path, file.parseError.line, file.parseError.column, file.contents));
353
+ }
354
+ else {
355
+ // Find all fragments
356
+ const fragments = Object.values(graphQLFiles.fragments)
357
+ .map((file) => file.ast.definitions)
358
+ .filter((def) => def.length > 0)
359
+ .filter((def) => def !== file.ast.definitions)
360
+ .flat();
361
+ const validationAST = {
362
+ kind: Kind.DOCUMENT,
363
+ definitions: [...fragments, ...file.ast.definitions],
364
+ loc: file.ast.loc,
365
+ };
366
+ const errors = validate(schema, validationAST, validationRules);
367
+ if (errors.length > 0) {
368
+ for (let error of errors) {
369
+ report.push(new GraphQLValidationError(error.message, path, error.locations?.[0].line || 1, error.locations?.[0].column || 1, error.source?.body || ""));
370
+ }
371
+ }
372
+ }
373
+ }
374
+ }
375
+ return report;
376
+ }
377
+ async generateTS(fileName, schema, args) {
378
+ const config = {
379
+ schema,
380
+ documents: args.documents,
381
+ hasDocuments: args.hasDocuments,
382
+ plugins: [],
383
+ pluginMap: {},
384
+ filename: join(this.project.rootDir, fileName),
385
+ skipDocumentsValidation: true,
386
+ config: args.config,
387
+ };
388
+ const errors = [];
389
+ Object.entries(args.plugins).forEach(([key, [plugin, options]]) => {
390
+ config.plugins.push({
391
+ [key]: options,
392
+ });
393
+ config.pluginMap[key] = plugin;
394
+ });
395
+ let output = "export {}";
396
+ try {
397
+ output = await codegen(config);
398
+ }
399
+ catch (err) {
400
+ errors.push(String(err));
401
+ }
402
+ if (args.banner) {
403
+ output = args.banner + "\n\n" + output;
404
+ }
405
+ if (errors.length === 0) {
406
+ const didWrite = await fs.writeIfUnchanged(config.filename, output);
407
+ if (didWrite) {
408
+ console.info("Updated " + relative(this.project.rootDir, config.filename));
409
+ }
410
+ }
411
+ return errors;
412
+ }
413
+ async generateUtilTypes() {
414
+ const filename = join(this.project.rootDir, "types.util.ts");
415
+ try {
416
+ const wpInfo = await this.project.getWordpressInfo();
417
+ const views = await this.project.views.get();
418
+ const blocks = await this.project.blocks.get();
419
+ const pageTemplates = Object.values(views.views).filter((view) => view.isCustomTemplate);
420
+ const blockTags = new Set(wpInfo.blockTags ?? []);
421
+ const blockFlags = new Map();
422
+ for (let block of Object.values(blocks.blocks)) {
423
+ block.tags?.forEach((tag) => blockTags.add(tag));
424
+ if (block.flags) {
425
+ for (let key in block.flags) {
426
+ if (!blockFlags.has(key))
427
+ blockFlags.set(key, new Set());
428
+ blockFlags.get(key).add(JSON.stringify(block.flags[key]));
429
+ }
430
+ }
431
+ }
432
+ const postMetaTypes = {};
433
+ wpInfo.postMetaTypes.forEach((meta) => {
434
+ postMetaTypes[meta.key] ??= [];
435
+ if (meta.isScalar) {
436
+ postMetaTypes[meta.key].push('Scalars["' + meta.typeName + '"]["input"]');
437
+ }
438
+ else {
439
+ postMetaTypes[meta.key].push(meta.typeName);
440
+ }
441
+ postMetaTypes[meta.key].sort();
442
+ });
443
+ const contents = code `
444
+ import "eddev/types.app.public";
445
+ import type { Scalars } from "./types.graphql";
446
+
447
+ declare global {
448
+ interface PostTypes {
449
+ ${Object.entries(wpInfo.postTypes)
450
+ .map(([name, type]) => code `${JSON.stringify(name)}: ${JSON.stringify(type)}`)
451
+ .join(";")}
452
+ }
453
+ interface PageTemplates {
454
+ ${pageTemplates
455
+ .map((template) => code `${JSON.stringify(template.slug)}: ${JSON.stringify(template.slug)}`)
456
+ .join(";")}
457
+ }
458
+ interface CoreBlockProps {
459
+ ${wpInfo.coreBlocks
460
+ .sort()
461
+ .map((name) => code `${JSON.stringify(name)}: {[K: string]: any}`)
462
+ .join(";")}
463
+ }
464
+ interface DefinedBlockTags {
465
+ ${[...blockTags]
466
+ .sort()
467
+ .map((name) => code `${JSON.stringify(name)}: ${JSON.stringify(name)}`)
468
+ .join(";")}
469
+ }
470
+ interface DefinedBlockFlags {
471
+ ${[...blockFlags.entries()]
472
+ .sort()
473
+ .map(([name, values]) => code `${JSON.stringify(name)}: ${[...values].join(" | ")}`)
474
+ .join(";")}
475
+ }
476
+ interface PostMetaTypes {
477
+ ${[...Object.keys(postMetaTypes)]
478
+ .sort()
479
+ .map((name) => code `${JSON.stringify(name)}: ${postMetaTypes[name].join(" | ")}`)
480
+ .join(";")}
481
+ }
482
+ }
483
+ `;
484
+ await fs.writeIfUnchanged(filename, contents.toString());
485
+ }
486
+ catch (err) {
487
+ return [err];
488
+ }
489
+ return [];
490
+ }
491
+ /**
492
+ * Saves the schema to a file, for use by the VSCode GraphQL extension
493
+ */
494
+ async writeSchemaFile(schema) {
495
+ let didWrite = await fs.writeJsonIfUnchanged(resolve(this.project.rootDir, "schema.json"), schema, false);
496
+ if (didWrite) {
497
+ console.info("Writing schema file for VSCode");
498
+ }
499
+ else {
500
+ console.info("GraphQL schema has not changed");
501
+ }
502
+ }
503
+ }
@@ -0,0 +1,17 @@
1
+ import { GraphQLSchema, IntrospectionQuery } from "graphql";
2
+ type LoadResult = {
3
+ schema: IntrospectionQuery;
4
+ rawSchema: GraphQLSchema;
5
+ hasChanged: boolean;
6
+ };
7
+ export declare class GraphQLSchemaLoader {
8
+ url: string;
9
+ lastHash: string;
10
+ constructor(url: string);
11
+ private cachedResult;
12
+ get(forceReload?: boolean): Promise<Error | LoadResult>;
13
+ load(): Promise<Error | LoadResult>;
14
+ private hashSchema;
15
+ private processSchema;
16
+ }
17
+ export {};
@@ -0,0 +1,94 @@
1
+ import { loadSchema } from "@graphql-tools/load";
2
+ import { UrlLoader } from "@graphql-tools/url-loader";
3
+ import { introspectionFromSchema } from "graphql";
4
+ import { Agent } from "https";
5
+ import fetch from "node-fetch";
6
+ import { graphqlLog as console } from "./graphql-codegen.js";
7
+ import chalk from "chalk";
8
+ import { hash } from "object-code";
9
+ export class GraphQLSchemaLoader {
10
+ url;
11
+ lastHash = "";
12
+ constructor(url) {
13
+ this.url = url;
14
+ }
15
+ cachedResult = null;
16
+ async get(forceReload = false) {
17
+ if (forceReload || !this.cachedResult) {
18
+ return this.load();
19
+ }
20
+ return this.cachedResult;
21
+ }
22
+ async load() {
23
+ console.info(`${this.lastHash ? "Reloading" : "Loading"} GraphQL schema from ${chalk.yellowBright(this.url)}`);
24
+ const rawSchema = await loadSchema(this.url, {
25
+ loaders: [new UrlLoader()],
26
+ fetch: (url, opts) => {
27
+ const httpsAgent = new Agent({
28
+ rejectUnauthorized: false,
29
+ });
30
+ return fetch(url, {
31
+ ...opts,
32
+ agent: function (_parsedURL) {
33
+ if (_parsedURL.protocol == "http:") {
34
+ return undefined;
35
+ }
36
+ else {
37
+ return httpsAgent;
38
+ }
39
+ },
40
+ });
41
+ },
42
+ }).catch((e) => {
43
+ return e;
44
+ });
45
+ if (rawSchema instanceof Error) {
46
+ return rawSchema;
47
+ }
48
+ console.success(`Loaded schema successfully`);
49
+ let schema = introspectionFromSchema(rawSchema, {
50
+ descriptions: true,
51
+ schemaDescription: false,
52
+ specifiedByUrl: true,
53
+ });
54
+ this.processSchema(schema);
55
+ const hash = this.hashSchema(schema);
56
+ let hasChanged = hash !== this.lastHash;
57
+ this.lastHash = hash;
58
+ this.cachedResult = {
59
+ hasChanged,
60
+ rawSchema,
61
+ schema,
62
+ };
63
+ return this.cachedResult;
64
+ }
65
+ hashSchema(schema) {
66
+ return String(hash(schema));
67
+ }
68
+ processSchema(schema) {
69
+ const updateFieldType = (fieldType) => {
70
+ if (fieldType.kind === "LIST") {
71
+ if (fieldType.ofType?.kind !== "NON_NULL") {
72
+ fieldType.ofType = {
73
+ kind: "NON_NULL",
74
+ name: null,
75
+ ofType: fieldType.ofType,
76
+ };
77
+ }
78
+ }
79
+ };
80
+ const updateType = (type) => {
81
+ if (typeof type.type === "object" && type.type) {
82
+ updateFieldType(type.type);
83
+ }
84
+ if (type.fields) {
85
+ for (const field of type.fields) {
86
+ updateType(field);
87
+ }
88
+ }
89
+ };
90
+ for (const type of schema.__schema.types) {
91
+ updateType(type);
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,14 @@
1
+ type PluginConfig = {
2
+ folderName: string;
3
+ rootDir: string;
4
+ fallbackType: string;
5
+ globalName: string;
6
+ getType?: (importedName: string, definition: any) => string;
7
+ additionalTypes: {
8
+ [key: string]: string;
9
+ };
10
+ };
11
+ declare const _default: {
12
+ plugin: (schema: any, documents: any, config: PluginConfig, info: any) => string;
13
+ };
14
+ export default _default;
@@ -0,0 +1,66 @@
1
+ import { globbySync } from "globby";
2
+ import { relative, resolve } from "path";
3
+ import { code } from "ts-poet";
4
+ export default {
5
+ plugin: (schema, documents, config, info) => {
6
+ const folder = resolve(config.rootDir, config.folderName);
7
+ const imports = [];
8
+ const items = [];
9
+ const files = globbySync(folder + "/**/*.tsx");
10
+ const filesFound = {};
11
+ const additionalTypes = config.additionalTypes || {};
12
+ const getRelative = (path) => relative(folder, path);
13
+ const typeForFile = (file, baseType) => {
14
+ const types = [];
15
+ if (baseType)
16
+ types.push(baseType);
17
+ if (additionalTypes[file]) {
18
+ types.push(additionalTypes[file]);
19
+ }
20
+ if (types.length === 0) {
21
+ return config.fallbackType || "{}";
22
+ }
23
+ else {
24
+ return types.join(" & ");
25
+ }
26
+ };
27
+ documents.forEach((doc) => {
28
+ if (!doc.location.startsWith(config.folderName))
29
+ return;
30
+ const relative = getRelative(doc.location);
31
+ filesFound[relative.replace(/\.graphql/, "")] = true;
32
+ if (relative && doc.document.definitions.length) {
33
+ let importedName = doc.document.definitions[0].name.value + "Query";
34
+ let typeName = config.getType?.(importedName, doc.document.definitions[0]) || importedName;
35
+ imports.push(importedName);
36
+ const key = relative.replace(/\.graphql/, "");
37
+ items.push(`${JSON.stringify(key)}: ${typeForFile(key, typeName)}`);
38
+ }
39
+ });
40
+ for (const file of files) {
41
+ if (!filesFound[getRelative(file).replace(/\.tsx/, "")]) {
42
+ const key = getRelative(file).replace(/\.tsx$/, "");
43
+ items.push(`${JSON.stringify(key)}: ${typeForFile(key, "")}`);
44
+ }
45
+ }
46
+ return code `
47
+ /**
48
+ * DO NOT EDIT
49
+ * This file is automatically generated by eddev
50
+ * Any changes will be overwritten
51
+ */
52
+ import 'eddev/types.app.public'
53
+ ${imports.length > 0 ? code `import { ${imports.sort().join(", ")} } from "./types.graphql"` : ""}
54
+
55
+ declare global {
56
+ interface ${config.globalName} {
57
+ ${items.length > 0 ? items.sort().map((item) => code `${item},\n`) : "_none: {}"}
58
+ }
59
+ }
60
+ `.toString({
61
+ dprintOptions: {
62
+ quoteProps: "asNeeded",
63
+ },
64
+ });
65
+ },
66
+ };