studiocms 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/dist/cli/add/index.d.ts +2 -2
  3. package/dist/cli/add/index.js +4 -3
  4. package/dist/cli/add/npm-utils.d.ts +6 -6
  5. package/dist/cli/add/tryToInstallPlugins.d.ts +1 -1
  6. package/dist/cli/add/tryToInstallPlugins.js +6 -5
  7. package/dist/cli/add/updateStudioCMSConfig.d.ts +1 -1
  8. package/dist/cli/add/updateStudioCMSConfig.js +3 -4
  9. package/dist/cli/add/validatePlugins.d.ts +1 -2
  10. package/dist/cli/add/validatePlugins.js +15 -9
  11. package/dist/cli/crypto/genJWT/index.d.ts +1 -1
  12. package/dist/cli/crypto/genJWT/index.js +8 -9
  13. package/dist/cli/crypto/index.d.ts +1 -1
  14. package/dist/cli/init/steps/env.js +14 -4
  15. package/dist/cli/init/steps/next.d.ts +1 -1
  16. package/dist/cli/init/steps/next.js +6 -5
  17. package/dist/cli/migrator/index.d.ts +1 -1
  18. package/dist/cli/migrator/index.js +2 -2
  19. package/dist/cli/users/index.d.ts +1 -1
  20. package/dist/cli/users/shared.js +2 -2
  21. package/dist/cli/users/steps/createUsers.js +7 -7
  22. package/dist/cli/users/steps/modifyUsers.js +2 -2
  23. package/dist/cli/users/steps/next.d.ts +1 -1
  24. package/dist/cli/utils/checkRequiredEnvVars.js +2 -2
  25. package/dist/cli/utils/context.d.ts +2 -4
  26. package/dist/cli/utils/context.js +1 -3
  27. package/dist/cli/utils/getCliDbClient.d.ts +1 -1
  28. package/dist/cli/utils/intro.d.ts +1 -1
  29. package/dist/cli/utils/loadConfig.d.ts +54 -49
  30. package/dist/cli/utils/loadConfig.js +5 -8
  31. package/dist/cli/utils/logger.js +3 -3
  32. package/dist/cli/utils/user-utils.d.ts +1 -1
  33. package/dist/cli/utils/user-utils.js +4 -3
  34. package/dist/client/apiClient.d.ts +4923 -0
  35. package/dist/client/apiClient.js +72 -0
  36. package/dist/config.d.ts +1734 -1
  37. package/dist/consts.d.ts +5 -5
  38. package/dist/consts.js +3 -2
  39. package/dist/db/plugins.d.ts +1 -1
  40. package/dist/db/plugins.js +5 -8
  41. package/dist/handlers/frontend/routes.d.ts +4 -18
  42. package/dist/handlers/frontend/routes.js +13 -152
  43. package/dist/handlers/frontend/types.d.ts +1 -1
  44. package/dist/handlers/frontend/utils.js +0 -18
  45. package/dist/handlers/pluginHandler.d.ts +34 -257
  46. package/dist/handlers/pluginHandler.js +92 -46
  47. package/dist/handlers/routeHandler.js +32 -11
  48. package/dist/handlers/setupDbStudio.d.ts +3 -1
  49. package/dist/handlers/setupDbStudio.js +19 -10
  50. package/dist/handlers/storage-manager/core/effectify-astro-context.d.ts +25 -0
  51. package/dist/handlers/storage-manager/core/effectify-astro-context.js +78 -0
  52. package/dist/handlers/storage-manager/no-op.d.ts +2 -2
  53. package/dist/handlers/storage-manager/no-op.js +2 -3
  54. package/dist/index.d.ts +0 -1
  55. package/dist/index.js +10 -20
  56. package/dist/integrations/robots/index.d.ts +2 -2
  57. package/dist/integrations/robots/index.js +1 -3
  58. package/dist/integrations/robots/schema.d.ts +102 -273
  59. package/dist/integrations/robots/schema.js +220 -209
  60. package/dist/plugins/analytics/assets/schemas.d.ts +14 -9
  61. package/dist/plugins/analytics/assets/schemas.js +25 -17
  62. package/dist/plugins/analytics/db-client.d.ts +1 -1
  63. package/dist/plugins/analytics/index.d.ts +823 -3
  64. package/dist/plugins/analytics/index.js +4 -5
  65. package/dist/plugins/analytics/schemas.d.ts +54 -62
  66. package/dist/plugins/analytics/schemas.js +64 -13
  67. package/dist/plugins/analytics/table.d.ts +1 -1
  68. package/dist/plugins.d.ts +0 -1
  69. package/dist/schemas/config/api.d.ts +17 -0
  70. package/dist/schemas/config/api.js +14 -0
  71. package/dist/schemas/config/auth.d.ts +55 -59
  72. package/dist/schemas/config/auth.js +34 -11
  73. package/dist/schemas/config/dashboard.d.ts +43 -79
  74. package/dist/schemas/config/dashboard.js +43 -12
  75. package/dist/schemas/config/db.d.ts +15 -17
  76. package/dist/schemas/config/db.js +13 -5
  77. package/dist/schemas/config/developer.d.ts +33 -45
  78. package/dist/schemas/config/developer.js +22 -5
  79. package/dist/schemas/config/index.d.ts +398 -521
  80. package/dist/schemas/config/index.js +115 -57
  81. package/dist/schemas/config/sdk.d.ts +50 -196
  82. package/dist/schemas/config/sdk.js +61 -73
  83. package/dist/schemas/custom.d.ts +40 -0
  84. package/dist/schemas/custom.js +41 -0
  85. package/dist/schemas/external-schemas.d.ts +171 -0
  86. package/dist/schemas/external-schemas.js +179 -0
  87. package/dist/schemas/index.d.ts +2 -0
  88. package/dist/schemas/index.js +2 -0
  89. package/dist/schemas/plugins/i18n.d.ts +59 -39
  90. package/dist/schemas/plugins/i18n.js +42 -5
  91. package/dist/schemas/plugins/index.d.ts +7126 -10296
  92. package/dist/schemas/plugins/index.js +260 -276
  93. package/dist/schemas/plugins/shared.d.ts +1293 -3718
  94. package/dist/schemas/plugins/shared.js +320 -329
  95. package/dist/test-utils.d.ts +15 -4
  96. package/dist/test-utils.js +27 -11
  97. package/dist/toolbar/db-viewer/db-shared-types.d.ts +6 -6
  98. package/dist/toolbar/db-viewer/studio/connection.d.ts +8 -4
  99. package/dist/toolbar/db-viewer/studio/connection.js +2 -28
  100. package/dist/toolbar/db-viewer/studio/env/libsql.d.ts +7 -0
  101. package/dist/toolbar/db-viewer/studio/env/libsql.js +17 -0
  102. package/dist/toolbar/db-viewer/studio/env/mysql.d.ts +7 -0
  103. package/dist/toolbar/db-viewer/studio/env/mysql.js +23 -0
  104. package/dist/toolbar/db-viewer/studio/env/postgres.d.ts +7 -0
  105. package/dist/toolbar/db-viewer/studio/env/postgres.js +23 -0
  106. package/dist/toolbar/db-viewer/studio/index.js +20 -56
  107. package/dist/toolbar/db-viewer/studio/type.d.ts +1 -2
  108. package/dist/toolbar/db-viewer/studio/virtual-connection/libsql.d.ts +3 -0
  109. package/dist/toolbar/db-viewer/studio/virtual-connection/libsql.js +24 -0
  110. package/dist/toolbar/db-viewer/studio/virtual-connection/mysql.d.ts +3 -0
  111. package/dist/toolbar/db-viewer/studio/virtual-connection/mysql.js +9 -0
  112. package/dist/toolbar/db-viewer/studio/virtual-connection/postgres.d.ts +3 -0
  113. package/dist/toolbar/db-viewer/studio/virtual-connection/postgres.js +9 -0
  114. package/dist/toolbar/db-viewer/viewer.js +20 -21
  115. package/dist/types.d.ts +30 -0
  116. package/dist/utils/effects/smtp.d.ts +1 -1
  117. package/dist/utils/lang-helper.d.ts +10 -2
  118. package/dist/virtual.d.ts +35 -28
  119. package/dist/virtuals/auth/core.d.ts +5 -5
  120. package/dist/virtuals/auth/verify-email.d.ts +6 -6
  121. package/dist/virtuals/components/Generator.astro +2 -2
  122. package/dist/virtuals/components/Renderer.astro +9 -1
  123. package/dist/virtuals/components/renderFn.d.ts +3 -1
  124. package/dist/virtuals/components/renderFn.js +18 -0
  125. package/dist/virtuals/lib/headDefaults.d.ts +4 -2
  126. package/dist/virtuals/lib/headDefaults.js +0 -2
  127. package/dist/virtuals/lib/routeMap.d.ts +0 -12
  128. package/dist/virtuals/lib/routeMap.js +2 -14
  129. package/dist/virtuals/mailer/index.d.ts +3 -3
  130. package/dist/virtuals/notifier/index.d.ts +5 -5
  131. package/dist/virtuals/plugins/dashboard-pages.d.ts +2 -64
  132. package/dist/virtuals/scripts/StorageFileBrowser.d.ts +1 -172
  133. package/dist/virtuals/scripts/StorageFileBrowser.js +216 -119
  134. package/dist/virtuals/template-engine/index.d.ts +4 -4
  135. package/frontend/components/dashboard/configuration/ConfigForm.astro +218 -110
  136. package/frontend/components/dashboard/content-mgmt/ContentSearch.astro +21 -22
  137. package/frontend/components/dashboard/content-mgmt/CreateFolder.astro +66 -54
  138. package/frontend/components/dashboard/content-mgmt/CreatePage.astro +58 -104
  139. package/frontend/components/dashboard/content-mgmt/EditFolder.astro +65 -67
  140. package/frontend/components/dashboard/content-mgmt/EditPage.astro +86 -134
  141. package/frontend/components/dashboard/content-mgmt/InnerSidebarElement.astro +0 -1
  142. package/frontend/components/dashboard/content-mgmt/PageHeader.astro +33 -52
  143. package/frontend/components/dashboard/content-mgmt/PageTypeHandler.astro +2 -2
  144. package/frontend/components/dashboard/profile/APITokens.astro +219 -158
  145. package/frontend/components/dashboard/profile/BasicInfo.astro +165 -106
  146. package/frontend/components/dashboard/profile/Notifications.astro +27 -18
  147. package/frontend/components/dashboard/profile/UpdatePassword.astro +134 -94
  148. package/frontend/components/dashboard/sidebar/VersionCheck.astro +31 -16
  149. package/frontend/components/dashboard/sidebar/VersionCheckChangelog.astro +18 -11
  150. package/frontend/components/dashboard/sidebar-modals/VersionModal.astro +2 -2
  151. package/frontend/components/dashboard/smtp-config/TemplateEditor.astro +14 -14
  152. package/frontend/components/dashboard/taxonomy/InnerSidebarElement.astro +0 -1
  153. package/frontend/components/dashboard/taxonomy/MetaContainer.astro +0 -2
  154. package/frontend/components/dashboard/taxonomy/PageHeader.astro +16 -24
  155. package/frontend/components/dashboard/taxonomy/TaxonomySearch.astro +23 -27
  156. package/frontend/components/dashboard/user-mgmt/InnerSidebarElement.astro +111 -104
  157. package/frontend/components/dashboard/user-mgmt/UserListItem.astro +9 -22
  158. package/frontend/components/dashboard/user-mgmt/UserListItems.astro +18 -0
  159. package/frontend/components/first-time-setup/snippets/{opt2-studiocms.config.diff → studiocms.config.diff} +1 -0
  160. package/frontend/components/shared/Code.astro +1 -4
  161. package/frontend/components/shared/DynamicSettingsRenderer.astro +1 -1
  162. package/frontend/components/shared/SSRUser.astro +2 -4
  163. package/frontend/components/shared/foldertree/FolderTreeNode.astro +0 -6
  164. package/frontend/components/shared/storage-manager/StorageCopyOutput.astro +0 -1
  165. package/frontend/components/shared/taxonomy/TaxonomyTreeNode.astro +0 -6
  166. package/frontend/layouts/DashboardLayout.astro +1 -10
  167. package/frontend/layouts/TaxonomyLayout.astro +0 -1
  168. package/frontend/middleware/index.ts +102 -61
  169. package/frontend/pages/404.astro +5 -9
  170. package/frontend/pages/[dashboard]/[...pluginPage].astro +10 -1
  171. package/frontend/pages/[dashboard]/configuration.astro +10 -1
  172. package/frontend/pages/[dashboard]/content-management/createfolder.astro +10 -1
  173. package/frontend/pages/[dashboard]/content-management/createpage.astro +10 -1
  174. package/frontend/pages/[dashboard]/content-management/diff.astro +39 -14
  175. package/frontend/pages/[dashboard]/content-management/editfolder.astro +10 -1
  176. package/frontend/pages/[dashboard]/content-management/editpage.astro +10 -1
  177. package/frontend/pages/[dashboard]/content-management/index.astro +10 -1
  178. package/frontend/pages/[dashboard]/index.astro +10 -1
  179. package/frontend/pages/[dashboard]/login.astro +86 -25
  180. package/frontend/pages/[dashboard]/password-reset.astro +22 -16
  181. package/frontend/pages/[dashboard]/plugins/[plugin].astro +10 -1
  182. package/frontend/pages/[dashboard]/profile.astro +10 -1
  183. package/frontend/pages/[dashboard]/signup.astro +153 -52
  184. package/frontend/pages/[dashboard]/smtp-configuration.astro +77 -75
  185. package/frontend/pages/[dashboard]/system-management.astro +10 -1
  186. package/frontend/pages/[dashboard]/taxonomy/categories.astro +30 -41
  187. package/frontend/pages/[dashboard]/taxonomy/index.astro +10 -0
  188. package/frontend/pages/[dashboard]/taxonomy/tags.astro +33 -43
  189. package/frontend/pages/[dashboard]/unverified-email.astro +29 -21
  190. package/frontend/pages/[dashboard]/user-management/edit.astro +170 -90
  191. package/frontend/pages/[dashboard]/user-management/index.astro +10 -1
  192. package/frontend/pages/studiocms_api/[...all].ts +106 -0
  193. package/frontend/pages/studiocms_api/_handlers/_utils/auth.ts +26 -0
  194. package/frontend/pages/studiocms_api/_handlers/_utils/changelog.ts +147 -0
  195. package/frontend/pages/studiocms_api/_handlers/_utils/db-studio-driver.ts +46 -0
  196. package/frontend/pages/studiocms_api/_handlers/_utils/parseLogLevel.ts +27 -0
  197. package/frontend/pages/studiocms_api/_handlers/auth/auth.ts +459 -0
  198. package/frontend/pages/studiocms_api/_handlers/auth/index.ts +17 -0
  199. package/frontend/pages/studiocms_api/_handlers/auth/oauth.ts +91 -0
  200. package/frontend/pages/studiocms_api/_handlers/dashboard/_shared.ts +57 -0
  201. package/frontend/pages/studiocms_api/_handlers/dashboard/apiTokens.ts +134 -0
  202. package/frontend/pages/studiocms_api/_handlers/dashboard/config.ts +64 -0
  203. package/frontend/pages/studiocms_api/_handlers/dashboard/content.ts +741 -0
  204. package/frontend/pages/studiocms_api/_handlers/dashboard/create.ts +480 -0
  205. package/frontend/pages/studiocms_api/_handlers/dashboard/emailNotifications.ts +49 -0
  206. package/frontend/pages/studiocms_api/_handlers/dashboard/index.ts +45 -0
  207. package/frontend/pages/studiocms_api/_handlers/dashboard/mailer.ts +136 -0
  208. package/frontend/pages/studiocms_api/_handlers/dashboard/plugins.ts +80 -0
  209. package/frontend/pages/studiocms_api/_handlers/dashboard/profile.ts +275 -0
  210. package/frontend/pages/studiocms_api/_handlers/dashboard/resetPassword.ts +140 -0
  211. package/frontend/pages/studiocms_api/_handlers/dashboard/search.ts +63 -0
  212. package/frontend/pages/studiocms_api/_handlers/dashboard/taxonomy.ts +285 -0
  213. package/frontend/pages/studiocms_api/_handlers/dashboard/templates.ts +75 -0
  214. package/frontend/pages/studiocms_api/_handlers/dashboard/users.ts +312 -0
  215. package/frontend/pages/studiocms_api/_handlers/dashboard/verifyEndpoints.ts +307 -0
  216. package/frontend/pages/studiocms_api/_handlers/integration/dbStudio.ts +98 -0
  217. package/frontend/pages/studiocms_api/_handlers/integration/index.ts +17 -0
  218. package/frontend/pages/studiocms_api/_handlers/integration/storageManager.ts +107 -0
  219. package/frontend/pages/studiocms_api/_handlers/rest-api/index.ts +8 -0
  220. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/_shared.ts +41 -0
  221. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/index.ts +17 -0
  222. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/public.ts +195 -0
  223. package/frontend/pages/studiocms_api/_handlers/rest-api/v1/secure.ts +1726 -0
  224. package/frontend/pages/studiocms_api/_handlers/sdk.ts +129 -0
  225. package/frontend/pages/studiocms_api/_middleware/astroLocals.ts +36 -0
  226. package/frontend/pages/studiocms_api/_middleware/restApi.ts +56 -0
  227. package/frontend/pages/studiocms_api/integrations/[...all].ts +8 -0
  228. package/frontend/scripts/formdata.ts +219 -0
  229. package/frontend/setup-pages/3-done.astro +4 -20
  230. package/frontend/setup-pages/studiocms_api/dashboard/step-2.ts +3 -6
  231. package/frontend/styles/dashboard-base.css +0 -1
  232. package/frontend/web-vitals/endpoint.ts +2 -1
  233. package/package.json +35 -31
  234. package/dist/global.d.ts +0 -9
  235. package/frontend/components/dashboard/LoginChecker.astro +0 -68
  236. package/frontend/components/dashboard/user-mgmt/RankCheck.astro +0 -57
  237. package/frontend/components/first-time-setup/snippets/opt1-astro.config.diff +0 -14
  238. package/frontend/components/first-time-setup/snippets/opt2-astro.config.diff +0 -9
  239. package/frontend/middleware/_authmap.ts +0 -63
  240. package/frontend/pages/studiocms_api/auth/[path].ts +0 -390
  241. package/frontend/pages/studiocms_api/auth/[provider]/[...id].ts +0 -64
  242. package/frontend/pages/studiocms_api/auth/[provider]/_effects/index.ts +0 -101
  243. package/frontend/pages/studiocms_api/auth/_shared.ts +0 -52
  244. package/frontend/pages/studiocms_api/dashboard/api-tokens.ts +0 -115
  245. package/frontend/pages/studiocms_api/dashboard/config.ts +0 -74
  246. package/frontend/pages/studiocms_api/dashboard/content/diff.ts +0 -73
  247. package/frontend/pages/studiocms_api/dashboard/content/folder.ts +0 -220
  248. package/frontend/pages/studiocms_api/dashboard/content/page.ts +0 -359
  249. package/frontend/pages/studiocms_api/dashboard/create-reset-link.ts +0 -77
  250. package/frontend/pages/studiocms_api/dashboard/create-user-invite.ts +0 -231
  251. package/frontend/pages/studiocms_api/dashboard/create-user.ts +0 -186
  252. package/frontend/pages/studiocms_api/dashboard/email-notification-settings-site.ts +0 -74
  253. package/frontend/pages/studiocms_api/dashboard/mailer/check-email.ts +0 -75
  254. package/frontend/pages/studiocms_api/dashboard/mailer/config.ts +0 -136
  255. package/frontend/pages/studiocms_api/dashboard/plugins/[plugin].ts +0 -80
  256. package/frontend/pages/studiocms_api/dashboard/profile.ts +0 -245
  257. package/frontend/pages/studiocms_api/dashboard/resend-verify-email.ts +0 -77
  258. package/frontend/pages/studiocms_api/dashboard/reset-password.ts +0 -124
  259. package/frontend/pages/studiocms_api/dashboard/search-list.ts +0 -59
  260. package/frontend/pages/studiocms_api/dashboard/taxonomy-search.ts +0 -47
  261. package/frontend/pages/studiocms_api/dashboard/taxonomy.ts +0 -230
  262. package/frontend/pages/studiocms_api/dashboard/templates.ts +0 -74
  263. package/frontend/pages/studiocms_api/dashboard/update-user-notifications.ts +0 -86
  264. package/frontend/pages/studiocms_api/dashboard/users.ts +0 -236
  265. package/frontend/pages/studiocms_api/dashboard/verify-email.ts +0 -83
  266. package/frontend/pages/studiocms_api/dashboard/verify-session.ts +0 -187
  267. package/frontend/pages/studiocms_api/integrations/[type]/[...id].ts +0 -15
  268. package/frontend/pages/studiocms_api/integrations/[type]/_routes/db-studio.ts +0 -173
  269. package/frontend/pages/studiocms_api/integrations/[type]/_routes/storage.ts +0 -88
  270. package/frontend/pages/studiocms_api/partials/editor.astro +0 -74
  271. package/frontend/pages/studiocms_api/partials/render.astro +0 -39
  272. package/frontend/pages/studiocms_api/partials/user-list-items.astro +0 -43
  273. package/frontend/pages/studiocms_api/rest/utils/auth-token.ts +0 -59
  274. package/frontend/pages/studiocms_api/rest/v1/[type]/[...id].ts +0 -23
  275. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/categories.ts +0 -267
  276. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/folders.ts +0 -283
  277. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/pages.ts +0 -505
  278. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/settings.ts +0 -100
  279. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/tags.ts +0 -229
  280. package/frontend/pages/studiocms_api/rest/v1/[type]/_routes/users.ts +0 -553
  281. package/frontend/pages/studiocms_api/rest/v1/public/[type]/[...id].ts +0 -19
  282. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/categories.ts +0 -74
  283. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/folders.ts +0 -85
  284. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/pages.ts +0 -103
  285. package/frontend/pages/studiocms_api/rest/v1/public/[type]/_routes/tags.ts +0 -67
  286. package/frontend/pages/studiocms_api/sdk/[...path].ts +0 -97
  287. package/frontend/pages/studiocms_api/sdk/utils/changelog.ts +0 -119
  288. package/frontend/scripts/auth/formListener.ts +0 -81
  289. package/frontend/scripts/formdata-utils.ts +0 -116
  290. package/frontend/utils/build-partial-schema.ts +0 -46
  291. package/frontend/utils/errors.ts +0 -6
  292. package/frontend/utils/param-extractor.ts +0 -83
  293. package/frontend/utils/rest-router.ts +0 -444
@@ -3,7 +3,7 @@ import { getAvatarUrl } from "@withstudiocms/auth-kit/utils/libravatar";
3
3
  import { StudioCMSColorwayInfo } from "@withstudiocms/cli-kit/colors";
4
4
  import { group, log, password, select, text } from "@withstudiocms/effect/clack";
5
5
  import { StudioCMSPermissions, StudioCMSUsersTable } from "@withstudiocms/sdk/tables";
6
- import { z } from "astro/zod";
6
+ import { isValidEmail } from "#schemas/external-schemas";
7
7
  import { Effect, runEffect, Schema } from "../../../effect.js";
8
8
  import { StudioCMSCliError } from "../../utils/errors.js";
9
9
  import { getCliDbClient } from "../../utils/getCliDbClient.js";
@@ -50,7 +50,7 @@ const createUsers = Effect.fn(function* (context, _debug, dryRun) {
50
50
  message: "Username",
51
51
  placeholder: "johndoe",
52
52
  validate: (user) => {
53
- const u = user.trim();
53
+ const u = user?.trim();
54
54
  const isUser = currentUsers.find(({ username: username2 }) => username2 === u);
55
55
  if (isUser) return "Username is already in use, please try another one";
56
56
  return void 0;
@@ -90,9 +90,9 @@ const createUsers = Effect.fn(function* (context, _debug, dryRun) {
90
90
  message: "E-Mail Address",
91
91
  placeholder: "john@doe.tld",
92
92
  validate: (email2) => {
93
- const e = email2.trim().toLowerCase();
94
- const emailSchema = z.string().email({ message: "Email address is invalid" });
95
- const response = emailSchema.safeParse(e);
93
+ const e = email2?.trim().toLowerCase();
94
+ if (!e) return "Email is required";
95
+ const response = isValidEmail(e);
96
96
  if (!response.success) return response.error.message;
97
97
  if (currentUsers.find((user) => user.email === e)) {
98
98
  return "There is already a user with that email.";
@@ -121,7 +121,7 @@ const createUsers = Effect.fn(function* (context, _debug, dryRun) {
121
121
  );
122
122
  const { confirmPassword, email, name, newPassword, rank, username } = inputData;
123
123
  if (newPassword !== confirmPassword) {
124
- yield* log.error(context.chalk.red("Passwords do not match, exiting..."));
124
+ yield* log.error(styleText("red", "Passwords do not match, exiting..."));
125
125
  return yield* context.exit(1);
126
126
  }
127
127
  const newUserId = crypto.randomUUID();
@@ -166,7 +166,7 @@ const createUsers = Effect.fn(function* (context, _debug, dryRun) {
166
166
  message("Failed to create user or assign permissions");
167
167
  return await runEffect(context.exit(1));
168
168
  }
169
- message(context.chalk.green("User created successfully!"));
169
+ message(styleText("green", "User created successfully!"));
170
170
  } catch (error) {
171
171
  await runEffect(log.error(`Failed to create user: ${error.message}`));
172
172
  return await runEffect(context.exit(1));
@@ -80,7 +80,7 @@ const modifyUsers = Effect.fn(function* (context, _debug, dryRun) {
80
80
  message: "Enter the new username",
81
81
  placeholder: "johndoe",
82
82
  validate: (user) => {
83
- const u = user.trim();
83
+ const u = user?.trim();
84
84
  const isUser = currentUsers.find(({ username }) => username === u);
85
85
  if (isUser) return "Username is already in use, please try another one";
86
86
  return void 0;
@@ -119,7 +119,7 @@ const modifyUsers = Effect.fn(function* (context, _debug, dryRun) {
119
119
  const newDisplayName = yield* text({
120
120
  message: "Enter new display name",
121
121
  placeholder: currentUsers.find((u) => u.id === userSelection)?.name || "John Doe",
122
- validate: (v) => v.trim().length === 0 ? "Display name cannot be empty" : void 0
122
+ validate: (v) => v?.trim().length === 0 ? "Display name cannot be empty" : void 0
123
123
  });
124
124
  if (typeof newDisplayName === "symbol") {
125
125
  return yield* context.pCancel(newDisplayName);
@@ -1,2 +1,2 @@
1
1
  import { Effect } from '../../../effect.js';
2
- export declare const next: (debug: boolean) => Effect.Effect<void, import("effect/Cause").UnknownException | import("effect/ConfigError").ConfigError | import("@withstudiocms/effect/clack").ClackError, never>;
2
+ export declare const next: (debug: boolean) => Effect.Effect<void, import("effect/ConfigError").ConfigError | import("effect/Cause").UnknownException | import("@withstudiocms/effect/clack").ClackError, never>;
@@ -1,5 +1,5 @@
1
+ import { styleText } from "node:util";
1
2
  import { log } from "@withstudiocms/effect/clack";
2
- import chalk from "chalk";
3
3
  import { Effect } from "../../effect.js";
4
4
  const checkRequiredEnvVarsEffect = Effect.fn(function* (envVars) {
5
5
  const missingVars = [];
@@ -11,7 +11,7 @@ const checkRequiredEnvVarsEffect = Effect.fn(function* (envVars) {
11
11
  });
12
12
  if (missingVars.length > 0) {
13
13
  yield* log.error(
14
- `${chalk.red.bold("Missing environment variables:")} ${missingVars.map((v) => chalk.red(v)).join(", ")}`
14
+ `${styleText(["red", "bold"], "Missing environment variables:")} ${missingVars.map((v) => styleText("red", v)).join(", ")}`
15
15
  );
16
16
  return yield* Effect.try(() => process.exit(1));
17
17
  }
@@ -1,21 +1,19 @@
1
1
  import { type ClackError, type Task } from '@withstudiocms/effect/clack';
2
- import chalk from 'chalk';
3
2
  import { Context, Effect, Layer, Option } from '../../effect.js';
4
3
  export interface BaseContext {
5
- chalk: typeof chalk;
6
4
  cwd: string;
7
5
  packageManager: string;
8
6
  username: string;
9
7
  tasks: Task[];
10
8
  pCancel(val: symbol): Effect.Effect<void, ClackError, never>;
11
9
  pOnCancel(): Effect.Effect<void, ClackError, never>;
12
- exit(code: number): Effect.Effect<undefined, never, never>;
10
+ exit(code: number): Effect.Effect<void, never, never>;
13
11
  }
14
12
  declare const CliContext_base: Context.TagClass<CliContext, "CliContext", BaseContext>;
15
13
  export declare class CliContext extends CliContext_base {
16
14
  static makeLayer: (context: BaseContext) => Layer.Layer<CliContext, never, never>;
17
15
  static makeProvide: (context: BaseContext) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, CliContext>>;
18
16
  }
19
- export declare const genContext: Effect.Effect<BaseContext, import("effect/Cause").UnknownException | import("effect/ConfigError").ConfigError, never>;
17
+ export declare const genContext: Effect.Effect<BaseContext, import("effect/ConfigError").ConfigError | import("effect/Cause").UnknownException, never>;
20
18
  export declare const parseDebug: (debugOpt: false | Option.Option<boolean>) => Effect.Effect<boolean, never, never>;
21
19
  export {};
@@ -1,7 +1,6 @@
1
1
  import { detectPackageManager } from "@withstudiocms/cli-kit/context";
2
2
  import { cancelMessage, getName } from "@withstudiocms/cli-kit/messages";
3
3
  import { cancel, isCancel } from "@withstudiocms/effect/clack";
4
- import chalk from "chalk";
5
4
  import { Context, Effect, genLogger, Layer, Option } from "../../effect.js";
6
5
  class CliContext extends Context.Tag("CliContext")() {
7
6
  static makeLayer = (context) => Layer.succeed(this, this.of(context));
@@ -18,9 +17,8 @@ const genContext = genLogger("studiocms/cli/utils/context.genContext")(function*
18
17
  );
19
18
  const cwd = process.cwd();
20
19
  const username = yield* Effect.tryPromise(() => getName());
21
- const exit = (code) => Effect.try(() => process.exit(code)).pipe(Effect.catchAll(() => Effect.succeed(void 0)));
20
+ const exit = (code) => Effect.try(() => process.exit(code)).pipe(Effect.catchAll(() => Effect.void));
22
21
  const context = {
23
- chalk,
24
22
  cwd,
25
23
  packageManager,
26
24
  username,
@@ -124,4 +124,4 @@ export declare const getCliDbClient: (context: BaseContext) => Effect.Effect<imp
124
124
  readonly isPermanent: import("kysely").ColumnType<number, boolean, boolean>;
125
125
  readonly expiresAt?: number | null | undefined;
126
126
  };
127
- }>, import("effect/Cause").UnknownException | import("effect/ConfigError").ConfigError | import("../../db/index.js").UnsupportedDialectError | import("../../db/index.js").DriverImportError, never>;
127
+ }>, import("effect/ParseResult").ParseError | import("effect/ConfigError").ConfigError | import("effect/Cause").UnknownException | import("../../db/index.js").UnsupportedDialectError | import("../../db/index.js").DriverImportError, never>;
@@ -1,4 +1,4 @@
1
1
  import { Effect } from '../../effect.js';
2
2
  import { CliContext } from './context.js';
3
3
  export declare const random: (...arr: any[]) => any;
4
- export declare const intro: (debug: boolean) => Effect.Effect<void, import("effect/Cause").UnknownException | import("effect/ConfigError").ConfigError, CliContext>;
4
+ export declare const intro: (debug: boolean) => Effect.Effect<void, import("effect/ConfigError").ConfigError | import("effect/Cause").UnknownException, CliContext>;
@@ -6,67 +6,72 @@ import { Effect } from 'effect';
6
6
  * @returns An Effect that resolves to the merged StudioCMSOptions.
7
7
  */
8
8
  export declare const loadConfig: (root: URL) => Effect.Effect<{
9
- dbStartPage: boolean;
10
- verbose: boolean;
11
- logLevel: "All" | "Fatal" | "Error" | "Warning" | "Info" | "Debug" | "Trace" | "None";
12
- db: {
13
- dialect: "libsql" | "postgres" | "mysql";
9
+ readonly dbStartPage: boolean;
10
+ readonly verbose: boolean;
11
+ readonly logLevel: "All" | "Fatal" | "Error" | "Warning" | "Info" | "Debug" | "Trace" | "None";
12
+ readonly db: {
13
+ readonly dialect: "libsql" | "postgres" | "mysql";
14
14
  };
15
- locale: {
16
- dateLocale: string;
17
- dateTimeFormat: Intl.DateTimeFormatOptions;
18
- i18n: {
19
- defaultLocale: string;
15
+ readonly plugins?: import("../../schemas/index.js").StudioCMSPluginSchema[] | undefined;
16
+ readonly storageManager?: import("../../schemas/index.js").StudioCMSStorageManagerSchema | undefined;
17
+ readonly componentRegistry?: {
18
+ readonly [x: string]: string;
19
+ } | undefined;
20
+ readonly locale: {
21
+ readonly dateLocale: string;
22
+ readonly dateTimeFormat: import("../../schemas/external-schemas.js").DateTimeFormatOptions;
23
+ readonly i18n: {
24
+ readonly defaultLocale: string;
20
25
  };
21
26
  };
22
- features: {
23
- robotsTXT: boolean | {
24
- host?: string | boolean | undefined;
25
- sitemap?: string | boolean | string[] | undefined;
26
- policy?: {
27
- userAgent?: "360Spider" | "360Spider-Image" | "360Spider-Video" | "HaoSouSpider" | "AdsBot-Google" | "AdsBot-Google-Mobile" | "AdsBot-Google-Mobile-Apps" | "Googlebot" | "Googlebot-Image" | "Googlebot-Mobile" | "Googlebot-News" | "Googlebot-Video" | "Mediapartners-Google" | "adidxbot" | "bingbot" | "BingPreview" | "MicrosoftPreview" | "msnbot" | "msnbot-media" | "Applebot" | "AppleNewsBot" | "Baiduspider" | "Baiduspider-image" | "Baiduspider-mobile" | "Baiduspider-news" | "Baiduspider-video" | "coccoc" | "coccocbot-image" | "coccocbot-web" | "DuckDuckBot" | "DuckDuckGo-Favicons-Bot" | "facebookcatalog" | "facebookexternalhit" | "Facebot" | "gooblog" | "ichiro" | "Sogou blog" | "Sogou inst spider" | "Sogou News Spider" | "Sogou Orion spider" | "Sogou spider2" | "Sogou web spider" | "Yandex" | "YandexMobileBot" | "Algolia Crawler" | "BublupBot" | "CCBot" | "Cliqzbot" | "Daumoa" | "DeuSu" | "EuripBot" | "Exploratodo" | "Feedly" | "Findxbot" | "istellabot" | "JikeSpider" | "Lycos" | "Mail.Ru" | "MojeekBot" | "OrangeBot" | "Pinterest" | "Plukkie" | "Qwantify" | "Rambler" | "SemanticScholarBot" | "SeznamBot" | "Sosospider" | "Slurp" | "Twitterbot" | "WhatsApp" | "yacybot" | "YepBot" | "Yeti" | "YioopBot" | "yoozBot" | "YoudaoBot" | "*" | ("360Spider" | "360Spider-Image" | "360Spider-Video" | "HaoSouSpider" | "AdsBot-Google" | "AdsBot-Google-Mobile" | "AdsBot-Google-Mobile-Apps" | "Googlebot" | "Googlebot-Image" | "Googlebot-Mobile" | "Googlebot-News" | "Googlebot-Video" | "Mediapartners-Google" | "adidxbot" | "bingbot" | "BingPreview" | "MicrosoftPreview" | "msnbot" | "msnbot-media" | "Applebot" | "AppleNewsBot" | "Baiduspider" | "Baiduspider-image" | "Baiduspider-mobile" | "Baiduspider-news" | "Baiduspider-video" | "coccoc" | "coccocbot-image" | "coccocbot-web" | "DuckDuckBot" | "DuckDuckGo-Favicons-Bot" | "facebookcatalog" | "facebookexternalhit" | "Facebot" | "gooblog" | "ichiro" | "Sogou blog" | "Sogou inst spider" | "Sogou News Spider" | "Sogou Orion spider" | "Sogou spider2" | "Sogou web spider" | "Yandex" | "YandexMobileBot" | "Algolia Crawler" | "BublupBot" | "CCBot" | "Cliqzbot" | "Daumoa" | "DeuSu" | "EuripBot" | "Exploratodo" | "Feedly" | "Findxbot" | "istellabot" | "JikeSpider" | "Lycos" | "Mail.Ru" | "MojeekBot" | "OrangeBot" | "Pinterest" | "Plukkie" | "Qwantify" | "Rambler" | "SemanticScholarBot" | "SeznamBot" | "Sosospider" | "Slurp" | "Twitterbot" | "WhatsApp" | "yacybot" | "YepBot" | "Yeti" | "YioopBot" | "yoozBot" | "YoudaoBot" | "*")[] | undefined;
28
- allow?: string | string[] | undefined;
29
- disallow?: string | string[] | undefined;
30
- crawlDelay?: number | undefined;
31
- cleanParam?: string | string[] | undefined;
27
+ readonly features: {
28
+ readonly robotsTXT: boolean | {
29
+ readonly host?: string | boolean | undefined;
30
+ readonly sitemap?: string | boolean | readonly string[] | undefined;
31
+ readonly policy?: readonly {
32
+ readonly userAgent?: "360Spider" | "360Spider-Image" | "360Spider-Video" | "HaoSouSpider" | "AdsBot-Google" | "AdsBot-Google-Mobile" | "AdsBot-Google-Mobile-Apps" | "Googlebot" | "Googlebot-Image" | "Googlebot-Mobile" | "Googlebot-News" | "Googlebot-Video" | "Mediapartners-Google" | "adidxbot" | "bingbot" | "BingPreview" | "MicrosoftPreview" | "msnbot" | "msnbot-media" | "Applebot" | "AppleNewsBot" | "Baiduspider" | "Baiduspider-image" | "Baiduspider-mobile" | "Baiduspider-news" | "Baiduspider-video" | "coccoc" | "coccocbot-image" | "coccocbot-web" | "DuckDuckBot" | "DuckDuckGo-Favicons-Bot" | "facebookcatalog" | "facebookexternalhit" | "Facebot" | "gooblog" | "ichiro" | "Sogou blog" | "Sogou inst spider" | "Sogou News Spider" | "Sogou Orion spider" | "Sogou spider2" | "Sogou web spider" | "Yandex" | "YandexMobileBot" | "Algolia Crawler" | "BublupBot" | "CCBot" | "Cliqzbot" | "Daumoa" | "DeuSu" | "EuripBot" | "Exploratodo" | "Feedly" | "Findxbot" | "istellabot" | "JikeSpider" | "Lycos" | "Mail.Ru" | "MojeekBot" | "OrangeBot" | "Pinterest" | "Plukkie" | "Qwantify" | "Rambler" | "SemanticScholarBot" | "SeSchemanamBot" | "Sosospider" | "Slurp" | "Twitterbot" | "WhatsApp" | "yacybot" | "YepBot" | "Yeti" | "YioopBot" | "yooSchemaBot" | "YoudaoBot" | "*" | readonly ("360Spider" | "360Spider-Image" | "360Spider-Video" | "HaoSouSpider" | "AdsBot-Google" | "AdsBot-Google-Mobile" | "AdsBot-Google-Mobile-Apps" | "Googlebot" | "Googlebot-Image" | "Googlebot-Mobile" | "Googlebot-News" | "Googlebot-Video" | "Mediapartners-Google" | "adidxbot" | "bingbot" | "BingPreview" | "MicrosoftPreview" | "msnbot" | "msnbot-media" | "Applebot" | "AppleNewsBot" | "Baiduspider" | "Baiduspider-image" | "Baiduspider-mobile" | "Baiduspider-news" | "Baiduspider-video" | "coccoc" | "coccocbot-image" | "coccocbot-web" | "DuckDuckBot" | "DuckDuckGo-Favicons-Bot" | "facebookcatalog" | "facebookexternalhit" | "Facebot" | "gooblog" | "ichiro" | "Sogou blog" | "Sogou inst spider" | "Sogou News Spider" | "Sogou Orion spider" | "Sogou spider2" | "Sogou web spider" | "Yandex" | "YandexMobileBot" | "Algolia Crawler" | "BublupBot" | "CCBot" | "Cliqzbot" | "Daumoa" | "DeuSu" | "EuripBot" | "Exploratodo" | "Feedly" | "Findxbot" | "istellabot" | "JikeSpider" | "Lycos" | "Mail.Ru" | "MojeekBot" | "OrangeBot" | "Pinterest" | "Plukkie" | "Qwantify" | "Rambler" | "SemanticScholarBot" | "SeSchemanamBot" | "Sosospider" | "Slurp" | "Twitterbot" | "WhatsApp" | "yacybot" | "YepBot" | "Yeti" | "YioopBot" | "yooSchemaBot" | "YoudaoBot" | "*")[] | undefined;
33
+ readonly allow?: string | readonly string[] | undefined;
34
+ readonly disallow?: string | readonly string[] | undefined;
35
+ readonly crawlDelay?: number | undefined;
36
+ readonly cleanParam?: string | readonly string[] | undefined;
32
37
  }[] | undefined;
33
38
  };
34
- injectQuickActionsMenu: boolean;
35
- sdk: {
36
- cacheConfig: {
37
- lifetime: number;
38
- enabled: boolean;
39
+ readonly injectQuickActionsMenu: boolean;
40
+ readonly sdk: {
41
+ readonly cacheConfig: {
42
+ readonly lifetime: number;
43
+ readonly enabled: boolean;
39
44
  };
40
45
  };
41
- dashboardConfig: {
42
- dashboardEnabled: boolean;
43
- inject404Route: boolean;
44
- faviconURL: string;
45
- versionCheck: boolean;
46
- security: {
47
- hideGeneratorTags: boolean;
46
+ readonly dashboardConfig: {
47
+ readonly dashboardEnabled: boolean;
48
+ readonly inject404Route: boolean;
49
+ readonly faviconURL: string;
50
+ readonly dashboardRouteOverride?: string | undefined;
51
+ readonly versionCheck: boolean;
52
+ readonly security: {
53
+ readonly hideGeneratorTags: boolean;
48
54
  };
49
- dashboardRouteOverride?: string | undefined;
50
55
  };
51
- authConfig: {
52
- enabled: boolean;
53
- providers: {
54
- usernameAndPassword: boolean;
55
- usernameAndPasswordConfig: {
56
- allowUserRegistration: boolean;
56
+ readonly authConfig: {
57
+ readonly enabled: boolean;
58
+ readonly providers: {
59
+ readonly usernameAndPassword: boolean;
60
+ readonly usernameAndPasswordConfig: {
61
+ readonly allowUserRegistration: boolean;
57
62
  };
58
63
  };
59
64
  };
60
- developerConfig: {
61
- demoMode: false | {
62
- username: string;
63
- password: string;
65
+ readonly developerConfig: {
66
+ readonly demoMode: boolean | {
67
+ readonly password: string;
68
+ readonly username: string;
64
69
  };
65
70
  };
66
- webVitals: boolean;
67
- preferredImageService?: string | undefined;
71
+ readonly preferredImageService?: string | undefined;
72
+ readonly webVitals: boolean;
73
+ readonly api: {
74
+ readonly apiDocs: boolean;
75
+ };
68
76
  };
69
- plugins?: import("../../plugins.js").StudioCMSPlugin[] | undefined;
70
- storageManager?: import("../../plugins.js").StudioCMSStorageManager | undefined;
71
- componentRegistry?: Record<string, string> | undefined;
72
- }, import("effect/Cause").UnknownException, never>;
77
+ }, import("effect/ParseResult").ParseError | import("effect/Cause").UnknownException, never>;
@@ -1,17 +1,14 @@
1
- import {
2
- loadConfigFile as _loadConfigFile,
3
- parseAndMerge as _parseAndMerge
4
- } from "@withstudiocms/config-utils";
5
- import { Effect } from "effect";
1
+ import { loadConfigFile as _loadConfigFile } from "@withstudiocms/config-utils";
2
+ import { Effect, Schema } from "effect";
6
3
  import { configPaths } from "../../consts.js";
7
4
  import { StudioCMSOptionsSchema } from "../../schemas/index.js";
8
5
  const loadConfigFile = Effect.fn(
9
6
  (root) => Effect.tryPromise(() => _loadConfigFile(root, configPaths, "migrator"))
10
7
  );
11
- const parseAndMerge = Effect.fn(
12
- (config) => Effect.try(() => _parseAndMerge(StudioCMSOptionsSchema, config))
8
+ const parse = Effect.fn(
9
+ (config) => Schema.decode(StudioCMSOptionsSchema)(config ?? {})
13
10
  );
14
- const loadConfig = (root) => loadConfigFile(root).pipe(Effect.flatMap(parseAndMerge));
11
+ const loadConfig = (root) => loadConfigFile(root).pipe(Effect.flatMap(parse));
15
12
  export {
16
13
  loadConfig
17
14
  };
@@ -1,6 +1,6 @@
1
+ import { styleText } from "node:util";
1
2
  import { supportsColor } from "@withstudiocms/cli-kit/colors";
2
3
  import { date } from "@withstudiocms/cli-kit/messages";
3
- import chalk from "chalk";
4
4
  import { Effect } from "effect";
5
5
  let stdout = process.stdout;
6
6
  function setStdout(writable) {
@@ -14,7 +14,7 @@ const logger = {
14
14
  send(`DEBUG [${date}]: ${message}`);
15
15
  return;
16
16
  }
17
- send(`${chalk.blue.bold(`DEBUG [${date}]:`)} ${message}`);
17
+ send(`${styleText(["blue", "bold"], `DEBUG [${date}]:`)} ${message}`);
18
18
  }
19
19
  };
20
20
  const buildDebugLogger = Effect.fn(function* (debug) {
@@ -25,7 +25,7 @@ const buildDebugLogger = Effect.fn(function* (debug) {
25
25
  send(`DEBUG [${date}]: ${message}`);
26
26
  return;
27
27
  }
28
- send(`${chalk.blue.bold(`DEBUG [${date}]:`)} ${message}`);
28
+ send(`${styleText(["blue", "bold"], `DEBUG [${date}]:`)} ${message}`);
29
29
  })
30
30
  );
31
31
  });
@@ -14,7 +14,7 @@ import { Effect } from '../../effect.js';
14
14
  *
15
15
  * @throws If the password module options or Scrypt configuration fail to initialize.
16
16
  */
17
- declare const hashPassword: (password: string, _salt?: string | undefined) => Effect.Effect<string, import("@withstudiocms/effect/scrypt").ScryptError, never>, verifyPasswordStrength: (pass: string) => Effect.Effect<string | true, import("@withstudiocms/auth-kit/errors").PasswordError | import("@withstudiocms/auth-kit/errors").CheckIfUnsafeError | import("@effect/platform/HttpClientError").ResponseError, never>;
17
+ declare const hashPassword: (password: string, _salt?: string | undefined) => Effect.Effect<string, import("effectify/scrypt").ScryptError, never>, verifyPasswordStrength: (pass: string) => Effect.Effect<string | true, import("@withstudiocms/auth-kit/errors").PasswordError | import("@withstudiocms/auth-kit/errors").CheckIfUnsafeError | import("@effect/platform/HttpClientError").ResponseError, never>;
18
18
  declare const getCheckers: Effect.Effect<{
19
19
  username: (val: string) => Effect.Effect<boolean, import("@withstudiocms/auth-kit/errors").CheckIfUnsafeError, never>;
20
20
  password: (val: string) => Effect.Effect<boolean, import("@withstudiocms/auth-kit/errors").CheckIfUnsafeError, never>;
@@ -1,16 +1,17 @@
1
+ import { styleText } from "node:util";
1
2
  import { makeScrypt, Password } from "@withstudiocms/auth-kit";
2
3
  import { PasswordModOptions } from "@withstudiocms/auth-kit/config";
3
4
  import { CheckIfUnsafe } from "@withstudiocms/auth-kit/utils/unsafeCheck";
4
- import chalk from "chalk";
5
5
  import dotenv from "dotenv";
6
6
  import { Effect, runEffect } from "../../effect.js";
7
7
  dotenv.config({ quiet: true });
8
8
  let { CMS_ENCRYPTION_KEY } = process.env;
9
9
  if (!CMS_ENCRYPTION_KEY) {
10
10
  console.warn(
11
- `${chalk.yellow.bold("Warning:")} ${chalk.yellow(
11
+ `${styleText(["yellow", "bold"], "Warning:")} ${styleText(
12
+ "yellow",
12
13
  "CMS_ENCRYPTION_KEY is not set... "
13
- )}${chalk.gray("Some commands may be disabled.")}`
14
+ )}${styleText("gray", "Some commands may be disabled.")}`
14
15
  );
15
16
  CMS_ENCRYPTION_KEY = "+URKVIiIM1kmG6g9Znb10g==";
16
17
  }