studiocms 0.1.0-beta.7 → 0.1.0-beta.8

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 (585) hide show
  1. package/CHANGELOG.md +473 -0
  2. package/LICENSE +1 -1
  3. package/README.md +17 -10
  4. package/auth.d.ts +405 -0
  5. package/core.d.ts +225 -0
  6. package/custom-renderers/index.ts +4 -0
  7. package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactRenderer.tsx +8 -0
  8. package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactWrapper.astro +13 -0
  9. package/custom-renderers/markdocRenderers/markdocReact.ts +56 -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 +19 -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 +60 -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 +124 -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 +272 -0
  73. package/dist/components/dashboard/islands/configuration/LightVsDark.astro +67 -0
  74. package/dist/components/dashboard/islands/content-mgmt/CreateFolder.astro +91 -0
  75. package/dist/components/dashboard/islands/content-mgmt/CreatePage.astro +332 -0
  76. package/dist/components/dashboard/islands/content-mgmt/EditFolder.astro +112 -0
  77. package/dist/components/dashboard/islands/content-mgmt/EditPage.astro +388 -0
  78. package/dist/components/dashboard/islands/content-mgmt/InnerSidebarElement.astro +230 -0
  79. package/dist/components/dashboard/islands/content-mgmt/PageHeader.astro +387 -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 +267 -0
  97. package/dist/components/dashboard/islands/profile/BasicInfo.astro +107 -0
  98. package/dist/components/dashboard/islands/profile/BasicInfoFallback.astro +43 -0
  99. package/dist/components/dashboard/islands/profile/SocialSignin.astro +151 -0
  100. package/dist/components/dashboard/islands/profile/SocialSigninFallback.astro +83 -0
  101. package/dist/components/dashboard/islands/profile/UpdatePassword.astro +137 -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/Admin.astro +103 -0
  106. package/dist/components/dashboard/islands/sidebar/Editor.astro +18 -0
  107. package/dist/components/dashboard/islands/sidebar/UserAccount.astro +23 -0
  108. package/dist/components/dashboard/islands/sidebar/VersionCheck.astro +127 -0
  109. package/dist/components/dashboard/islands/sidebar/VersionCheckChangelog.astro +107 -0
  110. package/dist/components/dashboard/islands/user-mgmt/InnerSidebarElement.astro +298 -0
  111. package/dist/components/dashboard/islands/user-mgmt/RankCheck.astro +49 -0
  112. package/dist/components/dashboard/islands/user-mgmt/SocialSignin.astro +88 -0
  113. package/dist/components/dashboard/islands/user-mgmt/UserListItem.astro +60 -0
  114. package/dist/components/dashboard/sidebar-modals/UserManagementModals.astro +103 -0
  115. package/dist/components/dashboard/sidebar-modals/VersionModal.astro +267 -0
  116. package/dist/components/dashboard/sidebarConfig.d.ts +31 -0
  117. package/dist/components/dashboard/sidebarConfig.js +90 -0
  118. package/dist/components/default-grid-items/Recently-created-pages.astro +91 -0
  119. package/dist/components/default-grid-items/Recently-signed-up.astro +71 -0
  120. package/dist/components/default-grid-items/Recently-updated-pages.astro +96 -0
  121. package/dist/components/default-grid-items/Totals.astro +107 -0
  122. package/dist/components/default-grid-items/utils.d.ts +17 -0
  123. package/dist/components/default-grid-items/utils.js +26 -0
  124. package/dist/components/image/CustomImage.astro +90 -0
  125. package/dist/components/user-quick-tools.d.ts +42 -0
  126. package/dist/components/user-quick-tools.js +312 -0
  127. package/dist/config.d.ts +3 -0
  128. package/dist/config.js +4 -0
  129. package/dist/consts.d.ts +61 -0
  130. package/dist/consts.js +39 -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 +1177 -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 +103 -0
  167. package/dist/lib/i18n/config.d.ts +16 -0
  168. package/dist/lib/i18n/config.js +8 -0
  169. package/dist/lib/i18n/index.d.ts +228 -0
  170. package/dist/lib/i18n/index.js +63 -0
  171. package/dist/lib/i18n/translations/de.json +43 -0
  172. package/dist/lib/i18n/translations/en-us.json +63 -0
  173. package/dist/lib/index.d.ts +7 -0
  174. package/dist/lib/index.js +7 -0
  175. package/dist/lib/jsonUtils.d.ts +2 -0
  176. package/dist/lib/jsonUtils.js +11 -0
  177. package/dist/lib/makeAPIRoute.d.ts +45 -0
  178. package/dist/lib/makeAPIRoute.js +16 -0
  179. package/dist/lib/makePublicRoute.d.ts +7 -0
  180. package/dist/lib/makePublicRoute.js +6 -0
  181. package/dist/lib/pathGenerators.d.ts +20 -0
  182. package/dist/lib/pathGenerators.js +66 -0
  183. package/dist/lib/plugins/dashboard-pages.d.ts +71 -0
  184. package/dist/lib/plugins/dashboard-pages.js +11 -0
  185. package/dist/lib/plugins/frontend-navigation.d.ts +18 -0
  186. package/dist/lib/plugins/frontend-navigation.js +39 -0
  187. package/dist/lib/plugins/index.d.ts +2 -0
  188. package/dist/lib/plugins/index.js +2 -0
  189. package/dist/lib/removeLeadingTrailingSlashes.d.ts +7 -0
  190. package/dist/lib/removeLeadingTrailingSlashes.js +13 -0
  191. package/dist/lib/renderer/astro-remark.d.ts +13 -0
  192. package/dist/lib/renderer/astro-remark.js +11 -0
  193. package/dist/lib/renderer/contentRenderer.d.ts +13 -0
  194. package/dist/lib/renderer/contentRenderer.js +31 -0
  195. package/dist/lib/renderer/errors.d.ts +5 -0
  196. package/dist/lib/renderer/errors.js +25 -0
  197. package/dist/lib/renderer/markdoc-renderers/markdocHTML.d.ts +3 -0
  198. package/dist/lib/renderer/markdoc-renderers/markdocHTML.js +14 -0
  199. package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.d.ts +3 -0
  200. package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.js +14 -0
  201. package/dist/lib/renderer/markdoc.d.ts +11 -0
  202. package/dist/lib/renderer/markdoc.js +28 -0
  203. package/dist/lib/renderer/mdx.d.ts +10 -0
  204. package/dist/lib/renderer/mdx.js +37 -0
  205. package/dist/lib/renderer/runtime.d.ts +8 -0
  206. package/dist/lib/renderer/runtime.js +30 -0
  207. package/dist/lib/renderer/shared.d.ts +15 -0
  208. package/dist/lib/renderer/shared.js +13 -0
  209. package/dist/lib/renderer/studiocms.d.ts +11 -0
  210. package/dist/lib/renderer/studiocms.js +22 -0
  211. package/dist/lib/renderer/types.d.ts +12 -0
  212. package/dist/lib/renderer/types.js +0 -0
  213. package/dist/lib/robots/core.d.ts +24 -0
  214. package/dist/lib/robots/core.js +187 -0
  215. package/dist/lib/robots/index.d.ts +11 -0
  216. package/dist/lib/robots/index.js +47 -0
  217. package/dist/lib/robots/types.d.ts +185 -0
  218. package/dist/lib/robots/types.js +0 -0
  219. package/dist/lib/robots/utils.d.ts +22 -0
  220. package/dist/lib/robots/utils.js +22 -0
  221. package/dist/lib/routeMap.d.ts +257 -0
  222. package/dist/lib/routeMap.js +249 -0
  223. package/dist/lib/urlGen.d.ts +11 -0
  224. package/dist/lib/urlGen.js +26 -0
  225. package/dist/lib/webVitals/checkForWebVitalsPlugin.d.ts +18 -0
  226. package/dist/lib/webVitals/checkForWebVitalsPlugin.js +82 -0
  227. package/dist/lib/webVitals/consts.d.ts +240 -0
  228. package/dist/lib/webVitals/consts.js +40 -0
  229. package/dist/lib/webVitals/dashboard-grid-items/CoreVitals.astro +66 -0
  230. package/dist/lib/webVitals/dashboard-grid-items/MetricCard.astro +24 -0
  231. package/dist/lib/webVitals/dashboard-grid-items/SummaryCard.astro +56 -0
  232. package/dist/lib/webVitals/dashboard-grid-items/metric.css +103 -0
  233. package/dist/lib/webVitals/dashboard-grid-items/shared.d.ts +29 -0
  234. package/dist/lib/webVitals/dashboard-grid-items/shared.js +35 -0
  235. package/dist/lib/webVitals/pages/analytics/body.astro +186 -0
  236. package/dist/lib/webVitals/pages/analytics/header.astro +42 -0
  237. package/dist/lib/webVitals/schemas.d.ts +78 -0
  238. package/dist/lib/webVitals/schemas.js +37 -0
  239. package/dist/lib/webVitals/types.d.ts +156 -0
  240. package/dist/lib/webVitals/types.js +0 -0
  241. package/dist/lib/webVitals/utils/buildDataObject.d.ts +8 -0
  242. package/dist/lib/webVitals/utils/buildDataObject.js +28 -0
  243. package/dist/lib/webVitals/utils/buildPageRouteDataObject.d.ts +15 -0
  244. package/dist/lib/webVitals/utils/buildPageRouteDataObject.js +70 -0
  245. package/dist/lib/webVitals/utils/buildPerPageDataObject.d.ts +23 -0
  246. package/dist/lib/webVitals/utils/buildPerPageDataObject.js +209 -0
  247. package/dist/lib/webVitals/utils/checkDate.d.ts +5 -0
  248. package/dist/lib/webVitals/utils/checkDate.js +19 -0
  249. package/dist/lib/webVitals/utils/webVitalsUtils.d.ts +24 -0
  250. package/dist/lib/webVitals/utils/webVitalsUtils.js +234 -0
  251. package/dist/lib/webVitals/webVital.d.ts +20 -0
  252. package/dist/lib/webVitals/webVital.js +40 -0
  253. package/dist/lib/webVitals/webVitalsRouteSummary.d.ts +19 -0
  254. package/dist/lib/webVitals/webVitalsRouteSummary.js +59 -0
  255. package/dist/lib/webVitals/webVitalsSummary.d.ts +19 -0
  256. package/dist/lib/webVitals/webVitalsSummary.js +49 -0
  257. package/dist/plugins.d.ts +2 -0
  258. package/dist/plugins.js +6 -0
  259. package/dist/routes/api/render.astro +25 -0
  260. package/dist/routes/auth/api/auth0/callback.d.ts +4 -0
  261. package/dist/routes/auth/api/auth0/callback.js +117 -0
  262. package/dist/routes/auth/api/auth0/index.d.ts +4 -0
  263. package/dist/routes/auth/api/auth0/index.js +36 -0
  264. package/dist/routes/auth/api/auth0/shared.d.ts +13 -0
  265. package/dist/routes/auth/api/auth0/shared.js +24 -0
  266. package/dist/routes/auth/api/discord/callback.d.ts +4 -0
  267. package/dist/routes/auth/api/discord/callback.js +112 -0
  268. package/dist/routes/auth/api/discord/index.d.ts +4 -0
  269. package/dist/routes/auth/api/discord/index.js +36 -0
  270. package/dist/routes/auth/api/discord/shared.d.ts +12 -0
  271. package/dist/routes/auth/api/discord/shared.js +17 -0
  272. package/dist/routes/auth/api/github/callback.d.ts +4 -0
  273. package/dist/routes/auth/api/github/callback.js +112 -0
  274. package/dist/routes/auth/api/github/index.d.ts +4 -0
  275. package/dist/routes/auth/api/github/index.js +36 -0
  276. package/dist/routes/auth/api/github/shared.d.ts +13 -0
  277. package/dist/routes/auth/api/github/shared.js +14 -0
  278. package/dist/routes/auth/api/google/callback.d.ts +4 -0
  279. package/dist/routes/auth/api/google/callback.js +115 -0
  280. package/dist/routes/auth/api/google/index.d.ts +4 -0
  281. package/dist/routes/auth/api/google/index.js +38 -0
  282. package/dist/routes/auth/api/google/shared.d.ts +12 -0
  283. package/dist/routes/auth/api/google/shared.js +19 -0
  284. package/dist/routes/auth/api/login.d.ts +4 -0
  285. package/dist/routes/auth/api/login.js +46 -0
  286. package/dist/routes/auth/api/logout.d.ts +5 -0
  287. package/dist/routes/auth/api/logout.js +55 -0
  288. package/dist/routes/auth/api/register.d.ts +4 -0
  289. package/dist/routes/auth/api/register.js +64 -0
  290. package/dist/routes/auth/api/shared.d.ts +2 -0
  291. package/dist/routes/auth/api/shared.js +21 -0
  292. package/dist/routes/auth/login.astro +67 -0
  293. package/dist/routes/auth/logout.astro +28 -0
  294. package/dist/routes/auth/signup.astro +70 -0
  295. package/dist/routes/dashboard/[...pluginPage].astro +88 -0
  296. package/dist/routes/dashboard/configuration.astro +27 -0
  297. package/dist/routes/dashboard/content-management/createfolder.astro +56 -0
  298. package/dist/routes/dashboard/content-management/createpage.astro +59 -0
  299. package/dist/routes/dashboard/content-management/diff.astro +100 -0
  300. package/dist/routes/dashboard/content-management/editfolder.astro +40 -0
  301. package/dist/routes/dashboard/content-management/editpage.astro +44 -0
  302. package/dist/routes/dashboard/content-management/index.astro +57 -0
  303. package/dist/routes/dashboard/index.astro +24 -0
  304. package/dist/routes/dashboard/password-reset.astro +169 -0
  305. package/dist/routes/dashboard/plugins/[plugin].astro +60 -0
  306. package/dist/routes/dashboard/profile.astro +57 -0
  307. package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.d.ts +5 -0
  308. package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.js +90 -0
  309. package/dist/routes/dashboard/studiocms_api/dashboard/config.d.ts +4 -0
  310. package/dist/routes/dashboard/studiocms_api/dashboard/config.js +63 -0
  311. package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.d.ts +6 -0
  312. package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.js +121 -0
  313. package/dist/routes/dashboard/studiocms_api/dashboard/content/page.d.ts +6 -0
  314. package/dist/routes/dashboard/studiocms_api/dashboard/content/page.js +257 -0
  315. package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.d.ts +4 -0
  316. package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.js +59 -0
  317. package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.d.ts +4 -0
  318. package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.js +105 -0
  319. package/dist/routes/dashboard/studiocms_api/dashboard/create-user.d.ts +4 -0
  320. package/dist/routes/dashboard/studiocms_api/dashboard/create-user.js +100 -0
  321. package/dist/routes/dashboard/studiocms_api/dashboard/partials/Editor.astro +61 -0
  322. package/dist/routes/dashboard/studiocms_api/dashboard/partials/LiveRender.astro +30 -0
  323. package/dist/routes/dashboard/studiocms_api/dashboard/partials/UserListItems.astro +39 -0
  324. package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].d.ts +2 -0
  325. package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].js +32 -0
  326. package/dist/routes/dashboard/studiocms_api/dashboard/profile.d.ts +4 -0
  327. package/dist/routes/dashboard/studiocms_api/dashboard/profile.js +130 -0
  328. package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.d.ts +4 -0
  329. package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.js +105 -0
  330. package/dist/routes/dashboard/studiocms_api/dashboard/search-list.d.ts +4 -0
  331. package/dist/routes/dashboard/studiocms_api/dashboard/search-list.js +55 -0
  332. package/dist/routes/dashboard/studiocms_api/dashboard/users.d.ts +5 -0
  333. package/dist/routes/dashboard/studiocms_api/dashboard/users.js +92 -0
  334. package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.d.ts +2 -0
  335. package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.js +72 -0
  336. package/dist/routes/dashboard/user-management/edit.astro +593 -0
  337. package/dist/routes/dashboard/user-management/index.astro +67 -0
  338. package/dist/routes/error-pages/404.astro +35 -0
  339. package/dist/routes/firstTimeSetupRoutes/1-start.astro +253 -0
  340. package/dist/routes/firstTimeSetupRoutes/2-next.astro +208 -0
  341. package/dist/routes/firstTimeSetupRoutes/3-done.astro +95 -0
  342. package/dist/routes/firstTimeSetupRoutes/api/step-1.d.ts +2 -0
  343. package/dist/routes/firstTimeSetupRoutes/api/step-1.js +126 -0
  344. package/dist/routes/firstTimeSetupRoutes/api/step-2.d.ts +2 -0
  345. package/dist/routes/firstTimeSetupRoutes/api/step-2.js +110 -0
  346. package/dist/routes/firstTimeSetupRoutes/components/Layout.astro +41 -0
  347. package/dist/routes/firstTimeSetupRoutes/components/PageHeader.astro +60 -0
  348. package/dist/routes/firstTimeSetupRoutes/components/TabItem.astro +44 -0
  349. package/dist/routes/firstTimeSetupRoutes/components/Tabs.astro +170 -0
  350. package/dist/routes/firstTimeSetupRoutes/snippets/opt1-astro.config.diff +14 -0
  351. package/dist/routes/firstTimeSetupRoutes/snippets/opt2-astro.config.diff +9 -0
  352. package/dist/routes/firstTimeSetupRoutes/snippets/opt2-studiocms.config.diff +5 -0
  353. package/dist/routes/rest/utils/auth-token.d.ts +17 -0
  354. package/dist/routes/rest/utils/auth-token.js +31 -0
  355. package/dist/routes/rest/v1/folders/[id].d.ts +6 -0
  356. package/dist/routes/rest/v1/folders/[id].js +106 -0
  357. package/dist/routes/rest/v1/folders/index.d.ts +5 -0
  358. package/dist/routes/rest/v1/folders/index.js +88 -0
  359. package/dist/routes/rest/v1/pages/[id]/history/[diffid].d.ts +4 -0
  360. package/dist/routes/rest/v1/pages/[id]/history/[diffid].js +55 -0
  361. package/dist/routes/rest/v1/pages/[id]/history/index.d.ts +4 -0
  362. package/dist/routes/rest/v1/pages/[id]/history/index.js +61 -0
  363. package/dist/routes/rest/v1/pages/[id]/index.d.ts +6 -0
  364. package/dist/routes/rest/v1/pages/[id]/index.js +165 -0
  365. package/dist/routes/rest/v1/pages/index.d.ts +5 -0
  366. package/dist/routes/rest/v1/pages/index.js +113 -0
  367. package/dist/routes/rest/v1/public/folders/[id].d.ts +4 -0
  368. package/dist/routes/rest/v1/public/folders/[id].js +43 -0
  369. package/dist/routes/rest/v1/public/folders/index.d.ts +4 -0
  370. package/dist/routes/rest/v1/public/folders/index.js +49 -0
  371. package/dist/routes/rest/v1/public/pages/[id].d.ts +4 -0
  372. package/dist/routes/rest/v1/public/pages/[id].js +46 -0
  373. package/dist/routes/rest/v1/public/pages/index.d.ts +4 -0
  374. package/dist/routes/rest/v1/public/pages/index.js +61 -0
  375. package/dist/routes/rest/v1/settings/index.d.ts +5 -0
  376. package/dist/routes/rest/v1/settings/index.js +75 -0
  377. package/dist/routes/rest/v1/users/[id].d.ts +6 -0
  378. package/dist/routes/rest/v1/users/[id].js +212 -0
  379. package/dist/routes/rest/v1/users/index.d.ts +5 -0
  380. package/dist/routes/rest/v1/users/index.js +138 -0
  381. package/dist/routes/sdk/fallback-list-pages.json.d.ts +2 -0
  382. package/dist/routes/sdk/fallback-list-pages.json.js +19 -0
  383. package/dist/routes/sdk/fallback-list-pages.json.ts +22 -0
  384. package/dist/routes/sdk/full-changelog.json.d.ts +16 -0
  385. package/dist/routes/sdk/full-changelog.json.js +170 -0
  386. package/dist/routes/sdk/full-changelog.json.ts +224 -0
  387. package/dist/routes/sdk/list-pages.d.ts +4 -0
  388. package/dist/routes/sdk/list-pages.js +34 -0
  389. package/dist/routes/sdk/update-latest-version-cache.d.ts +4 -0
  390. package/dist/routes/sdk/update-latest-version-cache.js +41 -0
  391. package/dist/runtime/AstroComponentProxy.d.ts +29 -0
  392. package/dist/runtime/AstroComponentProxy.js +47 -0
  393. package/dist/runtime/decoder/decode-codepoint.d.ts +18 -0
  394. package/dist/runtime/decoder/decode-codepoint.js +58 -0
  395. package/dist/runtime/decoder/decode-data-html.d.ts +1 -0
  396. package/dist/runtime/decoder/decode-data-html.js +7 -0
  397. package/dist/runtime/decoder/decode-data-xml.d.ts +1 -0
  398. package/dist/runtime/decoder/decode-data-xml.js +7 -0
  399. package/dist/runtime/decoder/index.d.ts +34 -0
  400. package/dist/runtime/decoder/index.js +18 -0
  401. package/dist/runtime/decoder/util.d.ts +208 -0
  402. package/dist/runtime/decoder/util.js +415 -0
  403. package/dist/schemas/config/auth.d.ts +175 -0
  404. package/dist/schemas/config/auth.js +65 -0
  405. package/dist/schemas/config/componentoverrides.d.ts +17 -0
  406. package/dist/schemas/config/componentoverrides.js +14 -0
  407. package/dist/schemas/config/dashboard.d.ts +154 -0
  408. package/dist/schemas/config/dashboard.js +59 -0
  409. package/dist/schemas/config/defaultFrontend.d.ts +125 -0
  410. package/dist/schemas/config/defaultFrontend.js +57 -0
  411. package/dist/schemas/config/developer.d.ts +15 -0
  412. package/dist/schemas/config/developer.js +14 -0
  413. package/dist/schemas/config/imageService.d.ts +13 -0
  414. package/dist/schemas/config/imageService.js +12 -0
  415. package/dist/schemas/config/index.d.ts +1153 -0
  416. package/dist/schemas/config/index.js +95 -0
  417. package/dist/schemas/config/integrations.d.ts +14 -0
  418. package/dist/schemas/config/integrations.js +12 -0
  419. package/dist/schemas/config/markdoc.d.ts +172 -0
  420. package/dist/schemas/config/markdoc.js +68 -0
  421. package/dist/schemas/config/mdx.d.ts +455 -0
  422. package/dist/schemas/config/mdx.js +71 -0
  423. package/dist/schemas/config/rendererConfig.d.ts +659 -0
  424. package/dist/schemas/config/rendererConfig.js +51 -0
  425. package/dist/schemas/config/sdk.d.ts +167 -0
  426. package/dist/schemas/config/sdk.js +85 -0
  427. package/dist/schemas/config/studiocms-markdown-remark.d.ts +292 -0
  428. package/dist/schemas/config/studiocms-markdown-remark.js +63 -0
  429. package/dist/schemas/index.d.ts +2 -0
  430. package/dist/schemas/index.js +2 -0
  431. package/dist/schemas/plugins/index.d.ts +7373 -0
  432. package/dist/schemas/plugins/index.js +192 -0
  433. package/dist/schemas/plugins/shared.d.ts +1752 -0
  434. package/dist/schemas/plugins/shared.js +221 -0
  435. package/dist/scripts/formListener.d.ts +16 -0
  436. package/dist/scripts/formListener.js +46 -0
  437. package/dist/scripts/three.d.ts +1 -0
  438. package/dist/scripts/three.js +277 -0
  439. package/dist/scripts/utils/fitModelToViewport.d.ts +8 -0
  440. package/dist/scripts/utils/fitModelToViewport.js +19 -0
  441. package/dist/sdk/StudioCMSVirtualCache.d.ts +283 -0
  442. package/dist/sdk/StudioCMSVirtualCache.js +685 -0
  443. package/dist/sdk/cache.d.ts +11 -0
  444. package/dist/sdk/cache.js +12 -0
  445. package/dist/sdk/core.d.ts +865 -0
  446. package/dist/sdk/core.js +1966 -0
  447. package/dist/sdk/errors.d.ts +21 -0
  448. package/dist/sdk/errors.js +11 -0
  449. package/dist/sdk/index.d.ts +371 -0
  450. package/dist/sdk/index.js +8 -0
  451. package/dist/sdk/lib/foldertree.d.ts +50 -0
  452. package/dist/sdk/lib/foldertree.js +123 -0
  453. package/dist/sdk/lib/generators.d.ts +30 -0
  454. package/dist/sdk/lib/generators.js +25 -0
  455. package/dist/sdk/lib/packages.d.ts +8 -0
  456. package/dist/sdk/lib/packages.js +14 -0
  457. package/dist/sdk/lib/parsers.d.ts +14 -0
  458. package/dist/sdk/lib/parsers.js +10 -0
  459. package/dist/sdk/lib/users.d.ts +19 -0
  460. package/dist/sdk/lib/users.js +26 -0
  461. package/dist/sdk/tables.d.ts +1198 -0
  462. package/dist/sdk/tables.js +55 -0
  463. package/dist/sdk/types/index.d.ts +175 -0
  464. package/dist/sdk/types/index.js +0 -0
  465. package/dist/sdk/types/tableDefs.d.ts +75 -0
  466. package/dist/sdk/types/tableDefs.js +0 -0
  467. package/dist/sdk/types/tsAlias.d.ts +155 -0
  468. package/dist/sdk/types/tsAlias.js +0 -0
  469. package/dist/sdk/utils/db.d.ts +5 -0
  470. package/dist/sdk/utils/db.js +15 -0
  471. package/dist/stubs/auth-lib.d.ts +2 -0
  472. package/dist/stubs/auth-lib.js +519 -0
  473. package/dist/stubs/auth-scripts.d.ts +2 -0
  474. package/dist/stubs/auth-scripts.js +29 -0
  475. package/dist/stubs/auth-utils.d.ts +2 -0
  476. package/dist/stubs/auth-utils.js +36 -0
  477. package/dist/stubs/changelog.d.ts +2 -0
  478. package/dist/stubs/changelog.js +16 -0
  479. package/dist/stubs/components.d.ts +2 -0
  480. package/dist/stubs/components.js +67 -0
  481. package/dist/stubs/core.d.ts +2 -0
  482. package/dist/stubs/core.js +49 -0
  483. package/dist/stubs/i18n-dts.d.ts +2 -0
  484. package/dist/stubs/i18n-dts.js +117 -0
  485. package/dist/stubs/images.d.ts +1 -0
  486. package/dist/stubs/images.js +30 -0
  487. package/dist/stubs/index.d.ts +1 -0
  488. package/dist/stubs/index.js +40 -0
  489. package/dist/stubs/lib.d.ts +2 -0
  490. package/dist/stubs/lib.js +123 -0
  491. package/dist/stubs/plugins.d.ts +2 -0
  492. package/dist/stubs/plugins.js +60 -0
  493. package/dist/stubs/proxy.d.ts +2 -0
  494. package/dist/stubs/proxy.js +40 -0
  495. package/dist/stubs/renderer-config.d.ts +2 -0
  496. package/dist/stubs/renderer-config.js +18 -0
  497. package/dist/stubs/renderer-markdownConfig.d.ts +2 -0
  498. package/dist/stubs/renderer-markdownConfig.js +17 -0
  499. package/dist/stubs/renderer.d.ts +2 -0
  500. package/dist/stubs/renderer.js +44 -0
  501. package/dist/stubs/sdk.d.ts +2 -0
  502. package/dist/stubs/sdk.js +202 -0
  503. package/dist/stubs/webVitals.d.ts +2 -0
  504. package/dist/stubs/webVitals.js +40 -0
  505. package/dist/styles/404.css +47 -0
  506. package/dist/styles/SyntaxFont.woff2 +0 -0
  507. package/dist/styles/authlayout.css +138 -0
  508. package/dist/styles/dashboard-base.css +493 -0
  509. package/dist/styles/dashboard-code.css +33 -0
  510. package/dist/styles/dashboard-diff.css +389 -0
  511. package/dist/styles/dashboard-tiny-mde.css +224 -0
  512. package/dist/styles/md-remark-callouts/github.css +56 -0
  513. package/dist/styles/md-remark-callouts/obsidian.css +66 -0
  514. package/dist/styles/md-remark-callouts/vitepress.css +58 -0
  515. package/dist/styles/md-remark-headings.css +48 -0
  516. package/dist/types.d.ts +48 -0
  517. package/dist/types.js +0 -0
  518. package/dist/utils/addAPIRoutes.d.ts +9 -0
  519. package/dist/utils/addAPIRoutes.js +33 -0
  520. package/dist/utils/addIntegrationArray.d.ts +24 -0
  521. package/dist/utils/addIntegrationArray.js +11 -0
  522. package/dist/utils/addIntegrationArrayWithCheck.d.ts +11 -0
  523. package/dist/utils/addIntegrationArrayWithCheck.js +24 -0
  524. package/dist/utils/astroConfigCheck.d.ts +8 -0
  525. package/dist/utils/astroConfigCheck.js +31 -0
  526. package/dist/utils/astroEnvConfig.d.ts +45 -0
  527. package/dist/utils/astroEnvConfig.js +9 -0
  528. package/dist/utils/authEnvCheck.d.ts +38 -0
  529. package/dist/utils/authEnvCheck.js +82 -0
  530. package/dist/utils/changelog.d.ts +1 -0
  531. package/dist/utils/changelog.js +53 -0
  532. package/dist/utils/changelogLoader.d.ts +15 -0
  533. package/dist/utils/changelogLoader.js +104 -0
  534. package/dist/utils/checkENV.d.ts +27 -0
  535. package/dist/utils/checkENV.js +115 -0
  536. package/dist/utils/configManager.d.ts +22 -0
  537. package/dist/utils/configManager.js +98 -0
  538. package/dist/utils/configResolver.d.ts +283 -0
  539. package/dist/utils/configResolver.js +105 -0
  540. package/dist/utils/defineStudioCMSConfig.d.ts +165 -0
  541. package/dist/utils/defineStudioCMSConfig.js +6 -0
  542. package/dist/utils/getLabelForPermissionLevel.d.ts +2 -0
  543. package/dist/utils/getLabelForPermissionLevel.js +17 -0
  544. package/dist/utils/injectRouteArray.d.ts +19 -0
  545. package/dist/utils/injectRouteArray.js +75 -0
  546. package/dist/utils/integrationLogger.d.ts +7 -0
  547. package/dist/utils/integrationLogger.js +18 -0
  548. package/dist/utils/integrations.d.ts +4 -0
  549. package/dist/utils/integrations.js +32 -0
  550. package/dist/utils/isDashboardRoute.d.ts +7 -0
  551. package/dist/utils/isDashboardRoute.js +10 -0
  552. package/dist/utils/loginBackgrounds/studiocms-blobs-dark.png +0 -0
  553. package/dist/utils/loginBackgrounds/studiocms-blobs-light.png +0 -0
  554. package/dist/utils/loginBackgrounds/studiocms-blocks-dark.png +0 -0
  555. package/dist/utils/loginBackgrounds/studiocms-blocks-light.png +0 -0
  556. package/dist/utils/loginBackgrounds/studiocms-curves-dark.png +0 -0
  557. package/dist/utils/loginBackgrounds/studiocms-curves-light.png +0 -0
  558. package/dist/utils/makePageTitle.d.ts +3 -0
  559. package/dist/utils/makePageTitle.js +7 -0
  560. package/dist/utils/pageListPackageLabel.d.ts +4 -0
  561. package/dist/utils/pageListPackageLabel.js +12 -0
  562. package/dist/utils/readJson.d.ts +1 -0
  563. package/dist/utils/readJson.js +7 -0
  564. package/dist/utils/routeBuilder.d.ts +18 -0
  565. package/dist/utils/routeBuilder.js +96 -0
  566. package/dist/utils/safeString.d.ts +1 -0
  567. package/dist/utils/safeString.js +6 -0
  568. package/dist/utils/simpleResponse.d.ts +1 -0
  569. package/dist/utils/simpleResponse.js +29 -0
  570. package/dist/utils/validImages.d.ts +13 -0
  571. package/dist/utils/validImages.js +39 -0
  572. package/dist/virtual.d.js +0 -0
  573. package/dist/virtual.d.ts +5 -0
  574. package/package.json +180 -59
  575. package/renderer.d.ts +25 -0
  576. package/static/studiocms-resources/auth/studiocms-logo.glb +0 -0
  577. package/static/studiocms-resources/core/favicon-dark.png +0 -0
  578. package/static/studiocms-resources/core/favicon-light.png +0 -0
  579. package/static/studiocms-resources/core/favicon.svg +15 -0
  580. package/studiocms-cli.mjs +13 -0
  581. package/ui.d.ts +291 -0
  582. package/src/blog/index.ts +0 -35
  583. package/src/index.ts +0 -25
  584. package/src/integration.ts +0 -130
  585. package/src/updateCheck.ts +0 -51
@@ -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;
@@ -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;