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,22 @@
1
+ import studioCMS_SDK from 'studiocms:sdk/cache';
2
+ import type { APIRoute } from 'astro';
3
+
4
+ // export const prerender = true;
5
+
6
+ export const GET: APIRoute = async (): Promise<Response> => {
7
+ const pages = await studioCMS_SDK.GET.pages();
8
+
9
+ const lastUpdated = new Date().toUTCString();
10
+
11
+ return new Response(
12
+ JSON.stringify({ lastUpdated, pages: pages.map((pageItem) => pageItem.data) }, null, 2),
13
+ {
14
+ headers: {
15
+ 'Content-Type': 'application/json',
16
+ 'ACCESS-CONTROL-ALLOW-ORIGIN': '*',
17
+ 'Cache-Control': 'public, max-age=604800, immutable',
18
+ Date: lastUpdated,
19
+ },
20
+ }
21
+ );
22
+ };
@@ -0,0 +1,16 @@
1
+ import type { APIRoute } from 'astro';
2
+ import type { List } from 'mdast';
3
+ export type Changelog = {
4
+ packageName: string;
5
+ versions: Version[];
6
+ };
7
+ export type Version = {
8
+ version: string;
9
+ changes: {
10
+ [key in SemverCategory]: List;
11
+ };
12
+ includes: Set<string>;
13
+ };
14
+ export declare const semverCategories: readonly ["major", "minor", "patch"];
15
+ export type SemverCategory = (typeof semverCategories)[number];
16
+ export declare const POST: APIRoute;
@@ -0,0 +1,170 @@
1
+ import { StudioCMSRoutes } from "studiocms:lib";
2
+ import { fromMarkdown } from "mdast-util-from-markdown";
3
+ import { toMarkdown } from "mdast-util-to-markdown";
4
+ import { toString as ToString } from "mdast-util-to-string";
5
+ import { visit } from "unist-util-visit";
6
+ const semverCategories = ["major", "minor", "patch"];
7
+ function parsePackageReference(str) {
8
+ const matches = str.match(/^([@/a-z0-9-]+)@([0-9.]+)$/);
9
+ if (!matches) return;
10
+ const [, packageName, version] = matches;
11
+ return { packageName, version };
12
+ }
13
+ const POST = async (context) => {
14
+ const Changelog = await fetch(
15
+ "https://raw.githubusercontent.com/withstudiocms/studiocms/refs/heads/main/packages/studiocms/CHANGELOG.md"
16
+ );
17
+ const ChangelogText = await Changelog.text();
18
+ if (ChangelogText) {
19
+ let handleNode2 = function(node) {
20
+ if (node.type === "heading") {
21
+ if (node.depth === 1) {
22
+ if (state !== "packageName") throw new Error("Unexpected h1");
23
+ changelog.packageName = ToString(node);
24
+ state = "version";
25
+ return;
26
+ }
27
+ if (node.depth === 2) {
28
+ if (state === "packageName") throw new Error("Unexpected h2");
29
+ version = {
30
+ version: ToString(node),
31
+ changes: {
32
+ major: { type: "list", children: [] },
33
+ minor: { type: "list", children: [] },
34
+ patch: { type: "list", children: [] }
35
+ },
36
+ includes: /* @__PURE__ */ new Set()
37
+ };
38
+ changelog.versions.push(version);
39
+ state = "semverCategory";
40
+ return;
41
+ }
42
+ if (node.depth === 3) {
43
+ if (state === "packageName" || state === "version") throw new Error("Unexpected h3");
44
+ semverCategory = (ToString(node).split(" ")[0] || "").toLowerCase();
45
+ if (!semverCategories.includes(semverCategory))
46
+ throw new Error(`Unexpected semver category: ${semverCategory}`);
47
+ state = "changes";
48
+ return;
49
+ }
50
+ }
51
+ if (node.type === "list") {
52
+ if (state !== "changes" || !version || !semverCategory) throw new Error("Unexpected list");
53
+ for (let listItemIdx = 0; listItemIdx < node.children.length; listItemIdx++) {
54
+ const listItem = node.children[listItemIdx];
55
+ if (!listItem) continue;
56
+ const lastChild = listItem.children[listItem.children.length - 1];
57
+ if (lastChild?.type === "list") {
58
+ const packageRefs = [];
59
+ lastChild.children.forEach((subListItem) => {
60
+ const text = ToString(subListItem);
61
+ if (parsePackageReference(text)) packageRefs.push(text);
62
+ });
63
+ if (packageRefs.length === lastChild.children.length) {
64
+ for (const packageRef of packageRefs) {
65
+ version.includes.add(packageRef);
66
+ }
67
+ listItem.children.pop();
68
+ }
69
+ }
70
+ const firstPara = listItem.children[0]?.type === "paragraph" ? listItem.children[0] : void 0;
71
+ if (firstPara) {
72
+ visit(firstPara, "text", (textNode) => {
73
+ textNode.value = textNode.value.replace(/(^[0-9a-f]{7,}: | \[[0-9a-f]{7,}\]$)/, "");
74
+ });
75
+ const firstParaText = ToString(firstPara);
76
+ if (firstParaText === "Updated dependencies") continue;
77
+ const packageRef = parsePackageReference(firstParaText);
78
+ if (packageRef) {
79
+ version.includes.add(firstParaText);
80
+ continue;
81
+ }
82
+ version.changes[semverCategory].children.push(listItem);
83
+ }
84
+ }
85
+ return;
86
+ }
87
+ throw new Error(`Unexpected node: ${JSON.stringify(node)}`);
88
+ };
89
+ var handleNode = handleNode2;
90
+ let markdown = ChangelogText;
91
+ markdown = markdown.replace(
92
+ /(?<=Thank[^.!]*? )@([a-z0-9-]+)(?=[\s,.!])/gi,
93
+ "[@$1](https://github.com/$1)"
94
+ );
95
+ const astStart = fromMarkdown(markdown);
96
+ const changelog = {
97
+ packageName: "",
98
+ versions: []
99
+ };
100
+ let state = "packageName";
101
+ let version;
102
+ let semverCategory;
103
+ astStart.children.forEach((node) => {
104
+ handleNode2(node);
105
+ });
106
+ const ToProcess = changelog;
107
+ const output = [];
108
+ const astEnd = {
109
+ type: "root",
110
+ children: []
111
+ };
112
+ for (const version2 of ToProcess.versions) {
113
+ const versionChanges = { type: "list", children: [] };
114
+ for (const semverCategory2 of semverCategories) {
115
+ for (const listItem of version2.changes[semverCategory2].children) {
116
+ versionChanges.children.push(listItem);
117
+ }
118
+ }
119
+ if (version2.includes.size) {
120
+ versionChanges.children.push({
121
+ type: "listItem",
122
+ children: [
123
+ {
124
+ type: "paragraph",
125
+ children: [{ type: "text", value: `Includes: ${[...version2.includes].join(", ")} ` }]
126
+ }
127
+ ]
128
+ });
129
+ }
130
+ if (!versionChanges.children.length) continue;
131
+ astEnd.children.push({
132
+ type: "heading",
133
+ depth: 2,
134
+ children: [{ type: "text", value: version2.version }]
135
+ });
136
+ astEnd.children.push(versionChanges);
137
+ }
138
+ output.push(toMarkdown(astEnd, { bullet: "-" }));
139
+ const markdownString = output.join("\n");
140
+ const currentRequestJson = await context.request.json();
141
+ const currentURLOrigin = currentRequestJson.currentURLOrigin;
142
+ const partialUrl = new URL(StudioCMSRoutes.endpointLinks.partials.render, currentURLOrigin);
143
+ const partialResponse = await fetch(partialUrl, {
144
+ method: "POST",
145
+ headers: {
146
+ "Content-Type": "application/json"
147
+ },
148
+ body: JSON.stringify({ content: markdownString })
149
+ });
150
+ const contentRendered = await partialResponse.text();
151
+ return new Response(JSON.stringify({ success: true, changelog: contentRendered }), {
152
+ status: 200,
153
+ headers: {
154
+ "Content-Type": "application/json",
155
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
156
+ }
157
+ });
158
+ }
159
+ return new Response(JSON.stringify({ success: false, error: "Error fetching changelog" }), {
160
+ status: 500,
161
+ headers: {
162
+ "Content-Type": "application/json",
163
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
164
+ }
165
+ });
166
+ };
167
+ export {
168
+ POST,
169
+ semverCategories
170
+ };
@@ -0,0 +1,224 @@
1
+ import { StudioCMSRoutes } from 'studiocms:lib';
2
+ import type { APIContext, APIRoute } from 'astro';
3
+ import type { List, Root } from 'mdast';
4
+ import { fromMarkdown } from 'mdast-util-from-markdown';
5
+ import { toMarkdown } from 'mdast-util-to-markdown';
6
+ import { toString as ToString } from 'mdast-util-to-string';
7
+ import { visit } from 'unist-util-visit';
8
+
9
+ export type Changelog = {
10
+ packageName: string;
11
+ versions: Version[];
12
+ };
13
+
14
+ export type Version = {
15
+ version: string;
16
+ changes: { [key in SemverCategory]: List };
17
+ includes: Set<string>;
18
+ };
19
+
20
+ export const semverCategories = ['major', 'minor', 'patch'] as const;
21
+ export type SemverCategory = (typeof semverCategories)[number];
22
+
23
+ function parsePackageReference(str: string) {
24
+ const matches = str.match(/^([@/a-z0-9-]+)@([0-9.]+)$/);
25
+ if (!matches) return;
26
+ const [, packageName, version] = matches;
27
+ return { packageName, version };
28
+ }
29
+
30
+ export const POST: APIRoute = async (context: APIContext) => {
31
+ const Changelog = await fetch(
32
+ 'https://raw.githubusercontent.com/withstudiocms/studiocms/refs/heads/main/packages/studiocms/CHANGELOG.md'
33
+ );
34
+
35
+ const ChangelogText = await Changelog.text();
36
+
37
+ if (ChangelogText) {
38
+ let markdown = ChangelogText;
39
+
40
+ // Convert GitHub usernames in "Thanks ..." sentences to links
41
+ markdown = markdown.replace(
42
+ /(?<=Thank[^.!]*? )@([a-z0-9-]+)(?=[\s,.!])/gi,
43
+ '[@$1](https://github.com/$1)'
44
+ );
45
+
46
+ const astStart = fromMarkdown(markdown);
47
+
48
+ const changelog: Changelog = {
49
+ packageName: '',
50
+ versions: [],
51
+ };
52
+
53
+ type ParserState = 'packageName' | 'version' | 'semverCategory' | 'changes';
54
+ let state: ParserState = 'packageName';
55
+ let version: Version | undefined;
56
+ let semverCategory: SemverCategory | undefined;
57
+
58
+ function handleNode(node: ReturnType<typeof fromMarkdown>['children'][number]) {
59
+ if (node.type === 'heading') {
60
+ if (node.depth === 1) {
61
+ if (state !== 'packageName') throw new Error('Unexpected h1');
62
+ changelog.packageName = ToString(node);
63
+ state = 'version';
64
+ return;
65
+ }
66
+ if (node.depth === 2) {
67
+ if (state === 'packageName') throw new Error('Unexpected h2');
68
+ version = {
69
+ version: ToString(node),
70
+ changes: {
71
+ major: { type: 'list', children: [] },
72
+ minor: { type: 'list', children: [] },
73
+ patch: { type: 'list', children: [] },
74
+ },
75
+ includes: new Set<string>(),
76
+ };
77
+ changelog.versions.push(version);
78
+ state = 'semverCategory';
79
+ return;
80
+ }
81
+ if (node.depth === 3) {
82
+ if (state === 'packageName' || state === 'version') throw new Error('Unexpected h3');
83
+ semverCategory = (ToString(node).split(' ')[0] || '').toLowerCase() as SemverCategory;
84
+ if (!semverCategories.includes(semverCategory))
85
+ throw new Error(`Unexpected semver category: ${semverCategory}`);
86
+ state = 'changes';
87
+ return;
88
+ }
89
+ }
90
+ if (node.type === 'list') {
91
+ if (state !== 'changes' || !version || !semverCategory) throw new Error('Unexpected list');
92
+ // Go through list items
93
+ for (let listItemIdx = 0; listItemIdx < node.children.length; listItemIdx++) {
94
+ const listItem = node.children[listItemIdx];
95
+ if (!listItem) continue;
96
+
97
+ // Check if the current list item ends with a nested sublist that consists
98
+ // of items matching the pattern `<some-package-name>@<version>`
99
+ const lastChild = listItem.children[listItem.children.length - 1];
100
+ if (lastChild?.type === 'list') {
101
+ const packageRefs: string[] = [];
102
+ // biome-ignore lint/complexity/noForEach: <explanation>
103
+ lastChild.children.forEach((subListItem) => {
104
+ const text = ToString(subListItem);
105
+ if (parsePackageReference(text)) packageRefs.push(text);
106
+ });
107
+ if (packageRefs.length === lastChild.children.length) {
108
+ // If so, add the packages to `includes`
109
+ for (const packageRef of packageRefs) {
110
+ version.includes.add(packageRef);
111
+ }
112
+ // Remove the sub-list from the list item
113
+ listItem.children.pop();
114
+ }
115
+ }
116
+
117
+ const firstPara =
118
+ listItem.children[0]?.type === 'paragraph' ? listItem.children[0] : undefined;
119
+ if (firstPara) {
120
+ // Remove IDs like `bfed62a: ...` or `... [85dbab8]` from the first paragraph
121
+ visit(firstPara, 'text', (textNode) => {
122
+ textNode.value = textNode.value.replace(/(^[0-9a-f]{7,}: | \[[0-9a-f]{7,}\]$)/, '');
123
+ });
124
+ // Skip list items that only contain the text `Updated dependencies`
125
+ const firstParaText = ToString(firstPara);
126
+ if (firstParaText === 'Updated dependencies') continue;
127
+ // If the list item is a package reference, add it to `includes` instead
128
+ const packageRef = parsePackageReference(firstParaText);
129
+ if (packageRef) {
130
+ version.includes.add(firstParaText);
131
+ continue;
132
+ }
133
+ // Add the list item to the changes
134
+ version.changes[semverCategory].children.push(listItem);
135
+ }
136
+ }
137
+ return;
138
+ }
139
+ throw new Error(`Unexpected node: ${JSON.stringify(node)}`);
140
+ }
141
+
142
+ // biome-ignore lint/complexity/noForEach: <explanation>
143
+ astStart.children.forEach((node) => {
144
+ handleNode(node);
145
+ });
146
+
147
+ const ToProcess = changelog;
148
+
149
+ const output: string[] = [];
150
+
151
+ const astEnd: Root = {
152
+ type: 'root',
153
+ children: [],
154
+ };
155
+
156
+ for (const version of ToProcess.versions) {
157
+ const versionChanges: List = { type: 'list', children: [] };
158
+
159
+ for (const semverCategory of semverCategories) {
160
+ for (const listItem of version.changes[semverCategory].children) {
161
+ versionChanges.children.push(listItem);
162
+ }
163
+ }
164
+
165
+ if (version.includes.size) {
166
+ versionChanges.children.push({
167
+ type: 'listItem',
168
+ children: [
169
+ {
170
+ type: 'paragraph',
171
+ children: [{ type: 'text', value: `Includes: ${[...version.includes].join(', ')} ` }],
172
+ },
173
+ ],
174
+ });
175
+ }
176
+
177
+ if (!versionChanges.children.length) continue;
178
+
179
+ astEnd.children.push({
180
+ type: 'heading',
181
+ depth: 2,
182
+ children: [{ type: 'text', value: version.version }],
183
+ });
184
+
185
+ astEnd.children.push(versionChanges);
186
+ }
187
+
188
+ output.push(toMarkdown(astEnd, { bullet: '-' }));
189
+
190
+ const markdownString = output.join('\n');
191
+
192
+ const currentRequestJson = await context.request.json();
193
+
194
+ const currentURLOrigin = currentRequestJson.currentURLOrigin;
195
+
196
+ const partialUrl = new URL(StudioCMSRoutes.endpointLinks.partials.render, currentURLOrigin);
197
+
198
+ const partialResponse = await fetch(partialUrl, {
199
+ method: 'POST',
200
+ headers: {
201
+ 'Content-Type': 'application/json',
202
+ },
203
+ body: JSON.stringify({ content: markdownString }),
204
+ });
205
+
206
+ const contentRendered = await partialResponse.text();
207
+
208
+ return new Response(JSON.stringify({ success: true, changelog: contentRendered }), {
209
+ status: 200,
210
+ headers: {
211
+ 'Content-Type': 'application/json',
212
+ Date: new Date().toUTCString(),
213
+ },
214
+ });
215
+ }
216
+
217
+ return new Response(JSON.stringify({ success: false, error: 'Error fetching changelog' }), {
218
+ status: 500,
219
+ headers: {
220
+ 'Content-Type': 'application/json',
221
+ Date: new Date().toUTCString(),
222
+ },
223
+ });
224
+ };
@@ -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,34 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ const GET = async () => {
3
+ const pages = await studioCMS_SDK_Cache.GET.pages();
4
+ const lastUpdated = (/* @__PURE__ */ new Date()).toISOString();
5
+ return new Response(JSON.stringify({ lastUpdated, pages }, null, 2), {
6
+ headers: {
7
+ "Content-Type": "application/json",
8
+ "ACCESS-CONTROL-ALLOW-ORIGIN": "*",
9
+ Date: lastUpdated
10
+ }
11
+ });
12
+ };
13
+ const OPTIONS = async () => {
14
+ return new Response(null, {
15
+ status: 204,
16
+ statusText: "No Content",
17
+ headers: {
18
+ Allow: "OPTIONS, GET",
19
+ "Cache-Control": "public, max-age=604800, immutable",
20
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
21
+ }
22
+ });
23
+ };
24
+ const ALL = async () => {
25
+ return new Response(null, {
26
+ status: 405,
27
+ statusText: "Method Not Allowed"
28
+ });
29
+ };
30
+ export {
31
+ ALL,
32
+ GET,
33
+ OPTIONS
34
+ };
@@ -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,41 @@
1
+ import studioCMS_SDK_Cache from "studiocms:sdk/cache";
2
+ const GET = async () => {
3
+ const latestVersion = await studioCMS_SDK_Cache.UPDATE.latestVersion().catch((err) => {
4
+ return new Response(JSON.stringify({ success: false, error: err }), {
5
+ status: 500,
6
+ headers: {
7
+ "Content-Type": "application/json",
8
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
9
+ }
10
+ });
11
+ });
12
+ return new Response(JSON.stringify({ success: true, latestVersion }), {
13
+ status: 200,
14
+ headers: {
15
+ "Content-Type": "application/json",
16
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
17
+ }
18
+ });
19
+ };
20
+ const OPTIONS = async () => {
21
+ return new Response(null, {
22
+ status: 204,
23
+ statusText: "No Content",
24
+ headers: {
25
+ Allow: "OPTIONS, GET",
26
+ "Cache-Control": "public, max-age=604800, immutable",
27
+ Date: (/* @__PURE__ */ new Date()).toUTCString()
28
+ }
29
+ });
30
+ };
31
+ const ALL = async () => {
32
+ return new Response(null, {
33
+ status: 405,
34
+ statusText: "Method Not Allowed"
35
+ });
36
+ };
37
+ export {
38
+ ALL,
39
+ GET,
40
+ OPTIONS
41
+ };
@@ -0,0 +1,29 @@
1
+ import type { SSRResult } from 'astro';
2
+ import { type SanitizeOptions } from 'ultrahtml/transformers/sanitize';
3
+ /**
4
+ * Creates a proxy for components that can either be strings or functions.
5
+ * If the component is a string, it is directly assigned to the proxy.
6
+ * If the component is a function, it is wrapped in an async function that
7
+ * processes the props and children before rendering.
8
+ *
9
+ * @param result - The result object used for rendering JSX.
10
+ * @param _components - An optional record of components to be proxied. Defaults to an empty object.
11
+ * @returns A record of proxied components.
12
+ */
13
+ export declare function createComponentProxy(result: SSRResult, _components?: Record<string, any>): Record<string, any>;
14
+ /**
15
+ * Removes leading indentation from a multi-line string.
16
+ *
17
+ * @param str - The string from which to remove leading indentation.
18
+ * @returns The dedented string.
19
+ */
20
+ export declare function dedent(str: string): string;
21
+ /**
22
+ * Transforms the provided HTML string by applying sanitization and component swapping.
23
+ *
24
+ * @param html - The HTML string to be transformed.
25
+ * @param components - A record of components to be swapped within the HTML. The keys are component names and the values are the corresponding component implementations.
26
+ * @param sanitizeOpts - Optional sanitization options to be applied to the HTML.
27
+ * @returns A promise that resolves to the transformed HTML string.
28
+ */
29
+ export declare function transformHTML(html: string, components: Record<string, any>, sanitizeOpts?: SanitizeOptions): Promise<string>;
@@ -0,0 +1,47 @@
1
+ import { jsx } from "astro/jsx-runtime";
2
+ import { renderJSX } from "astro/runtime/server/jsx.js";
3
+ import { __unsafeHTML, transform } from "ultrahtml";
4
+ import sanitize, {} from "ultrahtml/transformers/sanitize";
5
+ import swap from "ultrahtml/transformers/swap";
6
+ import { decode } from "./decoder/index.js";
7
+ function createComponentProxy(result, _components = {}) {
8
+ const components = {};
9
+ for (const [key, value] of Object.entries(_components)) {
10
+ if (typeof value === "string") {
11
+ components[key.toLowerCase()] = value;
12
+ } else {
13
+ components[key.toLowerCase()] = async (props, children) => {
14
+ if (key === "codeblock" || key === "codespan") {
15
+ props.code = decode(JSON.parse(`"${props.code}"`));
16
+ }
17
+ const output = await renderJSX(
18
+ result,
19
+ jsx(value, { ...props, "set:html": children.value })
20
+ );
21
+ return __unsafeHTML(output);
22
+ };
23
+ }
24
+ }
25
+ return components;
26
+ }
27
+ function getIndent(ln) {
28
+ if (ln.trimStart() === ln) return "";
29
+ return ln.slice(0, ln.length - ln.trimStart().length);
30
+ }
31
+ function dedent(str) {
32
+ const lns = str.replace(/^[\r\n]+/, "").split("\n");
33
+ let indent = getIndent(lns[0]);
34
+ if (indent.length === 0 && lns.length > 1) {
35
+ indent = getIndent(lns[1]);
36
+ }
37
+ if (indent.length === 0) return lns.join("\n");
38
+ return lns.map((ln) => ln.startsWith(indent) ? ln.slice(indent.length) : ln).join("\n");
39
+ }
40
+ async function transformHTML(html, components, sanitizeOpts) {
41
+ return await transform(dedent(html), [sanitize(sanitizeOpts), swap(components)]);
42
+ }
43
+ export {
44
+ createComponentProxy,
45
+ dedent,
46
+ transformHTML
47
+ };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.
3
+ */
4
+ export declare const fromCodePoint: (...codePoints: number[]) => string;
5
+ /**
6
+ * Replace the given code point with a replacement character if it is a
7
+ * surrogate or is outside the valid range. Otherwise return the code
8
+ * point unchanged.
9
+ */
10
+ export declare function replaceCodePoint(codePoint: number): number;
11
+ /**
12
+ * Replace the code point if relevant, then convert it to a string.
13
+ *
14
+ * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.
15
+ * @param codePoint The code point to decode.
16
+ * @returns The decoded code point.
17
+ */
18
+ export declare function decodeCodePoint(codePoint: number): string;
@@ -0,0 +1,58 @@
1
+ const decodeMap = /* @__PURE__ */ new Map([
2
+ [0, 65533],
3
+ // C1 Unicode control character reference replacements
4
+ [128, 8364],
5
+ [130, 8218],
6
+ [131, 402],
7
+ [132, 8222],
8
+ [133, 8230],
9
+ [134, 8224],
10
+ [135, 8225],
11
+ [136, 710],
12
+ [137, 8240],
13
+ [138, 352],
14
+ [139, 8249],
15
+ [140, 338],
16
+ [142, 381],
17
+ [145, 8216],
18
+ [146, 8217],
19
+ [147, 8220],
20
+ [148, 8221],
21
+ [149, 8226],
22
+ [150, 8211],
23
+ [151, 8212],
24
+ [152, 732],
25
+ [153, 8482],
26
+ [154, 353],
27
+ [155, 8250],
28
+ [156, 339],
29
+ [158, 382],
30
+ [159, 376]
31
+ ]);
32
+ const fromCodePoint = (
33
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
34
+ String.fromCodePoint ?? ((codePoint) => {
35
+ let output = "";
36
+ if (codePoint > 65535) {
37
+ codePoint -= 65536;
38
+ output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
39
+ codePoint = 56320 | codePoint & 1023;
40
+ }
41
+ output += String.fromCharCode(codePoint);
42
+ return output;
43
+ })
44
+ );
45
+ function replaceCodePoint(codePoint) {
46
+ if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
47
+ return 65533;
48
+ }
49
+ return decodeMap.get(codePoint) ?? codePoint;
50
+ }
51
+ function decodeCodePoint(codePoint) {
52
+ return fromCodePoint(replaceCodePoint(codePoint));
53
+ }
54
+ export {
55
+ decodeCodePoint,
56
+ fromCodePoint,
57
+ replaceCodePoint
58
+ };
@@ -0,0 +1 @@
1
+ export declare const htmlDecodeTree: Uint16Array;