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,43 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ import { simpleResponse } from "../../../../../utils/simpleResponse.js";
3
+ const GET = async (context) => {
4
+ const { id } = context.params;
5
+ if (!id) {
6
+ return simpleResponse(400, "Invalid folder ID");
7
+ }
8
+ const folder = await studioCMS_SDK_Cache.GET.folder(id);
9
+ if (!folder) {
10
+ return simpleResponse(404, "Folder not found");
11
+ }
12
+ return new Response(JSON.stringify(folder), {
13
+ headers: {
14
+ "Content-Type": "application/json"
15
+ }
16
+ });
17
+ };
18
+ const OPTIONS = async () => {
19
+ return new Response(null, {
20
+ status: 204,
21
+ statusText: "No Content",
22
+ headers: {
23
+ Allow: "OPTIONS, GET",
24
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
25
+ "Cache-Control": "public, max-age=604800, immutable",
26
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
27
+ }
28
+ });
29
+ };
30
+ const ALL = async () => {
31
+ return new Response(null, {
32
+ status: 405,
33
+ statusText: "Method Not Allowed",
34
+ headers: {
35
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
36
+ }
37
+ });
38
+ };
39
+ export {
40
+ ALL,
41
+ GET,
42
+ OPTIONS
43
+ };
@@ -0,0 +1,4 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const OPTIONS: APIRoute;
4
+ export declare const ALL: APIRoute;
@@ -0,0 +1,49 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ const GET = async (context) => {
3
+ const folders = await studioCMS_SDK_Cache.GET.folderList();
4
+ const searchParams = context.url.searchParams;
5
+ const folderNameFilter = searchParams.get("name");
6
+ const folderParentFilter = searchParams.get("parent");
7
+ let filteredFolders = folders.data;
8
+ if (folderNameFilter) {
9
+ filteredFolders = filteredFolders.filter((folder) => folder.name.includes(folderNameFilter));
10
+ }
11
+ if (folderParentFilter) {
12
+ filteredFolders = filteredFolders.filter((folder) => folder.parent === folderParentFilter);
13
+ }
14
+ const finalFolders = {
15
+ data: filteredFolders,
16
+ lastCacheUpdate: folders.lastCacheUpdate
17
+ };
18
+ return new Response(JSON.stringify(finalFolders), {
19
+ headers: {
20
+ "Content-Type": "application/json"
21
+ }
22
+ });
23
+ };
24
+ const OPTIONS = async () => {
25
+ return new Response(null, {
26
+ status: 204,
27
+ statusText: "No Content",
28
+ headers: {
29
+ Allow: "OPTIONS, GET",
30
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
31
+ "Cache-Control": "public, max-age=604800, immutable",
32
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
33
+ }
34
+ });
35
+ };
36
+ const ALL = async () => {
37
+ return new Response(null, {
38
+ status: 405,
39
+ statusText: "Method Not Allowed",
40
+ headers: {
41
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
42
+ }
43
+ });
44
+ };
45
+ export {
46
+ ALL,
47
+ GET,
48
+ OPTIONS
49
+ };
@@ -0,0 +1,4 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const OPTIONS: APIRoute;
4
+ export declare const ALL: APIRoute;
@@ -0,0 +1,46 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ import { simpleResponse } from "../../../../../utils/simpleResponse.js";
3
+ const GET = async (context) => {
4
+ const { id } = context.params;
5
+ if (!id) {
6
+ return simpleResponse(400, "Invalid page ID");
7
+ }
8
+ const page = await studioCMS_SDK_Cache.GET.page.byId(id);
9
+ if (!page) {
10
+ return simpleResponse(404, "Page not found");
11
+ }
12
+ if (page.data.draft) {
13
+ return simpleResponse(403, "Unauthorized");
14
+ }
15
+ return new Response(JSON.stringify(page), {
16
+ headers: {
17
+ "Content-Type": "application/json"
18
+ }
19
+ });
20
+ };
21
+ const OPTIONS = async () => {
22
+ return new Response(null, {
23
+ status: 204,
24
+ statusText: "No Content",
25
+ headers: {
26
+ Allow: "OPTIONS, GET, PATCH, DELETE",
27
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
28
+ "Cache-Control": "public, max-age=604800, immutable",
29
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
30
+ }
31
+ });
32
+ };
33
+ const ALL = async () => {
34
+ return new Response(null, {
35
+ status: 405,
36
+ statusText: "Method Not Allowed",
37
+ headers: {
38
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
39
+ }
40
+ });
41
+ };
42
+ export {
43
+ ALL,
44
+ GET,
45
+ OPTIONS
46
+ };
@@ -0,0 +1,4 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const OPTIONS: APIRoute;
4
+ export declare const ALL: APIRoute;
@@ -0,0 +1,61 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ const GET = async (context) => {
3
+ const pages = await studioCMS_SDK_Cache.GET.pages();
4
+ const searchParams = context.url.searchParams;
5
+ const titleFilter = searchParams.get("title");
6
+ const slugFilter = searchParams.get("slug");
7
+ const authorFilter = searchParams.get("author");
8
+ const draftFilter = searchParams.get("draft") === "true";
9
+ const publishedFilter = searchParams.get("published") === "true";
10
+ const parentFolderFilter = searchParams.get("parentFolder");
11
+ let filteredPages = pages;
12
+ if (titleFilter) {
13
+ filteredPages = filteredPages.filter((page) => page.data.title.includes(titleFilter));
14
+ }
15
+ if (slugFilter) {
16
+ filteredPages = filteredPages.filter((page) => page.data.slug.includes(slugFilter));
17
+ }
18
+ if (authorFilter) {
19
+ filteredPages = filteredPages.filter((page) => page.data.authorId === authorFilter);
20
+ }
21
+ if (draftFilter) {
22
+ filteredPages = filteredPages.filter((page) => page.data.draft === draftFilter);
23
+ }
24
+ if (publishedFilter) {
25
+ filteredPages = filteredPages.filter((page) => !page.data.draft);
26
+ }
27
+ if (parentFolderFilter) {
28
+ filteredPages = filteredPages.filter((page) => page.data.parentFolder === parentFolderFilter);
29
+ }
30
+ return new Response(JSON.stringify(filteredPages), {
31
+ headers: {
32
+ "Content-Type": "application/json"
33
+ }
34
+ });
35
+ };
36
+ const OPTIONS = async () => {
37
+ return new Response(null, {
38
+ status: 204,
39
+ statusText: "No Content",
40
+ headers: {
41
+ Allow: "OPTIONS, GET",
42
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
43
+ "Cache-Control": "public, max-age=604800, immutable",
44
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
45
+ }
46
+ });
47
+ };
48
+ const ALL = async () => {
49
+ return new Response(null, {
50
+ status: 405,
51
+ statusText: "Method Not Allowed",
52
+ headers: {
53
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
54
+ }
55
+ });
56
+ };
57
+ export {
58
+ ALL,
59
+ GET,
60
+ OPTIONS
61
+ };
@@ -0,0 +1,5 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const PATCH: APIRoute;
4
+ export declare const OPTIONS: APIRoute;
5
+ export declare const ALL: APIRoute;
@@ -0,0 +1,75 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ import { simpleResponse } from "../../../../utils/simpleResponse.js";
3
+ import { verifyAuthToken } from "../../utils/auth-token.js";
4
+ const GET = async (context) => {
5
+ const user = await verifyAuthToken(context);
6
+ if (user instanceof Response) {
7
+ return user;
8
+ }
9
+ const { rank } = user;
10
+ if (rank !== "owner") {
11
+ return simpleResponse(401, "Unauthorized");
12
+ }
13
+ const siteConfig = await studioCMS_SDK_Cache.GET.siteConfig();
14
+ return new Response(JSON.stringify(siteConfig), {
15
+ headers: {
16
+ "Content-Type": "application/json"
17
+ }
18
+ });
19
+ };
20
+ const PATCH = async (context) => {
21
+ const user = await verifyAuthToken(context);
22
+ if (user instanceof Response) {
23
+ return user;
24
+ }
25
+ const { rank } = user;
26
+ if (rank !== "owner") {
27
+ return simpleResponse(401, "Unauthorized");
28
+ }
29
+ const siteConfig = await context.request.json();
30
+ if (!siteConfig.title) {
31
+ return simpleResponse(400, "Invalid form data, title is required");
32
+ }
33
+ if (!siteConfig.description) {
34
+ return simpleResponse(400, "Invalid form data, description is required");
35
+ }
36
+ if (!siteConfig.loginPageBackground) {
37
+ return simpleResponse(400, "Invalid form data, loginPageBackground is required");
38
+ }
39
+ if (siteConfig.loginPageBackground === "custom" && !siteConfig.loginPageCustomImage) {
40
+ return simpleResponse(400, "Invalid form data, loginPageCustomImage is required");
41
+ }
42
+ try {
43
+ await studioCMS_SDK_Cache.UPDATE.siteConfig(siteConfig);
44
+ return simpleResponse(200, "Site config updated");
45
+ } catch (error) {
46
+ return simpleResponse(500, "Error updating site config");
47
+ }
48
+ };
49
+ const OPTIONS = async () => {
50
+ return new Response(null, {
51
+ status: 204,
52
+ statusText: "No Content",
53
+ headers: {
54
+ Allow: "OPTIONS, GET, PATCH",
55
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
56
+ "Cache-Control": "public, max-age=604800, immutable",
57
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
58
+ }
59
+ });
60
+ };
61
+ const ALL = async () => {
62
+ return new Response(null, {
63
+ status: 405,
64
+ statusText: "Method Not Allowed",
65
+ headers: {
66
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
67
+ }
68
+ });
69
+ };
70
+ export {
71
+ ALL,
72
+ GET,
73
+ OPTIONS,
74
+ PATCH
75
+ };
@@ -0,0 +1,6 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const PATCH: APIRoute;
4
+ export declare const DELETE: APIRoute;
5
+ export declare const OPTIONS: APIRoute;
6
+ export declare const ALL: APIRoute;
@@ -0,0 +1,212 @@
1
+ import { verifyUserPermissionLevel } from "studiocms:auth/lib/user";
2
+ import studioCMS_SDK from "studiocms:sdk";
3
+ import { simpleResponse } from "../../../../utils/simpleResponse.js";
4
+ import { verifyAuthToken } from "../../utils/auth-token.js";
5
+ const GET = async (context) => {
6
+ const user = await verifyAuthToken(context);
7
+ if (user instanceof Response) {
8
+ return user;
9
+ }
10
+ const { rank } = user;
11
+ if (rank !== "owner" && rank !== "admin") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const { id } = context.params;
15
+ if (!id) {
16
+ return simpleResponse(400, "Invalid form data, id is required");
17
+ }
18
+ const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
19
+ if (!existingUser) {
20
+ return simpleResponse(400, "User not found");
21
+ }
22
+ const { avatar, createdAt, email, name, permissionsData, updatedAt, url, username } = existingUser;
23
+ const existingUserRank = permissionsData?.rank ?? "admin";
24
+ const data = {
25
+ avatar,
26
+ createdAt,
27
+ email,
28
+ id,
29
+ name,
30
+ rank: existingUserRank,
31
+ updatedAt,
32
+ url,
33
+ username
34
+ };
35
+ const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
36
+ (user2) => user2.id === id
37
+ );
38
+ if (!loggedInUser || loggedInUser === void 0) {
39
+ return simpleResponse(400, "User Error");
40
+ }
41
+ const permissionLevelInput = {
42
+ isLoggedIn: true,
43
+ user: loggedInUser,
44
+ permissionLevel: rank
45
+ };
46
+ const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
47
+ if (!isAllowed) {
48
+ return simpleResponse(401, "Unauthorized");
49
+ }
50
+ return new Response(JSON.stringify(data), {
51
+ headers: {
52
+ "Content-Type": "application/json"
53
+ }
54
+ });
55
+ };
56
+ const PATCH = async (context) => {
57
+ const user = await verifyAuthToken(context);
58
+ if (user instanceof Response) {
59
+ return user;
60
+ }
61
+ const { rank } = user;
62
+ if (rank !== "owner" && rank !== "admin") {
63
+ return simpleResponse(401, "Unauthorized");
64
+ }
65
+ const { id } = context.params;
66
+ if (!id) {
67
+ return simpleResponse(400, "Invalid form data, id is required");
68
+ }
69
+ const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
70
+ if (!existingUser) {
71
+ return simpleResponse(400, "User not found");
72
+ }
73
+ const { permissionsData } = existingUser;
74
+ const existingUserRank = permissionsData?.rank ?? "admin";
75
+ const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
76
+ (user2) => user2.id === id
77
+ );
78
+ if (!loggedInUser || loggedInUser === void 0) {
79
+ return simpleResponse(400, "User Error");
80
+ }
81
+ const permissionLevelInput = {
82
+ isLoggedIn: true,
83
+ user: loggedInUser,
84
+ permissionLevel: rank
85
+ };
86
+ const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
87
+ if (!isAllowed) {
88
+ return simpleResponse(401, "Unauthorized");
89
+ }
90
+ const jsonData = await context.request.json();
91
+ const { rank: newRank } = jsonData;
92
+ if (!newRank) {
93
+ return simpleResponse(400, "Missing field: Rank is required");
94
+ }
95
+ const isRankValid = ["visitor", "editor", "admin", "owner"].includes(newRank);
96
+ if (!isRankValid) {
97
+ return simpleResponse(400, "Invalid rank");
98
+ }
99
+ const updateRank = await studioCMS_SDK.UPDATE.permissions({
100
+ user: id,
101
+ rank
102
+ });
103
+ if (!updateRank) {
104
+ return simpleResponse(400, "Failed to update rank");
105
+ }
106
+ const updatedUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
107
+ if (!updatedUser) {
108
+ return simpleResponse(400, "Failed to get updated user");
109
+ }
110
+ const {
111
+ avatar,
112
+ createdAt,
113
+ email,
114
+ name,
115
+ permissionsData: newPermissionsData,
116
+ updatedAt,
117
+ url,
118
+ username
119
+ } = updatedUser;
120
+ const updatedUserRank = newPermissionsData?.rank ?? "unknown";
121
+ const data = {
122
+ avatar,
123
+ createdAt,
124
+ email,
125
+ id,
126
+ name,
127
+ rank: updatedUserRank,
128
+ updatedAt,
129
+ url,
130
+ username
131
+ };
132
+ return new Response(JSON.stringify(data), {
133
+ headers: {
134
+ "Content-Type": "application/json"
135
+ }
136
+ });
137
+ };
138
+ const DELETE = async (context) => {
139
+ const user = await verifyAuthToken(context);
140
+ if (user instanceof Response) {
141
+ return user;
142
+ }
143
+ const { rank } = user;
144
+ if (rank !== "owner" && rank !== "admin") {
145
+ return simpleResponse(401, "Unauthorized");
146
+ }
147
+ const { id } = context.params;
148
+ if (!id) {
149
+ return simpleResponse(400, "Invalid form data, id is required");
150
+ }
151
+ const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
152
+ if (!existingUser) {
153
+ return simpleResponse(400, "User not found");
154
+ }
155
+ const { permissionsData } = existingUser;
156
+ const existingUserRank = permissionsData?.rank ?? "admin";
157
+ const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
158
+ (user2) => user2.id === id
159
+ );
160
+ if (!loggedInUser || loggedInUser === void 0) {
161
+ return simpleResponse(400, "User Error");
162
+ }
163
+ const permissionLevelInput = {
164
+ isLoggedIn: true,
165
+ user: loggedInUser,
166
+ permissionLevel: rank
167
+ };
168
+ const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
169
+ if (!isAllowed) {
170
+ return simpleResponse(401, "Unauthorized");
171
+ }
172
+ try {
173
+ const response = await studioCMS_SDK.DELETE.user(id);
174
+ if (!response) {
175
+ return simpleResponse(400, "Failed to delete user");
176
+ }
177
+ if (response.status === "error") {
178
+ return simpleResponse(400, response.message);
179
+ }
180
+ return simpleResponse(200, response.message);
181
+ } catch (error) {
182
+ return simpleResponse(400, `Failed to delete user: ${error}`);
183
+ }
184
+ };
185
+ const OPTIONS = async () => {
186
+ return new Response(null, {
187
+ status: 204,
188
+ statusText: "No Content",
189
+ headers: {
190
+ Allow: "OPTIONS, GET, PATCH, DELETE",
191
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
192
+ "Cache-Control": "public, max-age=604800, immutable",
193
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
194
+ }
195
+ });
196
+ };
197
+ const ALL = async () => {
198
+ return new Response(null, {
199
+ status: 405,
200
+ statusText: "Method Not Allowed",
201
+ headers: {
202
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
203
+ }
204
+ });
205
+ };
206
+ export {
207
+ ALL,
208
+ DELETE,
209
+ GET,
210
+ OPTIONS,
211
+ PATCH
212
+ };
@@ -0,0 +1,5 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
3
+ export declare const POST: APIRoute;
4
+ export declare const OPTIONS: APIRoute;
5
+ export declare const ALL: APIRoute;
@@ -0,0 +1,138 @@
1
+ import { verifyPasswordStrength } from "studiocms:auth/lib/password";
2
+ import { createLocalUser, verifyUsernameInput } from "studiocms:auth/lib/user";
3
+ import studioCMS_SDK from "studiocms:sdk";
4
+ import { z } from "astro/zod";
5
+ import { simpleResponse } from "../../../../utils/simpleResponse.js";
6
+ import { verifyAuthToken } from "../../utils/auth-token.js";
7
+ const GET = async (context) => {
8
+ const user = await verifyAuthToken(context);
9
+ if (user instanceof Response) {
10
+ return user;
11
+ }
12
+ const { rank } = user;
13
+ if (rank !== "owner" && rank !== "admin") {
14
+ return simpleResponse(401, "Unauthorized");
15
+ }
16
+ const users = await studioCMS_SDK.GET.database.users();
17
+ let data = users.map(
18
+ ({ avatar, createdAt, email, id, name, permissionsData, updatedAt, url, username }) => ({
19
+ avatar,
20
+ createdAt,
21
+ email,
22
+ id,
23
+ name,
24
+ rank: permissionsData?.rank ?? "unknown",
25
+ updatedAt,
26
+ url,
27
+ username
28
+ })
29
+ );
30
+ if (rank !== "owner") {
31
+ data = data.filter((user2) => user2.rank !== "owner");
32
+ }
33
+ const searchParams = context.url.searchParams;
34
+ const rankFilter = searchParams.get("rank");
35
+ const usernameFilter = searchParams.get("username");
36
+ const nameFilter = searchParams.get("name");
37
+ let filteredData = data;
38
+ if (rankFilter) {
39
+ filteredData = filteredData.filter((user2) => user2.rank === rankFilter);
40
+ }
41
+ if (usernameFilter) {
42
+ filteredData = filteredData.filter((user2) => user2.username.includes(usernameFilter));
43
+ }
44
+ if (nameFilter) {
45
+ filteredData = filteredData.filter((user2) => user2.name.includes(nameFilter));
46
+ }
47
+ return new Response(JSON.stringify(filteredData), {
48
+ headers: {
49
+ "Content-Type": "application/json"
50
+ }
51
+ });
52
+ };
53
+ const POST = async (context) => {
54
+ const user = await verifyAuthToken(context);
55
+ if (user instanceof Response) {
56
+ return user;
57
+ }
58
+ const { rank } = user;
59
+ if (rank !== "owner" && rank !== "admin") {
60
+ return simpleResponse(401, "Unauthorized");
61
+ }
62
+ const jsonData = await context.request.json();
63
+ let { username, password, email, displayname, rank: newUserRank } = jsonData;
64
+ if (!username) {
65
+ return simpleResponse(400, "Missing field: Username is required");
66
+ }
67
+ if (!password) {
68
+ password = studioCMS_SDK.generateRandomPassword(12);
69
+ }
70
+ if (!email) {
71
+ return simpleResponse(400, "Missing field: Email is required");
72
+ }
73
+ if (!displayname) {
74
+ return simpleResponse(400, "Missing field: Display name is required");
75
+ }
76
+ if (!newUserRank) {
77
+ return simpleResponse(400, "Missing field: Rank is required");
78
+ }
79
+ if (verifyUsernameInput(username) !== true) {
80
+ return simpleResponse(
81
+ 400,
82
+ "Invalid username: Username must be between 3 and 20 characters, only contain lowercase letters, numbers, -, and _ as well as not be a commonly used username (admin, root, etc.)"
83
+ );
84
+ }
85
+ if (await verifyPasswordStrength(password) !== true) {
86
+ return simpleResponse(
87
+ 400,
88
+ 'Invalid password: Password must be between 6 and 255 characters, and not be in the <a href="https://haveibeenpwned.com/Passwords" target="_blank">pwned password database</a>.'
89
+ );
90
+ }
91
+ const checkEmail = z.coerce.string().email({ message: "Email address is invalid" }).safeParse(email);
92
+ if (!checkEmail.success) {
93
+ return simpleResponse(400, `Invalid email: ${checkEmail.error.message}`);
94
+ }
95
+ const { usernameSearch, emailSearch } = await studioCMS_SDK.AUTH.user.searchUsersForUsernameOrEmail(username, checkEmail.data);
96
+ if (usernameSearch.length > 0) {
97
+ return simpleResponse(400, "Invalid username: Username is already in use");
98
+ }
99
+ if (emailSearch.length > 0) {
100
+ return simpleResponse(400, "Invalid email: Email is already in use");
101
+ }
102
+ const newUser = await createLocalUser(displayname, username, email, password);
103
+ const updateRank = await studioCMS_SDK.UPDATE.permissions({
104
+ user: newUser.id,
105
+ rank
106
+ });
107
+ return simpleResponse(
108
+ 200,
109
+ JSON.stringify({ username, email, displayname, rank: updateRank.rank, password })
110
+ );
111
+ };
112
+ const OPTIONS = async () => {
113
+ return new Response(null, {
114
+ status: 204,
115
+ statusText: "No Content",
116
+ headers: {
117
+ Allow: "OPTIONS, GET, POST",
118
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
119
+ "Cache-Control": "public, max-age=604800, immutable",
120
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
121
+ }
122
+ });
123
+ };
124
+ const ALL = async () => {
125
+ return new Response(null, {
126
+ status: 405,
127
+ statusText: "Method Not Allowed",
128
+ headers: {
129
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
130
+ }
131
+ });
132
+ };
133
+ export {
134
+ ALL,
135
+ GET,
136
+ OPTIONS,
137
+ POST
138
+ };
@@ -0,0 +1,2 @@
1
+ import type { APIRoute } from 'astro';
2
+ export declare const GET: APIRoute;
@@ -0,0 +1,19 @@
1
+ import studioCMS_SDK from "studiocms:sdk/cache";
2
+ const GET = async () => {
3
+ const pages = await studioCMS_SDK.GET.pages();
4
+ const lastUpdated = (/* @__PURE__ */ new Date()).toUTCString();
5
+ return new Response(
6
+ JSON.stringify({ lastUpdated, pages: pages.map((pageItem) => pageItem.data) }, null, 2),
7
+ {
8
+ headers: {
9
+ "Content-Type": "application/json",
10
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*",
11
+ "Cache-Control": "public, max-age=604800, immutable",
12
+ Date: lastUpdated
13
+ }
14
+ }
15
+ );
16
+ };
17
+ export {
18
+ GET
19
+ };