studiocms 0.2.0 → 0.4.0

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 (293) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/dist/cli/add/index.d.ts +2 -2
  3. package/dist/cli/add/index.js +4 -3
  4. package/dist/cli/add/npm-utils.d.ts +6 -6
  5. package/dist/cli/add/tryToInstallPlugins.d.ts +1 -1
  6. package/dist/cli/add/tryToInstallPlugins.js +6 -5
  7. package/dist/cli/add/updateStudioCMSConfig.d.ts +1 -1
  8. package/dist/cli/add/updateStudioCMSConfig.js +3 -4
  9. package/dist/cli/add/validatePlugins.d.ts +1 -2
  10. package/dist/cli/add/validatePlugins.js +15 -9
  11. package/dist/cli/crypto/genJWT/index.d.ts +1 -1
  12. package/dist/cli/crypto/genJWT/index.js +8 -9
  13. package/dist/cli/crypto/index.d.ts +1 -1
  14. package/dist/cli/init/steps/env.js +14 -4
  15. package/dist/cli/init/steps/next.d.ts +1 -1
  16. package/dist/cli/init/steps/next.js +6 -5
  17. package/dist/cli/migrator/index.d.ts +1 -1
  18. package/dist/cli/migrator/index.js +2 -2
  19. package/dist/cli/users/index.d.ts +1 -1
  20. package/dist/cli/users/shared.js +2 -2
  21. package/dist/cli/users/steps/createUsers.js +7 -7
  22. package/dist/cli/users/steps/modifyUsers.js +2 -2
  23. package/dist/cli/users/steps/next.d.ts +1 -1
  24. package/dist/cli/utils/checkRequiredEnvVars.js +2 -2
  25. package/dist/cli/utils/context.d.ts +2 -4
  26. package/dist/cli/utils/context.js +1 -3
  27. package/dist/cli/utils/getCliDbClient.d.ts +1 -1
  28. package/dist/cli/utils/intro.d.ts +1 -1
  29. package/dist/cli/utils/loadConfig.d.ts +54 -49
  30. package/dist/cli/utils/loadConfig.js +5 -8
  31. package/dist/cli/utils/logger.js +3 -3
  32. package/dist/cli/utils/user-utils.d.ts +1 -1
  33. package/dist/cli/utils/user-utils.js +4 -3
  34. package/dist/client/apiClient.d.ts +4923 -0
  35. package/dist/client/apiClient.js +72 -0
  36. package/dist/config.d.ts +1734 -1
  37. package/dist/consts.d.ts +5 -5
  38. package/dist/consts.js +3 -2
  39. package/dist/db/plugins.d.ts +1 -1
  40. package/dist/db/plugins.js +5 -8
  41. package/dist/handlers/frontend/routes.d.ts +4 -18
  42. package/dist/handlers/frontend/routes.js +13 -152
  43. package/dist/handlers/frontend/types.d.ts +1 -1
  44. package/dist/handlers/frontend/utils.js +0 -18
  45. package/dist/handlers/pluginHandler.d.ts +34 -257
  46. package/dist/handlers/pluginHandler.js +92 -46
  47. package/dist/handlers/routeHandler.js +32 -11
  48. package/dist/handlers/setupDbStudio.d.ts +3 -1
  49. package/dist/handlers/setupDbStudio.js +19 -10
  50. package/dist/handlers/storage-manager/core/effectify-astro-context.d.ts +25 -0
  51. package/dist/handlers/storage-manager/core/effectify-astro-context.js +78 -0
  52. package/dist/handlers/storage-manager/no-op.d.ts +2 -2
  53. package/dist/handlers/storage-manager/no-op.js +2 -3
  54. package/dist/index.d.ts +0 -1
  55. package/dist/index.js +10 -20
  56. package/dist/integrations/robots/index.d.ts +2 -2
  57. package/dist/integrations/robots/index.js +1 -3
  58. package/dist/integrations/robots/schema.d.ts +102 -273
  59. package/dist/integrations/robots/schema.js +220 -209
  60. package/dist/plugins/analytics/assets/schemas.d.ts +14 -9
  61. package/dist/plugins/analytics/assets/schemas.js +25 -17
  62. package/dist/plugins/analytics/db-client.d.ts +1 -1
  63. package/dist/plugins/analytics/index.d.ts +823 -3
  64. package/dist/plugins/analytics/index.js +4 -5
  65. package/dist/plugins/analytics/schemas.d.ts +54 -62
  66. package/dist/plugins/analytics/schemas.js +64 -13
  67. package/dist/plugins/analytics/table.d.ts +1 -1
  68. package/dist/plugins.d.ts +0 -1
  69. package/dist/schemas/config/api.d.ts +17 -0
  70. package/dist/schemas/config/api.js +14 -0
  71. package/dist/schemas/config/auth.d.ts +55 -59
  72. package/dist/schemas/config/auth.js +34 -11
  73. package/dist/schemas/config/dashboard.d.ts +43 -79
  74. package/dist/schemas/config/dashboard.js +43 -12
  75. package/dist/schemas/config/db.d.ts +15 -17
  76. package/dist/schemas/config/db.js +13 -5
  77. package/dist/schemas/config/developer.d.ts +33 -45
  78. package/dist/schemas/config/developer.js +22 -5
  79. package/dist/schemas/config/index.d.ts +398 -521
  80. package/dist/schemas/config/index.js +115 -57
  81. package/dist/schemas/config/sdk.d.ts +50 -196
  82. package/dist/schemas/config/sdk.js +61 -73
  83. package/dist/schemas/custom.d.ts +40 -0
  84. package/dist/schemas/custom.js +41 -0
  85. package/dist/schemas/external-schemas.d.ts +171 -0
  86. package/dist/schemas/external-schemas.js +179 -0
  87. package/dist/schemas/index.d.ts +2 -0
  88. package/dist/schemas/index.js +2 -0
  89. package/dist/schemas/plugins/i18n.d.ts +59 -39
  90. package/dist/schemas/plugins/i18n.js +42 -5
  91. package/dist/schemas/plugins/index.d.ts +7126 -10296
  92. package/dist/schemas/plugins/index.js +260 -276
  93. package/dist/schemas/plugins/shared.d.ts +1293 -3718
  94. package/dist/schemas/plugins/shared.js +320 -329
  95. package/dist/test-utils.d.ts +15 -4
  96. package/dist/test-utils.js +27 -11
  97. package/dist/toolbar/db-viewer/db-shared-types.d.ts +6 -6
  98. package/dist/toolbar/db-viewer/studio/connection.d.ts +8 -4
  99. package/dist/toolbar/db-viewer/studio/connection.js +2 -28
  100. package/dist/toolbar/db-viewer/studio/env/libsql.d.ts +7 -0
  101. package/dist/toolbar/db-viewer/studio/env/libsql.js +17 -0
  102. package/dist/toolbar/db-viewer/studio/env/mysql.d.ts +7 -0
  103. package/dist/toolbar/db-viewer/studio/env/mysql.js +23 -0
  104. package/dist/toolbar/db-viewer/studio/env/postgres.d.ts +7 -0
  105. package/dist/toolbar/db-viewer/studio/env/postgres.js +23 -0
  106. package/dist/toolbar/db-viewer/studio/index.js +20 -56
  107. package/dist/toolbar/db-viewer/studio/type.d.ts +1 -2
  108. package/dist/toolbar/db-viewer/studio/virtual-connection/libsql.d.ts +3 -0
  109. package/dist/toolbar/db-viewer/studio/virtual-connection/libsql.js +24 -0
  110. package/dist/toolbar/db-viewer/studio/virtual-connection/mysql.d.ts +3 -0
  111. package/dist/toolbar/db-viewer/studio/virtual-connection/mysql.js +9 -0
  112. package/dist/toolbar/db-viewer/studio/virtual-connection/postgres.d.ts +3 -0
  113. package/dist/toolbar/db-viewer/studio/virtual-connection/postgres.js +9 -0
  114. package/dist/toolbar/db-viewer/viewer.js +20 -21
  115. package/dist/types.d.ts +30 -0
  116. package/dist/utils/effects/smtp.d.ts +1 -1
  117. package/dist/utils/lang-helper.d.ts +10 -2
  118. package/dist/virtual.d.ts +35 -28
  119. package/dist/virtuals/auth/core.d.ts +5 -5
  120. package/dist/virtuals/auth/verify-email.d.ts +6 -6
  121. package/dist/virtuals/components/Generator.astro +2 -2
  122. package/dist/virtuals/components/Renderer.astro +9 -1
  123. package/dist/virtuals/components/renderFn.d.ts +3 -1
  124. package/dist/virtuals/components/renderFn.js +18 -0
  125. package/dist/virtuals/lib/headDefaults.d.ts +4 -2
  126. package/dist/virtuals/lib/headDefaults.js +0 -2
  127. package/dist/virtuals/lib/routeMap.d.ts +0 -12
  128. package/dist/virtuals/lib/routeMap.js +2 -14
  129. package/dist/virtuals/mailer/index.d.ts +3 -3
  130. package/dist/virtuals/notifier/index.d.ts +5 -5
  131. package/dist/virtuals/plugins/dashboard-pages.d.ts +2 -64
  132. package/dist/virtuals/scripts/StorageFileBrowser.d.ts +1 -172
  133. package/dist/virtuals/scripts/StorageFileBrowser.js +216 -119
  134. package/dist/virtuals/template-engine/index.d.ts +4 -4
  135. package/frontend/components/dashboard/configuration/ConfigForm.astro +218 -110
  136. package/frontend/components/dashboard/content-mgmt/ContentSearch.astro +21 -22
  137. package/frontend/components/dashboard/content-mgmt/CreateFolder.astro +66 -54
  138. package/frontend/components/dashboard/content-mgmt/CreatePage.astro +58 -104
  139. package/frontend/components/dashboard/content-mgmt/EditFolder.astro +65 -67
  140. package/frontend/components/dashboard/content-mgmt/EditPage.astro +86 -134
  141. package/frontend/components/dashboard/content-mgmt/InnerSidebarElement.astro +0 -1
  142. package/frontend/components/dashboard/content-mgmt/PageHeader.astro +33 -52
  143. package/frontend/components/dashboard/content-mgmt/PageTypeHandler.astro +2 -2
  144. package/frontend/components/dashboard/profile/APITokens.astro +219 -158
  145. package/frontend/components/dashboard/profile/BasicInfo.astro +165 -106
  146. package/frontend/components/dashboard/profile/Notifications.astro +27 -18
  147. package/frontend/components/dashboard/profile/UpdatePassword.astro +134 -94
  148. package/frontend/components/dashboard/sidebar/VersionCheck.astro +31 -16
  149. package/frontend/components/dashboard/sidebar/VersionCheckChangelog.astro +18 -11
  150. package/frontend/components/dashboard/sidebar-modals/VersionModal.astro +2 -2
  151. package/frontend/components/dashboard/smtp-config/TemplateEditor.astro +14 -14
  152. package/frontend/components/dashboard/taxonomy/InnerSidebarElement.astro +0 -1
  153. package/frontend/components/dashboard/taxonomy/MetaContainer.astro +0 -2
  154. package/frontend/components/dashboard/taxonomy/PageHeader.astro +16 -24
  155. package/frontend/components/dashboard/taxonomy/TaxonomySearch.astro +23 -27
  156. package/frontend/components/dashboard/user-mgmt/InnerSidebarElement.astro +111 -104
  157. package/frontend/components/dashboard/user-mgmt/UserListItem.astro +9 -22
  158. package/frontend/components/dashboard/user-mgmt/UserListItems.astro +18 -0
  159. package/frontend/components/first-time-setup/snippets/{opt2-studiocms.config.diff → studiocms.config.diff} +1 -0
  160. package/frontend/components/shared/Code.astro +1 -4
  161. package/frontend/components/shared/DynamicSettingsRenderer.astro +1 -1
  162. package/frontend/components/shared/SSRUser.astro +2 -4
  163. package/frontend/components/shared/foldertree/FolderTreeNode.astro +0 -6
  164. package/frontend/components/shared/storage-manager/StorageCopyOutput.astro +0 -1
  165. package/frontend/components/shared/taxonomy/TaxonomyTreeNode.astro +0 -6
  166. package/frontend/layouts/DashboardLayout.astro +1 -10
  167. package/frontend/layouts/TaxonomyLayout.astro +0 -1
  168. package/frontend/middleware/index.ts +102 -61
  169. package/frontend/pages/404.astro +5 -9
  170. package/frontend/pages/[dashboard]/[...pluginPage].astro +10 -1
  171. package/frontend/pages/[dashboard]/configuration.astro +10 -1
  172. package/frontend/pages/[dashboard]/content-management/createfolder.astro +10 -1
  173. package/frontend/pages/[dashboard]/content-management/createpage.astro +10 -1
  174. package/frontend/pages/[dashboard]/content-management/diff.astro +39 -14
  175. package/frontend/pages/[dashboard]/content-management/editfolder.astro +10 -1
  176. package/frontend/pages/[dashboard]/content-management/editpage.astro +10 -1
  177. package/frontend/pages/[dashboard]/content-management/index.astro +10 -1
  178. package/frontend/pages/[dashboard]/index.astro +10 -1
  179. package/frontend/pages/[dashboard]/login.astro +86 -25
  180. package/frontend/pages/[dashboard]/password-reset.astro +22 -16
  181. package/frontend/pages/[dashboard]/plugins/[plugin].astro +10 -1
  182. package/frontend/pages/[dashboard]/profile.astro +10 -1
  183. package/frontend/pages/[dashboard]/signup.astro +153 -52
  184. package/frontend/pages/[dashboard]/smtp-configuration.astro +77 -75
  185. package/frontend/pages/[dashboard]/system-management.astro +10 -1
  186. package/frontend/pages/[dashboard]/taxonomy/categories.astro +30 -41
  187. package/frontend/pages/[dashboard]/taxonomy/index.astro +10 -0
  188. package/frontend/pages/[dashboard]/taxonomy/tags.astro +33 -43
  189. package/frontend/pages/[dashboard]/unverified-email.astro +29 -21
  190. package/frontend/pages/[dashboard]/user-management/edit.astro +170 -90
  191. package/frontend/pages/[dashboard]/user-management/index.astro +10 -1
  192. package/frontend/pages/studiocms_api/[...all].ts +106 -0
  193. package/frontend/pages/studiocms_api/_handlers/_utils/auth.ts +26 -0
  194. package/frontend/pages/studiocms_api/_handlers/_utils/changelog.ts +147 -0
  195. package/frontend/pages/studiocms_api/_handlers/_utils/db-studio-driver.ts +46 -0
  196. package/frontend/pages/studiocms_api/_handlers/_utils/parseLogLevel.ts +27 -0
  197. package/frontend/pages/studiocms_api/_handlers/auth/auth.ts +459 -0
  198. package/frontend/pages/studiocms_api/_handlers/auth/index.ts +17 -0
  199. package/frontend/pages/studiocms_api/_handlers/auth/oauth.ts +91 -0
  200. package/frontend/pages/studiocms_api/_handlers/dashboard/_shared.ts +57 -0
  201. package/frontend/pages/studiocms_api/_handlers/dashboard/apiTokens.ts +134 -0
  202. package/frontend/pages/studiocms_api/_handlers/dashboard/config.ts +64 -0
  203. package/frontend/pages/studiocms_api/_handlers/dashboard/content.ts +741 -0
  204. package/frontend/pages/studiocms_api/_handlers/dashboard/create.ts +480 -0
  205. package/frontend/pages/studiocms_api/_handlers/dashboard/emailNotifications.ts +49 -0
  206. package/frontend/pages/studiocms_api/_handlers/dashboard/index.ts +45 -0
  207. package/frontend/pages/studiocms_api/_handlers/dashboard/mailer.ts +136 -0
  208. package/frontend/pages/studiocms_api/_handlers/dashboard/plugins.ts +80 -0
  209. package/frontend/pages/studiocms_api/_handlers/dashboard/profile.ts +275 -0
  210. package/frontend/pages/studiocms_api/_handlers/dashboard/resetPassword.ts +140 -0
  211. package/frontend/pages/studiocms_api/_handlers/dashboard/search.ts +63 -0
  212. package/frontend/pages/studiocms_api/_handlers/dashboard/taxonomy.ts +285 -0
  213. package/frontend/pages/studiocms_api/_handlers/dashboard/templates.ts +75 -0
  214. package/frontend/pages/studiocms_api/_handlers/dashboard/users.ts +312 -0
  215. package/frontend/pages/studiocms_api/_handlers/dashboard/verifyEndpoints.ts +307 -0
  216. package/frontend/pages/studiocms_api/_handlers/integration/dbStudio.ts +98 -0
  217. package/frontend/pages/studiocms_api/_handlers/integration/index.ts +17 -0
  218. package/frontend/pages/studiocms_api/_handlers/integration/storageManager.ts +107 -0
  219. package/frontend/pages/studiocms_api/_handlers/rest-api/index.ts +8 -0
  220. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/_shared.ts +41 -0
  221. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/index.ts +17 -0
  222. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/public.ts +195 -0
  223. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/secure.ts +1726 -0
  224. package/frontend/pages/studiocms_api/_handlers/sdk.ts +129 -0
  225. package/frontend/pages/studiocms_api/_middleware/astroLocals.ts +36 -0
  226. package/frontend/pages/studiocms_api/_middleware/restApi.ts +56 -0
  227. package/frontend/pages/studiocms_api/integrations/[...all].ts +8 -0
  228. package/frontend/scripts/formdata.ts +219 -0
  229. package/frontend/setup-pages/3-done.astro +4 -20
  230. package/frontend/setup-pages/studiocms_api/dashboard/step-2.ts +3 -6
  231. package/frontend/styles/dashboard-base.css +0 -1
  232. package/frontend/web-vitals/endpoint.ts +2 -1
  233. package/package.json +35 -31
  234. package/dist/global.d.ts +0 -9
  235. package/frontend/components/dashboard/LoginChecker.astro +0 -68
  236. package/frontend/components/dashboard/user-mgmt/RankCheck.astro +0 -57
  237. package/frontend/components/first-time-setup/snippets/opt1-astro.config.diff +0 -14
  238. package/frontend/components/first-time-setup/snippets/opt2-astro.config.diff +0 -9
  239. package/frontend/middleware/_authmap.ts +0 -63
  240. package/frontend/pages/studiocms_api/auth/[path].ts +0 -390
  241. package/frontend/pages/studiocms_api/auth/[provider]/[...id].ts +0 -64
  242. package/frontend/pages/studiocms_api/auth/[provider]/_effects/index.ts +0 -101
  243. package/frontend/pages/studiocms_api/auth/_shared.ts +0 -52
  244. package/frontend/pages/studiocms_api/dashboard/api-tokens.ts +0 -115
  245. package/frontend/pages/studiocms_api/dashboard/config.ts +0 -74
  246. package/frontend/pages/studiocms_api/dashboard/content/diff.ts +0 -73
  247. package/frontend/pages/studiocms_api/dashboard/content/folder.ts +0 -220
  248. package/frontend/pages/studiocms_api/dashboard/content/page.ts +0 -359
  249. package/frontend/pages/studiocms_api/dashboard/create-reset-link.ts +0 -77
  250. package/frontend/pages/studiocms_api/dashboard/create-user-invite.ts +0 -231
  251. package/frontend/pages/studiocms_api/dashboard/create-user.ts +0 -186
  252. package/frontend/pages/studiocms_api/dashboard/email-notification-settings-site.ts +0 -74
  253. package/frontend/pages/studiocms_api/dashboard/mailer/check-email.ts +0 -75
  254. package/frontend/pages/studiocms_api/dashboard/mailer/config.ts +0 -136
  255. package/frontend/pages/studiocms_api/dashboard/plugins/[plugin].ts +0 -80
  256. package/frontend/pages/studiocms_api/dashboard/profile.ts +0 -245
  257. package/frontend/pages/studiocms_api/dashboard/resend-verify-email.ts +0 -77
  258. package/frontend/pages/studiocms_api/dashboard/reset-password.ts +0 -124
  259. package/frontend/pages/studiocms_api/dashboard/search-list.ts +0 -59
  260. package/frontend/pages/studiocms_api/dashboard/taxonomy-search.ts +0 -47
  261. package/frontend/pages/studiocms_api/dashboard/taxonomy.ts +0 -230
  262. package/frontend/pages/studiocms_api/dashboard/templates.ts +0 -74
  263. package/frontend/pages/studiocms_api/dashboard/update-user-notifications.ts +0 -86
  264. package/frontend/pages/studiocms_api/dashboard/users.ts +0 -236
  265. package/frontend/pages/studiocms_api/dashboard/verify-email.ts +0 -83
  266. package/frontend/pages/studiocms_api/dashboard/verify-session.ts +0 -187
  267. package/frontend/pages/studiocms_api/integrations/[type]/[...id].ts +0 -15
  268. package/frontend/pages/studiocms_api/integrations/[type]/_routes/db-studio.ts +0 -173
  269. package/frontend/pages/studiocms_api/integrations/[type]/_routes/storage.ts +0 -88
  270. package/frontend/pages/studiocms_api/partials/editor.astro +0 -74
  271. package/frontend/pages/studiocms_api/partials/render.astro +0 -39
  272. package/frontend/pages/studiocms_api/partials/user-list-items.astro +0 -43
  273. package/frontend/pages/studiocms_api/rest/utils/auth-token.ts +0 -59
  274. package/frontend/pages/studiocms_api/rest/v1/[type]/[...id].ts +0 -23
  275. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/categories.ts +0 -267
  276. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/folders.ts +0 -283
  277. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/pages.ts +0 -505
  278. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/settings.ts +0 -100
  279. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/tags.ts +0 -229
  280. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/users.ts +0 -553
  281. package/frontend/pages/studiocms_api/rest/v1/public/[type]/[...id].ts +0 -19
  282. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/categories.ts +0 -74
  283. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/folders.ts +0 -85
  284. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/pages.ts +0 -103
  285. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/tags.ts +0 -67
  286. package/frontend/pages/studiocms_api/sdk/[...path].ts +0 -97
  287. package/frontend/pages/studiocms_api/sdk/utils/changelog.ts +0 -119
  288. package/frontend/scripts/auth/formListener.ts +0 -81
  289. package/frontend/scripts/formdata-utils.ts +0 -116
  290. package/frontend/utils/build-partial-schema.ts +0 -46
  291. package/frontend/utils/errors.ts +0 -6
  292. package/frontend/utils/param-extractor.ts +0 -83
  293. package/frontend/utils/rest-router.ts +0 -444
@@ -1,215 +1,226 @@
1
- import { z } from "astro/zod";
2
- const SearchEngines = z.union([
3
- z.literal("360Spider"),
4
- z.literal("360Spider-Image"),
5
- z.literal("360Spider-Video"),
6
- z.literal("HaoSouSpider"),
7
- z.literal("AdsBot-Google"),
8
- z.literal("AdsBot-Google-Mobile"),
9
- z.literal("AdsBot-Google-Mobile-Apps"),
10
- z.literal("Googlebot"),
11
- z.literal("Googlebot-Image"),
12
- z.literal("Googlebot-Mobile"),
13
- z.literal("Googlebot-News"),
14
- z.literal("Googlebot-Video"),
15
- z.literal("Mediapartners-Google"),
16
- z.literal("adidxbot"),
17
- z.literal("bingbot"),
18
- z.literal("BingPreview"),
19
- z.literal("MicrosoftPreview"),
20
- z.literal("msnbot"),
21
- z.literal("msnbot-media"),
22
- z.literal("Applebot"),
23
- z.literal("AppleNewsBot"),
24
- z.literal("Baiduspider"),
25
- z.literal("Baiduspider-image"),
26
- z.literal("Baiduspider-mobile"),
27
- z.literal("Baiduspider-news"),
28
- z.literal("Baiduspider-video"),
29
- z.literal("coccoc"),
30
- z.literal("coccocbot-image"),
31
- z.literal("coccocbot-web"),
32
- z.literal("DuckDuckBot"),
33
- z.literal("DuckDuckGo-Favicons-Bot"),
34
- z.literal("facebookcatalog"),
35
- z.literal("facebookexternalhit"),
36
- z.literal("Facebot"),
37
- z.literal("gooblog"),
38
- z.literal("ichiro"),
39
- z.literal("Sogou blog"),
40
- z.literal("Sogou inst spider"),
41
- z.literal("Sogou News Spider"),
42
- z.literal("Sogou Orion spider"),
43
- z.literal("Sogou spider2"),
44
- z.literal("Sogou web spider"),
45
- z.literal("Yandex"),
46
- z.literal("YandexMobileBot"),
47
- z.literal("Algolia Crawler"),
48
- z.literal("BublupBot"),
49
- z.literal("CCBot"),
50
- z.literal("Cliqzbot"),
51
- z.literal("Daumoa"),
52
- z.literal("DeuSu"),
53
- z.literal("EuripBot"),
54
- z.literal("Exploratodo"),
55
- z.literal("Feedly"),
56
- z.literal("Findxbot"),
57
- z.literal("istellabot"),
58
- z.literal("JikeSpider"),
59
- z.literal("Lycos"),
60
- z.literal("Mail.Ru"),
61
- z.literal("MojeekBot"),
62
- z.literal("OrangeBot"),
63
- z.literal("Pinterest"),
64
- z.literal("Plukkie"),
65
- z.literal("Qwantify"),
66
- z.literal("Rambler"),
67
- z.literal("SemanticScholarBot"),
68
- z.literal("SeznamBot"),
69
- z.literal("Sosospider"),
70
- z.literal("Slurp"),
71
- z.literal("Twitterbot"),
72
- z.literal("WhatsApp"),
73
- z.literal("yacybot"),
74
- z.literal("YepBot"),
75
- z.literal("Yeti"),
76
- z.literal("YioopBot"),
77
- z.literal("yoozBot"),
78
- z.literal("YoudaoBot")
79
- ]);
80
- const StringArrayUnion = z.union([z.string(), z.array(z.string())]);
81
- const StringArrayBooleanUnion = z.union([StringArrayUnion, z.boolean()]);
82
- const StringBooleanUnion = z.union([z.string(), z.boolean()]);
83
- const UserAgentSchema = z.union([z.literal("*"), SearchEngines]);
84
- const PolicyOptionsSchema = z.object({
85
- /**
86
- * @description
87
- * [ Required ] Indicates the robot to which the rules listed in `robots.txt` apply.
88
- * @example
89
- * ```ts
90
- * policy:[
91
- * {
92
- * userAgent: [
93
- * 'Googlebot',
94
- * 'Applebot',
95
- * 'Baiduspider',
96
- * 'bingbot'
97
- * ],
98
- * // crawling rule(s) for above bots
99
- * }
100
- * ]
101
- * ```
102
- * Verified bots, refer to [DITIG](https://www.ditig.com/robots-txt-template#regular-template) or [Cloudflare Radar](https://radar.cloudflare.com/traffic/verified-bots).
103
- */
104
- userAgent: z.union([UserAgentSchema, z.array(UserAgentSchema)]).optional(),
105
- /**
106
- * @description
107
- * [ At least one or more `allow` or `disallow` entries per rule ] Allows indexing site sections or individual pages.
108
- * @example
109
- * ```ts
110
- * policy:[{allow:["/"]}]
111
- * ```
112
- * Path-based URL matching, refer to [SYNTAX](https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt#url-matching-based-on-path-values) via Google.
113
- */
114
- allow: StringArrayUnion.optional(),
115
- /**
116
- * @description
117
- * [ At least one or more `disallow` or `allow` entries per rule ] Prohibits indexing site sections or individual pages.
118
- * @example
119
- * ```ts
120
- * policy:[
121
- * {
122
- * disallow:[
123
- * "/admin",
124
- * "/uploads/1989-08-21/*.jpg$"
125
- * ]
126
- * }
127
- * ]
128
- * ```
129
- * Path-based URL matching, refer to [SYNTAX](https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt#url-matching-based-on-path-values) via Google.
130
- */
131
- disallow: StringArrayUnion.optional(),
132
- /**
133
- * @description
134
- * [ Optional ] Specifies the minimum interval (in seconds) for the search robot to wait after loading one page, before starting to load another.
135
- *
136
- * @example
137
- * ```ts
138
- * policy:[{crawlDelay:5}]
139
- * ```
140
- * About the [Crawl-delay](https://yandex.com/support/webmaster/robot-workings/crawl-delay.html#crawl-delay) directive.
141
- */
142
- crawlDelay: z.number().optional(),
143
- /**
144
- * @description
145
- * [ Optional ] Indicates to the robot that the page URL contains parameters (like UTM tags) that should be ignored when indexing it.
146
- *
147
- * @example
148
- * ```bash
149
- * # for URLs like:
150
- * www.example2.com/index.php?page=1&sid=2564126ebdec301c607e5df
151
- * www.example2.com/index.php?page=1&sid=974017dcd170d6c4a5d76ae
152
- * ```
153
- * ```ts
154
- * policy:[
155
- * {
156
- * cleanParam: [
157
- * "sid /index.php",
158
- * ]
159
- * }
160
- * ]
161
- * ```
162
- * For additional examples, please consult
163
- * Yandex's [SYNTAX](https://yandex.com/support/webmaster/robot-workings/clean-param.html#clean-param__additional) guide.
164
- */
165
- cleanParam: StringArrayUnion.optional()
1
+ import * as Schema from "effect/Schema";
2
+ const Spider360 = Schema.Literal("360Spider", "360Spider-Image", "360Spider-Video");
3
+ const HaoSouSpider = Schema.Literal("HaoSouSpider");
4
+ const AdsBotGoogle = Schema.Literal(
5
+ "AdsBot-Google",
6
+ "AdsBot-Google-Mobile",
7
+ "AdsBot-Google-Mobile-Apps"
8
+ );
9
+ const Googlebot = Schema.Literal(
10
+ "Googlebot",
11
+ "Googlebot-Image",
12
+ "Googlebot-Mobile",
13
+ "Googlebot-News",
14
+ "Googlebot-Video"
15
+ );
16
+ const MediapartnersGoogle = Schema.Literal("Mediapartners-Google");
17
+ const adidxbot = Schema.Literal("adidxbot");
18
+ const bingbot = Schema.Literal("bingbot");
19
+ const BingPreview = Schema.Literal("BingPreview");
20
+ const MicrosoftPreview = Schema.Literal("MicrosoftPreview");
21
+ const msnbot = Schema.Literal("msnbot", "msnbot-media");
22
+ const Applebot = Schema.Literal("Applebot", "AppleNewsBot");
23
+ const Baiduspider = Schema.Literal(
24
+ "Baiduspider",
25
+ "Baiduspider-image",
26
+ "Baiduspider-mobile",
27
+ "Baiduspider-news",
28
+ "Baiduspider-video"
29
+ );
30
+ const coccoc = Schema.Literal("coccoc", "coccocbot-image", "coccocbot-web");
31
+ const DuckDuckBot = Schema.Literal("DuckDuckBot", "DuckDuckGo-Favicons-Bot");
32
+ const facebook = Schema.Literal("facebookcatalog", "facebookexternalhit", "Facebot");
33
+ const gooblog = Schema.Literal("gooblog");
34
+ const ichiro = Schema.Literal("ichiro");
35
+ const Sogou = Schema.Literal(
36
+ "Sogou blog",
37
+ "Sogou inst spider",
38
+ "Sogou News Spider",
39
+ "Sogou Orion spider",
40
+ "Sogou spider2",
41
+ "Sogou web spider"
42
+ );
43
+ const Yandex = Schema.Literal("Yandex", "YandexMobileBot");
44
+ const AlgoliaCrawler = Schema.Literal("Algolia Crawler");
45
+ const BublupBot = Schema.Literal("BublupBot");
46
+ const CCBot = Schema.Literal("CCBot");
47
+ const Cliqzbot = Schema.Literal("Cliqzbot");
48
+ const Daumoa = Schema.Literal("Daumoa");
49
+ const DeuSu = Schema.Literal("DeuSu");
50
+ const EuripBot = Schema.Literal("EuripBot");
51
+ const Exploratodo = Schema.Literal("Exploratodo");
52
+ const Feedly = Schema.Literal("Feedly");
53
+ const Findxbot = Schema.Literal("Findxbot");
54
+ const istellabot = Schema.Literal("istellabot");
55
+ const JikeSpider = Schema.Literal("JikeSpider");
56
+ const Lycos = Schema.Literal("Lycos");
57
+ const MailRu = Schema.Literal("Mail.Ru");
58
+ const MojeekBot = Schema.Literal("MojeekBot");
59
+ const OrangeBot = Schema.Literal("OrangeBot");
60
+ const Pinterest = Schema.Literal("Pinterest");
61
+ const Plukkie = Schema.Literal("Plukkie");
62
+ const Qwantify = Schema.Literal("Qwantify");
63
+ const Rambler = Schema.Literal("Rambler");
64
+ const SemanticScholarBot = Schema.Literal("SemanticScholarBot");
65
+ const SeSchemanamBot = Schema.Literal("SeSchemanamBot");
66
+ const Sosospider = Schema.Literal("Sosospider");
67
+ const Slurp = Schema.Literal("Slurp");
68
+ const Twitterbot = Schema.Literal("Twitterbot");
69
+ const WhatsApp = Schema.Literal("WhatsApp");
70
+ const yacybot = Schema.Literal("yacybot");
71
+ const YepBot = Schema.Literal("YepBot");
72
+ const Yeti = Schema.Literal("Yeti");
73
+ const YioopBot = Schema.Literal("YioopBot");
74
+ const yooSchemaBot = Schema.Literal("yooSchemaBot");
75
+ const YoudaoBot = Schema.Literal("YoudaoBot");
76
+ const SearchEngines = Schema.Union(
77
+ Spider360,
78
+ HaoSouSpider,
79
+ AdsBotGoogle,
80
+ Googlebot,
81
+ MediapartnersGoogle,
82
+ adidxbot,
83
+ bingbot,
84
+ BingPreview,
85
+ MicrosoftPreview,
86
+ msnbot,
87
+ Applebot,
88
+ Baiduspider,
89
+ coccoc,
90
+ DuckDuckBot,
91
+ facebook,
92
+ gooblog,
93
+ ichiro,
94
+ Sogou,
95
+ Yandex,
96
+ AlgoliaCrawler,
97
+ BublupBot,
98
+ CCBot,
99
+ Cliqzbot,
100
+ Daumoa,
101
+ DeuSu,
102
+ EuripBot,
103
+ Exploratodo,
104
+ Feedly,
105
+ Findxbot,
106
+ istellabot,
107
+ JikeSpider,
108
+ Lycos,
109
+ MailRu,
110
+ MojeekBot,
111
+ OrangeBot,
112
+ Pinterest,
113
+ Plukkie,
114
+ Qwantify,
115
+ Rambler,
116
+ SemanticScholarBot,
117
+ SeSchemanamBot,
118
+ Sosospider,
119
+ Slurp,
120
+ Twitterbot,
121
+ WhatsApp,
122
+ yacybot,
123
+ YepBot,
124
+ Yeti,
125
+ YioopBot,
126
+ yooSchemaBot,
127
+ YoudaoBot
128
+ );
129
+ const StringArrayUnion = Schema.Union(Schema.String, Schema.Array(Schema.String));
130
+ const UserAgentSchema = Schema.Union(Schema.Literal("*"), SearchEngines);
131
+ const PolicyOptionsSchema = Schema.Struct({
132
+ userAgent: Schema.optional(
133
+ Schema.Union(UserAgentSchema, Schema.Array(UserAgentSchema))
134
+ ).annotations({
135
+ description: 'User Agent - Specify the user agent(s) that the policy applies to. This can be a single user agent, an array of user agents, or the wildcard "*" to apply to all user agents.'
136
+ }),
137
+ allow: Schema.optional(StringArrayUnion).annotations({
138
+ description: "Allow - Specify the paths that are allowed for the specified user agents. This can be a single path or an array of paths."
139
+ }),
140
+ disallow: Schema.optional(StringArrayUnion).annotations({
141
+ description: "Disallow - Specify the paths that are disallowed for the specified user agents. This can be a single path or an array of paths."
142
+ }),
143
+ crawlDelay: Schema.optional(Schema.Number).annotations({
144
+ description: "Crawl Delay - Specify the crawl delay in seconds for the specified user agents. This tells search engine bots how many seconds to wait between requests to the server."
145
+ }),
146
+ cleanParam: Schema.optional(StringArrayUnion).annotations({
147
+ description: "Clean Param - Specify URL parameters that should be ignored by search engine bots when crawling the site. This can help prevent duplicate content issues caused by URL parameters."
148
+ })
149
+ }).annotations({
150
+ title: "Policy Options Schema",
151
+ description: "Schema for defining the options for a robots.txt policy, including user agents, allowed and disallowed paths, crawl delay, and clean parameters.",
152
+ identifier: "PolicyOptions"
166
153
  });
167
- const RobotsTXTConfigSchema = z.object({
168
- /**
169
- * @default false
170
- * @description
171
- * [ Optional ] Some crawlers(Yandex) support and only accept domain names.
172
- * @example
173
- * ```ts
174
- * integrations:[
175
- * robots({
176
- * host: siteUrl.replace(/^https?:\/\/|:\d+/g, "")
177
- * })
178
- * ]
179
- * ```
180
- */
181
- host: StringBooleanUnion.optional(),
182
- /**
183
- * @description
184
- * [ Optional, zero or more per file ] The location of a sitemap for this website.
185
- * @example
186
- * ```ts
187
- * sitemap: [
188
- * "https://example.com/sitemap.xml",
189
- * "https://www.example.com/sitemap.xml"
190
- * ]
191
- * ```
192
- * The value of the [SITEMAP](https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt#sitemap) field is case-sensitive.
193
- */
194
- sitemap: StringArrayBooleanUnion.optional(),
195
- /**
196
- * @description
197
- * [ Optional ] List of `policy` rules.
198
- * @default
199
- * ```ts
200
- * policy:[
201
- * {
202
- * userAgent: "*",
203
- * allow: "/"
204
- * }
205
- * ]
206
- * ```
207
- * For more help, refer to [SYNTAX](https://yandex.com/support/webmaster/controlling-robot/robots-txt.html#recommend) by Yandex.
208
- */
209
- policy: z.array(PolicyOptionsSchema).optional()
154
+ const RobotsTXTConfigSchema = Schema.Struct({
155
+ host: Schema.optional(Schema.Union(Schema.String, Schema.Boolean)).annotations({
156
+ description: 'Host - Specify the preferred domain for the site. This can be a string (e.g., "www.example.com") or a boolean (true to use the current domain, false to omit the Host directive).'
157
+ }),
158
+ sitemap: Schema.optional(Schema.Union(StringArrayUnion, Schema.Boolean)).annotations({
159
+ description: "Sitemap - Specify the URL(s) of the sitemap(s) for the site. This can be a single URL, an array of URLs, or a boolean (true to use the default sitemap location, false to omit the Sitemap directive)."
160
+ }),
161
+ policy: Schema.optional(Schema.Array(PolicyOptionsSchema)).annotations({
162
+ description: "Policy - An array of policy objects that define the rules for different user agents. Each policy object can specify the user agents it applies to, allowed and disallowed paths, crawl delay, and clean parameters."
163
+ })
164
+ }).annotations({
165
+ title: "Robots.txt Configuration Schema",
166
+ description: "Schema for configuring the robots.txt file, including host, sitemap, and policy options.",
167
+ identifier: "RobotsTXTConfig"
210
168
  });
211
169
  export {
170
+ AdsBotGoogle,
171
+ AlgoliaCrawler,
172
+ Applebot,
173
+ Baiduspider,
174
+ BingPreview,
175
+ BublupBot,
176
+ CCBot,
177
+ Cliqzbot,
178
+ Daumoa,
179
+ DeuSu,
180
+ DuckDuckBot,
181
+ EuripBot,
182
+ Exploratodo,
183
+ Feedly,
184
+ Findxbot,
185
+ Googlebot,
186
+ HaoSouSpider,
187
+ JikeSpider,
188
+ Lycos,
189
+ MailRu,
190
+ MediapartnersGoogle,
191
+ MicrosoftPreview,
192
+ MojeekBot,
193
+ OrangeBot,
194
+ Pinterest,
195
+ Plukkie,
212
196
  PolicyOptionsSchema,
197
+ Qwantify,
198
+ Rambler,
213
199
  RobotsTXTConfigSchema,
214
- UserAgentSchema
200
+ SeSchemanamBot,
201
+ SearchEngines,
202
+ SemanticScholarBot,
203
+ Slurp,
204
+ Sogou,
205
+ Sosospider,
206
+ Spider360,
207
+ StringArrayUnion,
208
+ Twitterbot,
209
+ UserAgentSchema,
210
+ WhatsApp,
211
+ Yandex,
212
+ YepBot,
213
+ Yeti,
214
+ YioopBot,
215
+ YoudaoBot,
216
+ adidxbot,
217
+ bingbot,
218
+ coccoc,
219
+ facebook,
220
+ gooblog,
221
+ ichiro,
222
+ istellabot,
223
+ msnbot,
224
+ yacybot,
225
+ yooSchemaBot
215
226
  };
@@ -1,4 +1,5 @@
1
- import { z } from 'astro/zod';
1
+ import { Schema } from 'effect';
2
+ import { RatingSchema } from '../schemas.js';
2
3
  /**
3
4
  * Enum schema for Web Vitals rating.
4
5
  *
@@ -7,12 +8,12 @@ import { z } from 'astro/zod';
7
8
  * - 'needs-improvement': Indicates that the web vitals need improvement.
8
9
  * - 'poor': Indicates that the web vitals are performing poorly.
9
10
  */
10
- export declare const WebVitalsRatingSchema: z.ZodEnum<["good", "needs-improvement", "poor"]>;
11
+ export declare const WebVitalsRatingSchema: Schema.Literal<["good", "needs-improvement", "poor"]>;
11
12
  /**
12
13
  * Type representing the inferred type of the WebVitalsRatingSchema.
13
14
  * This type is generated using the `z.infer` utility from the `zod` library.
14
15
  */
15
- export type WebVitalsRating = z.infer<typeof WebVitalsRatingSchema>;
16
+ export type WebVitalsRating = typeof RatingSchema.Type;
16
17
  /**
17
18
  * Enum schema for Core Web Vitals metric types.
18
19
  *
@@ -23,7 +24,7 @@ export type WebVitalsRating = z.infer<typeof WebVitalsRatingSchema>;
23
24
  *
24
25
  * These metrics are used to measure the performance and user experience of web pages.
25
26
  */
26
- export declare const CoreWebVitalsMetricTypeSchema: z.ZodEnum<["CLS", "INP", "LCP"]>;
27
+ export declare const CoreWebVitalsMetricTypeSchema: Schema.Literal<["CLS", "INP", "LCP"]>;
27
28
  /**
28
29
  * Type definition for Core Web Vitals metrics.
29
30
  *
@@ -31,7 +32,7 @@ export declare const CoreWebVitalsMetricTypeSchema: z.ZodEnum<["CLS", "INP", "LC
31
32
  * It represents the structure of the core web vitals metrics used in the application.
32
33
  *
33
34
  */
34
- export type CoreWebVitalsMetricType = z.infer<typeof CoreWebVitalsMetricTypeSchema>;
35
+ export type CoreWebVitalsMetricType = typeof CoreWebVitalsMetricTypeSchema.Type;
35
36
  /**
36
37
  * Schema for Web Vitals Metric Types.
37
38
  *
@@ -42,7 +43,7 @@ export type CoreWebVitalsMetricType = z.infer<typeof CoreWebVitalsMetricTypeSche
42
43
  * - `FID`: First Input Delay
43
44
  * - `TTFB`: Time to First Byte
44
45
  */
45
- export declare const WebVitalsMetricTypeSchema: z.ZodUnion<[z.ZodEnum<["CLS", "INP", "LCP"]>, z.ZodEnum<["FCP", "FID", "TTFB"]>]>;
46
+ export declare const WebVitalsMetricTypeSchema: Schema.Union<[Schema.Literal<["CLS", "INP", "LCP"]>, Schema.Literal<["FCP", "FID", "TTFB"]>]>;
46
47
  /**
47
48
  * Represents the type for Web Vitals metrics.
48
49
  *
@@ -51,7 +52,7 @@ export declare const WebVitalsMetricTypeSchema: z.ZodUnion<[z.ZodEnum<["CLS", "I
51
52
  *
52
53
  * @see WebVitalsMetricTypeSchema
53
54
  */
54
- export type WebVitalsMetricType = z.infer<typeof WebVitalsMetricTypeSchema>;
55
+ export type WebVitalsMetricType = typeof WebVitalsMetricTypeSchema.Type;
55
56
  /**
56
57
  * Schema for summarizing route metrics.
57
58
  *
@@ -62,7 +63,11 @@ export type WebVitalsMetricType = z.infer<typeof WebVitalsMetricTypeSchema>;
62
63
  * 4. Value (number, must be greater than or equal to 0)
63
64
  * 5. Sample size (number)
64
65
  */
65
- export declare const RouteSummaryRowSchema: z.ZodTuple<[z.ZodString, z.ZodEnum<["CLS", "INP", "LCP"]>, z.ZodEnum<["good", "needs-improvement", "poor"]>, z.ZodNumber, z.ZodNumber], null>;
66
+ export declare const RouteSummaryRowSchema: Schema.Tuple<[typeof Schema.String, Schema.Literal<["CLS", "INP", "LCP"]>, Schema.Literal<["good", "needs-improvement", "poor"]>, Schema.filter<typeof Schema.Number>, typeof Schema.Number]>;
67
+ /**
68
+ * Type representing a summary row of route metrics.
69
+ */
70
+ export declare const RatingEndSchema: Schema.transform<Schema.Literal<[0, 1]>, typeof Schema.Boolean>;
66
71
  /**
67
72
  * Schema for a summary row of web vitals metrics.
68
73
  *
@@ -75,4 +80,4 @@ export declare const RouteSummaryRowSchema: z.ZodTuple<[z.ZodString, z.ZodEnum<[
75
80
  * - `percentile`: A number representing the percentile of the metric, or null.
76
81
  * - `sample size`: A number representing the sample size.
77
82
  */
78
- export declare const MetricSummaryRowSchema: z.ZodTuple<[z.ZodUnion<[z.ZodEnum<["CLS", "INP", "LCP"]>, z.ZodEnum<["FCP", "FID", "TTFB"]>]>, z.ZodEnum<["good", "needs-improvement", "poor"]>, z.ZodNumber, z.ZodNumber, z.ZodEffects<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>, boolean, 0 | 1>, z.ZodUnion<[z.ZodNumber, z.ZodNull]>, z.ZodNumber], null>;
83
+ export declare const MetricSummaryRowSchema: Schema.Tuple<[Schema.Union<[Schema.Literal<["CLS", "INP", "LCP"]>, Schema.Literal<["FCP", "FID", "TTFB"]>]>, Schema.Literal<["good", "needs-improvement", "poor"]>, Schema.filter<typeof Schema.Number>, Schema.filter<typeof Schema.Number>, Schema.transform<Schema.Literal<[0, 1]>, typeof Schema.Boolean>, Schema.NullOr<typeof Schema.Number>, typeof Schema.Number]>;
@@ -1,36 +1,44 @@
1
- import { z } from "astro/zod";
2
- const WebVitalsRatingSchema = z.enum(["good", "needs-improvement", "poor"]);
3
- const CoreWebVitalsMetricTypeSchema = z.enum(["CLS", "INP", "LCP"]);
4
- const WebVitalsMetricTypeSchema = CoreWebVitalsMetricTypeSchema.or(
5
- z.enum(["FCP", "FID", "TTFB"])
1
+ import { Schema } from "effect";
2
+ import { RatingSchema } from "../schemas.js";
3
+ const WebVitalsRatingSchema = RatingSchema;
4
+ const CoreWebVitalsMetricTypeSchema = Schema.Literal("CLS", "INP", "LCP");
5
+ const WebVitalsMetricTypeSchema = Schema.Union(
6
+ CoreWebVitalsMetricTypeSchema,
7
+ Schema.Literal("FCP", "FID", "TTFB")
6
8
  );
7
- const RouteSummaryRowSchema = z.tuple([
9
+ const RouteSummaryRowSchema = Schema.Tuple(
8
10
  // route path
9
- z.string(),
11
+ Schema.String,
10
12
  CoreWebVitalsMetricTypeSchema,
11
13
  WebVitalsRatingSchema,
12
14
  // value
13
- z.number().gte(0),
15
+ Schema.Number.pipe(Schema.greaterThanOrEqualTo(0)),
14
16
  // sample size
15
- z.number()
16
- ]);
17
- const MetricSummaryRowSchema = z.tuple([
17
+ Schema.Number
18
+ );
19
+ const RatingEndSchema = Schema.transform(Schema.Literal(0, 1), Schema.Boolean, {
20
+ strict: true,
21
+ decode: (input) => input === 1,
22
+ encode: (input) => input ? 1 : 0
23
+ });
24
+ const MetricSummaryRowSchema = Schema.Tuple(
18
25
  WebVitalsMetricTypeSchema,
19
26
  WebVitalsRatingSchema,
20
27
  // value
21
- z.number().gte(0),
28
+ Schema.Number.pipe(Schema.greaterThanOrEqualTo(0)),
22
29
  // density
23
- z.number().gte(0),
30
+ Schema.Number.pipe(Schema.greaterThanOrEqualTo(0)),
24
31
  // rating end
25
- z.union([z.literal(0), z.literal(1)]).transform(Boolean),
32
+ RatingEndSchema,
26
33
  // percentile
27
- z.number().or(z.null()),
34
+ Schema.NullOr(Schema.Number),
28
35
  // sample size
29
- z.number()
30
- ]);
36
+ Schema.Number
37
+ );
31
38
  export {
32
39
  CoreWebVitalsMetricTypeSchema,
33
40
  MetricSummaryRowSchema,
41
+ RatingEndSchema,
34
42
  RouteSummaryRowSchema,
35
43
  WebVitalsMetricTypeSchema,
36
44
  WebVitalsRatingSchema
@@ -125,8 +125,8 @@ export declare const getAnalyticsDbClient: (driverDialect: DbDialectType) => imp
125
125
  };
126
126
  } & {
127
127
  readonly StudioCMSMetric: {
128
- readonly value: number;
129
128
  readonly name: "CLS" | "INP" | "LCP" | "FCP" | "TTFB";
129
+ readonly value: number;
130
130
  readonly route: string;
131
131
  readonly id: string;
132
132
  readonly timestamp: import("kysely").ColumnType<string, string, string>;