studiocms 0.1.0-beta.24 → 0.1.0-beta.26

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 (979) hide show
  1. package/CHANGELOG.md +136 -0
  2. package/dist/cli/add/index.d.ts +3 -4
  3. package/dist/cli/add/index.js +6 -7
  4. package/dist/cli/crypto/genJWT/index.d.ts +5 -5
  5. package/dist/cli/crypto/genJWT/index.js +14 -15
  6. package/dist/cli/crypto/index.d.ts +2 -2
  7. package/dist/cli/crypto/index.js +4 -4
  8. package/dist/cli/getTurso/index.d.ts +2 -2
  9. package/dist/cli/getTurso/index.js +3 -4
  10. package/dist/cli/index.js +11 -10
  11. package/dist/cli/init/index.d.ts +4 -4
  12. package/dist/cli/init/index.js +11 -12
  13. package/dist/cli/users/index.d.ts +4 -4
  14. package/dist/cli/users/index.js +11 -12
  15. package/dist/cli/users/steps/libsqlCreateUsers.js +3 -3
  16. package/dist/cli/users/steps/libsqlModifyUsers.js +3 -3
  17. package/dist/{layouts → components}/auth/FallbackCanvas.astro +1 -1
  18. package/dist/components/auth/OAuthButton.astro +1 -1
  19. package/dist/components/auth/OAuthButtonStack.astro +2 -2
  20. package/dist/components/auth/StaticAuthCheck.astro +3 -3
  21. package/dist/{scripts → components/auth/component-scripts}/formListener.d.ts +3 -0
  22. package/dist/{scripts → components/auth/component-scripts}/formListener.js +1 -1
  23. package/dist/components/dashboard/BaseHead.astro +7 -18
  24. package/dist/components/dashboard/DashboardGrid.astro +4 -4
  25. package/dist/components/dashboard/DashboardGridItem.astro +3 -2
  26. package/dist/components/dashboard/DashboardPageHeader.astro +11 -6
  27. package/dist/components/dashboard/DoubleSidebar.astro +3 -3
  28. package/dist/components/dashboard/Footer.astro +3 -7
  29. package/dist/components/dashboard/LoginChecker.astro +17 -17
  30. package/dist/components/dashboard/MainSidebarContent.astro +27 -18
  31. package/dist/components/dashboard/PageHeader.astro +3 -2
  32. package/dist/components/dashboard/SidebarLink.astro +148 -31
  33. package/dist/components/dashboard/SidebarPluginLink.astro +4 -4
  34. package/dist/components/dashboard/SingleSidebar.astro +3 -3
  35. package/dist/components/dashboard/UserName.astro +2 -2
  36. package/dist/components/dashboard/component-scripts/dateTimeListener.js +4 -9
  37. package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.d.ts +1 -0
  38. package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.js +10 -7
  39. package/dist/components/dashboard/configuration/ConfigForm.astro +53 -152
  40. package/dist/components/dashboard/configuration/LoginPreview.astro +275 -0
  41. package/dist/components/dashboard/content-mgmt/CreateFolder.astro +6 -5
  42. package/dist/components/dashboard/content-mgmt/CreatePage.astro +23 -47
  43. package/dist/components/dashboard/content-mgmt/EditFolder.astro +5 -4
  44. package/dist/components/dashboard/content-mgmt/EditPage.astro +36 -85
  45. package/dist/components/dashboard/content-mgmt/InnerSidebarElement.astro +30 -22
  46. package/dist/components/dashboard/content-mgmt/PageEditorSwapper.astro +107 -0
  47. package/dist/components/dashboard/content-mgmt/PageHeader.astro +26 -18
  48. package/dist/components/dashboard/content-mgmt/PageTypeHandler.astro +107 -0
  49. package/dist/components/dashboard/content-mgmt/PluginFields.astro +6 -1
  50. package/dist/components/dashboard/content-mgmt/TreeRenderer.astro +8 -8
  51. package/dist/components/dashboard/content-mgmt/TreeSidebarFolder.astro +116 -24
  52. package/dist/components/dashboard/content-mgmt/TreeSidebarLink.astro +116 -24
  53. package/dist/components/dashboard/content-mgmt/runtime.js +1 -1
  54. package/dist/components/dashboard/plugins/SettingsRenderer.astro +6 -1
  55. package/dist/components/dashboard/profile/APITokens.astro +18 -12
  56. package/dist/components/dashboard/profile/BasicInfo.astro +17 -13
  57. package/dist/components/dashboard/profile/Notifications.astro +20 -8
  58. package/dist/components/dashboard/profile/SocialSignin.astro +11 -8
  59. package/dist/components/dashboard/profile/UpdatePassword.astro +10 -7
  60. package/dist/components/dashboard/profile/oAuthButtonProviders.d.ts +1 -8
  61. package/dist/components/dashboard/profile/oAuthButtonProviders.js +1 -15
  62. package/dist/components/dashboard/shared.d.ts +1 -1
  63. package/dist/components/dashboard/sidebar/UserAccount.astro +5 -6
  64. package/dist/components/dashboard/sidebar/VersionCheck.astro +7 -7
  65. package/dist/components/dashboard/sidebar/VersionCheckChangelog.astro +32 -8
  66. package/dist/components/dashboard/sidebar-modals/UserManagementModals.astro +8 -3
  67. package/dist/components/dashboard/sidebar-modals/VersionModal.astro +43 -24
  68. package/dist/components/dashboard/sidebarConfig.d.ts +2 -2
  69. package/dist/components/dashboard/sidebarConfig.js +7 -7
  70. package/dist/components/dashboard/user-mgmt/InnerSidebarElement.astro +20 -13
  71. package/dist/components/dashboard/user-mgmt/RankCheck.astro +10 -10
  72. package/dist/components/dashboard/user-mgmt/SocialSignin.astro +9 -10
  73. package/dist/components/dashboard/user-mgmt/UserListItem.astro +86 -30
  74. package/dist/components/default-grid-items/Recently-created-pages.astro +12 -10
  75. package/dist/components/default-grid-items/Recently-signed-up.astro +9 -9
  76. package/dist/components/default-grid-items/Recently-updated-pages.astro +12 -10
  77. package/dist/components/default-grid-items/Totals.astro +11 -10
  78. package/dist/{routes/firstTimeSetupRoutes/components → components/first-time-setup}/PageHeader.astro +4 -3
  79. package/dist/components/shared/Code.astro +72 -0
  80. package/dist/components/shared/SSRUser.astro +200 -0
  81. package/dist/components/shared/head/Favicons.astro +6 -0
  82. package/dist/components/shared/head/Global.astro +4 -0
  83. package/dist/components/shared/head/TitleTags.astro +14 -0
  84. package/dist/config.d.ts +1 -4
  85. package/dist/consts.d.ts +48 -3
  86. package/dist/consts.js +65 -10
  87. package/dist/db/config.d.ts +1499 -0
  88. package/dist/db/config.js +262 -4
  89. package/dist/effect.d.ts +2 -3
  90. package/dist/effect.js +2 -17
  91. package/dist/{styles/dashboard-code.css → fonts/syntax-font.css} +2 -20
  92. package/dist/{utils → handlers}/astroConfigCheck.js +1 -1
  93. package/dist/handlers/changelog.d.ts +1 -0
  94. package/dist/handlers/changelog.js +54 -0
  95. package/dist/handlers/index.d.ts +4 -0
  96. package/dist/handlers/index.js +10 -0
  97. package/dist/{pluginHandler.d.ts → handlers/pluginHandler.d.ts} +4 -3
  98. package/dist/{pluginHandler.js → handlers/pluginHandler.js} +264 -127
  99. package/dist/{routeHandler.d.ts → handlers/routeHandler.d.ts} +1 -1
  100. package/dist/{routeHandler.js → handlers/routeHandler.js} +7 -2
  101. package/dist/index.d.ts +1 -0
  102. package/dist/index.js +184 -229
  103. package/dist/{lib → integrations}/dynamic-sitemap/index.js +1 -1
  104. package/dist/integrations/node-namespace.d.ts +15 -0
  105. package/dist/integrations/node-namespace.js +31 -0
  106. package/dist/integrations/plugins.d.ts +4 -0
  107. package/dist/integrations/plugins.js +7 -0
  108. package/dist/{lib → integrations}/robots/utils.d.ts +0 -8
  109. package/dist/{lib → integrations}/robots/utils.js +1 -5
  110. package/dist/{lib → integrations}/webVitals/checkForWebVitalsPlugin.js +3 -3
  111. package/{src/lib → dist/integrations}/webVitals/dashboard-grid-items/CoreVitals.astro +1 -1
  112. package/{src/lib → dist/integrations}/webVitals/dashboard-grid-items/MetricCard.astro +3 -2
  113. package/dist/{lib → integrations}/webVitals/dashboard-grid-items/SummaryCard.astro +2 -2
  114. package/dist/{lib → integrations}/webVitals/dashboard-grid-items/metric.css +17 -17
  115. package/dist/{lib → integrations}/webVitals/dashboard-grid-items/shared.d.ts +4 -4
  116. package/dist/{lib → integrations}/webVitals/dashboard-grid-items/shared.js +3 -3
  117. package/{src/lib → dist/integrations}/webVitals/pages/analytics/body.astro +10 -9
  118. package/dist/{lib → integrations}/webVitals/utils/webVitalsUtils.d.ts +9 -9
  119. package/dist/layouts/AuthLayout.astro +63 -0
  120. package/dist/layouts/{dashboard/Layout.astro → DashboardLayout.astro} +22 -10
  121. package/{src/routes/firstTimeSetupRoutes/components/Layout.astro → dist/layouts/FirstTimeSetupLayout.astro} +15 -3
  122. package/dist/middleware/index.d.ts +9 -0
  123. package/dist/middleware/index.js +67 -89
  124. package/dist/middleware/utils.d.ts +59 -36
  125. package/dist/middleware/utils.js +59 -40
  126. package/dist/routes/api/auth/[provider]/callback.d.ts +1 -4
  127. package/dist/routes/api/auth/[provider]/callback.js +29 -11
  128. package/dist/routes/api/auth/[provider]/index.d.ts +1 -4
  129. package/dist/routes/api/auth/[provider]/index.js +29 -11
  130. package/dist/routes/api/auth/forgot-password.d.ts +1 -4
  131. package/dist/routes/api/auth/forgot-password.js +85 -66
  132. package/dist/routes/api/auth/login.d.ts +1 -4
  133. package/dist/routes/api/auth/login.js +63 -47
  134. package/dist/routes/api/auth/logout.d.ts +6 -5
  135. package/dist/routes/api/auth/logout.js +38 -24
  136. package/dist/routes/api/auth/register.d.ts +1 -4
  137. package/dist/routes/api/auth/register.js +74 -63
  138. package/dist/routes/api/auth/shared.d.ts +4 -4
  139. package/dist/routes/api/auth/shared.js +19 -26
  140. package/dist/routes/api/dashboard/api-tokens.d.ts +1 -5
  141. package/dist/routes/api/dashboard/api-tokens.js +70 -64
  142. package/dist/routes/api/dashboard/config.d.ts +1 -4
  143. package/dist/routes/api/dashboard/config.js +51 -33
  144. package/dist/routes/api/dashboard/content/diff.d.ts +1 -4
  145. package/dist/routes/api/dashboard/content/diff.js +50 -29
  146. package/dist/routes/api/dashboard/content/folder.d.ts +1 -6
  147. package/dist/routes/api/dashboard/content/folder.js +106 -86
  148. package/dist/routes/api/dashboard/content/page.d.ts +1 -5
  149. package/dist/routes/api/dashboard/content/page.js +207 -202
  150. package/dist/routes/api/dashboard/create-reset-link.d.ts +1 -4
  151. package/dist/routes/api/dashboard/create-reset-link.js +53 -40
  152. package/dist/routes/api/dashboard/create-user-invite.d.ts +1 -4
  153. package/dist/routes/api/dashboard/create-user-invite.js +128 -106
  154. package/dist/routes/api/dashboard/create-user.d.ts +1 -4
  155. package/dist/routes/api/dashboard/create-user.js +132 -68
  156. package/dist/routes/api/dashboard/email-notification-settings-site.d.ts +1 -4
  157. package/dist/routes/api/dashboard/email-notification-settings-site.js +47 -21
  158. package/dist/routes/api/dashboard/partials/LiveRender.astro +21 -16
  159. package/dist/routes/api/dashboard/plugins/[plugin].d.ts +1 -4
  160. package/dist/routes/api/dashboard/plugins/[plugin].js +57 -33
  161. package/dist/routes/api/dashboard/profile.d.ts +1 -4
  162. package/dist/routes/api/dashboard/profile.js +133 -95
  163. package/dist/routes/api/dashboard/resend-verify-email.d.ts +1 -4
  164. package/dist/routes/api/dashboard/resend-verify-email.js +55 -29
  165. package/dist/routes/api/dashboard/reset-password.d.ts +1 -4
  166. package/dist/routes/api/dashboard/reset-password.js +76 -50
  167. package/dist/routes/api/dashboard/search-list.d.ts +1 -4
  168. package/dist/routes/api/dashboard/search-list.js +45 -37
  169. package/dist/routes/api/dashboard/update-user-notifications.d.ts +1 -4
  170. package/dist/routes/api/dashboard/update-user-notifications.js +48 -36
  171. package/dist/routes/api/dashboard/users.d.ts +1 -5
  172. package/dist/routes/api/dashboard/users.js +150 -96
  173. package/dist/routes/api/dashboard/verify-email.d.ts +1 -4
  174. package/dist/routes/api/dashboard/verify-email.js +52 -33
  175. package/dist/routes/api/dashboard/verify-session.d.ts +2 -29
  176. package/dist/routes/api/dashboard/verify-session.js +85 -73
  177. package/dist/routes/api/mailer/config.d.ts +2 -6
  178. package/dist/routes/api/mailer/config.js +86 -72
  179. package/dist/routes/api/mailer/test-email.d.ts +1 -4
  180. package/dist/routes/api/mailer/test-email.js +56 -33
  181. package/dist/routes/api/render.astro +1 -1
  182. package/dist/routes/api/rest/utils/auth-token.d.ts +3 -3
  183. package/dist/routes/api/rest/utils/auth-token.js +1 -2
  184. package/dist/routes/api/rest/v1/folders/[id].d.ts +2 -7
  185. package/dist/routes/api/rest/v1/folders/[id].js +105 -94
  186. package/dist/routes/api/rest/v1/folders/index.d.ts +2 -6
  187. package/dist/routes/api/rest/v1/folders/index.js +82 -66
  188. package/dist/routes/api/rest/v1/pages/[id]/history/[diffid].d.ts +1 -4
  189. package/dist/routes/api/rest/v1/pages/[id]/history/[diffid].js +46 -34
  190. package/dist/routes/api/rest/v1/pages/[id]/history/index.d.ts +1 -4
  191. package/dist/routes/api/rest/v1/pages/[id]/history/index.js +44 -39
  192. package/dist/routes/api/rest/v1/pages/[id]/index.d.ts +1 -6
  193. package/dist/routes/api/rest/v1/pages/[id]/index.js +158 -151
  194. package/dist/routes/api/rest/v1/pages/index.d.ts +1 -5
  195. package/dist/routes/api/rest/v1/pages/index.js +112 -107
  196. package/dist/routes/api/rest/v1/public/folders/[id].d.ts +1 -4
  197. package/dist/routes/api/rest/v1/public/folders/[id].js +32 -23
  198. package/dist/routes/api/rest/v1/public/folders/index.d.ts +1 -4
  199. package/dist/routes/api/rest/v1/public/folders/index.js +43 -33
  200. package/dist/routes/api/rest/v1/public/pages/[id].d.ts +1 -4
  201. package/dist/routes/api/rest/v1/public/pages/[id].js +38 -26
  202. package/dist/routes/api/rest/v1/public/pages/index.d.ts +1 -4
  203. package/dist/routes/api/rest/v1/public/pages/index.js +47 -44
  204. package/dist/routes/api/rest/v1/settings/index.d.ts +1 -5
  205. package/dist/routes/api/rest/v1/settings/index.js +60 -54
  206. package/dist/routes/api/rest/v1/users/[id].d.ts +2 -7
  207. package/dist/routes/api/rest/v1/users/[id].js +257 -231
  208. package/dist/routes/api/rest/v1/users/index.d.ts +2 -6
  209. package/dist/routes/api/rest/v1/users/index.js +154 -136
  210. package/dist/routes/api/sdk/fallback-list-pages.json.d.ts +1 -4
  211. package/dist/routes/api/sdk/fallback-list-pages.json.js +26 -33
  212. package/dist/routes/api/sdk/full-changelog.json.d.ts +1 -4
  213. package/dist/routes/api/sdk/full-changelog.json.js +27 -26
  214. package/dist/routes/api/sdk/list-pages.d.ts +1 -4
  215. package/dist/routes/api/sdk/list-pages.js +36 -29
  216. package/dist/routes/api/sdk/update-latest-version-cache.d.ts +1 -4
  217. package/dist/routes/api/sdk/update-latest-version-cache.js +30 -28
  218. package/dist/routes/api/sdk/utils/changelog.d.ts +5 -21
  219. package/dist/routes/api/sdk/utils/changelog.js +25 -131
  220. package/dist/routes/auth/login.astro +68 -58
  221. package/dist/routes/auth/logout.astro +3 -3
  222. package/dist/routes/auth/signup.astro +9 -9
  223. package/dist/routes/dashboard/[...pluginPage].astro +4 -2
  224. package/dist/routes/dashboard/configuration.astro +7 -4
  225. package/dist/routes/dashboard/content-management/createfolder.astro +5 -3
  226. package/dist/routes/dashboard/content-management/createpage.astro +5 -3
  227. package/dist/routes/dashboard/content-management/diff.astro +19 -15
  228. package/dist/routes/dashboard/content-management/editfolder.astro +4 -2
  229. package/dist/routes/dashboard/content-management/editpage.astro +4 -2
  230. package/dist/routes/dashboard/content-management/index.astro +5 -3
  231. package/dist/routes/dashboard/index.astro +4 -2
  232. package/dist/routes/dashboard/password-reset.astro +13 -8
  233. package/dist/routes/dashboard/plugins/[plugin].astro +10 -7
  234. package/dist/routes/dashboard/profile.astro +9 -4
  235. package/dist/routes/dashboard/smtp-configuration.astro +30 -18
  236. package/dist/routes/dashboard/unverified-email.astro +9 -9
  237. package/dist/routes/dashboard/user-management/edit.astro +53 -39
  238. package/dist/routes/dashboard/user-management/index.astro +6 -4
  239. package/dist/routes/error-pages/404.astro +6 -4
  240. package/dist/routes/firstTimeSetupRoutes/1-start.astro +18 -110
  241. package/dist/routes/firstTimeSetupRoutes/2-next.astro +60 -44
  242. package/dist/routes/firstTimeSetupRoutes/3-done.astro +9 -11
  243. package/dist/routes/firstTimeSetupRoutes/api/step-1.d.ts +1 -4
  244. package/dist/routes/firstTimeSetupRoutes/api/step-1.js +98 -87
  245. package/dist/routes/firstTimeSetupRoutes/api/step-2.d.ts +1 -4
  246. package/dist/routes/firstTimeSetupRoutes/api/step-2.js +95 -87
  247. package/dist/routes/firstTimeSetupRoutes/index.astro +6 -0
  248. package/dist/runtime/index.d.ts +2 -2
  249. package/dist/runtime/index.js +2 -3
  250. package/dist/schemas/config/index.js +1 -1
  251. package/dist/schemas/plugins/index.d.ts +57 -57
  252. package/dist/schemas/plugins/shared.d.ts +196 -77
  253. package/dist/schemas/plugins/shared.js +10 -16
  254. package/dist/styles/404.css +1 -1
  255. package/dist/styles/{authlayout.css → auth-layout.css} +1 -1
  256. package/dist/styles/code-component.css +56 -0
  257. package/dist/styles/dashboard-base.css +31 -62
  258. package/dist/styles/dashboard-diff.css +32 -32
  259. package/dist/theme.d.ts +1 -0
  260. package/dist/types.d.ts +3 -23
  261. package/dist/{lib → utils}/effects/index.d.ts +0 -1
  262. package/dist/{lib → utils}/effects/index.js +0 -2
  263. package/dist/{lib → utils}/effects/logger.d.ts +2 -4
  264. package/dist/{lib → utils}/effects/logger.js +2 -4
  265. package/dist/utils/effects/smtp.d.ts +40 -0
  266. package/dist/utils/effects/smtp.js +75 -0
  267. package/dist/utils/safeString.d.ts +1 -1
  268. package/dist/utils/safeString.js +1 -3
  269. package/dist/utils/stripIconify.d.ts +13 -0
  270. package/dist/utils/stripIconify.js +11 -0
  271. package/dist/utils/tinyMDParser.d.ts +6 -0
  272. package/dist/utils/tinyMDParser.js +5 -5
  273. package/dist/virtual.d.ts +194 -236
  274. package/dist/virtuals/auth/core.d.ts +91 -0
  275. package/dist/virtuals/auth/core.js +45 -0
  276. package/dist/{lib → virtuals}/auth/index.d.ts +1 -4
  277. package/dist/virtuals/auth/index.js +9 -0
  278. package/dist/virtuals/auth/scripts/three.d.ts +108 -0
  279. package/dist/virtuals/auth/scripts/three.js +484 -0
  280. package/dist/virtuals/auth/scripts/utils/fitModelToViewport.d.ts +10 -0
  281. package/dist/virtuals/auth/scripts/utils/fitModelToViewport.js +26 -0
  282. package/dist/{utils/validImages.d.ts → virtuals/auth/validImages/index.d.ts} +1 -1
  283. package/dist/virtuals/auth/validImages/index.js +39 -0
  284. package/dist/virtuals/auth/validImages/studiocms-blobs-dark.webp +0 -0
  285. package/dist/virtuals/auth/validImages/studiocms-blobs-light.webp +0 -0
  286. package/dist/virtuals/auth/validImages/studiocms-blocks-dark.webp +0 -0
  287. package/dist/virtuals/auth/validImages/studiocms-blocks-light.webp +0 -0
  288. package/dist/virtuals/auth/validImages/studiocms-curves-dark.webp +0 -0
  289. package/dist/virtuals/auth/validImages/studiocms-curves-light.webp +0 -0
  290. package/dist/{lib → virtuals}/auth/verify-email.d.ts +10 -10
  291. package/dist/{lib → virtuals}/auth/verify-email.js +19 -20
  292. package/dist/virtuals/components/Generator.astro +5 -0
  293. package/{src → dist/virtuals}/components/Renderer.astro +1 -1
  294. package/{src/lib → dist/virtuals}/i18n/LanguageSelector.astro +1 -1
  295. package/dist/{lib → virtuals}/i18n/client.d.ts +100 -4
  296. package/dist/{lib → virtuals}/i18n/client.js +11 -10
  297. package/dist/virtuals/i18n/config.d.ts +430 -0
  298. package/dist/virtuals/i18n/config.js +29 -0
  299. package/dist/virtuals/i18n/server.d.ts +116 -0
  300. package/dist/{lib/i18n/index.js → virtuals/i18n/server.js} +6 -19
  301. package/dist/{lib → virtuals}/i18n/translations/de.json +1 -1
  302. package/dist/virtuals/i18n/v-files.d.ts +30 -0
  303. package/dist/virtuals/i18n/v-files.js +46 -0
  304. package/dist/virtuals/lib/head.d.ts +1 -0
  305. package/dist/virtuals/lib/head.js +1 -0
  306. package/dist/{lib → virtuals/lib}/headDefaults.d.ts +1 -1
  307. package/dist/{lib → virtuals/lib}/headDefaults.js +1 -1
  308. package/dist/{lib → virtuals/lib}/makeAPIRoute.d.ts +1 -1
  309. package/dist/virtuals/lib/pathGenerators.d.ts +1 -0
  310. package/dist/virtuals/lib/pathGenerators.js +1 -0
  311. package/dist/{lib → virtuals/lib}/routeMap.d.ts +4 -0
  312. package/dist/{lib → virtuals/lib}/routeMap.js +5 -1
  313. package/dist/{lib → virtuals/lib}/urlGen.d.ts +2 -1
  314. package/dist/virtuals/lib/urlGen.js +6 -0
  315. package/dist/virtuals/mailer/index.d.ts +64 -0
  316. package/dist/{lib → virtuals}/mailer/index.js +7 -24
  317. package/dist/{lib → virtuals}/notifier/index.d.ts +6 -7
  318. package/dist/{lib → virtuals}/notifier/index.js +2 -4
  319. package/dist/virtuals/plugins/dashboard-pages.d.ts +71 -0
  320. package/dist/virtuals/scripts/user-quick-tools.d.ts +91 -0
  321. package/dist/{components → virtuals/scripts}/user-quick-tools.js +135 -53
  322. package/dist/{sdk → virtuals/sdk}/effect/collectors.d.ts +2 -2
  323. package/dist/{sdk → virtuals/sdk}/effect/collectors.js +1 -1
  324. package/dist/{sdk → virtuals/sdk}/effect/db.d.ts +1 -1
  325. package/dist/{sdk → virtuals/sdk}/effect/db.js +1 -1
  326. package/dist/{sdk → virtuals/sdk}/effect/foldertree.d.ts +2 -2
  327. package/dist/{sdk → virtuals/sdk}/effect/foldertree.js +1 -1
  328. package/dist/{sdk → virtuals/sdk}/effect/generators.d.ts +1 -1
  329. package/dist/{sdk → virtuals/sdk}/effect/generators.js +1 -1
  330. package/dist/{sdk → virtuals/sdk}/effect/getVersionFromNPM.d.ts +4 -5
  331. package/dist/virtuals/sdk/effect/getVersionFromNPM.js +24 -0
  332. package/dist/{sdk → virtuals/sdk}/effect/parsers.d.ts +1 -1
  333. package/dist/{sdk → virtuals/sdk}/effect/parsers.js +2 -2
  334. package/dist/{sdk → virtuals/sdk}/effect/pluginUtils.d.ts +1 -1
  335. package/dist/{sdk → virtuals/sdk}/effect/pluginUtils.js +1 -1
  336. package/dist/{sdk → virtuals/sdk}/effect/users.d.ts +1 -1
  337. package/dist/{sdk → virtuals/sdk}/effect/users.js +2 -2
  338. package/dist/{sdk → virtuals/sdk}/errors.d.ts +1 -1
  339. package/dist/{sdk → virtuals/sdk}/errors.js +1 -1
  340. package/dist/{sdk → virtuals/sdk}/index.d.ts +5 -4
  341. package/dist/{sdk → virtuals/sdk}/index.js +3 -4
  342. package/dist/{sdk → virtuals/sdk}/modules/auth.d.ts +7 -6
  343. package/dist/{sdk → virtuals/sdk}/modules/auth.js +2 -2
  344. package/dist/{sdk → virtuals/sdk}/modules/clear.d.ts +1 -1
  345. package/dist/{sdk → virtuals/sdk}/modules/clear.js +1 -1
  346. package/dist/virtuals/sdk/modules/config.d.ts +272 -0
  347. package/dist/virtuals/sdk/modules/config.js +205 -0
  348. package/dist/{sdk → virtuals/sdk}/modules/delete.d.ts +1 -1
  349. package/dist/{sdk → virtuals/sdk}/modules/delete.js +2 -2
  350. package/dist/{sdk → virtuals/sdk}/modules/diffTracking.d.ts +1 -1
  351. package/dist/{sdk → virtuals/sdk}/modules/diffTracking.js +1 -1
  352. package/dist/{sdk → virtuals/sdk}/modules/get.d.ts +14 -27
  353. package/dist/{sdk → virtuals/sdk}/modules/get.js +29 -42
  354. package/dist/{sdk → virtuals/sdk}/modules/init.d.ts +5 -19
  355. package/dist/{sdk → virtuals/sdk}/modules/init.js +8 -9
  356. package/dist/{sdk → virtuals/sdk}/modules/middlewares.d.ts +2 -2
  357. package/dist/{sdk → virtuals/sdk}/modules/middlewares.js +18 -12
  358. package/dist/{sdk → virtuals/sdk}/modules/notificationSettings.d.ts +6 -23
  359. package/dist/{sdk → virtuals/sdk}/modules/notificationSettings.js +8 -30
  360. package/dist/{sdk → virtuals/sdk}/modules/plugins.d.ts +1 -1
  361. package/dist/{sdk → virtuals/sdk}/modules/plugins.js +1 -1
  362. package/dist/{sdk → virtuals/sdk}/modules/post.d.ts +7 -7
  363. package/dist/{sdk → virtuals/sdk}/modules/post.js +15 -10
  364. package/dist/{sdk → virtuals/sdk}/modules/resetTokenBucket.d.ts +1 -1
  365. package/dist/{sdk → virtuals/sdk}/modules/resetTokenBucket.js +1 -1
  366. package/dist/{sdk → virtuals/sdk}/modules/rest_api.d.ts +2 -2
  367. package/dist/{sdk → virtuals/sdk}/modules/rest_api.js +1 -1
  368. package/dist/{sdk → virtuals/sdk}/modules/update.d.ts +26 -26
  369. package/dist/{sdk → virtuals/sdk}/modules/update.js +29 -26
  370. package/dist/{sdk → virtuals/sdk}/sdkCore.d.ts +6 -4
  371. package/dist/{sdk → virtuals/sdk}/sdkCore.js +10 -5
  372. package/dist/virtuals/sdk/tables.d.ts +2 -0
  373. package/dist/virtuals/sdk/tables.js +5 -0
  374. package/dist/{sdk → virtuals/sdk}/types/index.d.ts +6 -5
  375. package/dist/{sdk → virtuals/sdk}/types/tableDefs.d.ts +5 -4
  376. package/dist/{sdk → virtuals/sdk}/types/tsAlias.d.ts +4 -0
  377. package/dist/{sdk → virtuals/sdk}/utils.d.ts +4 -3
  378. package/dist/{sdk → virtuals/sdk}/utils.js +1 -1
  379. package/dist/virtuals/stubs/config.stub.js +9 -0
  380. package/dist/virtuals/stubs/logger.stub.js +30 -0
  381. package/dist/virtuals/utils.d.ts +71 -0
  382. package/dist/virtuals/utils.js +43 -0
  383. package/package.json +40 -67
  384. package/src/cli/add/index.ts +6 -7
  385. package/src/cli/crypto/genJWT/index.ts +14 -15
  386. package/src/cli/crypto/index.ts +4 -4
  387. package/src/cli/getTurso/index.ts +3 -4
  388. package/src/cli/index.ts +11 -10
  389. package/src/cli/init/index.ts +11 -12
  390. package/src/cli/users/index.ts +11 -12
  391. package/src/cli/users/steps/libsqlCreateUsers.ts +4 -3
  392. package/src/cli/users/steps/libsqlModifyUsers.ts +4 -3
  393. package/src/{layouts → components}/auth/FallbackCanvas.astro +1 -1
  394. package/src/components/auth/OAuthButton.astro +1 -1
  395. package/src/components/auth/OAuthButtonStack.astro +2 -2
  396. package/src/components/auth/StaticAuthCheck.astro +3 -3
  397. package/src/{scripts → components/auth/component-scripts}/formListener.ts +5 -1
  398. package/src/components/dashboard/BaseHead.astro +7 -18
  399. package/src/components/dashboard/DashboardGrid.astro +4 -4
  400. package/src/components/dashboard/DashboardGridItem.astro +3 -2
  401. package/src/components/dashboard/DashboardPageHeader.astro +11 -6
  402. package/src/components/dashboard/DoubleSidebar.astro +3 -3
  403. package/src/components/dashboard/Footer.astro +3 -7
  404. package/src/components/dashboard/LoginChecker.astro +17 -17
  405. package/src/components/dashboard/MainSidebarContent.astro +27 -18
  406. package/src/components/dashboard/PageHeader.astro +3 -2
  407. package/src/components/dashboard/SidebarLink.astro +148 -31
  408. package/src/components/dashboard/SidebarPluginLink.astro +4 -4
  409. package/src/components/dashboard/SingleSidebar.astro +3 -3
  410. package/src/components/dashboard/UserName.astro +2 -2
  411. package/src/components/dashboard/component-scripts/dateTimeListener.ts +5 -9
  412. package/src/components/dashboard/component-scripts/dateWithTimeAndZone.ts +11 -8
  413. package/src/components/dashboard/configuration/ConfigForm.astro +53 -152
  414. package/src/components/dashboard/configuration/LoginPreview.astro +275 -0
  415. package/src/components/dashboard/content-mgmt/CreateFolder.astro +6 -5
  416. package/src/components/dashboard/content-mgmt/CreatePage.astro +23 -47
  417. package/src/components/dashboard/content-mgmt/EditFolder.astro +5 -4
  418. package/src/components/dashboard/content-mgmt/EditPage.astro +36 -85
  419. package/src/components/dashboard/content-mgmt/InnerSidebarElement.astro +30 -22
  420. package/src/components/dashboard/content-mgmt/PageEditorSwapper.astro +107 -0
  421. package/src/components/dashboard/content-mgmt/PageHeader.astro +26 -18
  422. package/src/components/dashboard/content-mgmt/PageTypeHandler.astro +107 -0
  423. package/src/components/dashboard/content-mgmt/PluginFields.astro +6 -1
  424. package/src/components/dashboard/content-mgmt/TreeRenderer.astro +8 -8
  425. package/src/components/dashboard/content-mgmt/TreeSidebarFolder.astro +116 -24
  426. package/src/components/dashboard/content-mgmt/TreeSidebarLink.astro +116 -24
  427. package/src/components/dashboard/content-mgmt/runtime.ts +1 -1
  428. package/src/components/dashboard/plugins/SettingsRenderer.astro +6 -1
  429. package/src/components/dashboard/profile/APITokens.astro +18 -12
  430. package/src/components/dashboard/profile/BasicInfo.astro +17 -13
  431. package/src/components/dashboard/profile/Notifications.astro +20 -8
  432. package/src/components/dashboard/profile/SocialSignin.astro +11 -8
  433. package/src/components/dashboard/profile/UpdatePassword.astro +10 -7
  434. package/src/components/dashboard/profile/oAuthButtonProviders.ts +1 -20
  435. package/src/components/dashboard/shared.ts +1 -1
  436. package/src/components/dashboard/sidebar/UserAccount.astro +5 -6
  437. package/src/components/dashboard/sidebar/VersionCheck.astro +7 -7
  438. package/src/components/dashboard/sidebar/VersionCheckChangelog.astro +32 -8
  439. package/src/components/dashboard/sidebar-modals/UserManagementModals.astro +8 -3
  440. package/src/components/dashboard/sidebar-modals/VersionModal.astro +43 -24
  441. package/src/components/dashboard/sidebarConfig.ts +9 -9
  442. package/src/components/dashboard/user-mgmt/InnerSidebarElement.astro +20 -13
  443. package/src/components/dashboard/user-mgmt/RankCheck.astro +10 -10
  444. package/src/components/dashboard/user-mgmt/SocialSignin.astro +9 -10
  445. package/src/components/dashboard/user-mgmt/UserListItem.astro +86 -30
  446. package/src/components/default-grid-items/Recently-created-pages.astro +12 -10
  447. package/src/components/default-grid-items/Recently-signed-up.astro +9 -9
  448. package/src/components/default-grid-items/Recently-updated-pages.astro +12 -10
  449. package/src/components/default-grid-items/Totals.astro +11 -10
  450. package/src/{routes/firstTimeSetupRoutes/components → components/first-time-setup}/PageHeader.astro +4 -3
  451. package/src/components/shared/Code.astro +72 -0
  452. package/src/components/shared/SSRUser.astro +200 -0
  453. package/src/components/shared/head/Favicons.astro +6 -0
  454. package/src/components/shared/head/Global.astro +4 -0
  455. package/src/components/shared/head/TitleTags.astro +14 -0
  456. package/src/config.ts +1 -4
  457. package/src/consts.ts +94 -14
  458. package/src/db/config.ts +306 -3
  459. package/src/effect.ts +5 -10
  460. package/src/fonts/syntax-font.css +40 -0
  461. package/src/{utils → handlers}/astroConfigCheck.ts +1 -1
  462. package/src/handlers/changelog.ts +67 -0
  463. package/src/handlers/index.ts +4 -0
  464. package/src/{pluginHandler.ts → handlers/pluginHandler.ts} +359 -142
  465. package/src/{routeHandler.ts → handlers/routeHandler.ts} +8 -3
  466. package/src/index.ts +214 -259
  467. package/src/{lib → integrations}/dynamic-sitemap/index.ts +1 -1
  468. package/src/integrations/node-namespace.ts +44 -0
  469. package/src/integrations/plugins.ts +4 -0
  470. package/src/{lib → integrations}/robots/utils.ts +0 -11
  471. package/src/{lib → integrations}/webVitals/checkForWebVitalsPlugin.ts +3 -3
  472. package/{dist/lib → src/integrations}/webVitals/dashboard-grid-items/CoreVitals.astro +1 -1
  473. package/{dist/lib → src/integrations}/webVitals/dashboard-grid-items/MetricCard.astro +3 -2
  474. package/src/{lib → integrations}/webVitals/dashboard-grid-items/SummaryCard.astro +2 -2
  475. package/src/{lib → integrations}/webVitals/dashboard-grid-items/metric.css +17 -17
  476. package/src/{lib → integrations}/webVitals/dashboard-grid-items/shared.ts +7 -7
  477. package/{dist/lib → src/integrations}/webVitals/pages/analytics/body.astro +10 -9
  478. package/src/layouts/AuthLayout.astro +63 -0
  479. package/src/layouts/{dashboard/Layout.astro → DashboardLayout.astro} +22 -10
  480. package/{dist/routes/firstTimeSetupRoutes/components/Layout.astro → src/layouts/FirstTimeSetupLayout.astro} +15 -3
  481. package/src/middleware/index.ts +98 -111
  482. package/src/middleware/utils.ts +123 -113
  483. package/src/routes/api/auth/[provider]/callback.ts +31 -15
  484. package/src/routes/api/auth/[provider]/index.ts +31 -15
  485. package/src/routes/api/auth/forgot-password.ts +134 -128
  486. package/src/routes/api/auth/login.ts +80 -67
  487. package/src/routes/api/auth/logout.ts +59 -43
  488. package/src/routes/api/auth/register.ts +93 -85
  489. package/src/routes/api/auth/shared.ts +20 -30
  490. package/src/routes/api/dashboard/api-tokens.ts +112 -104
  491. package/src/routes/api/dashboard/config.ts +64 -48
  492. package/src/routes/api/dashboard/content/diff.ts +59 -38
  493. package/src/routes/api/dashboard/content/folder.ts +145 -135
  494. package/src/routes/api/dashboard/content/page.ts +274 -275
  495. package/src/routes/api/dashboard/create-reset-link.ts +73 -64
  496. package/src/routes/api/dashboard/create-user-invite.ts +158 -140
  497. package/src/routes/api/dashboard/create-user.ts +172 -106
  498. package/src/routes/api/dashboard/email-notification-settings-site.ts +69 -32
  499. package/src/routes/api/dashboard/partials/LiveRender.astro +21 -16
  500. package/src/routes/api/dashboard/plugins/[plugin].ts +65 -45
  501. package/src/routes/api/dashboard/profile.ts +159 -127
  502. package/src/routes/api/dashboard/resend-verify-email.ts +63 -35
  503. package/src/routes/api/dashboard/reset-password.ts +108 -77
  504. package/src/routes/api/dashboard/search-list.ts +50 -50
  505. package/src/routes/api/dashboard/update-user-notifications.ts +57 -45
  506. package/src/routes/api/dashboard/users.ts +202 -135
  507. package/src/routes/api/dashboard/verify-email.ts +57 -42
  508. package/src/routes/api/dashboard/verify-session.ts +102 -116
  509. package/src/routes/api/mailer/config.ts +120 -102
  510. package/src/routes/api/mailer/test-email.ts +73 -52
  511. package/src/routes/api/render.astro +1 -1
  512. package/src/routes/api/rest/utils/auth-token.ts +1 -2
  513. package/src/routes/api/rest/v1/folders/[id].ts +136 -133
  514. package/src/routes/api/rest/v1/folders/index.ts +102 -90
  515. package/src/routes/api/rest/v1/pages/[id]/history/[diffid].ts +59 -49
  516. package/src/routes/api/rest/v1/pages/[id]/history/index.ts +63 -65
  517. package/src/routes/api/rest/v1/pages/[id]/index.ts +184 -187
  518. package/src/routes/api/rest/v1/pages/index.ts +136 -137
  519. package/src/routes/api/rest/v1/public/folders/[id].ts +34 -28
  520. package/src/routes/api/rest/v1/public/folders/index.ts +54 -47
  521. package/src/routes/api/rest/v1/public/pages/[id].ts +47 -38
  522. package/src/routes/api/rest/v1/public/pages/index.ts +60 -62
  523. package/src/routes/api/rest/v1/settings/index.ts +91 -77
  524. package/src/routes/api/rest/v1/users/[id].ts +317 -294
  525. package/src/routes/api/rest/v1/users/index.ts +196 -179
  526. package/src/routes/api/sdk/fallback-list-pages.json.ts +28 -38
  527. package/src/routes/api/sdk/full-changelog.json.ts +29 -31
  528. package/src/routes/api/sdk/list-pages.ts +41 -37
  529. package/src/routes/api/sdk/update-latest-version-cache.ts +32 -34
  530. package/src/routes/api/sdk/utils/changelog.ts +29 -168
  531. package/src/routes/auth/login.astro +68 -58
  532. package/src/routes/auth/logout.astro +3 -3
  533. package/src/routes/auth/signup.astro +9 -9
  534. package/src/routes/dashboard/[...pluginPage].astro +4 -2
  535. package/src/routes/dashboard/configuration.astro +7 -4
  536. package/src/routes/dashboard/content-management/createfolder.astro +5 -3
  537. package/src/routes/dashboard/content-management/createpage.astro +5 -3
  538. package/src/routes/dashboard/content-management/diff.astro +19 -15
  539. package/src/routes/dashboard/content-management/editfolder.astro +4 -2
  540. package/src/routes/dashboard/content-management/editpage.astro +4 -2
  541. package/src/routes/dashboard/content-management/index.astro +5 -3
  542. package/src/routes/dashboard/index.astro +4 -2
  543. package/src/routes/dashboard/password-reset.astro +13 -8
  544. package/src/routes/dashboard/plugins/[plugin].astro +10 -7
  545. package/src/routes/dashboard/profile.astro +9 -4
  546. package/src/routes/dashboard/smtp-configuration.astro +30 -18
  547. package/src/routes/dashboard/unverified-email.astro +9 -9
  548. package/src/routes/dashboard/user-management/edit.astro +53 -39
  549. package/src/routes/dashboard/user-management/index.astro +6 -4
  550. package/src/routes/error-pages/404.astro +6 -4
  551. package/src/routes/firstTimeSetupRoutes/1-start.astro +18 -110
  552. package/src/routes/firstTimeSetupRoutes/2-next.astro +60 -44
  553. package/src/routes/firstTimeSetupRoutes/3-done.astro +9 -11
  554. package/src/routes/firstTimeSetupRoutes/api/step-1.ts +116 -98
  555. package/src/routes/firstTimeSetupRoutes/api/step-2.ts +114 -100
  556. package/src/routes/firstTimeSetupRoutes/index.astro +6 -0
  557. package/src/runtime/index.ts +2 -3
  558. package/src/schemas/config/index.ts +1 -1
  559. package/src/schemas/plugins/index.ts +1 -1
  560. package/src/schemas/plugins/shared.ts +149 -23
  561. package/src/styles/404.css +1 -1
  562. package/src/styles/{authlayout.css → auth-layout.css} +1 -1
  563. package/src/styles/code-component.css +64 -0
  564. package/src/styles/dashboard-base.css +31 -67
  565. package/src/styles/dashboard-diff.css +32 -32
  566. package/src/theme.d.ts +1 -0
  567. package/src/types.ts +4 -21
  568. package/src/{lib → utils}/effects/index.ts +0 -1
  569. package/src/{lib → utils}/effects/logger.ts +6 -10
  570. package/src/utils/effects/smtp.ts +155 -0
  571. package/src/utils/safeString.ts +1 -6
  572. package/src/utils/stripIconify.ts +20 -0
  573. package/src/utils/tinyMDParser.ts +13 -7
  574. package/src/virtual.d.ts +194 -236
  575. package/src/virtuals/auth/core.ts +82 -0
  576. package/src/{lib → virtuals}/auth/index.ts +1 -4
  577. package/src/virtuals/auth/scripts/three.ts +647 -0
  578. package/src/virtuals/auth/scripts/utils/fitModelToViewport.ts +50 -0
  579. package/src/{utils/validImages.ts → virtuals/auth/validImages/index.ts} +10 -10
  580. package/src/virtuals/auth/validImages/studiocms-blobs-dark.webp +0 -0
  581. package/src/virtuals/auth/validImages/studiocms-blobs-light.webp +0 -0
  582. package/src/virtuals/auth/validImages/studiocms-blocks-dark.webp +0 -0
  583. package/src/virtuals/auth/validImages/studiocms-blocks-light.webp +0 -0
  584. package/src/virtuals/auth/validImages/studiocms-curves-dark.webp +0 -0
  585. package/src/virtuals/auth/validImages/studiocms-curves-light.webp +0 -0
  586. package/src/{lib → virtuals}/auth/verify-email.ts +20 -21
  587. package/src/virtuals/components/Generator.astro +5 -0
  588. package/{dist → src/virtuals}/components/Renderer.astro +1 -1
  589. package/{dist/lib → src/virtuals}/i18n/LanguageSelector.astro +1 -1
  590. package/src/virtuals/i18n/client.ts +232 -0
  591. package/src/virtuals/i18n/config.ts +170 -0
  592. package/src/{lib/i18n/index.ts → virtuals/i18n/server.ts} +42 -46
  593. package/src/{lib → virtuals}/i18n/translations/de.json +1 -1
  594. package/src/virtuals/i18n/v-files.ts +122 -0
  595. package/src/virtuals/lib/head.ts +1 -0
  596. package/src/{lib → virtuals/lib}/headDefaults.ts +1 -1
  597. package/src/{lib → virtuals/lib}/makeAPIRoute.ts +1 -1
  598. package/src/virtuals/lib/pathGenerators.ts +1 -0
  599. package/src/{lib → virtuals/lib}/routeMap.ts +5 -0
  600. package/src/virtuals/lib/urlGen.ts +15 -0
  601. package/src/{lib → virtuals}/mailer/index.ts +10 -44
  602. package/src/{lib → virtuals}/notifier/index.ts +1 -3
  603. package/src/{components → virtuals/scripts}/user-quick-tools.ts +151 -59
  604. package/src/{sdk → virtuals/sdk}/effect/collectors.ts +2 -3
  605. package/src/{sdk → virtuals/sdk}/effect/db.ts +1 -1
  606. package/src/{sdk → virtuals/sdk}/effect/foldertree.ts +1 -1
  607. package/src/{sdk → virtuals/sdk}/effect/generators.ts +1 -1
  608. package/src/{sdk → virtuals/sdk}/effect/getVersionFromNPM.ts +5 -11
  609. package/src/{sdk → virtuals/sdk}/effect/parsers.ts +2 -2
  610. package/src/{sdk → virtuals/sdk}/effect/pluginUtils.ts +1 -1
  611. package/src/{sdk → virtuals/sdk}/effect/users.ts +2 -2
  612. package/src/{sdk → virtuals/sdk}/errors.ts +1 -1
  613. package/src/{sdk → virtuals/sdk}/index.ts +5 -6
  614. package/src/{sdk → virtuals/sdk}/modules/auth.ts +4 -3
  615. package/src/{sdk → virtuals/sdk}/modules/clear.ts +1 -1
  616. package/src/virtuals/sdk/modules/config.ts +602 -0
  617. package/src/{sdk → virtuals/sdk}/modules/delete.ts +2 -2
  618. package/src/{sdk → virtuals/sdk}/modules/diffTracking.ts +1 -1
  619. package/src/{sdk → virtuals/sdk}/modules/get.ts +34 -50
  620. package/src/{sdk → virtuals/sdk}/modules/init.ts +19 -27
  621. package/src/{sdk → virtuals/sdk}/modules/middlewares.ts +24 -13
  622. package/src/{sdk → virtuals/sdk}/modules/notificationSettings.ts +9 -45
  623. package/src/{sdk → virtuals/sdk}/modules/plugins.ts +1 -1
  624. package/src/{sdk → virtuals/sdk}/modules/post.ts +18 -19
  625. package/src/{sdk → virtuals/sdk}/modules/resetTokenBucket.ts +1 -1
  626. package/src/{sdk → virtuals/sdk}/modules/rest_api.ts +1 -1
  627. package/src/{sdk → virtuals/sdk}/modules/update.ts +32 -30
  628. package/src/{sdk → virtuals/sdk}/sdkCore.ts +6 -1
  629. package/src/virtuals/sdk/tables.ts +2 -0
  630. package/src/{sdk → virtuals/sdk}/types/index.ts +6 -10
  631. package/src/{sdk → virtuals/sdk}/types/tableDefs.ts +4 -4
  632. package/src/{sdk → virtuals/sdk}/types/tsAlias.ts +4 -0
  633. package/src/{sdk → virtuals/sdk}/utils.ts +3 -3
  634. package/src/virtuals/stubs/config.stub.js +9 -0
  635. package/src/virtuals/stubs/logger.stub.js +30 -0
  636. package/src/virtuals/utils.ts +134 -0
  637. package/ui.d.ts +1301 -274
  638. package/dist/componentRegistry/PropsParser.d.ts +0 -15
  639. package/dist/componentRegistry/PropsParser.js +0 -214
  640. package/dist/componentRegistry/Registry.d.ts +0 -46
  641. package/dist/componentRegistry/Registry.js +0 -79
  642. package/dist/componentRegistry/convert-hyphens.d.ts +0 -14
  643. package/dist/componentRegistry/convert-hyphens.js +0 -10
  644. package/dist/componentRegistry/errors.d.ts +0 -67
  645. package/dist/componentRegistry/errors.js +0 -12
  646. package/dist/componentRegistry/handler.d.ts +0 -34
  647. package/dist/componentRegistry/handler.js +0 -110
  648. package/dist/componentRegistry/index.d.ts +0 -6
  649. package/dist/componentRegistry/index.js +0 -6
  650. package/dist/componentRegistry/runtime.d.ts +0 -46
  651. package/dist/componentRegistry/runtime.js +0 -61
  652. package/dist/componentRegistry/types.d.ts +0 -59
  653. package/dist/components/Generator.astro +0 -5
  654. package/dist/components/dashboard/AstroCodeDiffsScript.astro +0 -25
  655. package/dist/components/dashboard/Code.astro +0 -23
  656. package/dist/components/dashboard/component-scripts/makeClientRoutable.d.ts +0 -1
  657. package/dist/components/dashboard/component-scripts/makeClientRoutable.js +0 -9
  658. package/dist/components/dashboard/configuration/LightVsDark.astro +0 -67
  659. package/dist/components/user-quick-tools.d.ts +0 -90
  660. package/dist/db/tables.js +0 -217
  661. package/dist/layouts/auth/AuthLayout.astro +0 -71
  662. package/dist/lib/auth/encryption.d.ts +0 -46
  663. package/dist/lib/auth/encryption.js +0 -83
  664. package/dist/lib/auth/index.js +0 -12
  665. package/dist/lib/auth/password.d.ts +0 -45
  666. package/dist/lib/auth/password.js +0 -113
  667. package/dist/lib/auth/session.d.ts +0 -77
  668. package/dist/lib/auth/session.js +0 -147
  669. package/dist/lib/auth/user.d.ts +0 -155
  670. package/dist/lib/auth/user.js +0 -251
  671. package/dist/lib/auth/utils/lists/passwords.d.ts +0 -2
  672. package/dist/lib/auth/utils/lists/passwords.js +0 -10006
  673. package/dist/lib/auth/utils/lists/usernames.d.ts +0 -2
  674. package/dist/lib/auth/utils/lists/usernames.js +0 -547
  675. package/dist/lib/auth/utils/scrypt.d.ts +0 -104
  676. package/dist/lib/auth/utils/scrypt.js +0 -55
  677. package/dist/lib/auth/utils/unsafeCheck.d.ts +0 -34
  678. package/dist/lib/auth/utils/unsafeCheck.js +0 -38
  679. package/dist/lib/dashboardGrid.d.ts +0 -119
  680. package/dist/lib/dashboardGrid.js +0 -0
  681. package/dist/lib/effects/convertToVanilla.d.ts +0 -10
  682. package/dist/lib/effects/convertToVanilla.js +0 -5
  683. package/dist/lib/effects/smtp.config.d.ts +0 -212
  684. package/dist/lib/effects/smtp.config.js +0 -123
  685. package/dist/lib/effects/smtp.d.ts +0 -269
  686. package/dist/lib/effects/smtp.js +0 -186
  687. package/dist/lib/endpointResponses.d.ts +0 -2
  688. package/dist/lib/endpointResponses.js +0 -21
  689. package/dist/lib/head.d.ts +0 -25
  690. package/dist/lib/head.js +0 -73
  691. package/dist/lib/i18n/config.d.ts +0 -16
  692. package/dist/lib/i18n/config.js +0 -8
  693. package/dist/lib/i18n/index.d.ts +0 -2471
  694. package/dist/lib/index.d.ts +0 -7
  695. package/dist/lib/index.js +0 -7
  696. package/dist/lib/jsonUtils.d.ts +0 -2
  697. package/dist/lib/jsonUtils.js +0 -14
  698. package/dist/lib/mailer/index.d.ts +0 -267
  699. package/dist/lib/pathGenerators.d.ts +0 -20
  700. package/dist/lib/pathGenerators.js +0 -66
  701. package/dist/lib/plugins/dashboard-pages.d.ts +0 -71
  702. package/dist/lib/removeLeadingTrailingSlashes.d.ts +0 -7
  703. package/dist/lib/removeLeadingTrailingSlashes.js +0 -13
  704. package/dist/lib/renderer/errors.d.ts +0 -5
  705. package/dist/lib/renderer/errors.js +0 -25
  706. package/dist/lib/urlGen.js +0 -26
  707. package/dist/lib/webVitals/types.js +0 -0
  708. package/dist/routes/firstTimeSetupRoutes/components/TabItem.astro +0 -44
  709. package/dist/routes/firstTimeSetupRoutes/components/Tabs.astro +0 -170
  710. package/dist/runtime/AstroComponentProxy.d.ts +0 -31
  711. package/dist/runtime/AstroComponentProxy.js +0 -47
  712. package/dist/runtime/decoder/decode-codepoint.d.ts +0 -18
  713. package/dist/runtime/decoder/decode-codepoint.js +0 -58
  714. package/dist/runtime/decoder/decode-data-html.d.ts +0 -1
  715. package/dist/runtime/decoder/decode-data-html.js +0 -7
  716. package/dist/runtime/decoder/decode-data-xml.d.ts +0 -1
  717. package/dist/runtime/decoder/decode-data-xml.js +0 -7
  718. package/dist/runtime/decoder/index.d.ts +0 -34
  719. package/dist/runtime/decoder/index.js +0 -18
  720. package/dist/runtime/decoder/util.d.ts +0 -208
  721. package/dist/runtime/decoder/util.js +0 -415
  722. package/dist/scriptHandler.d.ts +0 -30
  723. package/dist/scriptHandler.js +0 -25
  724. package/dist/scripts/three.d.ts +0 -1
  725. package/dist/scripts/three.js +0 -278
  726. package/dist/scripts/utils/fitModelToViewport.d.ts +0 -8
  727. package/dist/scripts/utils/fitModelToViewport.js +0 -19
  728. package/dist/sdk/effect/convertToVanilla.d.ts +0 -1
  729. package/dist/sdk/effect/convertToVanilla.js +0 -4
  730. package/dist/sdk/effect/getVersionFromNPM.js +0 -30
  731. package/dist/sdk/tables.d.ts +0 -1405
  732. package/dist/sdk/tables.js +0 -70
  733. package/dist/utils/addIntegrationArray.d.ts +0 -24
  734. package/dist/utils/addIntegrationArray.js +0 -11
  735. package/dist/utils/addIntegrationArrayWithCheck.d.ts +0 -11
  736. package/dist/utils/addIntegrationArrayWithCheck.js +0 -24
  737. package/dist/utils/astroEnvConfig.d.ts +0 -45
  738. package/dist/utils/astroEnvConfig.js +0 -9
  739. package/dist/utils/authEnvCheck.d.ts +0 -38
  740. package/dist/utils/authEnvCheck.js +0 -82
  741. package/dist/utils/changelog.d.ts +0 -1
  742. package/dist/utils/changelog.js +0 -53
  743. package/dist/utils/changelogLoader.d.ts +0 -15
  744. package/dist/utils/changelogLoader.js +0 -104
  745. package/dist/utils/dynamicResult.d.ts +0 -17
  746. package/dist/utils/dynamicResult.js +0 -0
  747. package/dist/utils/getLatestVersion.d.ts +0 -12
  748. package/dist/utils/getLatestVersion.js +0 -36
  749. package/dist/utils/integrationLogger.d.ts +0 -7
  750. package/dist/utils/integrationLogger.js +0 -18
  751. package/dist/utils/integrations.d.ts +0 -4
  752. package/dist/utils/integrations.js +0 -32
  753. package/dist/utils/isDashboardRoute.d.ts +0 -7
  754. package/dist/utils/isDashboardRoute.js +0 -10
  755. package/dist/utils/jsonParse.d.ts +0 -9
  756. package/dist/utils/jsonParse.js +0 -6
  757. package/dist/utils/loginBackgrounds/studiocms-blobs-dark.png +0 -0
  758. package/dist/utils/loginBackgrounds/studiocms-blobs-light.png +0 -0
  759. package/dist/utils/loginBackgrounds/studiocms-blocks-dark.png +0 -0
  760. package/dist/utils/loginBackgrounds/studiocms-blocks-light.png +0 -0
  761. package/dist/utils/loginBackgrounds/studiocms-curves-dark.png +0 -0
  762. package/dist/utils/loginBackgrounds/studiocms-curves-light.png +0 -0
  763. package/dist/utils/makePageTitle.d.ts +0 -3
  764. package/dist/utils/makePageTitle.js +0 -7
  765. package/dist/utils/pageListPackageLabel.d.ts +0 -4
  766. package/dist/utils/pageListPackageLabel.js +0 -12
  767. package/dist/utils/pageTypeFilter.d.ts +0 -2
  768. package/dist/utils/pageTypeFilter.js +0 -16
  769. package/dist/utils/pluginLogger.d.ts +0 -2
  770. package/dist/utils/pluginLogger.js +0 -7
  771. package/dist/utils/readJson.d.ts +0 -1
  772. package/dist/utils/readJson.js +0 -7
  773. package/dist/utils/tryCatch.d.ts +0 -10
  774. package/dist/utils/tryCatch.js +0 -15
  775. package/dist/utils/validImages.js +0 -39
  776. package/src/componentRegistry/PropsParser.ts +0 -270
  777. package/src/componentRegistry/Registry.ts +0 -119
  778. package/src/componentRegistry/convert-hyphens.ts +0 -21
  779. package/src/componentRegistry/errors.ts +0 -58
  780. package/src/componentRegistry/handler.ts +0 -185
  781. package/src/componentRegistry/index.ts +0 -6
  782. package/src/componentRegistry/runtime.ts +0 -105
  783. package/src/componentRegistry/types.ts +0 -63
  784. package/src/components/Generator.astro +0 -5
  785. package/src/components/dashboard/AstroCodeDiffsScript.astro +0 -25
  786. package/src/components/dashboard/Code.astro +0 -23
  787. package/src/components/dashboard/ThemeManager.astro +0 -53
  788. package/src/components/dashboard/component-scripts/makeClientRoutable.ts +0 -7
  789. package/src/components/dashboard/configuration/LightVsDark.astro +0 -67
  790. package/src/db/tables.ts +0 -226
  791. package/src/layouts/auth/AuthLayout.astro +0 -71
  792. package/src/layouts/auth/ThemeManager.astro +0 -53
  793. package/src/lib/auth/encryption.ts +0 -149
  794. package/src/lib/auth/password.ts +0 -212
  795. package/src/lib/auth/session.ts +0 -291
  796. package/src/lib/auth/user.ts +0 -501
  797. package/src/lib/auth/utils/lists/passwords.ts +0 -10004
  798. package/src/lib/auth/utils/lists/usernames.ts +0 -546
  799. package/src/lib/auth/utils/scrypt.ts +0 -142
  800. package/src/lib/auth/utils/unsafeCheck.ts +0 -71
  801. package/src/lib/dashboardGrid.ts +0 -139
  802. package/src/lib/effects/convertToVanilla.ts +0 -12
  803. package/src/lib/effects/smtp.config.ts +0 -123
  804. package/src/lib/effects/smtp.ts +0 -338
  805. package/src/lib/endpointResponses.ts +0 -20
  806. package/src/lib/head.ts +0 -114
  807. package/src/lib/i18n/client.ts +0 -128
  808. package/src/lib/i18n/config.ts +0 -19
  809. package/src/lib/index.ts +0 -7
  810. package/src/lib/jsonUtils.ts +0 -11
  811. package/src/lib/pathGenerators.ts +0 -72
  812. package/src/lib/removeLeadingTrailingSlashes.ts +0 -21
  813. package/src/lib/renderer/errors.ts +0 -29
  814. package/src/lib/urlGen.ts +0 -40
  815. package/src/routes/firstTimeSetupRoutes/components/TabItem.astro +0 -44
  816. package/src/routes/firstTimeSetupRoutes/components/Tabs.astro +0 -170
  817. package/src/runtime/AstroComponentProxy.ts +0 -93
  818. package/src/runtime/decoder/decode-codepoint.ts +0 -76
  819. package/src/runtime/decoder/decode-data-html.ts +0 -6
  820. package/src/runtime/decoder/decode-data-xml.ts +0 -6
  821. package/src/runtime/decoder/index.ts +0 -49
  822. package/src/runtime/decoder/util.ts +0 -587
  823. package/src/scriptHandler.ts +0 -86
  824. package/src/scripts/three.ts +0 -415
  825. package/src/scripts/utils/fitModelToViewport.ts +0 -36
  826. package/src/sdk/effect/convertToVanilla.ts +0 -1
  827. package/src/sdk/tables.ts +0 -129
  828. package/src/styles/dashboard-code.css +0 -56
  829. package/src/utils/addIntegrationArray.ts +0 -35
  830. package/src/utils/addIntegrationArrayWithCheck.ts +0 -41
  831. package/src/utils/astroEnvConfig.ts +0 -12
  832. package/src/utils/authEnvCheck.ts +0 -144
  833. package/src/utils/changelog.ts +0 -67
  834. package/src/utils/changelogLoader.ts +0 -138
  835. package/src/utils/dynamicResult.ts +0 -19
  836. package/src/utils/getLatestVersion.ts +0 -67
  837. package/src/utils/integrationLogger.ts +0 -24
  838. package/src/utils/integrations.ts +0 -32
  839. package/src/utils/isDashboardRoute.ts +0 -19
  840. package/src/utils/jsonParse.ts +0 -11
  841. package/src/utils/loginBackgrounds/studiocms-blobs-dark.png +0 -0
  842. package/src/utils/loginBackgrounds/studiocms-blobs-light.png +0 -0
  843. package/src/utils/loginBackgrounds/studiocms-blocks-dark.png +0 -0
  844. package/src/utils/loginBackgrounds/studiocms-blocks-light.png +0 -0
  845. package/src/utils/loginBackgrounds/studiocms-curves-dark.png +0 -0
  846. package/src/utils/loginBackgrounds/studiocms-curves-light.png +0 -0
  847. package/src/utils/makePageTitle.ts +0 -11
  848. package/src/utils/pageListPackageLabel.ts +0 -19
  849. package/src/utils/pageTypeFilter.ts +0 -13
  850. package/src/utils/pluginLogger.ts +0 -6
  851. package/src/utils/readJson.ts +0 -5
  852. package/src/utils/tryCatch.ts +0 -29
  853. /package/dist/{layouts → components}/auth/ThreeCanvasLoader.astro +0 -0
  854. /package/dist/components/{dashboard → shared}/ThemeManager.astro +0 -0
  855. /package/dist/{styles → fonts}/OnestFont.woff2 +0 -0
  856. /package/dist/{styles → fonts}/SyntaxFont.woff2 +0 -0
  857. /package/dist/{styles → fonts}/onest-font.css +0 -0
  858. /package/dist/{utils → handlers}/astroConfigCheck.d.ts +0 -0
  859. /package/dist/{lib → integrations}/dynamic-sitemap/index.d.ts +0 -0
  860. /package/dist/{lib → integrations}/dynamic-sitemap/sitemap-index.xml.d.ts +0 -0
  861. /package/dist/{lib → integrations}/dynamic-sitemap/sitemap-index.xml.js +0 -0
  862. /package/dist/{lib → integrations}/robots/core.d.ts +0 -0
  863. /package/dist/{lib → integrations}/robots/core.js +0 -0
  864. /package/dist/{lib → integrations}/robots/index.d.ts +0 -0
  865. /package/dist/{lib → integrations}/robots/index.js +0 -0
  866. /package/dist/{lib → integrations}/robots/schema.d.ts +0 -0
  867. /package/dist/{lib → integrations}/robots/schema.js +0 -0
  868. /package/dist/{lib → integrations}/webVitals/checkForWebVitalsPlugin.d.ts +0 -0
  869. /package/dist/{lib → integrations}/webVitals/consts.d.ts +0 -0
  870. /package/dist/{lib → integrations}/webVitals/consts.js +0 -0
  871. /package/dist/{lib → integrations}/webVitals/pages/analytics/header.astro +0 -0
  872. /package/dist/{lib → integrations}/webVitals/schemas.d.ts +0 -0
  873. /package/dist/{lib → integrations}/webVitals/schemas.js +0 -0
  874. /package/dist/{lib → integrations}/webVitals/types.d.ts +0 -0
  875. /package/dist/{componentRegistry → integrations/webVitals}/types.js +0 -0
  876. /package/dist/{lib → integrations}/webVitals/utils/buildDataObject.d.ts +0 -0
  877. /package/dist/{lib → integrations}/webVitals/utils/buildDataObject.js +0 -0
  878. /package/dist/{lib → integrations}/webVitals/utils/buildPageRouteDataObject.d.ts +0 -0
  879. /package/dist/{lib → integrations}/webVitals/utils/buildPageRouteDataObject.js +0 -0
  880. /package/dist/{lib → integrations}/webVitals/utils/buildPerPageDataObject.d.ts +0 -0
  881. /package/dist/{lib → integrations}/webVitals/utils/buildPerPageDataObject.js +0 -0
  882. /package/dist/{lib → integrations}/webVitals/utils/checkDate.d.ts +0 -0
  883. /package/dist/{lib → integrations}/webVitals/utils/checkDate.js +0 -0
  884. /package/dist/{lib → integrations}/webVitals/utils/webVitalsUtils.js +0 -0
  885. /package/dist/{lib → integrations}/webVitals/webVital.d.ts +0 -0
  886. /package/dist/{lib → integrations}/webVitals/webVital.js +0 -0
  887. /package/dist/{lib → integrations}/webVitals/webVitalsRouteSummary.d.ts +0 -0
  888. /package/dist/{lib → integrations}/webVitals/webVitalsRouteSummary.js +0 -0
  889. /package/dist/{lib → integrations}/webVitals/webVitalsSummary.d.ts +0 -0
  890. /package/dist/{lib → integrations}/webVitals/webVitalsSummary.js +0 -0
  891. /package/dist/{utils → virtuals/auth}/getLabelForPermissionLevel.d.ts +0 -0
  892. /package/dist/{utils → virtuals/auth}/getLabelForPermissionLevel.js +0 -0
  893. /package/dist/{lib → virtuals}/auth/types.d.ts +0 -0
  894. /package/dist/{lib → virtuals}/auth/types.js +0 -0
  895. /package/dist/{components/image → virtuals/components}/CustomImage.astro +0 -0
  896. /package/dist/{components → virtuals/components}/FormattedDate.astro +0 -0
  897. /package/dist/{lib → virtuals}/i18n/translations/en.json +0 -0
  898. /package/dist/{lib → virtuals}/i18n/translations/es.json +0 -0
  899. /package/dist/{lib → virtuals}/i18n/translations/fr.json +0 -0
  900. /package/dist/{lib → virtuals}/i18n/translations/hi.json +0 -0
  901. /package/dist/{lib → virtuals}/i18n/translations/zh.json +0 -0
  902. /package/dist/{lib → virtuals/lib}/makeAPIRoute.js +0 -0
  903. /package/dist/{lib → virtuals/lib}/makePublicRoute.d.ts +0 -0
  904. /package/dist/{lib → virtuals/lib}/makePublicRoute.js +0 -0
  905. /package/dist/{lib → virtuals}/mailer/template.d.ts +0 -0
  906. /package/dist/{lib → virtuals}/mailer/template.js +0 -0
  907. /package/dist/{lib → virtuals}/mailer/templates/index.d.ts +0 -0
  908. /package/dist/{lib → virtuals}/mailer/templates/index.js +0 -0
  909. /package/dist/{lib → virtuals}/mailer/templates/notification.d.ts +0 -0
  910. /package/dist/{lib → virtuals}/mailer/templates/notification.js +0 -0
  911. /package/dist/{lib → virtuals}/mailer/templates/password-reset.d.ts +0 -0
  912. /package/dist/{lib → virtuals}/mailer/templates/password-reset.js +0 -0
  913. /package/dist/{lib → virtuals}/mailer/templates/user-invite.d.ts +0 -0
  914. /package/dist/{lib → virtuals}/mailer/templates/user-invite.js +0 -0
  915. /package/dist/{lib → virtuals}/mailer/templates/verify-email.d.ts +0 -0
  916. /package/dist/{lib → virtuals}/mailer/templates/verify-email.js +0 -0
  917. /package/dist/{lib → virtuals}/notifier/client.d.ts +0 -0
  918. /package/dist/{lib → virtuals}/notifier/client.js +0 -0
  919. /package/dist/{lib → virtuals}/plugins/dashboard-pages.js +0 -0
  920. /package/dist/{lib → virtuals}/plugins/frontend-navigation.d.ts +0 -0
  921. /package/dist/{lib → virtuals}/plugins/frontend-navigation.js +0 -0
  922. /package/dist/{lib → virtuals}/plugins/index.d.ts +0 -0
  923. /package/dist/{lib → virtuals}/plugins/index.js +0 -0
  924. /package/dist/{sdk → virtuals/sdk}/consts.d.ts +0 -0
  925. /package/dist/{sdk → virtuals/sdk}/consts.js +0 -0
  926. /package/dist/{sdk → virtuals/sdk}/effect/index.d.ts +0 -0
  927. /package/dist/{sdk → virtuals/sdk}/effect/index.js +0 -0
  928. /package/dist/{sdk → virtuals/sdk}/effect/lib/jwt-generator.d.ts +0 -0
  929. /package/dist/{sdk → virtuals/sdk}/effect/lib/jwt-generator.js +0 -0
  930. /package/dist/{sdk → virtuals/sdk}/types/index.js +0 -0
  931. /package/dist/{sdk → virtuals/sdk}/types/tableDefs.js +0 -0
  932. /package/dist/{sdk → virtuals/sdk}/types/tsAlias.js +0 -0
  933. /package/src/{layouts → components}/auth/ThreeCanvasLoader.astro +0 -0
  934. /package/src/{routes/firstTimeSetupRoutes → components/first-time-setup}/snippets/opt1-astro.config.diff +0 -0
  935. /package/src/{routes/firstTimeSetupRoutes → components/first-time-setup}/snippets/opt2-astro.config.diff +0 -0
  936. /package/src/{routes/firstTimeSetupRoutes → components/first-time-setup}/snippets/opt2-studiocms.config.diff +0 -0
  937. /package/{dist/layouts/auth → src/components/shared}/ThemeManager.astro +0 -0
  938. /package/src/{styles → fonts}/OnestFont.woff2 +0 -0
  939. /package/src/{styles → fonts}/SyntaxFont.woff2 +0 -0
  940. /package/src/{styles → fonts}/onest-font.css +0 -0
  941. /package/src/{lib → integrations}/dynamic-sitemap/sitemap-index.xml.ts +0 -0
  942. /package/src/{lib → integrations}/robots/core.ts +0 -0
  943. /package/src/{lib → integrations}/robots/index.ts +0 -0
  944. /package/src/{lib → integrations}/robots/schema.ts +0 -0
  945. /package/src/{lib → integrations}/webVitals/consts.ts +0 -0
  946. /package/src/{lib → integrations}/webVitals/pages/analytics/header.astro +0 -0
  947. /package/src/{lib → integrations}/webVitals/schemas.ts +0 -0
  948. /package/src/{lib → integrations}/webVitals/types.ts +0 -0
  949. /package/src/{lib → integrations}/webVitals/utils/buildDataObject.ts +0 -0
  950. /package/src/{lib → integrations}/webVitals/utils/buildPageRouteDataObject.ts +0 -0
  951. /package/src/{lib → integrations}/webVitals/utils/buildPerPageDataObject.ts +0 -0
  952. /package/src/{lib → integrations}/webVitals/utils/checkDate.ts +0 -0
  953. /package/src/{lib → integrations}/webVitals/utils/webVitalsUtils.ts +0 -0
  954. /package/src/{lib → integrations}/webVitals/webVital.ts +0 -0
  955. /package/src/{lib → integrations}/webVitals/webVitalsRouteSummary.ts +0 -0
  956. /package/src/{lib → integrations}/webVitals/webVitalsSummary.ts +0 -0
  957. /package/src/{utils → virtuals/auth}/getLabelForPermissionLevel.ts +0 -0
  958. /package/src/{lib → virtuals}/auth/types.ts +0 -0
  959. /package/src/{components/image → virtuals/components}/CustomImage.astro +0 -0
  960. /package/src/{components → virtuals/components}/FormattedDate.astro +0 -0
  961. /package/src/{lib → virtuals}/i18n/translations/en.json +0 -0
  962. /package/src/{lib → virtuals}/i18n/translations/es.json +0 -0
  963. /package/src/{lib → virtuals}/i18n/translations/fr.json +0 -0
  964. /package/src/{lib → virtuals}/i18n/translations/hi.json +0 -0
  965. /package/src/{lib → virtuals}/i18n/translations/zh.json +0 -0
  966. /package/src/{lib → virtuals/lib}/makePublicRoute.ts +0 -0
  967. /package/src/{lib → virtuals}/mailer/template.ts +0 -0
  968. /package/src/{lib → virtuals}/mailer/templates/index.ts +0 -0
  969. /package/src/{lib → virtuals}/mailer/templates/notification.ts +0 -0
  970. /package/src/{lib → virtuals}/mailer/templates/password-reset.ts +0 -0
  971. /package/src/{lib → virtuals}/mailer/templates/user-invite.ts +0 -0
  972. /package/src/{lib → virtuals}/mailer/templates/verify-email.ts +0 -0
  973. /package/src/{lib → virtuals}/notifier/client.ts +0 -0
  974. /package/src/{lib → virtuals}/plugins/dashboard-pages.ts +0 -0
  975. /package/src/{lib → virtuals}/plugins/frontend-navigation.ts +0 -0
  976. /package/src/{lib → virtuals}/plugins/index.ts +0 -0
  977. /package/src/{sdk → virtuals/sdk}/consts.ts +0 -0
  978. /package/src/{sdk → virtuals/sdk}/effect/index.ts +0 -0
  979. /package/src/{sdk → virtuals/sdk}/effect/lib/jwt-generator.ts +0 -0
@@ -1,83 +0,0 @@
1
- import { CMS_ENCRYPTION_KEY } from "astro:env/server";
2
- import { createCipheriv, createDecipheriv } from "node:crypto";
3
- import { DynamicBuffer } from "@oslojs/binary";
4
- import { decodeBase64 } from "@oslojs/encoding";
5
- import { Data, Effect } from "effect";
6
- import { genLogger, pipeLogger } from "../effects/index.js";
7
- class EncryptionError extends Data.TaggedError("EncryptionError") {
8
- }
9
- class Encryption extends Effect.Service()(
10
- "studiocms/lib/auth/encryption/Encryption",
11
- {
12
- effect: genLogger("studiocms/lib/auth/encryption/Encryption.effect")(function* () {
13
- const getKey = pipeLogger("studiocms/lib/auth/encryption/Encryption.getKey")(
14
- Effect.try({
15
- try: () => decodeBase64(CMS_ENCRYPTION_KEY),
16
- catch: (cause) => new EncryptionError({
17
- message: `An Error occurred while getting the encryption key: ${cause}`
18
- })
19
- })
20
- );
21
- const _key = yield* getKey;
22
- const _algorithm = "aes-128-gcm";
23
- const encrypt = (data) => pipeLogger("studiocms/lib/auth/encryption/Encryption.encrypt")(
24
- Effect.try({
25
- try: () => {
26
- const iv = new Uint8Array(16);
27
- crypto.getRandomValues(iv);
28
- const cipher = createCipheriv(_algorithm, _key, iv);
29
- const encrypted = new DynamicBuffer(0);
30
- encrypted.write(iv);
31
- encrypted.write(cipher.update(data));
32
- encrypted.write(cipher.final());
33
- encrypted.write(cipher.getAuthTag());
34
- return encrypted.bytes();
35
- },
36
- catch: (cause) => new EncryptionError({ message: `An error occurred when encrypting data: ${cause}` })
37
- })
38
- );
39
- const encryptToString = (data) => genLogger("studiocms/lib/auth/encryption/Encryption.encryptToString")(function* () {
40
- const encodedData = yield* Effect.try({
41
- try: () => new TextEncoder().encode(data),
42
- catch: (cause) => new EncryptionError({ message: `An error occurred when encrypting data: ${cause}` })
43
- });
44
- return yield* encrypt(encodedData);
45
- });
46
- const decrypt = (data) => pipeLogger("studiocms/lib/auth/encryption/Encryption.decrypt")(
47
- Effect.try({
48
- try: () => {
49
- if (data.byteLength < 33) {
50
- throw new Error("Invalid data");
51
- }
52
- const decipher = createDecipheriv(_algorithm, _key, data.slice(0, 16));
53
- decipher.setAuthTag(data.slice(data.byteLength - 16));
54
- const decrypted = new DynamicBuffer(0);
55
- decrypted.write(decipher.update(data.slice(16, data.byteLength - 16)));
56
- decrypted.write(decipher.final());
57
- return decrypted.bytes();
58
- },
59
- catch: (cause) => new EncryptionError({ message: `An error occurred when decrypting data: ${cause}` })
60
- })
61
- );
62
- const decryptToString = (data) => genLogger("studiocms/lib/auth/encryption/Encryption.decryptToString")(function* () {
63
- const decrypted = yield* decrypt(data);
64
- return yield* Effect.try({
65
- try: () => new TextDecoder().decode(decrypted),
66
- catch: (cause) => new EncryptionError({ message: `An error occurred when decrypting data: ${cause}` })
67
- });
68
- });
69
- return {
70
- encrypt,
71
- encryptToString,
72
- decrypt,
73
- decryptToString
74
- };
75
- })
76
- }
77
- ) {
78
- static Provide = Effect.provide(this.Default);
79
- }
80
- export {
81
- Encryption,
82
- EncryptionError
83
- };
@@ -1,12 +0,0 @@
1
- import { Encryption } from "./encryption.js";
2
- import { Password } from "./password.js";
3
- import { Session } from "./session.js";
4
- import { User } from "./user.js";
5
- import { VerifyEmail } from "./verify-email.js";
6
- export {
7
- Encryption,
8
- Password,
9
- Session,
10
- User,
11
- VerifyEmail
12
- };
@@ -1,45 +0,0 @@
1
- import { HttpClient } from '@effect/platform';
2
- import { Effect } from 'effect';
3
- import { Scrypt } from './utils/scrypt.js';
4
- import { CheckIfUnsafe, type CheckIfUnsafeError } from './utils/unsafeCheck.js';
5
- declare const PasswordError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
6
- readonly _tag: "PasswordError";
7
- } & Readonly<A>;
8
- export declare class PasswordError extends PasswordError_base<{
9
- message: string;
10
- }> {
11
- }
12
- declare const Password_base: Effect.Service.Class<Password, "studiocms/lib/auth/password/Password", {
13
- readonly effect: Effect.Effect<{
14
- hashPassword: (password: string, _salt?: string) => Effect.Effect<string, import("./utils/scrypt.js").ScryptError, never>;
15
- verifyPasswordHash: (hash: string, password: string) => Effect.Effect<boolean, import("./utils/scrypt.js").ScryptError | PasswordError, never>;
16
- verifyPasswordStrength: (password: string) => Effect.Effect<string | true, import("@effect/platform/HttpClientError").ResponseError | CheckIfUnsafeError | PasswordError, never>;
17
- }, never, HttpClient.HttpClient | Scrypt | CheckIfUnsafe>;
18
- readonly dependencies: readonly [import("effect/Layer").Layer<Scrypt, never, never>, import("effect/Layer").Layer<CheckIfUnsafe, never, never>, import("effect/Layer").Layer<HttpClient.HttpClient, never, never>];
19
- }>;
20
- /**
21
- * The `Password` class provides methods for hashing passwords, verifying password hashes,
22
- * and checking the strength of passwords. It includes functionality for ensuring passwords
23
- * meet security standards, such as length requirements, avoiding unsafe passwords, and
24
- * checking against the pwned password database.
25
- *
26
- * ### Methods:
27
- * - `hashPassword`: Hashes a plain text password using a secure algorithm.
28
- * - `verifyPasswordHash`: Verifies if a plain text password matches a hashed password.
29
- * - `verifyPasswordStrength`: Checks if a password meets strength requirements, including
30
- * length, safety, and absence from the pwned password database.
31
- *
32
- * ### Dependencies:
33
- * - `Scrypt`: Used for password hashing.
34
- * - `CheckIfUnsafe`: Used to check if a password is a commonly known unsafe password.
35
- * - `FetchHttpClient`: Used for making HTTP requests to external services, such as the
36
- * pwned password database API.
37
- *
38
- * ### Notes:
39
- * - The `constantTimeEqual` function ensures secure string comparison to prevent timing
40
- * attacks.
41
- */
42
- export declare class Password extends Password_base {
43
- static Provide: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Password>>;
44
- }
45
- export {};
@@ -1,113 +0,0 @@
1
- import crypto from "node:crypto";
2
- import { FetchHttpClient, HttpClient } from "@effect/platform";
3
- import { sha1 } from "@oslojs/crypto/sha1";
4
- import { encodeHexLowerCase } from "@oslojs/encoding";
5
- import { Data, Effect } from "effect";
6
- import { genLogger, pipeLogger } from "../effects/index.js";
7
- import { Scrypt } from "./utils/scrypt.js";
8
- import { CheckIfUnsafe } from "./utils/unsafeCheck.js";
9
- class PasswordError extends Data.TaggedError("PasswordError") {
10
- }
11
- class Password extends Effect.Service()("studiocms/lib/auth/password/Password", {
12
- effect: genLogger("studiocms/lib/auth/password/Password.effect")(function* () {
13
- const scrypt = yield* Scrypt;
14
- const check = yield* CheckIfUnsafe;
15
- const client = yield* HttpClient.HttpClient;
16
- const constantTimeEqual = (a, b) => {
17
- if (a.length !== b.length) return false;
18
- let result = 0;
19
- for (let i = 0; i < a.length; i++) {
20
- result |= a.charCodeAt(i) ^ b.charCodeAt(i);
21
- }
22
- return result === 0;
23
- };
24
- const hashPassword = (password, _salt) => genLogger("studiocms/lib/auth/password/Password.hashPassword")(function* () {
25
- const salt = _salt || crypto.randomBytes(16).toString("hex");
26
- const hashed = yield* scrypt.run(password + salt);
27
- return `gen1.0:${salt}:${hashed.toString("hex")}`;
28
- });
29
- const verifyPasswordHash = (hash, password) => genLogger("studiocms/lib/auth/password/Password.verifyPasswordHash")(function* () {
30
- if (!hash.startsWith("gen1.0:")) {
31
- yield* Effect.fail(
32
- new PasswordError({
33
- message: "Legacy password hashes are not supported. Please reset any legacy passwords."
34
- })
35
- );
36
- }
37
- const [_prefix, salt] = hash.split(":", 3);
38
- const newHash = yield* hashPassword(password, salt);
39
- return constantTimeEqual(hash, newHash);
40
- });
41
- const verifyPasswordLength = (pass) => pipeLogger("studiocms/lib/auth/password/Password.verifyPasswordLength")(
42
- Effect.try({
43
- try: () => {
44
- if (pass.length < 6 || pass.length > 255) {
45
- return "Password must be between 6 and 255 characters long.";
46
- }
47
- return void 0;
48
- },
49
- catch: (cause) => new PasswordError({
50
- message: `An unknown Error occurred when checking the password length: ${cause}`
51
- })
52
- })
53
- );
54
- const verifySafe = (pass) => genLogger("studiocms/lib/auth/password/Password.verifySafe")(function* () {
55
- const isUnsafe = yield* check.password(pass);
56
- if (isUnsafe) {
57
- return "Password must not be a commonly known unsafe password (admin, root, etc.)";
58
- }
59
- return void 0;
60
- });
61
- const checkPwnedDB = (pass) => genLogger("studiocms/lib/auth/password/Password.checkPwnedDB")(function* () {
62
- const encodedData = new TextEncoder().encode(pass);
63
- const sha1Hash = sha1(encodedData);
64
- const hashHex = encodeHexLowerCase(sha1Hash);
65
- const hashPrefix = hashHex.slice(0, 5);
66
- const response = yield* client.get(`https://api.pwnedpasswords.com/range/${hashPrefix}`).pipe(
67
- Effect.catchTags({
68
- RequestError: () => Effect.succeed({ text: Effect.succeed(""), status: 500 }),
69
- ResponseError: () => Effect.succeed({ text: Effect.succeed(""), status: 500 })
70
- })
71
- );
72
- if (response.status >= 400) {
73
- return;
74
- }
75
- const data = yield* response.text;
76
- const lines = data.split("\n");
77
- for (const line of lines) {
78
- const hashSuffix = line.slice(0, 35).toLowerCase();
79
- if (hashHex === hashPrefix + hashSuffix) {
80
- return 'Password must not be in the <a href="https://haveibeenpwned.com/Passwords" target="_blank">pwned password database</a>.';
81
- }
82
- }
83
- return;
84
- });
85
- const verifyPasswordStrength = (password) => genLogger("studiocms/lib/auth/password/Password.verifyPasswordStrength")(function* () {
86
- const lengthCheck = yield* verifyPasswordLength(password);
87
- if (lengthCheck) {
88
- return lengthCheck;
89
- }
90
- const unsafeCheck = yield* verifySafe(password);
91
- if (unsafeCheck) {
92
- return unsafeCheck;
93
- }
94
- const pwnedCheck = yield* checkPwnedDB(password);
95
- if (pwnedCheck) {
96
- return pwnedCheck;
97
- }
98
- return true;
99
- });
100
- return {
101
- hashPassword,
102
- verifyPasswordHash,
103
- verifyPasswordStrength
104
- };
105
- }),
106
- dependencies: [Scrypt.Default, CheckIfUnsafe.Default, FetchHttpClient.layer]
107
- }) {
108
- static Provide = Effect.provide(this.Default);
109
- }
110
- export {
111
- Password,
112
- PasswordError
113
- };
@@ -1,77 +0,0 @@
1
- import type { APIContext, AstroGlobal } from 'astro';
2
- import { Effect } from 'effect';
3
- import type { SessionValidationResult } from './types.js';
4
- declare const SessionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
5
- readonly _tag: "SessionError";
6
- } & Readonly<A>;
7
- export declare class SessionError extends SessionError_base<{
8
- message: string;
9
- }> {
10
- }
11
- /**
12
- * The session expiration time in milliseconds.
13
- * This value represents 14 days.
14
- */
15
- export declare const sessionExpTime: number;
16
- /**
17
- * The name of the cookie used to store the authentication session.
18
- *
19
- * @constant {string}
20
- */
21
- export declare const sessionCookieName = "auth_session";
22
- declare const Session_base: Effect.Service.Class<Session, "studiocms/lib/auth/session/Session", {
23
- readonly effect: Effect.Effect<{
24
- generateSessionToken: () => Effect.Effect<string, SessionError, never>;
25
- makeExpirationDate: () => Effect.Effect<Date, SessionError, never>;
26
- createSession: (token: string, userId: string) => Effect.Effect<{
27
- id: string;
28
- userId: string;
29
- expiresAt: Date;
30
- }, import("../../sdk/errors.js").SDKCoreError | SessionError, never>;
31
- validateSessionToken: (token: string) => Effect.Effect<SessionValidationResult, import("../../sdk/errors.js").SDKCoreError | SessionError, never>;
32
- invalidateSession: (sessionId: string) => Effect.Effect<{
33
- status: string;
34
- message: string;
35
- }, import("../../sdk/errors.js").SDKCoreError, never>;
36
- setSessionTokenCookie: (context: APIContext, token: string, expiresAt: Date) => Effect.Effect<void, SessionError, never>;
37
- deleteSessionTokenCookie: (context: APIContext | AstroGlobal) => Effect.Effect<void, SessionError, never>;
38
- setOAuthSessionTokenCookie: (context: APIContext, key: string, value: string) => Effect.Effect<void, SessionError, never>;
39
- createUserSession: (userId: string, context: APIContext) => Effect.Effect<void, import("../../sdk/errors.js").SDKCoreError | SessionError, never>;
40
- }, never, never>;
41
- readonly dependencies: readonly [];
42
- }>;
43
- /**
44
- * The `Session` class provides a set of methods for managing user sessions, including
45
- * creating, validating, and invalidating sessions, as well as handling session cookies.
46
- *
47
- * This class is built using the `Effect.Service` pattern and relies on the `SDKCore`
48
- * dependency for database interactions. It includes utility functions for generating
49
- * session tokens, managing expiration dates, and interacting with session-related
50
- * cookies in an API context.
51
- *
52
- * ### Methods:
53
- * - `generateSessionToken`: Generates a random session token using base32 encoding.
54
- * - `makeExpirationDate`: Creates a new expiration date for a session.
55
- * - `createSession`: Creates a new session for a user and stores it in the database.
56
- * - `validateSessionToken`: Validates a session token, extending its expiration if valid
57
- * or deleting it if expired.
58
- * - `invalidateSession`: Deletes a session from the database by its ID.
59
- * - `setSessionTokenCookie`: Sets a session token cookie in the provided API context.
60
- * - `deleteSessionTokenCookie`: Deletes the session token cookie by setting it with an
61
- * empty value and a max age of 0.
62
- * - `setOAuthSessionTokenCookie`: Sets an OAuth session token cookie in the given API context.
63
- * - `createUserSession`: Creates a new user session, including generating a token, storing
64
- * it in the database, and setting a cookie.
65
- *
66
- *
67
- * ### Usage:
68
- * This class is designed to be used in the context of a web application where user
69
- * authentication and session management are required. It provides a robust and
70
- * extensible framework for handling session-related operations.
71
- */
72
- export declare class Session extends Session_base {
73
- static Provide: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Session>>;
74
- static sessionCookieName: string;
75
- static sessionExpTime: number;
76
- }
77
- export {};
@@ -1,147 +0,0 @@
1
- import { SDKCoreJs as sdk } from "studiocms:sdk";
2
- import { sha256 } from "@oslojs/crypto/sha2";
3
- import { encodeBase32LowerCaseNoPadding, encodeHexLowerCase } from "@oslojs/encoding";
4
- import { Data, Effect, pipe } from "effect";
5
- import { genLogger, pipeLogger } from "../effects/logger.js";
6
- class SessionError extends Data.TaggedError("SessionError") {
7
- }
8
- const sessionExpTime = 1e3 * 60 * 60 * 24 * 14;
9
- const expTimeHalf = sessionExpTime / 2;
10
- const sessionCookieName = "auth_session";
11
- class Session extends Effect.Service()("studiocms/lib/auth/session/Session", {
12
- effect: genLogger("studiocms/lib/auth/session/Session.effect")(function* () {
13
- const generateSessionToken = () => pipeLogger("studiocms/lib/auth/session/Session.generateSessionToken")(
14
- Effect.try({
15
- try: () => {
16
- const data = new Uint8Array(20);
17
- const random = crypto.getRandomValues(data);
18
- const returnable = encodeBase32LowerCaseNoPadding(random);
19
- return returnable;
20
- },
21
- catch: (cause) => new SessionError({
22
- message: `There was an error generating a session token: ${cause}`
23
- })
24
- })
25
- );
26
- const makeExpirationDate = () => pipeLogger("studiocms/lib/auth/session/Session.makeExpirationDate")(
27
- Effect.try({
28
- try: () => new Date(Date.now() + sessionExpTime),
29
- catch: (cause) => new SessionError({
30
- message: `There was an error generating a session token: ${cause}`
31
- })
32
- })
33
- );
34
- const makeSessionId = (token) => pipeLogger("studiocms/lib/auth/session/Session.makeSessionId")(
35
- Effect.try({
36
- try: () => pipe(new TextEncoder().encode(token), sha256, encodeHexLowerCase),
37
- catch: (cause) => new SessionError({
38
- message: `There was an error generating a session id: ${cause}`
39
- })
40
- })
41
- );
42
- const createSession = (token, userId) => genLogger("studiocms/lib/auth/session/Session.createSession")(function* () {
43
- const sessionId = yield* makeSessionId(token);
44
- const session = {
45
- id: sessionId,
46
- userId,
47
- expiresAt: new Date(Date.now() + sessionExpTime)
48
- };
49
- return yield* sdk.AUTH.session.create(session);
50
- });
51
- const validateSessionToken = (token) => genLogger("studiocms/lib/auth/session/Session.validateSessionToken")(function* () {
52
- const sessionId = yield* makeSessionId(token);
53
- const nullSession = { session: null, user: null };
54
- const result = yield* sdk.AUTH.session.sessionWithUser(sessionId);
55
- if (result.length < 1) {
56
- return nullSession;
57
- }
58
- const userSession = result[0];
59
- if (!userSession) {
60
- return nullSession;
61
- }
62
- const { user, session } = userSession;
63
- if (Date.now() >= session.expiresAt.getTime()) {
64
- yield* sdk.AUTH.session.delete(session.id);
65
- return nullSession;
66
- }
67
- if (Date.now() >= session.expiresAt.getTime() - expTimeHalf) {
68
- session.expiresAt = new Date(Date.now() + sessionExpTime);
69
- yield* sdk.AUTH.session.update(session.id, session.expiresAt);
70
- }
71
- return { session, user };
72
- });
73
- const invalidateSession = (sessionId) => pipeLogger("studiocms/lib/auth/session/Session.invalidateSession")(
74
- sdk.AUTH.session.delete(sessionId)
75
- );
76
- const setSessionTokenCookie = (context, token, expiresAt) => pipeLogger("studiocms/lib/auth/session/Session.setSessionTokenCookie")(
77
- Effect.try({
78
- try: () => context.cookies.set(sessionCookieName, token, {
79
- httpOnly: true,
80
- sameSite: "lax",
81
- secure: import.meta.env.PROD,
82
- expires: expiresAt,
83
- path: "/"
84
- }),
85
- catch: (cause) => new SessionError({
86
- message: `There was an error setting the session token cookie: ${cause}`
87
- })
88
- })
89
- );
90
- const deleteSessionTokenCookie = (context) => pipeLogger("studiocms/lib/auth/session/Session.deleteSessionTokenCookie")(
91
- Effect.try({
92
- try: () => context.cookies.set(sessionCookieName, "", {
93
- httpOnly: true,
94
- sameSite: "lax",
95
- secure: import.meta.env.PROD,
96
- maxAge: 0,
97
- path: "/"
98
- }),
99
- catch: (cause) => new SessionError({
100
- message: `There was an error deleting the session token cookie: ${cause}`
101
- })
102
- })
103
- );
104
- const setOAuthSessionTokenCookie = (context, key, value) => pipeLogger("studiocms/lib/auth/session/Session.setOAuthSessionTokenCookie")(
105
- Effect.try({
106
- try: () => context.cookies.set(key, value, {
107
- path: "/",
108
- secure: import.meta.env.PROD,
109
- httpOnly: true,
110
- maxAge: 60 * 10,
111
- sameSite: "lax"
112
- }),
113
- catch: (cause) => new SessionError({
114
- message: `There was an error setting the session token cookie: ${cause}`
115
- })
116
- })
117
- );
118
- const createUserSession = (userId, context) => genLogger("studiocms/lib/auth/session/Session.createUserSession")(function* () {
119
- const sessionToken = yield* generateSessionToken();
120
- const expiration = yield* makeExpirationDate();
121
- yield* createSession(sessionToken, userId);
122
- yield* setSessionTokenCookie(context, sessionToken, expiration);
123
- });
124
- return {
125
- generateSessionToken,
126
- makeExpirationDate,
127
- createSession,
128
- validateSessionToken,
129
- invalidateSession,
130
- setSessionTokenCookie,
131
- deleteSessionTokenCookie,
132
- setOAuthSessionTokenCookie,
133
- createUserSession
134
- };
135
- }),
136
- dependencies: []
137
- }) {
138
- static Provide = Effect.provide(this.Default);
139
- static sessionCookieName = sessionCookieName;
140
- static sessionExpTime = sessionExpTime;
141
- }
142
- export {
143
- Session,
144
- SessionError,
145
- sessionCookieName,
146
- sessionExpTime
147
- };
@@ -1,155 +0,0 @@
1
- import type { CombinedUserData, tsUsersInsert } from 'studiocms:sdk/types';
2
- import type { APIContext, AstroGlobal } from 'astro';
3
- import { Effect } from 'effect';
4
- import { Password } from './password.js';
5
- import { Session } from './session.js';
6
- import type { UserSessionData } from './types.js';
7
- import { CheckIfUnsafe, type CheckIfUnsafeError } from './utils/unsafeCheck.js';
8
- declare const UserError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
9
- readonly _tag: "UserError";
10
- } & Readonly<A>;
11
- export declare class UserError extends UserError_base<{
12
- message: string;
13
- }> {
14
- }
15
- /**
16
- * The name of the cookie used for linking a new OAuth account.
17
- * This constant is used to identify the specific cookie that handles
18
- * the linking process for new OAuth accounts.
19
- */
20
- export declare const LinkNewOAuthCookieName = "link-new-o-auth";
21
- /**
22
- * An enumeration representing different user permission levels.
23
- *
24
- * The permission levels are defined as follows:
25
- * - visitor: 1
26
- * - editor: 2
27
- * - admin: 3
28
- * - owner: 4
29
- * - unknown: 0
30
- */
31
- export declare enum UserPermissionLevel {
32
- visitor = 1,
33
- editor = 2,
34
- admin = 3,
35
- owner = 4,
36
- unknown = 0
37
- }
38
- /**
39
- * An array of available permission ranks for users.
40
- *
41
- * The permission ranks are defined as a constant tuple and include the following values:
42
- * - 'owner': The highest level of permission, typically the creator or primary administrator.
43
- * - 'admin': A high level of permission, usually for users who manage the system.
44
- * - 'editor': A mid-level permission, for users who can modify content.
45
- * - 'visitor': A low-level permission, for users who can view content but not modify it.
46
- * - 'unknown': A default or fallback permission rank for users with undefined roles.
47
- */
48
- declare const availablePermissionRanks: readonly ["owner", "admin", "editor", "visitor", "unknown"];
49
- /**
50
- * Represents the available permission ranks for a user.
51
- *
52
- * This type is derived from the `availablePermissionRanks` array,
53
- * and it includes all the possible values that a user can have as a permission rank.
54
- */
55
- type AvailablePermissionRanks = (typeof availablePermissionRanks)[number];
56
- /**
57
- * A mapping of permission ranks to their respective allowed roles.
58
- *
59
- * This map defines the hierarchy of permissions, where each rank includes
60
- * all the roles of the ranks below it. For example, an 'admin' has the roles
61
- * of both 'owner' and 'admin', while an 'editor' has the roles of 'owner',
62
- * 'admin', and 'editor'.
63
- *
64
- * @property {string[]} owner - The 'owner' rank, which includes only the 'owner' role.
65
- * @property {string[]} admin - The 'admin' rank, which includes 'owner' and 'admin' roles.
66
- * @property {string[]} editor - The 'editor' rank, which includes 'owner', 'admin', and 'editor' roles.
67
- * @property {string[]} visitor - The 'visitor' rank, which includes 'owner', 'admin', 'editor', and 'visitor' roles.
68
- * @property {string[]} unknown - The 'unknown' rank, which includes all roles: 'owner', 'admin', 'editor', 'visitor', and 'unknown'.
69
- */
70
- export declare const permissionRanksMap: Record<AvailablePermissionRanks, string[]>;
71
- declare const User_base: Effect.Service.Class<User, "studiocms/lib/auth/user/User", {
72
- readonly effect: Effect.Effect<{
73
- verifyUsernameInput: (username: string) => Effect.Effect<string | true, UserError | CheckIfUnsafeError, never>;
74
- createUserAvatar: (email: string) => Effect.Effect<string, UserError, never>;
75
- createLocalUser: (name: string, username: string, email: string, password: string) => Effect.Effect<{
76
- name: string;
77
- password: string | null;
78
- email: string | null;
79
- url: string | null;
80
- username: string;
81
- id: string;
82
- avatar: string | null;
83
- updatedAt: Date | null;
84
- createdAt: Date | null;
85
- emailVerified: boolean;
86
- notifications: string | null;
87
- }, import("../effects/smtp.js").SMTPError | import("../../sdk/errors.js").SDKCoreError | import("./utils/scrypt.js").ScryptError | UserError, never>;
88
- createOAuthUser: (userFields: tsUsersInsert, oAuthFields: {
89
- provider: string;
90
- providerUserId: string;
91
- }) => Effect.Effect<{
92
- name: string;
93
- password: string | null;
94
- email: string | null;
95
- url: string | null;
96
- username: string;
97
- id: string;
98
- avatar: string | null;
99
- updatedAt: Date | null;
100
- createdAt: Date | null;
101
- emailVerified: boolean;
102
- notifications: string | null;
103
- }, import("../effects/smtp.js").SMTPError | import("../../sdk/errors.js").SDKCoreError, never>;
104
- updateUserPassword: (userId: string, password: string) => Effect.Effect<void, import("../../sdk/errors.js").SDKCoreError | import("./utils/scrypt.js").ScryptError, never>;
105
- getUserPasswordHash: (userId: string) => Effect.Effect<string, Error | import("../../sdk/errors.js").SDKCoreError, never>;
106
- getUserFromEmail: (email: string) => Effect.Effect<import("../../sdk/types/index.js").CombinedUserData | null, import("../../sdk/errors.js").SDKCoreError, never>;
107
- getUserData: (context: AstroGlobal | APIContext) => Effect.Effect<UserSessionData, import("../../sdk/errors.js").SDKCoreError | import("./session.js").SessionError | UserError, never>;
108
- getUserPermissionLevel: (userData: UserSessionData | CombinedUserData) => Effect.Effect<UserPermissionLevel, UserError, never>;
109
- isUserAllowed: (userData: UserSessionData | CombinedUserData, requiredPerms: AvailablePermissionRanks) => Effect.Effect<boolean, UserError, never>;
110
- }, never, import("../notifier/index.js").Notifications | CheckIfUnsafe | Password | Session>;
111
- readonly dependencies: readonly [import("effect/Layer").Layer<CheckIfUnsafe, never, never>, import("effect/Layer").Layer<Session, never, never>, import("effect/Layer").Layer<Password, never, never>, import("effect/Layer").Layer<import("../notifier/index.js").Notifications, import("../effects/smtp.js").SMTPError | import("effect/Cause").UnknownException, never>];
112
- }>;
113
- /**
114
- * The `User` class provides a set of methods and utilities for managing user authentication,
115
- * user data, and permissions within the StudioCMS application. It includes functionality for:
116
- *
117
- * - Verifying usernames based on length, character restrictions, and safety checks.
118
- * - Creating user avatars using the Libravatar service.
119
- * - Creating new users with local credentials or OAuth credentials.
120
- * - Updating user passwords and retrieving password hashes.
121
- * - Fetching user data based on email or session context.
122
- * - Determining user permission levels and checking access permissions.
123
- *
124
- * ### Dependencies
125
- * This class relies on the following services:
126
- * - `CheckIfUnsafe`: Utility for checking unsafe usernames.
127
- * - `Session`: Session management service.
128
- * - `Password`: Password hashing and validation service.
129
- * - `Notifications`: Notification service for sending admin alerts.
130
- *
131
- * ### Methods
132
- * - `verifyUsernameInput(username: string)`: Verifies if a username meets the required criteria.
133
- * - `createUserAvatar(email: string)`: Generates a user avatar URL based on the provided email.
134
- * - `createLocalUser(name: string, username: string, email: string, password: string)`: Creates a new local user.
135
- * - `createOAuthUser(userFields: tsUsersInsert, oAuthFields: { provider: string; providerUserId: string })`: Creates a new user with OAuth credentials.
136
- * - `updateUserPassword(userId: string, password: string)`: Updates the password for a user.
137
- * - `getUserPasswordHash(userId: string)`: Retrieves the password hash for a given user.
138
- * - `getUserFromEmail(email: string)`: Retrieves a user based on their email address.
139
- * - `getUserData(context: AstroGlobal | APIContext)`: Retrieves user session data based on the provided context.
140
- * - `getUserPermissionLevel(userData: UserSessionData | CombinedUserData)`: Retrieves the user's permission level.
141
- * - `isUserAllowed(userData: UserSessionData | CombinedUserData, requiredPerms: AvailablePermissionRanks)`: Checks if a user has the required permissions.
142
- *
143
- * ### Static Properties
144
- * - `Provide`: Provides the default instance of the `User` service.
145
- * - `LinkNewOAuthCookieName`: The cookie name used for linking new OAuth accounts.
146
- * - `UserPermissionLevel`: Enum representing different user permission levels.
147
- * - `permissionRanksMap`: Mapping of permission ranks to their corresponding levels.
148
- */
149
- export declare class User extends User_base {
150
- static Provide: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, import("../effects/smtp.js").SMTPError | import("effect/Cause").UnknownException | E, Exclude<R, User>>;
151
- static LinkNewOAuthCookieName: string;
152
- static UserPermissionLevel: typeof UserPermissionLevel;
153
- static permissionRanksMap: Record<"unknown" | "owner" | "admin" | "editor" | "visitor", string[]>;
154
- }
155
- export {};