studiocms 0.1.0-beta.10

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 (582) hide show
  1. package/CHANGELOG.md +501 -0
  2. package/LICENSE +21 -0
  3. package/README.md +59 -0
  4. package/custom-renderers/index.ts +4 -0
  5. package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactRenderer.tsx +8 -0
  6. package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactWrapper.astro +13 -0
  7. package/custom-renderers/markdocRenderers/markdocReact.ts +56 -0
  8. package/dist/auth.d.js +0 -0
  9. package/dist/auth.d.ts +397 -0
  10. package/dist/cli/cmds/get-turso.d.ts +1 -0
  11. package/dist/cli/cmds/get-turso.js +10 -0
  12. package/dist/cli/cmds/init/index.d.ts +4 -0
  13. package/dist/cli/cmds/init/index.js +52 -0
  14. package/dist/cli/cmds/init/steps/data/studiocmsEnv.d.ts +3 -0
  15. package/dist/cli/cmds/init/steps/data/studiocmsEnv.js +71 -0
  16. package/dist/cli/cmds/init/steps/envBuilder.d.ts +21 -0
  17. package/dist/cli/cmds/init/steps/envBuilder.js +368 -0
  18. package/dist/cli/cmds/init/steps/nextSteps.d.ts +2 -0
  19. package/dist/cli/cmds/init/steps/nextSteps.js +38 -0
  20. package/dist/cli/cmds/init.d.ts +1 -0
  21. package/dist/cli/cmds/init.js +4 -0
  22. package/dist/cli/index.d.ts +1 -0
  23. package/dist/cli/index.js +9 -0
  24. package/dist/cli/lib/commander.d.ts +39 -0
  25. package/dist/cli/lib/commander.js +87 -0
  26. package/dist/cli/lib/context.d.ts +28 -0
  27. package/dist/cli/lib/context.js +55 -0
  28. package/dist/cli/lib/pathUtil.d.ts +5 -0
  29. package/dist/cli/lib/pathUtil.js +14 -0
  30. package/dist/cli/lib/runExternal.d.ts +20 -0
  31. package/dist/cli/lib/runExternal.js +40 -0
  32. package/dist/cli/lib/seasonal.d.ts +5 -0
  33. package/dist/cli/lib/seasonal.js +88 -0
  34. package/dist/cli/lib/utils.d.ts +55 -0
  35. package/dist/cli/lib/utils.js +310 -0
  36. package/dist/cli/shared/intro.d.ts +2 -0
  37. package/dist/cli/shared/intro.js +24 -0
  38. package/dist/components/DefaultEditor.astro +138 -0
  39. package/dist/components/FormattedDate.astro +12 -0
  40. package/dist/components/Generator.astro +7 -0
  41. package/dist/components/Renderer.astro +13 -0
  42. package/dist/components/auth/OAuthButton.astro +21 -0
  43. package/dist/components/auth/OAuthButtonStack.astro +36 -0
  44. package/dist/components/auth/StaticAuthCheck.astro +20 -0
  45. package/dist/components/auth/StudioCMSLogoSVG.astro +13 -0
  46. package/dist/components/auth/oAuthButtonProviders.d.ts +8 -0
  47. package/dist/components/auth/oAuthButtonProviders.js +35 -0
  48. package/dist/components/dashboard/AstroCodeDiffsScript.astro +25 -0
  49. package/dist/components/dashboard/BaseHead.astro +41 -0
  50. package/dist/components/dashboard/Code.astro +23 -0
  51. package/dist/components/dashboard/DashboardPageHeader.astro +77 -0
  52. package/dist/components/dashboard/DoubleSidebar.astro +26 -0
  53. package/dist/components/dashboard/Footer.astro +16 -0
  54. package/dist/components/dashboard/MainSidebarContent.astro +317 -0
  55. package/dist/components/dashboard/PageHeader.astro +52 -0
  56. package/dist/components/dashboard/SidebarLink.astro +61 -0
  57. package/dist/components/dashboard/SidebarModals.astro +6 -0
  58. package/dist/components/dashboard/SidebarPluginLink.astro +45 -0
  59. package/dist/components/dashboard/SingleSidebar.astro +23 -0
  60. package/dist/components/dashboard/StudioCMSLogo.astro +12 -0
  61. package/dist/components/dashboard/ThemeManager.astro +53 -0
  62. package/dist/components/dashboard/component-scripts/TinyMDE.astro +6 -0
  63. package/dist/components/dashboard/component-scripts/dateTimeListener.d.ts +1 -0
  64. package/dist/components/dashboard/component-scripts/dateTimeListener.js +14 -0
  65. package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.d.ts +1 -0
  66. package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.js +12 -0
  67. package/dist/components/dashboard/component-scripts/makeClientRoutable.d.ts +1 -0
  68. package/dist/components/dashboard/component-scripts/makeClientRoutable.js +9 -0
  69. package/dist/components/dashboard/component-scripts/timeAgo.d.ts +1 -0
  70. package/dist/components/dashboard/component-scripts/timeAgo.js +21 -0
  71. package/dist/components/dashboard/islands/LoginChecker.astro +52 -0
  72. package/dist/components/dashboard/islands/configuration/ConfigForm.astro +317 -0
  73. package/dist/components/dashboard/islands/configuration/LightVsDark.astro +67 -0
  74. package/dist/components/dashboard/islands/content-mgmt/CreateFolder.astro +118 -0
  75. package/dist/components/dashboard/islands/content-mgmt/CreatePage.astro +380 -0
  76. package/dist/components/dashboard/islands/content-mgmt/EditFolder.astro +138 -0
  77. package/dist/components/dashboard/islands/content-mgmt/EditPage.astro +432 -0
  78. package/dist/components/dashboard/islands/content-mgmt/InnerSidebarElement.astro +299 -0
  79. package/dist/components/dashboard/islands/content-mgmt/PageHeader.astro +455 -0
  80. package/dist/components/dashboard/islands/content-mgmt/PageList.astro +49 -0
  81. package/dist/components/dashboard/islands/content-mgmt/PluginFields.astro +29 -0
  82. package/dist/components/dashboard/islands/content-mgmt/TreeRenderer.astro +75 -0
  83. package/dist/components/dashboard/islands/content-mgmt/TreeSidebarFolder.astro +53 -0
  84. package/dist/components/dashboard/islands/content-mgmt/TreeSidebarLink.astro +51 -0
  85. package/dist/components/dashboard/islands/content-mgmt/runtime.d.ts +10 -0
  86. package/dist/components/dashboard/islands/content-mgmt/runtime.js +33 -0
  87. package/dist/components/dashboard/islands/content-mgmt/shared.d.ts +27 -0
  88. package/dist/components/dashboard/islands/content-mgmt/shared.js +31 -0
  89. package/dist/components/dashboard/islands/dashboard/DashboardGrid.astro +39 -0
  90. package/dist/components/dashboard/islands/dashboard/DashboardGridItem.astro +34 -0
  91. package/dist/components/dashboard/islands/dashboard/Test.astro +5 -0
  92. package/dist/components/dashboard/islands/dashboard/UserName.astro +6 -0
  93. package/dist/components/dashboard/islands/dashboard/shared.d.ts +2 -0
  94. package/dist/components/dashboard/islands/dashboard/shared.js +0 -0
  95. package/dist/components/dashboard/islands/plugins/SettingsRenderer.astro +29 -0
  96. package/dist/components/dashboard/islands/profile/APITokens.astro +306 -0
  97. package/dist/components/dashboard/islands/profile/BasicInfo.astro +140 -0
  98. package/dist/components/dashboard/islands/profile/BasicInfoFallback.astro +43 -0
  99. package/dist/components/dashboard/islands/profile/SocialSignin.astro +181 -0
  100. package/dist/components/dashboard/islands/profile/SocialSigninFallback.astro +83 -0
  101. package/dist/components/dashboard/islands/profile/UpdatePassword.astro +166 -0
  102. package/dist/components/dashboard/islands/profile/UpdatePasswordFallback.astro +47 -0
  103. package/dist/components/dashboard/islands/profile/oAuthButtonProviders.d.ts +8 -0
  104. package/dist/components/dashboard/islands/profile/oAuthButtonProviders.js +35 -0
  105. package/dist/components/dashboard/islands/sidebar/UserAccount.astro +23 -0
  106. package/dist/components/dashboard/islands/sidebar/VersionCheck.astro +127 -0
  107. package/dist/components/dashboard/islands/sidebar/VersionCheckChangelog.astro +107 -0
  108. package/dist/components/dashboard/islands/user-mgmt/InnerSidebarElement.astro +348 -0
  109. package/dist/components/dashboard/islands/user-mgmt/RankCheck.astro +49 -0
  110. package/dist/components/dashboard/islands/user-mgmt/SocialSignin.astro +109 -0
  111. package/dist/components/dashboard/islands/user-mgmt/UserListItem.astro +60 -0
  112. package/dist/components/dashboard/sidebar-modals/UserManagementModals.astro +103 -0
  113. package/dist/components/dashboard/sidebar-modals/VersionModal.astro +267 -0
  114. package/dist/components/dashboard/sidebarConfig.d.ts +32 -0
  115. package/dist/components/dashboard/sidebarConfig.js +88 -0
  116. package/dist/components/default-grid-items/Recently-created-pages.astro +91 -0
  117. package/dist/components/default-grid-items/Recently-signed-up.astro +71 -0
  118. package/dist/components/default-grid-items/Recently-updated-pages.astro +96 -0
  119. package/dist/components/default-grid-items/Totals.astro +107 -0
  120. package/dist/components/default-grid-items/utils.d.ts +17 -0
  121. package/dist/components/default-grid-items/utils.js +26 -0
  122. package/dist/components/image/CustomImage.astro +90 -0
  123. package/dist/components/user-quick-tools.d.ts +42 -0
  124. package/dist/components/user-quick-tools.js +312 -0
  125. package/dist/config.d.ts +3 -0
  126. package/dist/config.js +4 -0
  127. package/dist/consts.d.ts +61 -0
  128. package/dist/consts.js +39 -0
  129. package/dist/core.d.js +0 -0
  130. package/dist/core.d.ts +226 -0
  131. package/dist/db/config.d.ts +4 -0
  132. package/dist/db/config.js +6 -0
  133. package/dist/db/tables.js +168 -0
  134. package/dist/errors.d.ts +19 -0
  135. package/dist/errors.js +11 -0
  136. package/dist/index.d.ts +152 -0
  137. package/dist/index.js +1179 -0
  138. package/dist/layouts/auth/AuthLayout.astro +74 -0
  139. package/dist/layouts/auth/FallbackCanvas.astro +123 -0
  140. package/dist/layouts/auth/ThemeManager.astro +53 -0
  141. package/dist/layouts/auth/ThreeCanvasLoader.astro +18 -0
  142. package/dist/layouts/dashboard/Layout.astro +64 -0
  143. package/dist/lib/auth/encryption.d.ts +30 -0
  144. package/dist/lib/auth/encryption.js +39 -0
  145. package/dist/lib/auth/password.d.ts +27 -0
  146. package/dist/lib/auth/password.js +42 -0
  147. package/dist/lib/auth/rate-limit.d.ts +136 -0
  148. package/dist/lib/auth/rate-limit.js +214 -0
  149. package/dist/lib/auth/session.d.ts +85 -0
  150. package/dist/lib/auth/session.js +93 -0
  151. package/dist/lib/auth/types.d.ts +83 -0
  152. package/dist/lib/auth/types.js +0 -0
  153. package/dist/lib/auth/user.d.ts +148 -0
  154. package/dist/lib/auth/user.js +133 -0
  155. package/dist/lib/dashboardGrid.d.ts +119 -0
  156. package/dist/lib/dashboardGrid.js +0 -0
  157. package/dist/lib/dynamic-sitemap/index.d.ts +42 -0
  158. package/dist/lib/dynamic-sitemap/index.js +45 -0
  159. package/dist/lib/dynamic-sitemap/sitemap-index.xml.d.ts +8 -0
  160. package/dist/lib/dynamic-sitemap/sitemap-index.xml.js +20 -0
  161. package/dist/lib/dynamic-sitemap/sitemap-index.xml.ts +45 -0
  162. package/dist/lib/head.d.ts +9 -0
  163. package/dist/lib/head.js +65 -0
  164. package/dist/lib/headDefaults.d.ts +18 -0
  165. package/dist/lib/headDefaults.js +75 -0
  166. package/dist/lib/i18n/LanguageSelector.astro +114 -0
  167. package/dist/lib/i18n/client.d.ts +591 -0
  168. package/dist/lib/i18n/client.js +83 -0
  169. package/dist/lib/i18n/config.d.ts +16 -0
  170. package/dist/lib/i18n/config.js +8 -0
  171. package/dist/lib/i18n/index.d.ts +578 -0
  172. package/dist/lib/i18n/index.js +63 -0
  173. package/dist/lib/i18n/translations/de.json +64 -0
  174. package/dist/lib/i18n/translations/en-us.json +238 -0
  175. package/dist/lib/i18n/translations/es.json +64 -0
  176. package/dist/lib/i18n/translations/fr.json +64 -0
  177. package/dist/lib/index.d.ts +7 -0
  178. package/dist/lib/index.js +7 -0
  179. package/dist/lib/jsonUtils.d.ts +2 -0
  180. package/dist/lib/jsonUtils.js +11 -0
  181. package/dist/lib/makeAPIRoute.d.ts +45 -0
  182. package/dist/lib/makeAPIRoute.js +16 -0
  183. package/dist/lib/makePublicRoute.d.ts +7 -0
  184. package/dist/lib/makePublicRoute.js +6 -0
  185. package/dist/lib/pathGenerators.d.ts +20 -0
  186. package/dist/lib/pathGenerators.js +66 -0
  187. package/dist/lib/plugins/dashboard-pages.d.ts +71 -0
  188. package/dist/lib/plugins/dashboard-pages.js +11 -0
  189. package/dist/lib/plugins/frontend-navigation.d.ts +18 -0
  190. package/dist/lib/plugins/frontend-navigation.js +39 -0
  191. package/dist/lib/plugins/index.d.ts +2 -0
  192. package/dist/lib/plugins/index.js +2 -0
  193. package/dist/lib/removeLeadingTrailingSlashes.d.ts +7 -0
  194. package/dist/lib/removeLeadingTrailingSlashes.js +13 -0
  195. package/dist/lib/renderer/astro-remark.d.ts +13 -0
  196. package/dist/lib/renderer/astro-remark.js +11 -0
  197. package/dist/lib/renderer/contentRenderer.d.ts +13 -0
  198. package/dist/lib/renderer/contentRenderer.js +31 -0
  199. package/dist/lib/renderer/errors.d.ts +5 -0
  200. package/dist/lib/renderer/errors.js +25 -0
  201. package/dist/lib/renderer/markdoc-renderers/markdocHTML.d.ts +3 -0
  202. package/dist/lib/renderer/markdoc-renderers/markdocHTML.js +14 -0
  203. package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.d.ts +3 -0
  204. package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.js +14 -0
  205. package/dist/lib/renderer/markdoc.d.ts +11 -0
  206. package/dist/lib/renderer/markdoc.js +28 -0
  207. package/dist/lib/renderer/mdx.d.ts +10 -0
  208. package/dist/lib/renderer/mdx.js +37 -0
  209. package/dist/lib/renderer/runtime.d.ts +8 -0
  210. package/dist/lib/renderer/runtime.js +30 -0
  211. package/dist/lib/renderer/shared.d.ts +15 -0
  212. package/dist/lib/renderer/shared.js +13 -0
  213. package/dist/lib/renderer/studiocms.d.ts +11 -0
  214. package/dist/lib/renderer/studiocms.js +22 -0
  215. package/dist/lib/renderer/types.d.ts +12 -0
  216. package/dist/lib/renderer/types.js +0 -0
  217. package/dist/lib/robots/core.d.ts +24 -0
  218. package/dist/lib/robots/core.js +187 -0
  219. package/dist/lib/robots/index.d.ts +11 -0
  220. package/dist/lib/robots/index.js +47 -0
  221. package/dist/lib/robots/types.d.ts +185 -0
  222. package/dist/lib/robots/types.js +0 -0
  223. package/dist/lib/robots/utils.d.ts +22 -0
  224. package/dist/lib/robots/utils.js +22 -0
  225. package/dist/lib/routeMap.d.ts +257 -0
  226. package/dist/lib/routeMap.js +249 -0
  227. package/dist/lib/urlGen.d.ts +11 -0
  228. package/dist/lib/urlGen.js +26 -0
  229. package/dist/lib/webVitals/checkForWebVitalsPlugin.d.ts +18 -0
  230. package/dist/lib/webVitals/checkForWebVitalsPlugin.js +82 -0
  231. package/dist/lib/webVitals/consts.d.ts +240 -0
  232. package/dist/lib/webVitals/consts.js +40 -0
  233. package/dist/lib/webVitals/dashboard-grid-items/CoreVitals.astro +66 -0
  234. package/dist/lib/webVitals/dashboard-grid-items/MetricCard.astro +24 -0
  235. package/dist/lib/webVitals/dashboard-grid-items/SummaryCard.astro +56 -0
  236. package/dist/lib/webVitals/dashboard-grid-items/metric.css +103 -0
  237. package/dist/lib/webVitals/dashboard-grid-items/shared.d.ts +29 -0
  238. package/dist/lib/webVitals/dashboard-grid-items/shared.js +35 -0
  239. package/dist/lib/webVitals/pages/analytics/body.astro +186 -0
  240. package/dist/lib/webVitals/pages/analytics/header.astro +42 -0
  241. package/dist/lib/webVitals/schemas.d.ts +78 -0
  242. package/dist/lib/webVitals/schemas.js +37 -0
  243. package/dist/lib/webVitals/types.d.ts +156 -0
  244. package/dist/lib/webVitals/types.js +0 -0
  245. package/dist/lib/webVitals/utils/buildDataObject.d.ts +8 -0
  246. package/dist/lib/webVitals/utils/buildDataObject.js +28 -0
  247. package/dist/lib/webVitals/utils/buildPageRouteDataObject.d.ts +15 -0
  248. package/dist/lib/webVitals/utils/buildPageRouteDataObject.js +70 -0
  249. package/dist/lib/webVitals/utils/buildPerPageDataObject.d.ts +23 -0
  250. package/dist/lib/webVitals/utils/buildPerPageDataObject.js +209 -0
  251. package/dist/lib/webVitals/utils/checkDate.d.ts +5 -0
  252. package/dist/lib/webVitals/utils/checkDate.js +19 -0
  253. package/dist/lib/webVitals/utils/webVitalsUtils.d.ts +24 -0
  254. package/dist/lib/webVitals/utils/webVitalsUtils.js +234 -0
  255. package/dist/lib/webVitals/webVital.d.ts +20 -0
  256. package/dist/lib/webVitals/webVital.js +40 -0
  257. package/dist/lib/webVitals/webVitalsRouteSummary.d.ts +19 -0
  258. package/dist/lib/webVitals/webVitalsRouteSummary.js +59 -0
  259. package/dist/lib/webVitals/webVitalsSummary.d.ts +19 -0
  260. package/dist/lib/webVitals/webVitalsSummary.js +49 -0
  261. package/dist/plugins.d.ts +2 -0
  262. package/dist/plugins.js +6 -0
  263. package/dist/renderer.d.js +0 -0
  264. package/dist/renderer.d.ts +23 -0
  265. package/dist/routes/api/render.astro +25 -0
  266. package/dist/routes/auth/api/auth0/callback.d.ts +4 -0
  267. package/dist/routes/auth/api/auth0/callback.js +117 -0
  268. package/dist/routes/auth/api/auth0/index.d.ts +4 -0
  269. package/dist/routes/auth/api/auth0/index.js +36 -0
  270. package/dist/routes/auth/api/auth0/shared.d.ts +13 -0
  271. package/dist/routes/auth/api/auth0/shared.js +24 -0
  272. package/dist/routes/auth/api/discord/callback.d.ts +4 -0
  273. package/dist/routes/auth/api/discord/callback.js +112 -0
  274. package/dist/routes/auth/api/discord/index.d.ts +4 -0
  275. package/dist/routes/auth/api/discord/index.js +36 -0
  276. package/dist/routes/auth/api/discord/shared.d.ts +12 -0
  277. package/dist/routes/auth/api/discord/shared.js +17 -0
  278. package/dist/routes/auth/api/github/callback.d.ts +4 -0
  279. package/dist/routes/auth/api/github/callback.js +112 -0
  280. package/dist/routes/auth/api/github/index.d.ts +4 -0
  281. package/dist/routes/auth/api/github/index.js +36 -0
  282. package/dist/routes/auth/api/github/shared.d.ts +13 -0
  283. package/dist/routes/auth/api/github/shared.js +14 -0
  284. package/dist/routes/auth/api/google/callback.d.ts +4 -0
  285. package/dist/routes/auth/api/google/callback.js +115 -0
  286. package/dist/routes/auth/api/google/index.d.ts +4 -0
  287. package/dist/routes/auth/api/google/index.js +38 -0
  288. package/dist/routes/auth/api/google/shared.d.ts +12 -0
  289. package/dist/routes/auth/api/google/shared.js +19 -0
  290. package/dist/routes/auth/api/login.d.ts +4 -0
  291. package/dist/routes/auth/api/login.js +46 -0
  292. package/dist/routes/auth/api/logout.d.ts +5 -0
  293. package/dist/routes/auth/api/logout.js +55 -0
  294. package/dist/routes/auth/api/register.d.ts +4 -0
  295. package/dist/routes/auth/api/register.js +64 -0
  296. package/dist/routes/auth/api/shared.d.ts +2 -0
  297. package/dist/routes/auth/api/shared.js +21 -0
  298. package/dist/routes/auth/login.astro +118 -0
  299. package/dist/routes/auth/logout.astro +28 -0
  300. package/dist/routes/auth/signup.astro +124 -0
  301. package/dist/routes/dashboard/[...pluginPage].astro +88 -0
  302. package/dist/routes/dashboard/configuration.astro +61 -0
  303. package/dist/routes/dashboard/content-management/createfolder.astro +83 -0
  304. package/dist/routes/dashboard/content-management/createpage.astro +86 -0
  305. package/dist/routes/dashboard/content-management/diff.astro +135 -0
  306. package/dist/routes/dashboard/content-management/editfolder.astro +67 -0
  307. package/dist/routes/dashboard/content-management/editpage.astro +71 -0
  308. package/dist/routes/dashboard/content-management/index.astro +91 -0
  309. package/dist/routes/dashboard/index.astro +56 -0
  310. package/dist/routes/dashboard/password-reset.astro +206 -0
  311. package/dist/routes/dashboard/plugins/[plugin].astro +104 -0
  312. package/dist/routes/dashboard/profile.astro +87 -0
  313. package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.d.ts +5 -0
  314. package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.js +90 -0
  315. package/dist/routes/dashboard/studiocms_api/dashboard/config.d.ts +4 -0
  316. package/dist/routes/dashboard/studiocms_api/dashboard/config.js +63 -0
  317. package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.d.ts +6 -0
  318. package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.js +121 -0
  319. package/dist/routes/dashboard/studiocms_api/dashboard/content/page.d.ts +6 -0
  320. package/dist/routes/dashboard/studiocms_api/dashboard/content/page.js +258 -0
  321. package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.d.ts +4 -0
  322. package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.js +59 -0
  323. package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.d.ts +4 -0
  324. package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.js +105 -0
  325. package/dist/routes/dashboard/studiocms_api/dashboard/create-user.d.ts +4 -0
  326. package/dist/routes/dashboard/studiocms_api/dashboard/create-user.js +100 -0
  327. package/dist/routes/dashboard/studiocms_api/dashboard/partials/Editor.astro +61 -0
  328. package/dist/routes/dashboard/studiocms_api/dashboard/partials/LiveRender.astro +30 -0
  329. package/dist/routes/dashboard/studiocms_api/dashboard/partials/UserListItems.astro +39 -0
  330. package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].d.ts +2 -0
  331. package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].js +32 -0
  332. package/dist/routes/dashboard/studiocms_api/dashboard/profile.d.ts +4 -0
  333. package/dist/routes/dashboard/studiocms_api/dashboard/profile.js +130 -0
  334. package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.d.ts +4 -0
  335. package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.js +105 -0
  336. package/dist/routes/dashboard/studiocms_api/dashboard/search-list.d.ts +4 -0
  337. package/dist/routes/dashboard/studiocms_api/dashboard/search-list.js +55 -0
  338. package/dist/routes/dashboard/studiocms_api/dashboard/users.d.ts +5 -0
  339. package/dist/routes/dashboard/studiocms_api/dashboard/users.js +92 -0
  340. package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.d.ts +2 -0
  341. package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.js +72 -0
  342. package/dist/routes/dashboard/user-management/edit.astro +631 -0
  343. package/dist/routes/dashboard/user-management/index.astro +103 -0
  344. package/dist/routes/error-pages/404.astro +66 -0
  345. package/dist/routes/firstTimeSetupRoutes/1-start.astro +253 -0
  346. package/dist/routes/firstTimeSetupRoutes/2-next.astro +208 -0
  347. package/dist/routes/firstTimeSetupRoutes/3-done.astro +95 -0
  348. package/dist/routes/firstTimeSetupRoutes/api/step-1.d.ts +2 -0
  349. package/dist/routes/firstTimeSetupRoutes/api/step-1.js +126 -0
  350. package/dist/routes/firstTimeSetupRoutes/api/step-2.d.ts +2 -0
  351. package/dist/routes/firstTimeSetupRoutes/api/step-2.js +110 -0
  352. package/dist/routes/firstTimeSetupRoutes/components/Layout.astro +41 -0
  353. package/dist/routes/firstTimeSetupRoutes/components/PageHeader.astro +60 -0
  354. package/dist/routes/firstTimeSetupRoutes/components/TabItem.astro +44 -0
  355. package/dist/routes/firstTimeSetupRoutes/components/Tabs.astro +170 -0
  356. package/dist/routes/firstTimeSetupRoutes/snippets/opt1-astro.config.diff +14 -0
  357. package/dist/routes/firstTimeSetupRoutes/snippets/opt2-astro.config.diff +9 -0
  358. package/dist/routes/firstTimeSetupRoutes/snippets/opt2-studiocms.config.diff +5 -0
  359. package/dist/routes/rest/utils/auth-token.d.ts +17 -0
  360. package/dist/routes/rest/utils/auth-token.js +31 -0
  361. package/dist/routes/rest/v1/folders/[id].d.ts +6 -0
  362. package/dist/routes/rest/v1/folders/[id].js +106 -0
  363. package/dist/routes/rest/v1/folders/index.d.ts +5 -0
  364. package/dist/routes/rest/v1/folders/index.js +88 -0
  365. package/dist/routes/rest/v1/pages/[id]/history/[diffid].d.ts +4 -0
  366. package/dist/routes/rest/v1/pages/[id]/history/[diffid].js +55 -0
  367. package/dist/routes/rest/v1/pages/[id]/history/index.d.ts +4 -0
  368. package/dist/routes/rest/v1/pages/[id]/history/index.js +61 -0
  369. package/dist/routes/rest/v1/pages/[id]/index.d.ts +6 -0
  370. package/dist/routes/rest/v1/pages/[id]/index.js +165 -0
  371. package/dist/routes/rest/v1/pages/index.d.ts +5 -0
  372. package/dist/routes/rest/v1/pages/index.js +113 -0
  373. package/dist/routes/rest/v1/public/folders/[id].d.ts +4 -0
  374. package/dist/routes/rest/v1/public/folders/[id].js +43 -0
  375. package/dist/routes/rest/v1/public/folders/index.d.ts +4 -0
  376. package/dist/routes/rest/v1/public/folders/index.js +49 -0
  377. package/dist/routes/rest/v1/public/pages/[id].d.ts +4 -0
  378. package/dist/routes/rest/v1/public/pages/[id].js +46 -0
  379. package/dist/routes/rest/v1/public/pages/index.d.ts +4 -0
  380. package/dist/routes/rest/v1/public/pages/index.js +61 -0
  381. package/dist/routes/rest/v1/settings/index.d.ts +5 -0
  382. package/dist/routes/rest/v1/settings/index.js +75 -0
  383. package/dist/routes/rest/v1/users/[id].d.ts +6 -0
  384. package/dist/routes/rest/v1/users/[id].js +212 -0
  385. package/dist/routes/rest/v1/users/index.d.ts +5 -0
  386. package/dist/routes/rest/v1/users/index.js +138 -0
  387. package/dist/routes/sdk/fallback-list-pages.json.d.ts +2 -0
  388. package/dist/routes/sdk/fallback-list-pages.json.js +19 -0
  389. package/dist/routes/sdk/fallback-list-pages.json.ts +22 -0
  390. package/dist/routes/sdk/full-changelog.json.d.ts +16 -0
  391. package/dist/routes/sdk/full-changelog.json.js +170 -0
  392. package/dist/routes/sdk/full-changelog.json.ts +224 -0
  393. package/dist/routes/sdk/list-pages.d.ts +4 -0
  394. package/dist/routes/sdk/list-pages.js +34 -0
  395. package/dist/routes/sdk/update-latest-version-cache.d.ts +4 -0
  396. package/dist/routes/sdk/update-latest-version-cache.js +41 -0
  397. package/dist/runtime/AstroComponentProxy.d.ts +29 -0
  398. package/dist/runtime/AstroComponentProxy.js +47 -0
  399. package/dist/runtime/decoder/decode-codepoint.d.ts +18 -0
  400. package/dist/runtime/decoder/decode-codepoint.js +58 -0
  401. package/dist/runtime/decoder/decode-data-html.d.ts +1 -0
  402. package/dist/runtime/decoder/decode-data-html.js +7 -0
  403. package/dist/runtime/decoder/decode-data-xml.d.ts +1 -0
  404. package/dist/runtime/decoder/decode-data-xml.js +7 -0
  405. package/dist/runtime/decoder/index.d.ts +34 -0
  406. package/dist/runtime/decoder/index.js +18 -0
  407. package/dist/runtime/decoder/util.d.ts +208 -0
  408. package/dist/runtime/decoder/util.js +415 -0
  409. package/dist/schemas/config/auth.d.ts +175 -0
  410. package/dist/schemas/config/auth.js +65 -0
  411. package/dist/schemas/config/componentoverrides.d.ts +17 -0
  412. package/dist/schemas/config/componentoverrides.js +14 -0
  413. package/dist/schemas/config/dashboard.d.ts +154 -0
  414. package/dist/schemas/config/dashboard.js +59 -0
  415. package/dist/schemas/config/defaultFrontend.d.ts +125 -0
  416. package/dist/schemas/config/defaultFrontend.js +57 -0
  417. package/dist/schemas/config/developer.d.ts +15 -0
  418. package/dist/schemas/config/developer.js +14 -0
  419. package/dist/schemas/config/imageService.d.ts +13 -0
  420. package/dist/schemas/config/imageService.js +12 -0
  421. package/dist/schemas/config/index.d.ts +1153 -0
  422. package/dist/schemas/config/index.js +95 -0
  423. package/dist/schemas/config/integrations.d.ts +14 -0
  424. package/dist/schemas/config/integrations.js +12 -0
  425. package/dist/schemas/config/markdoc.d.ts +172 -0
  426. package/dist/schemas/config/markdoc.js +68 -0
  427. package/dist/schemas/config/mdx.d.ts +455 -0
  428. package/dist/schemas/config/mdx.js +71 -0
  429. package/dist/schemas/config/rendererConfig.d.ts +659 -0
  430. package/dist/schemas/config/rendererConfig.js +51 -0
  431. package/dist/schemas/config/sdk.d.ts +167 -0
  432. package/dist/schemas/config/sdk.js +85 -0
  433. package/dist/schemas/config/studiocms-markdown-remark.d.ts +292 -0
  434. package/dist/schemas/config/studiocms-markdown-remark.js +63 -0
  435. package/dist/schemas/index.d.ts +2 -0
  436. package/dist/schemas/index.js +2 -0
  437. package/dist/schemas/plugins/index.d.ts +7373 -0
  438. package/dist/schemas/plugins/index.js +192 -0
  439. package/dist/schemas/plugins/shared.d.ts +1752 -0
  440. package/dist/schemas/plugins/shared.js +221 -0
  441. package/dist/scripts/formListener.d.ts +16 -0
  442. package/dist/scripts/formListener.js +46 -0
  443. package/dist/scripts/three.d.ts +1 -0
  444. package/dist/scripts/three.js +278 -0
  445. package/dist/scripts/utils/fitModelToViewport.d.ts +8 -0
  446. package/dist/scripts/utils/fitModelToViewport.js +19 -0
  447. package/dist/sdk/StudioCMSVirtualCache.d.ts +283 -0
  448. package/dist/sdk/StudioCMSVirtualCache.js +685 -0
  449. package/dist/sdk/cache.d.ts +11 -0
  450. package/dist/sdk/cache.js +12 -0
  451. package/dist/sdk/core.d.ts +865 -0
  452. package/dist/sdk/core.js +1966 -0
  453. package/dist/sdk/errors.d.ts +21 -0
  454. package/dist/sdk/errors.js +11 -0
  455. package/dist/sdk/index.d.ts +371 -0
  456. package/dist/sdk/index.js +8 -0
  457. package/dist/sdk/lib/foldertree.d.ts +50 -0
  458. package/dist/sdk/lib/foldertree.js +123 -0
  459. package/dist/sdk/lib/generators.d.ts +30 -0
  460. package/dist/sdk/lib/generators.js +25 -0
  461. package/dist/sdk/lib/packages.d.ts +8 -0
  462. package/dist/sdk/lib/packages.js +14 -0
  463. package/dist/sdk/lib/parsers.d.ts +14 -0
  464. package/dist/sdk/lib/parsers.js +10 -0
  465. package/dist/sdk/lib/users.d.ts +19 -0
  466. package/dist/sdk/lib/users.js +26 -0
  467. package/dist/sdk/tables.d.ts +1198 -0
  468. package/dist/sdk/tables.js +55 -0
  469. package/dist/sdk/types/index.d.ts +175 -0
  470. package/dist/sdk/types/index.js +0 -0
  471. package/dist/sdk/types/tableDefs.d.ts +75 -0
  472. package/dist/sdk/types/tableDefs.js +0 -0
  473. package/dist/sdk/types/tsAlias.d.ts +155 -0
  474. package/dist/sdk/types/tsAlias.js +0 -0
  475. package/dist/sdk/utils/db.d.ts +5 -0
  476. package/dist/sdk/utils/db.js +15 -0
  477. package/dist/stubs/auth-lib.d.ts +2 -0
  478. package/dist/stubs/auth-lib.js +519 -0
  479. package/dist/stubs/auth-scripts.d.ts +2 -0
  480. package/dist/stubs/auth-scripts.js +29 -0
  481. package/dist/stubs/auth-utils.d.ts +2 -0
  482. package/dist/stubs/auth-utils.js +36 -0
  483. package/dist/stubs/changelog.d.ts +2 -0
  484. package/dist/stubs/changelog.js +16 -0
  485. package/dist/stubs/components.d.ts +2 -0
  486. package/dist/stubs/components.js +67 -0
  487. package/dist/stubs/core.d.ts +2 -0
  488. package/dist/stubs/core.js +49 -0
  489. package/dist/stubs/i18n-dts.d.ts +2 -0
  490. package/dist/stubs/i18n-dts.js +117 -0
  491. package/dist/stubs/images.d.ts +1 -0
  492. package/dist/stubs/images.js +30 -0
  493. package/dist/stubs/index.d.ts +1 -0
  494. package/dist/stubs/index.js +40 -0
  495. package/dist/stubs/lib.d.ts +2 -0
  496. package/dist/stubs/lib.js +123 -0
  497. package/dist/stubs/plugins.d.ts +2 -0
  498. package/dist/stubs/plugins.js +60 -0
  499. package/dist/stubs/proxy.d.ts +2 -0
  500. package/dist/stubs/proxy.js +40 -0
  501. package/dist/stubs/renderer-config.d.ts +2 -0
  502. package/dist/stubs/renderer-config.js +18 -0
  503. package/dist/stubs/renderer-markdownConfig.d.ts +2 -0
  504. package/dist/stubs/renderer-markdownConfig.js +17 -0
  505. package/dist/stubs/renderer.d.ts +2 -0
  506. package/dist/stubs/renderer.js +44 -0
  507. package/dist/stubs/sdk.d.ts +2 -0
  508. package/dist/stubs/sdk.js +202 -0
  509. package/dist/stubs/webVitals.d.ts +2 -0
  510. package/dist/stubs/webVitals.js +40 -0
  511. package/dist/styles/404.css +47 -0
  512. package/dist/styles/SyntaxFont.woff2 +0 -0
  513. package/dist/styles/authlayout.css +138 -0
  514. package/dist/styles/dashboard-base.css +493 -0
  515. package/dist/styles/dashboard-code.css +33 -0
  516. package/dist/styles/dashboard-diff.css +389 -0
  517. package/dist/styles/dashboard-tiny-mde.css +224 -0
  518. package/dist/styles/md-remark-callouts/github.css +56 -0
  519. package/dist/styles/md-remark-callouts/obsidian.css +66 -0
  520. package/dist/styles/md-remark-callouts/vitepress.css +58 -0
  521. package/dist/styles/md-remark-headings.css +48 -0
  522. package/dist/types.d.ts +43 -0
  523. package/dist/types.js +0 -0
  524. package/dist/utils/addAPIRoutes.d.ts +9 -0
  525. package/dist/utils/addAPIRoutes.js +33 -0
  526. package/dist/utils/addIntegrationArray.d.ts +24 -0
  527. package/dist/utils/addIntegrationArray.js +11 -0
  528. package/dist/utils/addIntegrationArrayWithCheck.d.ts +11 -0
  529. package/dist/utils/addIntegrationArrayWithCheck.js +24 -0
  530. package/dist/utils/astroConfigCheck.d.ts +8 -0
  531. package/dist/utils/astroConfigCheck.js +31 -0
  532. package/dist/utils/astroEnvConfig.d.ts +45 -0
  533. package/dist/utils/astroEnvConfig.js +9 -0
  534. package/dist/utils/authEnvCheck.d.ts +38 -0
  535. package/dist/utils/authEnvCheck.js +82 -0
  536. package/dist/utils/changelog.d.ts +1 -0
  537. package/dist/utils/changelog.js +53 -0
  538. package/dist/utils/changelogLoader.d.ts +15 -0
  539. package/dist/utils/changelogLoader.js +104 -0
  540. package/dist/utils/checkENV.d.ts +27 -0
  541. package/dist/utils/checkENV.js +115 -0
  542. package/dist/utils/configManager.d.ts +22 -0
  543. package/dist/utils/configManager.js +98 -0
  544. package/dist/utils/configResolver.d.ts +283 -0
  545. package/dist/utils/configResolver.js +105 -0
  546. package/dist/utils/defineStudioCMSConfig.d.ts +165 -0
  547. package/dist/utils/defineStudioCMSConfig.js +6 -0
  548. package/dist/utils/getLabelForPermissionLevel.d.ts +2 -0
  549. package/dist/utils/getLabelForPermissionLevel.js +17 -0
  550. package/dist/utils/injectRouteArray.d.ts +19 -0
  551. package/dist/utils/injectRouteArray.js +75 -0
  552. package/dist/utils/integrationLogger.d.ts +7 -0
  553. package/dist/utils/integrationLogger.js +18 -0
  554. package/dist/utils/integrations.d.ts +4 -0
  555. package/dist/utils/integrations.js +32 -0
  556. package/dist/utils/isDashboardRoute.d.ts +7 -0
  557. package/dist/utils/isDashboardRoute.js +10 -0
  558. package/dist/utils/loginBackgrounds/studiocms-blobs-dark.png +0 -0
  559. package/dist/utils/loginBackgrounds/studiocms-blobs-light.png +0 -0
  560. package/dist/utils/loginBackgrounds/studiocms-blocks-dark.png +0 -0
  561. package/dist/utils/loginBackgrounds/studiocms-blocks-light.png +0 -0
  562. package/dist/utils/loginBackgrounds/studiocms-curves-dark.png +0 -0
  563. package/dist/utils/loginBackgrounds/studiocms-curves-light.png +0 -0
  564. package/dist/utils/makePageTitle.d.ts +3 -0
  565. package/dist/utils/makePageTitle.js +7 -0
  566. package/dist/utils/pageListPackageLabel.d.ts +4 -0
  567. package/dist/utils/pageListPackageLabel.js +12 -0
  568. package/dist/utils/readJson.d.ts +1 -0
  569. package/dist/utils/readJson.js +7 -0
  570. package/dist/utils/routeBuilder.d.ts +18 -0
  571. package/dist/utils/routeBuilder.js +96 -0
  572. package/dist/utils/safeString.d.ts +1 -0
  573. package/dist/utils/safeString.js +6 -0
  574. package/dist/utils/simpleResponse.d.ts +1 -0
  575. package/dist/utils/simpleResponse.js +29 -0
  576. package/dist/utils/validImages.d.ts +13 -0
  577. package/dist/utils/validImages.js +39 -0
  578. package/dist/virtual.d.js +0 -0
  579. package/dist/virtual.d.ts +9 -0
  580. package/package.json +219 -0
  581. package/studiocms-cli.mjs +13 -0
  582. package/ui.d.ts +291 -0
@@ -0,0 +1,56 @@
1
+ import reactRenderer from '@astrojs/react/server.js';
2
+ import Markdoc, { type RenderableTreeNode } from '@markdoc/markdoc';
3
+ import { experimental_AstroContainer as AstroContainer } from 'astro/container';
4
+ import * as React from 'react';
5
+ import type { MarkdocRenderer } from 'studiocms/schemas/renderer';
6
+ import ReactWrapper from './markdocReact-components/MarkDocReactWrapper.astro';
7
+
8
+ /**
9
+ * MarkDoc React Components
10
+ *
11
+ * The React components to use for rendering the content
12
+ *
13
+ * @type {Object} - The React components to use for rendering the content
14
+ */
15
+ // biome-ignore lint/complexity/noBannedTypes: This is a valid use case for `any`
16
+ export type markdocReactComponents = {} | undefined;
17
+
18
+ /**
19
+ * MarkDoc Render for React
20
+ *
21
+ * @requires `@astrojs/react` - Astro React Integration
22
+ * @param components - The React components to use for rendering the content
23
+ * @returns The MarkDoc React Renderer for StudioCMS MarkDoc
24
+ */
25
+ export function markDocRenderReact(components?: markdocReactComponents): MarkdocRenderer {
26
+ return {
27
+ name: 'react',
28
+ renderer: async (content: RenderableTreeNode) => {
29
+ // Create an Astro container
30
+ const container = await AstroContainer.create();
31
+
32
+ // Add the Astro React server renderer
33
+ container.addServerRenderer({
34
+ name: '@astrojs/react',
35
+ renderer: reactRenderer,
36
+ });
37
+
38
+ // Add the Astro React client renderer
39
+ container.addClientRenderer({
40
+ name: '@astrojs/react',
41
+ entrypoint: '@astrojs/react/client.js',
42
+ });
43
+
44
+ // Return the rendered content
45
+ return await container.renderToString(ReactWrapper, {
46
+ props: {
47
+ content: Markdoc.renderers.react(content, React, {
48
+ components,
49
+ }),
50
+ },
51
+ });
52
+ },
53
+ };
54
+ }
55
+
56
+ export default markDocRenderReact;
package/dist/auth.d.js ADDED
File without changes
package/dist/auth.d.ts ADDED
@@ -0,0 +1,397 @@
1
+ declare module 'studiocms:auth/utils/authEnvCheck' {
2
+ export const authEnvCheck: typeof import('./utils/authEnvCheck.js').authEnvCheck;
3
+ }
4
+
5
+ declare module 'studiocms:auth/utils/validImages' {
6
+ export const validImages: typeof import('./utils/validImages.js').validImages;
7
+ }
8
+
9
+ declare module 'studiocms:auth/utils/getLabelForPermissionLevel' {
10
+ export const getLabelForPermissionLevel: typeof import(
11
+ './utils/getLabelForPermissionLevel.js'
12
+ ).getLabelForPermissionLevel;
13
+ }
14
+
15
+ declare module 'studiocms:auth/scripts/three' {
16
+ /**
17
+ * This module should be imported within a script tag.
18
+ * @example <script>import "studiocms:auth/scripts/three";</script>
19
+ */
20
+
21
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
22
+ const defaultExport: any;
23
+ export default defaultExport;
24
+ }
25
+
26
+ declare module 'studiocms:auth/scripts/formListener' {
27
+ export const formListener: typeof import('./scripts/formListener.js').formListener;
28
+ }
29
+
30
+ declare module 'studiocms:auth/lib/encryption' {
31
+ /**
32
+ * Encrypts the given data using AES-128-GCM encryption.
33
+ *
34
+ * @param data - The data to be encrypted as a Uint8Array.
35
+ * @returns The encrypted data as a Uint8Array, which includes the initialization vector (IV), the encrypted content, and the authentication tag.
36
+ */
37
+ export const encrypt: typeof import('./lib/auth/encryption.js').encrypt;
38
+ /**
39
+ * Encrypts a given string and returns the encrypted data as a Uint8Array.
40
+ *
41
+ * @param data - The string to be encrypted.
42
+ * @returns The encrypted data as a Uint8Array.
43
+ */
44
+ export const encryptString: typeof import('./lib/auth/encryption.js').encryptString;
45
+ /**
46
+ * Decrypts the given encrypted data using AES-128-GCM.
47
+ *
48
+ * @param encrypted - The encrypted data as a Uint8Array. The data must be at least 33 bytes long.
49
+ * @returns The decrypted data as a Uint8Array.
50
+ * @throws Will throw an error if the encrypted data is less than 33 bytes.
51
+ */
52
+ export const decrypt: typeof import('./lib/auth/encryption.js').decrypt;
53
+ /**
54
+ * Decrypts the given Uint8Array data and returns the result as a string.
55
+ *
56
+ * @param data - The encrypted data as a Uint8Array.
57
+ * @returns The decrypted data as a string.
58
+ */
59
+ export const decryptToString: typeof import('./lib/auth/encryption.js').decryptToString;
60
+ }
61
+
62
+ declare module 'studiocms:auth/lib/password' {
63
+ /**
64
+ * Hashes a plain text password using bcrypt.
65
+ *
66
+ * @param password - The plain text password to hash.
67
+ * @returns A promise that resolves to the hashed password.
68
+ */
69
+ export const hashPassword: typeof import('./lib/auth/password.js').hashPassword;
70
+ /**
71
+ * Verifies if the provided password matches the hashed password.
72
+ *
73
+ * @param hash - The hashed password to compare against.
74
+ * @param password - The plain text password to verify.
75
+ * @returns A promise that resolves to a boolean indicating whether the password matches the hash.
76
+ */
77
+ export const verifyPasswordHash: typeof import('./lib/auth/password.js').verifyPasswordHash;
78
+ /**
79
+ * Verifies the strength of a given password.
80
+ *
81
+ * The password must meet the following criteria:
82
+ * - Be between 6 and 255 characters in length.
83
+ * - Not be a known unsafe password.
84
+ * - Not be found in the pwned password database.
85
+ *
86
+ * @param password - The password to verify.
87
+ * @returns A promise that resolves to `true` if the password is strong/secure enough, otherwise `false`.
88
+ */
89
+ export const verifyPasswordStrength: typeof import(
90
+ './lib/auth/password.js'
91
+ ).verifyPasswordStrength;
92
+ }
93
+
94
+ declare module 'studiocms:auth/lib/rate-limit' {
95
+ /**
96
+ * Represents a token bucket that refills tokens at a specified interval.
97
+ * Used to control access to resources by limiting the number of tokens
98
+ * that can be consumed over time.
99
+ *
100
+ * @template _Key - The type of key used to identify individual token buckets.
101
+ */
102
+ export class RefillingTokenBucket<_Key> {
103
+ /**
104
+ * The maximum number of tokens that the bucket can hold.
105
+ * @type {number}
106
+ */
107
+ public max: number;
108
+ /**
109
+ * The interval in seconds at which tokens are refilled.
110
+ * @type {number}
111
+ */
112
+ public refillIntervalSeconds: number;
113
+ /**
114
+ * Initializes a new instance of the RefillingTokenBucket class.
115
+ *
116
+ * @param {number} max - The maximum number of tokens the bucket can hold.
117
+ * @param {number} refillIntervalSeconds - The refill interval in seconds.
118
+ */
119
+ constructor(max: number, refillIntervalSeconds: number);
120
+ /**
121
+ * A map storing individual token buckets associated with specific keys.
122
+ * @private
123
+ */
124
+ private storage;
125
+ /**
126
+ * Checks if there are enough tokens available in the bucket for the specified key and cost.
127
+ *
128
+ * @param {_Key} key - The key associated with the token bucket.
129
+ * @param {number} cost - The number of tokens required.
130
+ * @returns {boolean} - Returns 'true' if there are enough tokens; otherwise, 'false'.
131
+ */
132
+ public check(key: _Key, cost: number): boolean;
133
+ /**
134
+ * Consumes tokens from the bucket for the specified key and cost.
135
+ *
136
+ * @param {_Key} key - The key associated with the token bucket.
137
+ * @param {number} cost - The number of tokens to consume.
138
+ * @returns {boolean} - Returns 'true' if tokens were successfully consumed; otherwise, 'false'.
139
+ */
140
+ public consume(key: _Key, cost: number): boolean;
141
+ }
142
+
143
+ /**
144
+ * Represents a throttler that limits the frequency of actions performed with a specified key.
145
+ * Uses incremental timeouts to delay repeated actions.
146
+ *
147
+ * @template _Key - The type of key used to identify throttling counters.
148
+ */
149
+ export class Throttler<_Key> {
150
+ /**
151
+ * Array of timeout durations (in seconds) for each consecutive attempt.
152
+ * @type {number[]}
153
+ */
154
+ public timeoutSeconds: number[];
155
+ /**
156
+ * A map storing individual throttling counters associated with specific keys.
157
+ * @private
158
+ */
159
+ private storage;
160
+ /**
161
+ * Initializes a new instance of the Throttler class.
162
+ *
163
+ * @param {number[]} timeoutSeconds - Array of timeout durations in seconds for each consecutive attempt.
164
+ */
165
+ constructor(timeoutSeconds: number[]);
166
+ /**
167
+ * Attempts to consume an action for the specified key.
168
+ *
169
+ * @param {_Key} key - The key associated with the throttling counter.
170
+ * @returns {boolean} - Returns 'true' if the action is allowed; otherwise, 'false'.
171
+ */
172
+ public consume(key: _Key): boolean;
173
+ /**
174
+ * Resets the throttling counter for a specified key.
175
+ *
176
+ * @param {_Key} key - The key associated with the throttling counter to reset.
177
+ */
178
+ public reset(key: _Key): void;
179
+ }
180
+
181
+ /**
182
+ * Represents a token bucket with tokens that expire after a specified duration.
183
+ * Used to control access to resources with tokens that reset after expiration.
184
+ *
185
+ * @template _Key - The type of key used to identify individual token buckets.
186
+ */
187
+ export class ExpiringTokenBucket<_Key> {
188
+ /**
189
+ * The maximum number of tokens the bucket can hold.
190
+ * @type {number}
191
+ */
192
+ public max: number;
193
+ /**
194
+ * The duration (in seconds) after which tokens in the bucket expire.
195
+ * @type {number}
196
+ */
197
+ public expirationSeconds: number;
198
+ /**
199
+ * A map storing individual expiring token buckets associated with specific keys.
200
+ * @private
201
+ */
202
+ constructor(max: number, expirationSeconds: number);
203
+ /**
204
+ * Initializes a new instance of the ExpiringTokenBucket class.
205
+ *
206
+ * @param {number} max - The maximum number of tokens the bucket can hold.
207
+ * @param {number} expiresInSeconds - The duration in seconds after which tokens expire.
208
+ */
209
+ private storage;
210
+ /**
211
+ * Checks if there are enough tokens available in the bucket for the specified key and cost.
212
+ *
213
+ * @param {_Key} key - The key associated with the token bucket.
214
+ * @param {number} cost - The number of tokens required.
215
+ * @returns {boolean} - Returns 'true' if there are enough tokens or if the tokens have expired; otherwise, 'false'.
216
+ */
217
+ public check(key: _Key, cost: number): boolean;
218
+ /**
219
+ * Consumes tokens from the bucket for the specified key and cost.
220
+ *
221
+ * @param {_Key} key - The key associated with the token bucket.
222
+ * @param {number} cost - The number of tokens to consume.
223
+ * @returns {boolean} - Returns 'true' if tokens were successfully consumed; otherwise, 'false'.
224
+ */
225
+ public consume(key: _Key, cost: number): boolean;
226
+ /**
227
+ * Resets the token bucket for a specified key, removing all tokens.
228
+ *
229
+ * @param {_Key} key - The key associated with the token bucket to reset.
230
+ */
231
+ public reset(key: _Key): void;
232
+ }
233
+ }
234
+ declare module 'studiocms:auth/lib/session' {
235
+ /**
236
+ * Generates a new session token.
237
+ *
238
+ * @returns The generated session token as a string.
239
+ */
240
+ export const generateSessionToken: typeof import('./lib/auth/session.js').generateSessionToken;
241
+ /**
242
+ * The name of the cookie used to store the authentication session.
243
+ *
244
+ * @constant {string}
245
+ */
246
+ export const sessionCookieName: typeof import('./lib/auth/session.js').sessionCookieName;
247
+ /**
248
+ * Creates a new session for a user.
249
+ *
250
+ * @param token - The token used to create the session.
251
+ * @param userId - The ID of the user for whom the session is being created.
252
+ * @returns A promise that resolves to the created session object.
253
+ */
254
+ export const createSession: typeof import('./lib/auth/session.js').createSession;
255
+ /**
256
+ * Validates a session token by checking its existence and expiration in the database.
257
+ * If the session is valid but close to expiration, it extends the session expiration time.
258
+ * If the session is expired, it deletes the session from the database.
259
+ *
260
+ * @param token - The session token to validate.
261
+ * @returns A promise that resolves to an object containing the session and user information. If the session is invalid or expired, both session and user will be null.
262
+ */
263
+ export const validateSessionToken: typeof import('./lib/auth/session.js').validateSessionToken;
264
+ /**
265
+ * Invalidates a session by deleting it from the database.
266
+ *
267
+ * @param token - The session token to invalidate.
268
+ * @returns A promise that resolves to `true` if the session was successfully invalidated; otherwise, `false`.
269
+ */
270
+ export const invalidateSession: typeof import('./lib/auth/session.js').invalidateSession;
271
+ /**
272
+ * Sets the session token cookie in the response object.
273
+ *
274
+ * @param context - The context object containing the request and response objects.
275
+ * @param token - The session token to set in the cookie.
276
+ * @param expiresAt - The expiration date and time of the session token.
277
+ */
278
+ export const setSessionTokenCookie: typeof import('./lib/auth/session.js').setSessionTokenCookie;
279
+ /**
280
+ * Deletes the session token cookie from the response object.
281
+ *
282
+ * @param context - The context object containing the request and response objects.
283
+ */
284
+ export const deleteSessionTokenCookie: typeof import(
285
+ './lib/auth/session.js'
286
+ ).deleteSessionTokenCookie;
287
+ /**
288
+ * Sets the OAuth session token cookie in the response object.
289
+ *
290
+ * @param context - The context object containing the request and response objects.
291
+ * @param key - The name of the cookie to set.
292
+ * @param expiresAt - The expiration date and time of the session token.
293
+ */
294
+ export const setOAuthSessionTokenCookie: typeof import(
295
+ './lib/auth/session.js'
296
+ ).setOAuthSessionTokenCookie;
297
+ /**
298
+ * Generates a new expiration date for a session.
299
+ *
300
+ * @returns The expiration date calculated by adding the session expiration time to the current date and time.
301
+ */
302
+ export const makeExpirationDate: typeof import('./lib/auth/session.js').makeExpirationDate;
303
+ /**
304
+ * The session expiration time in milliseconds.
305
+ * This value represents 14 days.
306
+ */
307
+ export const sessionExpTime: typeof import('./lib/auth/session.js').sessionExpTime;
308
+ /**
309
+ * Creates a new user session.
310
+ *
311
+ * @param userId - The ID of the user to create the session for.
312
+ * @param context - The context object containing the request and response objects.
313
+ * @returns A promise that resolves to the created session object.
314
+ */
315
+ export const createUserSession: typeof import('./lib/auth/session.js').createUserSession;
316
+ }
317
+
318
+ declare module 'studiocms:auth/lib/types' {
319
+ /**
320
+ * Represents a table of OAuth accounts.
321
+ *
322
+ * @interface OAuthAccountsTable
323
+ * @property {string} provider - The name of the OAuth provider (e.g., Google, Facebook).
324
+ * @property {string} providerUserId - The unique identifier for the user provided by the OAuth provider.
325
+ * @property {string} userId - The unique identifier for the user within the application.
326
+ */
327
+ export type OAuthAccountsTable = import('./lib/auth/types.js').OAuthAccountsTable;
328
+ /**
329
+ * Interface representing a table of user permissions.
330
+ *
331
+ * @interface PermissionsTable
332
+ * @property {string} user - The username of the individual.
333
+ * @property {string} rank - The rank or role assigned to the user.
334
+ */
335
+ export type PermissionsTable = import('./lib/auth/types.js').PermissionsTable;
336
+ /**
337
+ * Represents the session data for a user.
338
+ *
339
+ * @property {boolean} isLoggedIn - Indicates whether the user is logged in.
340
+ * @property {UserTable | null} user - The user data, or null if no user is logged in.
341
+ * @property {'owner' | 'admin' | 'editor' | 'visitor' | 'unknown'} permissionLevel - The permission level of the user.
342
+ */
343
+ export type UserSessionData = import('./lib/auth/types.js').UserSessionData;
344
+ /**
345
+ * Represents a user session which includes user information and session details.
346
+ *
347
+ * @property {UserTable} user - The user data.
348
+ * @property {SessionTable} session - The session data.
349
+ */
350
+ export type UserSession = import('./lib/auth/types.js').UserSession;
351
+ /**
352
+ * Represents the result of validating a session token.
353
+ *
354
+ * This type can either be a valid `UserSession` or an object indicating an invalid session with both `session` and `user` properties set to `null`.
355
+ */
356
+ export type SessionValidationResult = import('./lib/auth/types.js').SessionValidationResult;
357
+ /**
358
+ * Represents an individual refillable token bucket.
359
+ *
360
+ * @interface RefillBucket
361
+ * @property {number} count - The current token count in the bucket.
362
+ * @property {number} refillAt - The time at which the bucket was last refilled.
363
+ */
364
+ export type RefillBucket = import('./lib/auth/types.js').RefillBucket;
365
+ /**
366
+ * Represents a bucket with an expiration mechanism.
367
+ *
368
+ * @interface ExpiringBucket
369
+ * @property {number} count - The current token count in the bucket.
370
+ * @property {number} createdAt - The timestamp when the bucket was created.
371
+ */
372
+ export type ExpiringBucket = import('./lib/auth/types.js').ExpiringBucket;
373
+ /**
374
+ * Interface representing a throttling counter.
375
+ *
376
+ * @interface ThrottlingCounter
377
+ * @property {number} timeout - The duration (in milliseconds) for which the throttling is applied.
378
+ * @property {number} updatedAt - The timestamp (in milliseconds since epoch) when the throttling counter was last updated.
379
+ */
380
+ export type ThrottlingCounter = import('./lib/auth/types.js').ThrottlingCounter;
381
+ }
382
+
383
+ declare module 'studiocms:auth/lib/user' {
384
+ export const verifyUsernameInput: typeof import('./lib/auth/user.js').verifyUsernameInput;
385
+ export const createUserAvatar: typeof import('./lib/auth/user.js').createUserAvatar;
386
+ export const createLocalUser: typeof import('./lib/auth/user.js').createLocalUser;
387
+ export const createOAuthUser: typeof import('./lib/auth/user.js').createOAuthUser;
388
+ export const updateUserPassword: typeof import('./lib/auth/user.js').updateUserPassword;
389
+ export const getUserPasswordHash: typeof import('./lib/auth/user.js').getUserPasswordHash;
390
+ export const getUserFromEmail: typeof import('./lib/auth/user.js').getUserFromEmail;
391
+ export const getUserData: typeof import('./lib/auth/user.js').getUserData;
392
+ export const permissionRanksMap: typeof import('./lib/auth/user.js').permissionRanksMap;
393
+ export const verifyUserPermissionLevel: typeof import(
394
+ './lib/auth/user.js'
395
+ ).verifyUserPermissionLevel;
396
+ export const LinkNewOAuthCookieName: typeof import('./lib/auth/user.js').LinkNewOAuthCookieName;
397
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { Command } from "../lib/commander.js";
2
+ import { runInteractiveCommand } from "../lib/runExternal";
3
+ await new Command("getTurso").description("Turso CLI Utilities").summary("Turso CLI Utilities").action(async () => {
4
+ try {
5
+ await runInteractiveCommand("curl -sSfL https://get.tur.so/install.sh | bash");
6
+ console.log("Command completed successfully.");
7
+ } catch (error) {
8
+ console.error(`Failed to run Turso install: ${error.message}`);
9
+ }
10
+ }).parseAsync();
@@ -0,0 +1,4 @@
1
+ import type { instanceCommand } from '../../lib/commander.js';
2
+ import { getContext } from '../../lib/context.js';
3
+ export { getContext };
4
+ export declare function initCMD(this: instanceCommand): Promise<void>;
@@ -0,0 +1,52 @@
1
+ import color from "chalk";
2
+ import { getContext } from "../../lib/context.js";
3
+ import { StudioCMSColorwayBg, label } from "../../lib/utils.js";
4
+ import { intro } from "../../shared/intro.js";
5
+ import { env } from "./steps/envBuilder.js";
6
+ import { next } from "./steps/nextSteps.js";
7
+ async function initCMD() {
8
+ const opts = this.opts();
9
+ const ctx = await getContext(opts);
10
+ ctx.logger.log("Starting interactive CLI...");
11
+ ctx.debug && ctx.logger.debug(`Options: ${JSON.stringify(opts, null, 2)}`);
12
+ ctx.debug && ctx.logger.debug(`Context: ${JSON.stringify(ctx, null, 2)}`);
13
+ console.log("");
14
+ ctx.debug && ctx.logger.debug("Running interactive CLI Steps...");
15
+ ctx.p.intro(
16
+ `${label("StudioCMS", StudioCMSColorwayBg, color.black)} Interactive CLI - initializing...`
17
+ );
18
+ await intro(ctx);
19
+ const steps = [];
20
+ ctx.debug && ctx.logger.debug("Running Option selection...");
21
+ const options = await ctx.p.multiselect({
22
+ message: "What would you like to do? (Select all that apply)",
23
+ options: [{ value: "env", label: "Setup Environment File", hint: "Create a .env file" }]
24
+ });
25
+ if (typeof options === "symbol") {
26
+ ctx.pCancel(options);
27
+ } else {
28
+ options.includes("env") && steps.push(env);
29
+ }
30
+ ctx.debug && ctx.logger.debug("Running steps...");
31
+ if (steps.length === 0) {
32
+ ctx.p.log.error("No steps selected, exiting...");
33
+ ctx.exit(0);
34
+ }
35
+ for (const step of steps) {
36
+ await step(ctx);
37
+ }
38
+ ctx.debug && ctx.logger.debug("Running tasks...");
39
+ if (ctx.tasks.length === 0) {
40
+ ctx.p.log.error("No tasks selected, exiting...");
41
+ ctx.exit(0);
42
+ }
43
+ await ctx.p.tasks(ctx.tasks);
44
+ ctx.debug && ctx.logger.debug("Running next steps...");
45
+ await next(ctx);
46
+ ctx.debug && ctx.logger.debug("Interactive CLI completed, exiting...");
47
+ ctx.exit(0);
48
+ }
49
+ export {
50
+ getContext,
51
+ initCMD
52
+ };
@@ -0,0 +1,3 @@
1
+ import type { EnvBuilderOptions } from '../envBuilder.js';
2
+ export declare const ExampleEnv: string;
3
+ export declare function buildEnvFile(envBuilderOpts: EnvBuilderOptions): string;
@@ -0,0 +1,71 @@
1
+ const ExampleEnv = `# StudioCMS Environment Variables
2
+
3
+ # libSQL URL and Token for AstroDB
4
+ ASTRO_DB_REMOTE_URL=libsql://your-database.turso.io
5
+ ASTRO_DB_APP_TOKEN=
6
+
7
+ # Auth encryption key
8
+ CMS_ENCRYPTION_KEY="..." # openssl rand --base64 16
9
+
10
+ # credentials for GitHub OAuth
11
+ CMS_GITHUB_CLIENT_ID=
12
+ CMS_GITHUB_CLIENT_SECRET=
13
+ CMS_GITHUB_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/github/callback
14
+
15
+ # credentials for Discord OAuth
16
+ CMS_DISCORD_CLIENT_ID=
17
+ CMS_DISCORD_CLIENT_SECRET=
18
+ CMS_DISCORD_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/discord/callback
19
+
20
+ # credentials for Google OAuth
21
+ CMS_GOOGLE_CLIENT_ID=
22
+ CMS_GOOGLE_CLIENT_SECRET=
23
+ CMS_GOOGLE_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/google/callback
24
+
25
+ # credentials for auth0 OAuth
26
+ CMS_AUTH0_CLIENT_ID=
27
+ CMS_AUTH0_CLIENT_SECRET=
28
+ CMS_AUTH0_DOMAIN=
29
+ CMS_AUTH0_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/auth0/callback
30
+
31
+ ## Cloudinary Javascript SDK
32
+ CMS_CLOUDINARY_CLOUDNAME="demo"`;
33
+ function buildEnvFile(envBuilderOpts) {
34
+ return `# StudioCMS Environment Variables
35
+
36
+ # libSQL URL and Token for AstroDB
37
+ ASTRO_DB_REMOTE_URL=${envBuilderOpts.astroDbRemoteUrl}
38
+ ASTRO_DB_APP_TOKEN=${envBuilderOpts.astroDbToken}
39
+
40
+ # Auth encryption key
41
+ CMS_ENCRYPTION_KEY="${envBuilderOpts.encryptionKey}" # openssl rand --base64 16
42
+
43
+ # credentials for GitHub OAuth
44
+ CMS_GITHUB_CLIENT_ID=${envBuilderOpts.githubOAuth?.clientId}
45
+ CMS_GITHUB_CLIENT_SECRET=${envBuilderOpts.githubOAuth?.clientSecret}
46
+ CMS_GITHUB_REDIRECT_URI=${envBuilderOpts.githubOAuth?.redirectUri}/studiocms_api/auth/github/callback
47
+
48
+ # credentials for Discord OAuth
49
+ CMS_DISCORD_CLIENT_ID=${envBuilderOpts.discordOAuth?.clientId}
50
+ CMS_DISCORD_CLIENT_SECRET=${envBuilderOpts.discordOAuth?.clientSecret}
51
+ CMS_DISCORD_REDIRECT_URI=${envBuilderOpts.discordOAuth?.redirectUri}/studiocms_api/auth/discord/callback
52
+
53
+ # credentials for Google OAuth
54
+ CMS_GOOGLE_CLIENT_ID=${envBuilderOpts.googleOAuth?.clientId}
55
+ CMS_GOOGLE_CLIENT_SECRET=${envBuilderOpts.googleOAuth?.clientSecret}
56
+ CMS_GOOGLE_REDIRECT_URI=${envBuilderOpts.googleOAuth?.redirectUri}/studiocms_api/auth/google/callback
57
+
58
+ # credentials for auth0 OAuth
59
+ CMS_AUTH0_CLIENT_ID=${envBuilderOpts.auth0OAuth?.clientId}
60
+ CMS_AUTH0_CLIENT_SECRET=${envBuilderOpts.auth0OAuth?.clientSecret}
61
+ CMS_AUTH0_DOMAIN=${envBuilderOpts.auth0OAuth?.domain}
62
+ CMS_AUTH0_REDIRECT_URI=${envBuilderOpts.auth0OAuth?.redirectUri}/studiocms_api/auth/auth0/callback
63
+
64
+ ## Cloudinary Javascript SDK
65
+ CMS_CLOUDINARY_CLOUDNAME="demo"
66
+ `;
67
+ }
68
+ export {
69
+ ExampleEnv,
70
+ buildEnvFile
71
+ };
@@ -0,0 +1,21 @@
1
+ import type { Context } from '../../../lib/context.js';
2
+ interface GenericOAuth {
3
+ clientId: string;
4
+ clientSecret: string;
5
+ redirectUri: string;
6
+ }
7
+ interface Auth0OAuth extends GenericOAuth {
8
+ domain: string;
9
+ }
10
+ export interface EnvBuilderOptions {
11
+ astroDbRemoteUrl?: string;
12
+ astroDbToken?: string;
13
+ encryptionKey?: string;
14
+ oAuthOptions?: ('github' | 'discord' | 'google' | 'auth0')[];
15
+ githubOAuth?: GenericOAuth;
16
+ discordOAuth?: GenericOAuth;
17
+ googleOAuth?: GenericOAuth;
18
+ auth0OAuth?: Auth0OAuth;
19
+ }
20
+ export declare function env(ctx: Pick<Context, 'cwd' | 'p' | 'pCancel' | 'pOnCancel' | 'dryRun' | 'tasks' | 'exit' | 'debug' | 'logger'>): Promise<void>;
21
+ export {};