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,17 @@
1
+ import type { APIContext } from 'astro';
2
+ /**
3
+ * Verify the auth token
4
+ *
5
+ * Auth token is passed in the Authorization header as a Bearer token
6
+ * @example
7
+ * headers: {
8
+ * Authorization: 'Bearer <authToken>'
9
+ * }
10
+ * @param context The Astro API context
11
+ * @returns The user data if the auth token is valid, otherwise a 401 response
12
+ */
13
+ export declare function verifyAuthToken(context: APIContext): Promise<Response | {
14
+ userId: string;
15
+ key: string;
16
+ rank: string;
17
+ }>;
@@ -0,0 +1,31 @@
1
+ import { developerConfig } from "studiocms:config";
2
+ import studioCMS_SDK from "studiocms:sdk";
3
+ import { simpleResponse } from "../../../utils/simpleResponse.js";
4
+ const { testingAndDemoMode } = developerConfig;
5
+ const getAuthToken = (headerString) => {
6
+ if (!headerString) {
7
+ return null;
8
+ }
9
+ const parts = headerString.split(" ");
10
+ if (parts.length !== 2 || parts[0].toLowerCase() !== "bearer") {
11
+ return null;
12
+ }
13
+ return parts[1];
14
+ };
15
+ async function verifyAuthToken(context) {
16
+ if (testingAndDemoMode) {
17
+ return simpleResponse(400, "Testing and demo mode is enabled, this action is disabled.");
18
+ }
19
+ const authToken = getAuthToken(context.request.headers.get("Authorization"));
20
+ if (!authToken) {
21
+ return simpleResponse(401, "Unauthorized");
22
+ }
23
+ const user = await studioCMS_SDK.REST_API.tokens.verify(authToken);
24
+ if (!user) {
25
+ return simpleResponse(401, "Unauthorized");
26
+ }
27
+ return user;
28
+ }
29
+ export {
30
+ verifyAuthToken
31
+ };
@@ -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,106 @@
1
+ import studioCMS_SDK from "studiocms:sdk";
2
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
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" && rank !== "editor") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const { id } = context.params;
15
+ if (!id) {
16
+ return simpleResponse(400, "Invalid folder ID");
17
+ }
18
+ const folder = await studioCMS_SDK_Cache.GET.folder(id);
19
+ if (!folder) {
20
+ return simpleResponse(404, "Folder not found");
21
+ }
22
+ return new Response(JSON.stringify(folder), {
23
+ headers: {
24
+ "Content-Type": "application/json"
25
+ }
26
+ });
27
+ };
28
+ const PATCH = async (context) => {
29
+ const user = await verifyAuthToken(context);
30
+ if (user instanceof Response) {
31
+ return user;
32
+ }
33
+ const { rank } = user;
34
+ if (rank !== "owner" && rank !== "admin" && rank !== "editor") {
35
+ return simpleResponse(401, "Unauthorized");
36
+ }
37
+ const { id } = context.params;
38
+ if (!id) {
39
+ return simpleResponse(400, "Invalid folder ID");
40
+ }
41
+ const jsonData = await context.request.json();
42
+ const { folderName, parentFolder } = jsonData;
43
+ if (!folderName) {
44
+ return simpleResponse(400, "Invalid form data, folderName is required");
45
+ }
46
+ try {
47
+ await studioCMS_SDK_Cache.UPDATE.folder({
48
+ id,
49
+ name: folderName,
50
+ parent: parentFolder || null
51
+ });
52
+ return simpleResponse(200, "Folder updated successfully");
53
+ } catch (error) {
54
+ return simpleResponse(500, "Failed to update folder");
55
+ }
56
+ };
57
+ const DELETE = async (context) => {
58
+ const user = await verifyAuthToken(context);
59
+ if (user instanceof Response) {
60
+ return user;
61
+ }
62
+ const { rank } = user;
63
+ if (rank !== "owner" && rank !== "admin" && rank !== "editor") {
64
+ return simpleResponse(401, "Unauthorized");
65
+ }
66
+ const { id } = context.params;
67
+ if (!id) {
68
+ return simpleResponse(400, "Invalid folder ID");
69
+ }
70
+ try {
71
+ await studioCMS_SDK.DELETE.folder(id);
72
+ await studioCMS_SDK_Cache.UPDATE.folderList();
73
+ await studioCMS_SDK_Cache.UPDATE.folderTree();
74
+ return simpleResponse(200, "Folder deleted successfully");
75
+ } catch (error) {
76
+ return simpleResponse(500, "Failed to delete folder");
77
+ }
78
+ };
79
+ const OPTIONS = async () => {
80
+ return new Response(null, {
81
+ status: 204,
82
+ statusText: "No Content",
83
+ headers: {
84
+ Allow: "OPTIONS, GET, PATCH, DELETE",
85
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
86
+ "Cache-Control": "public, max-age=604800, immutable",
87
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
88
+ }
89
+ });
90
+ };
91
+ const ALL = async () => {
92
+ return new Response(null, {
93
+ status: 405,
94
+ statusText: "Method Not Allowed",
95
+ headers: {
96
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
97
+ }
98
+ });
99
+ };
100
+ export {
101
+ ALL,
102
+ DELETE,
103
+ GET,
104
+ OPTIONS,
105
+ PATCH
106
+ };
@@ -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,88 @@
1
+ import studioCMS_SDK from "studiocms:sdk";
2
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
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" && rank !== "editor") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const folders = await studioCMS_SDK_Cache.GET.folderList();
15
+ const searchParams = context.url.searchParams;
16
+ const folderNameFilter = searchParams.get("name");
17
+ const folderParentFilter = searchParams.get("parent");
18
+ let filteredFolders = folders.data;
19
+ if (folderNameFilter) {
20
+ filteredFolders = filteredFolders.filter((folder) => folder.name.includes(folderNameFilter));
21
+ }
22
+ if (folderParentFilter) {
23
+ filteredFolders = filteredFolders.filter((folder) => folder.parent === folderParentFilter);
24
+ }
25
+ const finalFolders = {
26
+ data: filteredFolders,
27
+ lastCacheUpdate: folders.lastCacheUpdate
28
+ };
29
+ return new Response(JSON.stringify(finalFolders), {
30
+ headers: {
31
+ "Content-Type": "application/json"
32
+ }
33
+ });
34
+ };
35
+ const POST = async (context) => {
36
+ const user = await verifyAuthToken(context);
37
+ if (user instanceof Response) {
38
+ return user;
39
+ }
40
+ const { rank } = user;
41
+ if (rank !== "owner" && rank !== "admin" && rank !== "editor") {
42
+ return simpleResponse(401, "Unauthorized");
43
+ }
44
+ const jsonData = await context.request.json();
45
+ const { folderName, parentFolder } = jsonData;
46
+ if (!folderName) {
47
+ return simpleResponse(400, "Invalid form data, folderName is required");
48
+ }
49
+ try {
50
+ const newFolder = (await studioCMS_SDK.POST.databaseEntry.folder({
51
+ name: folderName,
52
+ parent: parentFolder || null,
53
+ id: crypto.randomUUID()
54
+ }))[0];
55
+ await studioCMS_SDK_Cache.UPDATE.folderList();
56
+ await studioCMS_SDK_Cache.UPDATE.folderTree();
57
+ return simpleResponse(200, `Folder created successfully with id: ${newFolder.id}`);
58
+ } catch (error) {
59
+ return simpleResponse(500, "Failed to create folder");
60
+ }
61
+ };
62
+ const OPTIONS = async () => {
63
+ return new Response(null, {
64
+ status: 204,
65
+ statusText: "No Content",
66
+ headers: {
67
+ Allow: "OPTIONS, GET, POST",
68
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
69
+ "Cache-Control": "public, max-age=604800, immutable",
70
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
71
+ }
72
+ });
73
+ };
74
+ const ALL = async () => {
75
+ return new Response(null, {
76
+ status: 405,
77
+ statusText: "Method Not Allowed",
78
+ headers: {
79
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
80
+ }
81
+ });
82
+ };
83
+ export {
84
+ ALL,
85
+ GET,
86
+ OPTIONS,
87
+ POST
88
+ };
@@ -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,55 @@
1
+ import studioCMS_SDK from "studiocms:sdk";
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" && rank !== "admin" && rank !== "editor") {
11
+ return simpleResponse(401, "Unauthorized");
12
+ }
13
+ const { id, diffid } = context.params;
14
+ if (!id) {
15
+ return simpleResponse(400, "Invalid page ID");
16
+ }
17
+ if (!diffid) {
18
+ return simpleResponse(400, "Invalid diff ID");
19
+ }
20
+ const diff = await studioCMS_SDK.diffTracking.get.withHtml(diffid);
21
+ if (!diff) {
22
+ return simpleResponse(404, "Diff not found");
23
+ }
24
+ return new Response(JSON.stringify(diff), {
25
+ headers: {
26
+ "Content-Type": "application/json"
27
+ }
28
+ });
29
+ };
30
+ const OPTIONS = async () => {
31
+ return new Response(null, {
32
+ status: 204,
33
+ statusText: "No Content",
34
+ headers: {
35
+ Allow: "OPTIONS, GET",
36
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
37
+ "Cache-Control": "public, max-age=604800, immutable",
38
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
39
+ }
40
+ });
41
+ };
42
+ const ALL = async () => {
43
+ return new Response(null, {
44
+ status: 405,
45
+ statusText: "Method Not Allowed",
46
+ headers: {
47
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
48
+ }
49
+ });
50
+ };
51
+ export {
52
+ ALL,
53
+ GET,
54
+ OPTIONS
55
+ };
@@ -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 from "studiocms:sdk";
2
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
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" && rank !== "editor") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const { id } = context.params;
15
+ if (!id) {
16
+ return simpleResponse(400, "Invalid page ID");
17
+ }
18
+ const page = await studioCMS_SDK_Cache.GET.page.byId(id);
19
+ if (!page) {
20
+ return simpleResponse(404, "Page not found");
21
+ }
22
+ const searchParams = context.url.searchParams;
23
+ const limit = searchParams.get("limit");
24
+ let diffs = [];
25
+ if (limit) {
26
+ diffs = await studioCMS_SDK.diffTracking.get.byPageId.latest(id, Number.parseInt(limit));
27
+ } else {
28
+ diffs = await studioCMS_SDK.diffTracking.get.byPageId.all(id);
29
+ }
30
+ return new Response(JSON.stringify(diffs), {
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,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,165 @@
1
+ import studioCMS_SDK from "studiocms:sdk";
2
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
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" && rank !== "editor") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const { id } = context.params;
15
+ if (!id) {
16
+ return simpleResponse(400, "Invalid page ID");
17
+ }
18
+ const page = await studioCMS_SDK_Cache.GET.page.byId(id);
19
+ if (!page) {
20
+ return simpleResponse(404, "Page not found");
21
+ }
22
+ return new Response(JSON.stringify(page), {
23
+ headers: {
24
+ "Content-Type": "application/json"
25
+ }
26
+ });
27
+ };
28
+ const PATCH = async (context) => {
29
+ const user = await verifyAuthToken(context);
30
+ if (user instanceof Response) {
31
+ return user;
32
+ }
33
+ const { rank, userId } = user;
34
+ if (rank !== "owner" && rank !== "admin" && rank !== "editor") {
35
+ return simpleResponse(401, "Unauthorized");
36
+ }
37
+ const { id } = context.params;
38
+ if (!id) {
39
+ return simpleResponse(400, "Invalid page ID");
40
+ }
41
+ const jsonData = await context.request.json();
42
+ const { data, content } = jsonData;
43
+ if (!data) {
44
+ return simpleResponse(400, "Invalid form data, data is required");
45
+ }
46
+ if (!content) {
47
+ return simpleResponse(400, "Invalid form data, content is required");
48
+ }
49
+ if (!data.id) {
50
+ return simpleResponse(400, "Invalid form data, id is required");
51
+ }
52
+ if (!content.id) {
53
+ return simpleResponse(400, "Invalid form data, id is required");
54
+ }
55
+ const currentPageData = await studioCMS_SDK_Cache.GET.page.byId(id);
56
+ if (!currentPageData) {
57
+ return simpleResponse(404, "Page not found");
58
+ }
59
+ const { authorId, contributorIds } = currentPageData.data;
60
+ let AuthorId = authorId;
61
+ if (!authorId) {
62
+ AuthorId = userId || null;
63
+ }
64
+ const ContributorIds = contributorIds || [];
65
+ if (!ContributorIds.includes(userId)) {
66
+ ContributorIds.push(userId);
67
+ }
68
+ data.authorId = AuthorId;
69
+ data.contributorIds = JSON.stringify(ContributorIds);
70
+ data.updatedAt = /* @__PURE__ */ new Date();
71
+ const startMetaData = (await studioCMS_SDK.GET.databaseTable.pageData()).find(
72
+ (metaData) => metaData.id === data.id
73
+ );
74
+ const {
75
+ data: { defaultContent }
76
+ } = await studioCMS_SDK_Cache.GET.page.byId(data.id);
77
+ try {
78
+ await studioCMS_SDK_Cache.UPDATE.page.byId(data.id, {
79
+ pageData: data,
80
+ pageContent: content
81
+ });
82
+ const updatedMetaData = (await studioCMS_SDK.GET.databaseTable.pageData()).find(
83
+ (metaData) => metaData.id === data.id
84
+ );
85
+ const { enableDiffs, diffPerPage } = (await studioCMS_SDK_Cache.GET.siteConfig()).data;
86
+ if (enableDiffs) {
87
+ await studioCMS_SDK.diffTracking.insert(
88
+ userId,
89
+ data.id,
90
+ {
91
+ content: {
92
+ start: defaultContent?.content || "",
93
+ end: content.content || ""
94
+ },
95
+ // biome-ignore lint/style/noNonNullAssertion: <explanation>
96
+ metaData: { start: startMetaData, end: updatedMetaData }
97
+ },
98
+ diffPerPage
99
+ );
100
+ }
101
+ studioCMS_SDK_Cache.CLEAR.page.byId(id);
102
+ return simpleResponse(200, "Page updated successfully");
103
+ } catch (error) {
104
+ console.error(error);
105
+ return simpleResponse(500, "Failed to update page");
106
+ }
107
+ };
108
+ const DELETE = async (context) => {
109
+ const user = await verifyAuthToken(context);
110
+ if (user instanceof Response) {
111
+ return user;
112
+ }
113
+ const { rank } = user;
114
+ if (rank !== "owner" && rank !== "admin") {
115
+ return simpleResponse(401, "Unauthorized");
116
+ }
117
+ const { id } = context.params;
118
+ if (!id) {
119
+ return simpleResponse(400, "Invalid page ID");
120
+ }
121
+ const jsonData = await context.request.json();
122
+ const { slug } = jsonData;
123
+ if (!slug) {
124
+ return simpleResponse(400, "Invalid request");
125
+ }
126
+ const isHomePage = await studioCMS_SDK_Cache.GET.page.bySlug("index");
127
+ if (isHomePage.data && isHomePage.data.id === id) {
128
+ return simpleResponse(400, "Cannot delete home page");
129
+ }
130
+ try {
131
+ await studioCMS_SDK.DELETE.page(id);
132
+ studioCMS_SDK_Cache.CLEAR.page.byId(id);
133
+ return simpleResponse(200, "Page deleted successfully");
134
+ } catch (error) {
135
+ return simpleResponse(500, "Failed to delete page");
136
+ }
137
+ };
138
+ const OPTIONS = async () => {
139
+ return new Response(null, {
140
+ status: 204,
141
+ statusText: "No Content",
142
+ headers: {
143
+ Allow: "OPTIONS, GET, PATCH, DELETE",
144
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
145
+ "Cache-Control": "public, max-age=604800, immutable",
146
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
147
+ }
148
+ });
149
+ };
150
+ const ALL = async () => {
151
+ return new Response(null, {
152
+ status: 405,
153
+ statusText: "Method Not Allowed",
154
+ headers: {
155
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
156
+ }
157
+ });
158
+ };
159
+ export {
160
+ ALL,
161
+ DELETE,
162
+ GET,
163
+ OPTIONS,
164
+ PATCH
165
+ };
@@ -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,113 @@
1
+ import studioCMS_SDK from "studiocms:sdk";
2
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
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" && rank !== "editor") {
12
+ return simpleResponse(401, "Unauthorized");
13
+ }
14
+ const pages = await studioCMS_SDK_Cache.GET.pages(true);
15
+ const searchParams = context.url.searchParams;
16
+ const titleFilter = searchParams.get("title");
17
+ const slugFilter = searchParams.get("slug");
18
+ const authorFilter = searchParams.get("author");
19
+ const draftFilter = searchParams.get("draft") === "true";
20
+ const publishedFilter = searchParams.get("published") === "true";
21
+ const parentFolderFilter = searchParams.get("parentFolder");
22
+ let filteredPages = pages;
23
+ if (titleFilter) {
24
+ filteredPages = filteredPages.filter((page) => page.data.title.includes(titleFilter));
25
+ }
26
+ if (slugFilter) {
27
+ filteredPages = filteredPages.filter((page) => page.data.slug.includes(slugFilter));
28
+ }
29
+ if (authorFilter) {
30
+ filteredPages = filteredPages.filter((page) => page.data.authorId === authorFilter);
31
+ }
32
+ if (draftFilter) {
33
+ filteredPages = filteredPages.filter((page) => page.data.draft === draftFilter);
34
+ }
35
+ if (publishedFilter) {
36
+ filteredPages = filteredPages.filter((page) => !page.data.draft);
37
+ }
38
+ if (parentFolderFilter) {
39
+ filteredPages = filteredPages.filter((page) => page.data.parentFolder === parentFolderFilter);
40
+ }
41
+ return new Response(JSON.stringify(filteredPages), {
42
+ headers: {
43
+ "Content-Type": "application/json"
44
+ }
45
+ });
46
+ };
47
+ const POST = async (context) => {
48
+ const user = await verifyAuthToken(context);
49
+ if (user instanceof Response) {
50
+ return user;
51
+ }
52
+ const { rank, userId } = user;
53
+ if (rank !== "owner" && rank !== "admin" && rank !== "editor") {
54
+ return simpleResponse(401, "Unauthorized");
55
+ }
56
+ const jsonData = await context.request.json();
57
+ const { data, content } = jsonData;
58
+ if (!data) {
59
+ return simpleResponse(400, "Invalid form data, data is required");
60
+ }
61
+ if (!content) {
62
+ return simpleResponse(400, "Invalid form data, content is required");
63
+ }
64
+ if (!data.title) {
65
+ return simpleResponse(400, "Invalid form data, title is required");
66
+ }
67
+ const dataId = crypto.randomUUID();
68
+ const contentId = crypto.randomUUID();
69
+ try {
70
+ await studioCMS_SDK.POST.databaseEntry.pages(
71
+ {
72
+ id: dataId,
73
+ // biome-ignore lint/style/noNonNullAssertion: <explanation>
74
+ title: data.title,
75
+ slug: data.slug || data.title.toLowerCase().replace(/\s/g, "-"),
76
+ description: data.description || "",
77
+ authorId: userId || null,
78
+ ...data
79
+ },
80
+ { id: contentId, ...content }
81
+ );
82
+ return simpleResponse(200, `Page created successfully with id: ${dataId}`);
83
+ } catch (error) {
84
+ return simpleResponse(500, "Internal Server Error");
85
+ }
86
+ };
87
+ const OPTIONS = async () => {
88
+ return new Response(null, {
89
+ status: 204,
90
+ statusText: "No Content",
91
+ headers: {
92
+ Allow: "OPTIONS, GET, POST",
93
+ "ALLOW-ACCESS-CONTROL-ORIGIN": "*",
94
+ "Cache-Control": "public, max-age=604800, immutable",
95
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
96
+ }
97
+ });
98
+ };
99
+ const ALL = async () => {
100
+ return new Response(null, {
101
+ status: 405,
102
+ statusText: "Method Not Allowed",
103
+ headers: {
104
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*"
105
+ }
106
+ });
107
+ };
108
+ export {
109
+ ALL,
110
+ GET,
111
+ OPTIONS,
112
+ POST
113
+ };
@@ -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;