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.
- package/CHANGELOG.md +501 -0
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/custom-renderers/index.ts +4 -0
- package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactRenderer.tsx +8 -0
- package/custom-renderers/markdocRenderers/markdocReact-components/MarkDocReactWrapper.astro +13 -0
- package/custom-renderers/markdocRenderers/markdocReact.ts +56 -0
- package/dist/auth.d.js +0 -0
- package/dist/auth.d.ts +397 -0
- package/dist/cli/cmds/get-turso.d.ts +1 -0
- package/dist/cli/cmds/get-turso.js +10 -0
- package/dist/cli/cmds/init/index.d.ts +4 -0
- package/dist/cli/cmds/init/index.js +52 -0
- package/dist/cli/cmds/init/steps/data/studiocmsEnv.d.ts +3 -0
- package/dist/cli/cmds/init/steps/data/studiocmsEnv.js +71 -0
- package/dist/cli/cmds/init/steps/envBuilder.d.ts +21 -0
- package/dist/cli/cmds/init/steps/envBuilder.js +368 -0
- package/dist/cli/cmds/init/steps/nextSteps.d.ts +2 -0
- package/dist/cli/cmds/init/steps/nextSteps.js +38 -0
- package/dist/cli/cmds/init.d.ts +1 -0
- package/dist/cli/cmds/init.js +4 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/lib/commander.d.ts +39 -0
- package/dist/cli/lib/commander.js +87 -0
- package/dist/cli/lib/context.d.ts +28 -0
- package/dist/cli/lib/context.js +55 -0
- package/dist/cli/lib/pathUtil.d.ts +5 -0
- package/dist/cli/lib/pathUtil.js +14 -0
- package/dist/cli/lib/runExternal.d.ts +20 -0
- package/dist/cli/lib/runExternal.js +40 -0
- package/dist/cli/lib/seasonal.d.ts +5 -0
- package/dist/cli/lib/seasonal.js +88 -0
- package/dist/cli/lib/utils.d.ts +55 -0
- package/dist/cli/lib/utils.js +310 -0
- package/dist/cli/shared/intro.d.ts +2 -0
- package/dist/cli/shared/intro.js +24 -0
- package/dist/components/DefaultEditor.astro +138 -0
- package/dist/components/FormattedDate.astro +12 -0
- package/dist/components/Generator.astro +7 -0
- package/dist/components/Renderer.astro +13 -0
- package/dist/components/auth/OAuthButton.astro +21 -0
- package/dist/components/auth/OAuthButtonStack.astro +36 -0
- package/dist/components/auth/StaticAuthCheck.astro +20 -0
- package/dist/components/auth/StudioCMSLogoSVG.astro +13 -0
- package/dist/components/auth/oAuthButtonProviders.d.ts +8 -0
- package/dist/components/auth/oAuthButtonProviders.js +35 -0
- package/dist/components/dashboard/AstroCodeDiffsScript.astro +25 -0
- package/dist/components/dashboard/BaseHead.astro +41 -0
- package/dist/components/dashboard/Code.astro +23 -0
- package/dist/components/dashboard/DashboardPageHeader.astro +77 -0
- package/dist/components/dashboard/DoubleSidebar.astro +26 -0
- package/dist/components/dashboard/Footer.astro +16 -0
- package/dist/components/dashboard/MainSidebarContent.astro +317 -0
- package/dist/components/dashboard/PageHeader.astro +52 -0
- package/dist/components/dashboard/SidebarLink.astro +61 -0
- package/dist/components/dashboard/SidebarModals.astro +6 -0
- package/dist/components/dashboard/SidebarPluginLink.astro +45 -0
- package/dist/components/dashboard/SingleSidebar.astro +23 -0
- package/dist/components/dashboard/StudioCMSLogo.astro +12 -0
- package/dist/components/dashboard/ThemeManager.astro +53 -0
- package/dist/components/dashboard/component-scripts/TinyMDE.astro +6 -0
- package/dist/components/dashboard/component-scripts/dateTimeListener.d.ts +1 -0
- package/dist/components/dashboard/component-scripts/dateTimeListener.js +14 -0
- package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.d.ts +1 -0
- package/dist/components/dashboard/component-scripts/dateWithTimeAndZone.js +12 -0
- package/dist/components/dashboard/component-scripts/makeClientRoutable.d.ts +1 -0
- package/dist/components/dashboard/component-scripts/makeClientRoutable.js +9 -0
- package/dist/components/dashboard/component-scripts/timeAgo.d.ts +1 -0
- package/dist/components/dashboard/component-scripts/timeAgo.js +21 -0
- package/dist/components/dashboard/islands/LoginChecker.astro +52 -0
- package/dist/components/dashboard/islands/configuration/ConfigForm.astro +317 -0
- package/dist/components/dashboard/islands/configuration/LightVsDark.astro +67 -0
- package/dist/components/dashboard/islands/content-mgmt/CreateFolder.astro +118 -0
- package/dist/components/dashboard/islands/content-mgmt/CreatePage.astro +380 -0
- package/dist/components/dashboard/islands/content-mgmt/EditFolder.astro +138 -0
- package/dist/components/dashboard/islands/content-mgmt/EditPage.astro +432 -0
- package/dist/components/dashboard/islands/content-mgmt/InnerSidebarElement.astro +299 -0
- package/dist/components/dashboard/islands/content-mgmt/PageHeader.astro +455 -0
- package/dist/components/dashboard/islands/content-mgmt/PageList.astro +49 -0
- package/dist/components/dashboard/islands/content-mgmt/PluginFields.astro +29 -0
- package/dist/components/dashboard/islands/content-mgmt/TreeRenderer.astro +75 -0
- package/dist/components/dashboard/islands/content-mgmt/TreeSidebarFolder.astro +53 -0
- package/dist/components/dashboard/islands/content-mgmt/TreeSidebarLink.astro +51 -0
- package/dist/components/dashboard/islands/content-mgmt/runtime.d.ts +10 -0
- package/dist/components/dashboard/islands/content-mgmt/runtime.js +33 -0
- package/dist/components/dashboard/islands/content-mgmt/shared.d.ts +27 -0
- package/dist/components/dashboard/islands/content-mgmt/shared.js +31 -0
- package/dist/components/dashboard/islands/dashboard/DashboardGrid.astro +39 -0
- package/dist/components/dashboard/islands/dashboard/DashboardGridItem.astro +34 -0
- package/dist/components/dashboard/islands/dashboard/Test.astro +5 -0
- package/dist/components/dashboard/islands/dashboard/UserName.astro +6 -0
- package/dist/components/dashboard/islands/dashboard/shared.d.ts +2 -0
- package/dist/components/dashboard/islands/dashboard/shared.js +0 -0
- package/dist/components/dashboard/islands/plugins/SettingsRenderer.astro +29 -0
- package/dist/components/dashboard/islands/profile/APITokens.astro +306 -0
- package/dist/components/dashboard/islands/profile/BasicInfo.astro +140 -0
- package/dist/components/dashboard/islands/profile/BasicInfoFallback.astro +43 -0
- package/dist/components/dashboard/islands/profile/SocialSignin.astro +181 -0
- package/dist/components/dashboard/islands/profile/SocialSigninFallback.astro +83 -0
- package/dist/components/dashboard/islands/profile/UpdatePassword.astro +166 -0
- package/dist/components/dashboard/islands/profile/UpdatePasswordFallback.astro +47 -0
- package/dist/components/dashboard/islands/profile/oAuthButtonProviders.d.ts +8 -0
- package/dist/components/dashboard/islands/profile/oAuthButtonProviders.js +35 -0
- package/dist/components/dashboard/islands/sidebar/UserAccount.astro +23 -0
- package/dist/components/dashboard/islands/sidebar/VersionCheck.astro +127 -0
- package/dist/components/dashboard/islands/sidebar/VersionCheckChangelog.astro +107 -0
- package/dist/components/dashboard/islands/user-mgmt/InnerSidebarElement.astro +348 -0
- package/dist/components/dashboard/islands/user-mgmt/RankCheck.astro +49 -0
- package/dist/components/dashboard/islands/user-mgmt/SocialSignin.astro +109 -0
- package/dist/components/dashboard/islands/user-mgmt/UserListItem.astro +60 -0
- package/dist/components/dashboard/sidebar-modals/UserManagementModals.astro +103 -0
- package/dist/components/dashboard/sidebar-modals/VersionModal.astro +267 -0
- package/dist/components/dashboard/sidebarConfig.d.ts +32 -0
- package/dist/components/dashboard/sidebarConfig.js +88 -0
- package/dist/components/default-grid-items/Recently-created-pages.astro +91 -0
- package/dist/components/default-grid-items/Recently-signed-up.astro +71 -0
- package/dist/components/default-grid-items/Recently-updated-pages.astro +96 -0
- package/dist/components/default-grid-items/Totals.astro +107 -0
- package/dist/components/default-grid-items/utils.d.ts +17 -0
- package/dist/components/default-grid-items/utils.js +26 -0
- package/dist/components/image/CustomImage.astro +90 -0
- package/dist/components/user-quick-tools.d.ts +42 -0
- package/dist/components/user-quick-tools.js +312 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +4 -0
- package/dist/consts.d.ts +61 -0
- package/dist/consts.js +39 -0
- package/dist/core.d.js +0 -0
- package/dist/core.d.ts +226 -0
- package/dist/db/config.d.ts +4 -0
- package/dist/db/config.js +6 -0
- package/dist/db/tables.js +168 -0
- package/dist/errors.d.ts +19 -0
- package/dist/errors.js +11 -0
- package/dist/index.d.ts +152 -0
- package/dist/index.js +1179 -0
- package/dist/layouts/auth/AuthLayout.astro +74 -0
- package/dist/layouts/auth/FallbackCanvas.astro +123 -0
- package/dist/layouts/auth/ThemeManager.astro +53 -0
- package/dist/layouts/auth/ThreeCanvasLoader.astro +18 -0
- package/dist/layouts/dashboard/Layout.astro +64 -0
- package/dist/lib/auth/encryption.d.ts +30 -0
- package/dist/lib/auth/encryption.js +39 -0
- package/dist/lib/auth/password.d.ts +27 -0
- package/dist/lib/auth/password.js +42 -0
- package/dist/lib/auth/rate-limit.d.ts +136 -0
- package/dist/lib/auth/rate-limit.js +214 -0
- package/dist/lib/auth/session.d.ts +85 -0
- package/dist/lib/auth/session.js +93 -0
- package/dist/lib/auth/types.d.ts +83 -0
- package/dist/lib/auth/types.js +0 -0
- package/dist/lib/auth/user.d.ts +148 -0
- package/dist/lib/auth/user.js +133 -0
- package/dist/lib/dashboardGrid.d.ts +119 -0
- package/dist/lib/dashboardGrid.js +0 -0
- package/dist/lib/dynamic-sitemap/index.d.ts +42 -0
- package/dist/lib/dynamic-sitemap/index.js +45 -0
- package/dist/lib/dynamic-sitemap/sitemap-index.xml.d.ts +8 -0
- package/dist/lib/dynamic-sitemap/sitemap-index.xml.js +20 -0
- package/dist/lib/dynamic-sitemap/sitemap-index.xml.ts +45 -0
- package/dist/lib/head.d.ts +9 -0
- package/dist/lib/head.js +65 -0
- package/dist/lib/headDefaults.d.ts +18 -0
- package/dist/lib/headDefaults.js +75 -0
- package/dist/lib/i18n/LanguageSelector.astro +114 -0
- package/dist/lib/i18n/client.d.ts +591 -0
- package/dist/lib/i18n/client.js +83 -0
- package/dist/lib/i18n/config.d.ts +16 -0
- package/dist/lib/i18n/config.js +8 -0
- package/dist/lib/i18n/index.d.ts +578 -0
- package/dist/lib/i18n/index.js +63 -0
- package/dist/lib/i18n/translations/de.json +64 -0
- package/dist/lib/i18n/translations/en-us.json +238 -0
- package/dist/lib/i18n/translations/es.json +64 -0
- package/dist/lib/i18n/translations/fr.json +64 -0
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.js +7 -0
- package/dist/lib/jsonUtils.d.ts +2 -0
- package/dist/lib/jsonUtils.js +11 -0
- package/dist/lib/makeAPIRoute.d.ts +45 -0
- package/dist/lib/makeAPIRoute.js +16 -0
- package/dist/lib/makePublicRoute.d.ts +7 -0
- package/dist/lib/makePublicRoute.js +6 -0
- package/dist/lib/pathGenerators.d.ts +20 -0
- package/dist/lib/pathGenerators.js +66 -0
- package/dist/lib/plugins/dashboard-pages.d.ts +71 -0
- package/dist/lib/plugins/dashboard-pages.js +11 -0
- package/dist/lib/plugins/frontend-navigation.d.ts +18 -0
- package/dist/lib/plugins/frontend-navigation.js +39 -0
- package/dist/lib/plugins/index.d.ts +2 -0
- package/dist/lib/plugins/index.js +2 -0
- package/dist/lib/removeLeadingTrailingSlashes.d.ts +7 -0
- package/dist/lib/removeLeadingTrailingSlashes.js +13 -0
- package/dist/lib/renderer/astro-remark.d.ts +13 -0
- package/dist/lib/renderer/astro-remark.js +11 -0
- package/dist/lib/renderer/contentRenderer.d.ts +13 -0
- package/dist/lib/renderer/contentRenderer.js +31 -0
- package/dist/lib/renderer/errors.d.ts +5 -0
- package/dist/lib/renderer/errors.js +25 -0
- package/dist/lib/renderer/markdoc-renderers/markdocHTML.d.ts +3 -0
- package/dist/lib/renderer/markdoc-renderers/markdocHTML.js +14 -0
- package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.d.ts +3 -0
- package/dist/lib/renderer/markdoc-renderers/markdocReactStatic.js +14 -0
- package/dist/lib/renderer/markdoc.d.ts +11 -0
- package/dist/lib/renderer/markdoc.js +28 -0
- package/dist/lib/renderer/mdx.d.ts +10 -0
- package/dist/lib/renderer/mdx.js +37 -0
- package/dist/lib/renderer/runtime.d.ts +8 -0
- package/dist/lib/renderer/runtime.js +30 -0
- package/dist/lib/renderer/shared.d.ts +15 -0
- package/dist/lib/renderer/shared.js +13 -0
- package/dist/lib/renderer/studiocms.d.ts +11 -0
- package/dist/lib/renderer/studiocms.js +22 -0
- package/dist/lib/renderer/types.d.ts +12 -0
- package/dist/lib/renderer/types.js +0 -0
- package/dist/lib/robots/core.d.ts +24 -0
- package/dist/lib/robots/core.js +187 -0
- package/dist/lib/robots/index.d.ts +11 -0
- package/dist/lib/robots/index.js +47 -0
- package/dist/lib/robots/types.d.ts +185 -0
- package/dist/lib/robots/types.js +0 -0
- package/dist/lib/robots/utils.d.ts +22 -0
- package/dist/lib/robots/utils.js +22 -0
- package/dist/lib/routeMap.d.ts +257 -0
- package/dist/lib/routeMap.js +249 -0
- package/dist/lib/urlGen.d.ts +11 -0
- package/dist/lib/urlGen.js +26 -0
- package/dist/lib/webVitals/checkForWebVitalsPlugin.d.ts +18 -0
- package/dist/lib/webVitals/checkForWebVitalsPlugin.js +82 -0
- package/dist/lib/webVitals/consts.d.ts +240 -0
- package/dist/lib/webVitals/consts.js +40 -0
- package/dist/lib/webVitals/dashboard-grid-items/CoreVitals.astro +66 -0
- package/dist/lib/webVitals/dashboard-grid-items/MetricCard.astro +24 -0
- package/dist/lib/webVitals/dashboard-grid-items/SummaryCard.astro +56 -0
- package/dist/lib/webVitals/dashboard-grid-items/metric.css +103 -0
- package/dist/lib/webVitals/dashboard-grid-items/shared.d.ts +29 -0
- package/dist/lib/webVitals/dashboard-grid-items/shared.js +35 -0
- package/dist/lib/webVitals/pages/analytics/body.astro +186 -0
- package/dist/lib/webVitals/pages/analytics/header.astro +42 -0
- package/dist/lib/webVitals/schemas.d.ts +78 -0
- package/dist/lib/webVitals/schemas.js +37 -0
- package/dist/lib/webVitals/types.d.ts +156 -0
- package/dist/lib/webVitals/types.js +0 -0
- package/dist/lib/webVitals/utils/buildDataObject.d.ts +8 -0
- package/dist/lib/webVitals/utils/buildDataObject.js +28 -0
- package/dist/lib/webVitals/utils/buildPageRouteDataObject.d.ts +15 -0
- package/dist/lib/webVitals/utils/buildPageRouteDataObject.js +70 -0
- package/dist/lib/webVitals/utils/buildPerPageDataObject.d.ts +23 -0
- package/dist/lib/webVitals/utils/buildPerPageDataObject.js +209 -0
- package/dist/lib/webVitals/utils/checkDate.d.ts +5 -0
- package/dist/lib/webVitals/utils/checkDate.js +19 -0
- package/dist/lib/webVitals/utils/webVitalsUtils.d.ts +24 -0
- package/dist/lib/webVitals/utils/webVitalsUtils.js +234 -0
- package/dist/lib/webVitals/webVital.d.ts +20 -0
- package/dist/lib/webVitals/webVital.js +40 -0
- package/dist/lib/webVitals/webVitalsRouteSummary.d.ts +19 -0
- package/dist/lib/webVitals/webVitalsRouteSummary.js +59 -0
- package/dist/lib/webVitals/webVitalsSummary.d.ts +19 -0
- package/dist/lib/webVitals/webVitalsSummary.js +49 -0
- package/dist/plugins.d.ts +2 -0
- package/dist/plugins.js +6 -0
- package/dist/renderer.d.js +0 -0
- package/dist/renderer.d.ts +23 -0
- package/dist/routes/api/render.astro +25 -0
- package/dist/routes/auth/api/auth0/callback.d.ts +4 -0
- package/dist/routes/auth/api/auth0/callback.js +117 -0
- package/dist/routes/auth/api/auth0/index.d.ts +4 -0
- package/dist/routes/auth/api/auth0/index.js +36 -0
- package/dist/routes/auth/api/auth0/shared.d.ts +13 -0
- package/dist/routes/auth/api/auth0/shared.js +24 -0
- package/dist/routes/auth/api/discord/callback.d.ts +4 -0
- package/dist/routes/auth/api/discord/callback.js +112 -0
- package/dist/routes/auth/api/discord/index.d.ts +4 -0
- package/dist/routes/auth/api/discord/index.js +36 -0
- package/dist/routes/auth/api/discord/shared.d.ts +12 -0
- package/dist/routes/auth/api/discord/shared.js +17 -0
- package/dist/routes/auth/api/github/callback.d.ts +4 -0
- package/dist/routes/auth/api/github/callback.js +112 -0
- package/dist/routes/auth/api/github/index.d.ts +4 -0
- package/dist/routes/auth/api/github/index.js +36 -0
- package/dist/routes/auth/api/github/shared.d.ts +13 -0
- package/dist/routes/auth/api/github/shared.js +14 -0
- package/dist/routes/auth/api/google/callback.d.ts +4 -0
- package/dist/routes/auth/api/google/callback.js +115 -0
- package/dist/routes/auth/api/google/index.d.ts +4 -0
- package/dist/routes/auth/api/google/index.js +38 -0
- package/dist/routes/auth/api/google/shared.d.ts +12 -0
- package/dist/routes/auth/api/google/shared.js +19 -0
- package/dist/routes/auth/api/login.d.ts +4 -0
- package/dist/routes/auth/api/login.js +46 -0
- package/dist/routes/auth/api/logout.d.ts +5 -0
- package/dist/routes/auth/api/logout.js +55 -0
- package/dist/routes/auth/api/register.d.ts +4 -0
- package/dist/routes/auth/api/register.js +64 -0
- package/dist/routes/auth/api/shared.d.ts +2 -0
- package/dist/routes/auth/api/shared.js +21 -0
- package/dist/routes/auth/login.astro +118 -0
- package/dist/routes/auth/logout.astro +28 -0
- package/dist/routes/auth/signup.astro +124 -0
- package/dist/routes/dashboard/[...pluginPage].astro +88 -0
- package/dist/routes/dashboard/configuration.astro +61 -0
- package/dist/routes/dashboard/content-management/createfolder.astro +83 -0
- package/dist/routes/dashboard/content-management/createpage.astro +86 -0
- package/dist/routes/dashboard/content-management/diff.astro +135 -0
- package/dist/routes/dashboard/content-management/editfolder.astro +67 -0
- package/dist/routes/dashboard/content-management/editpage.astro +71 -0
- package/dist/routes/dashboard/content-management/index.astro +91 -0
- package/dist/routes/dashboard/index.astro +56 -0
- package/dist/routes/dashboard/password-reset.astro +206 -0
- package/dist/routes/dashboard/plugins/[plugin].astro +104 -0
- package/dist/routes/dashboard/profile.astro +87 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.d.ts +5 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/api-tokens.js +90 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/config.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/config.js +63 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.d.ts +6 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/content/folder.js +121 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/content/page.d.ts +6 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/content/page.js +258 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-reset-link.js +59 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-user-invite.js +105 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-user.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/create-user.js +100 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/partials/Editor.astro +61 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/partials/LiveRender.astro +30 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/partials/UserListItems.astro +39 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].d.ts +2 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/plugins/[plugin].js +32 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/profile.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/profile.js +130 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/reset-password.js +105 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/search-list.d.ts +4 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/search-list.js +55 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/users.d.ts +5 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/users.js +92 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.d.ts +2 -0
- package/dist/routes/dashboard/studiocms_api/dashboard/verify-session.js +72 -0
- package/dist/routes/dashboard/user-management/edit.astro +631 -0
- package/dist/routes/dashboard/user-management/index.astro +103 -0
- package/dist/routes/error-pages/404.astro +66 -0
- package/dist/routes/firstTimeSetupRoutes/1-start.astro +253 -0
- package/dist/routes/firstTimeSetupRoutes/2-next.astro +208 -0
- package/dist/routes/firstTimeSetupRoutes/3-done.astro +95 -0
- package/dist/routes/firstTimeSetupRoutes/api/step-1.d.ts +2 -0
- package/dist/routes/firstTimeSetupRoutes/api/step-1.js +126 -0
- package/dist/routes/firstTimeSetupRoutes/api/step-2.d.ts +2 -0
- package/dist/routes/firstTimeSetupRoutes/api/step-2.js +110 -0
- package/dist/routes/firstTimeSetupRoutes/components/Layout.astro +41 -0
- package/dist/routes/firstTimeSetupRoutes/components/PageHeader.astro +60 -0
- package/dist/routes/firstTimeSetupRoutes/components/TabItem.astro +44 -0
- package/dist/routes/firstTimeSetupRoutes/components/Tabs.astro +170 -0
- package/dist/routes/firstTimeSetupRoutes/snippets/opt1-astro.config.diff +14 -0
- package/dist/routes/firstTimeSetupRoutes/snippets/opt2-astro.config.diff +9 -0
- package/dist/routes/firstTimeSetupRoutes/snippets/opt2-studiocms.config.diff +5 -0
- package/dist/routes/rest/utils/auth-token.d.ts +17 -0
- package/dist/routes/rest/utils/auth-token.js +31 -0
- package/dist/routes/rest/v1/folders/[id].d.ts +6 -0
- package/dist/routes/rest/v1/folders/[id].js +106 -0
- package/dist/routes/rest/v1/folders/index.d.ts +5 -0
- package/dist/routes/rest/v1/folders/index.js +88 -0
- package/dist/routes/rest/v1/pages/[id]/history/[diffid].d.ts +4 -0
- package/dist/routes/rest/v1/pages/[id]/history/[diffid].js +55 -0
- package/dist/routes/rest/v1/pages/[id]/history/index.d.ts +4 -0
- package/dist/routes/rest/v1/pages/[id]/history/index.js +61 -0
- package/dist/routes/rest/v1/pages/[id]/index.d.ts +6 -0
- package/dist/routes/rest/v1/pages/[id]/index.js +165 -0
- package/dist/routes/rest/v1/pages/index.d.ts +5 -0
- package/dist/routes/rest/v1/pages/index.js +113 -0
- package/dist/routes/rest/v1/public/folders/[id].d.ts +4 -0
- package/dist/routes/rest/v1/public/folders/[id].js +43 -0
- package/dist/routes/rest/v1/public/folders/index.d.ts +4 -0
- package/dist/routes/rest/v1/public/folders/index.js +49 -0
- package/dist/routes/rest/v1/public/pages/[id].d.ts +4 -0
- package/dist/routes/rest/v1/public/pages/[id].js +46 -0
- package/dist/routes/rest/v1/public/pages/index.d.ts +4 -0
- package/dist/routes/rest/v1/public/pages/index.js +61 -0
- package/dist/routes/rest/v1/settings/index.d.ts +5 -0
- package/dist/routes/rest/v1/settings/index.js +75 -0
- package/dist/routes/rest/v1/users/[id].d.ts +6 -0
- package/dist/routes/rest/v1/users/[id].js +212 -0
- package/dist/routes/rest/v1/users/index.d.ts +5 -0
- package/dist/routes/rest/v1/users/index.js +138 -0
- package/dist/routes/sdk/fallback-list-pages.json.d.ts +2 -0
- package/dist/routes/sdk/fallback-list-pages.json.js +19 -0
- package/dist/routes/sdk/fallback-list-pages.json.ts +22 -0
- package/dist/routes/sdk/full-changelog.json.d.ts +16 -0
- package/dist/routes/sdk/full-changelog.json.js +170 -0
- package/dist/routes/sdk/full-changelog.json.ts +224 -0
- package/dist/routes/sdk/list-pages.d.ts +4 -0
- package/dist/routes/sdk/list-pages.js +34 -0
- package/dist/routes/sdk/update-latest-version-cache.d.ts +4 -0
- package/dist/routes/sdk/update-latest-version-cache.js +41 -0
- package/dist/runtime/AstroComponentProxy.d.ts +29 -0
- package/dist/runtime/AstroComponentProxy.js +47 -0
- package/dist/runtime/decoder/decode-codepoint.d.ts +18 -0
- package/dist/runtime/decoder/decode-codepoint.js +58 -0
- package/dist/runtime/decoder/decode-data-html.d.ts +1 -0
- package/dist/runtime/decoder/decode-data-html.js +7 -0
- package/dist/runtime/decoder/decode-data-xml.d.ts +1 -0
- package/dist/runtime/decoder/decode-data-xml.js +7 -0
- package/dist/runtime/decoder/index.d.ts +34 -0
- package/dist/runtime/decoder/index.js +18 -0
- package/dist/runtime/decoder/util.d.ts +208 -0
- package/dist/runtime/decoder/util.js +415 -0
- package/dist/schemas/config/auth.d.ts +175 -0
- package/dist/schemas/config/auth.js +65 -0
- package/dist/schemas/config/componentoverrides.d.ts +17 -0
- package/dist/schemas/config/componentoverrides.js +14 -0
- package/dist/schemas/config/dashboard.d.ts +154 -0
- package/dist/schemas/config/dashboard.js +59 -0
- package/dist/schemas/config/defaultFrontend.d.ts +125 -0
- package/dist/schemas/config/defaultFrontend.js +57 -0
- package/dist/schemas/config/developer.d.ts +15 -0
- package/dist/schemas/config/developer.js +14 -0
- package/dist/schemas/config/imageService.d.ts +13 -0
- package/dist/schemas/config/imageService.js +12 -0
- package/dist/schemas/config/index.d.ts +1153 -0
- package/dist/schemas/config/index.js +95 -0
- package/dist/schemas/config/integrations.d.ts +14 -0
- package/dist/schemas/config/integrations.js +12 -0
- package/dist/schemas/config/markdoc.d.ts +172 -0
- package/dist/schemas/config/markdoc.js +68 -0
- package/dist/schemas/config/mdx.d.ts +455 -0
- package/dist/schemas/config/mdx.js +71 -0
- package/dist/schemas/config/rendererConfig.d.ts +659 -0
- package/dist/schemas/config/rendererConfig.js +51 -0
- package/dist/schemas/config/sdk.d.ts +167 -0
- package/dist/schemas/config/sdk.js +85 -0
- package/dist/schemas/config/studiocms-markdown-remark.d.ts +292 -0
- package/dist/schemas/config/studiocms-markdown-remark.js +63 -0
- package/dist/schemas/index.d.ts +2 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/plugins/index.d.ts +7373 -0
- package/dist/schemas/plugins/index.js +192 -0
- package/dist/schemas/plugins/shared.d.ts +1752 -0
- package/dist/schemas/plugins/shared.js +221 -0
- package/dist/scripts/formListener.d.ts +16 -0
- package/dist/scripts/formListener.js +46 -0
- package/dist/scripts/three.d.ts +1 -0
- package/dist/scripts/three.js +278 -0
- package/dist/scripts/utils/fitModelToViewport.d.ts +8 -0
- package/dist/scripts/utils/fitModelToViewport.js +19 -0
- package/dist/sdk/StudioCMSVirtualCache.d.ts +283 -0
- package/dist/sdk/StudioCMSVirtualCache.js +685 -0
- package/dist/sdk/cache.d.ts +11 -0
- package/dist/sdk/cache.js +12 -0
- package/dist/sdk/core.d.ts +865 -0
- package/dist/sdk/core.js +1966 -0
- package/dist/sdk/errors.d.ts +21 -0
- package/dist/sdk/errors.js +11 -0
- package/dist/sdk/index.d.ts +371 -0
- package/dist/sdk/index.js +8 -0
- package/dist/sdk/lib/foldertree.d.ts +50 -0
- package/dist/sdk/lib/foldertree.js +123 -0
- package/dist/sdk/lib/generators.d.ts +30 -0
- package/dist/sdk/lib/generators.js +25 -0
- package/dist/sdk/lib/packages.d.ts +8 -0
- package/dist/sdk/lib/packages.js +14 -0
- package/dist/sdk/lib/parsers.d.ts +14 -0
- package/dist/sdk/lib/parsers.js +10 -0
- package/dist/sdk/lib/users.d.ts +19 -0
- package/dist/sdk/lib/users.js +26 -0
- package/dist/sdk/tables.d.ts +1198 -0
- package/dist/sdk/tables.js +55 -0
- package/dist/sdk/types/index.d.ts +175 -0
- package/dist/sdk/types/index.js +0 -0
- package/dist/sdk/types/tableDefs.d.ts +75 -0
- package/dist/sdk/types/tableDefs.js +0 -0
- package/dist/sdk/types/tsAlias.d.ts +155 -0
- package/dist/sdk/types/tsAlias.js +0 -0
- package/dist/sdk/utils/db.d.ts +5 -0
- package/dist/sdk/utils/db.js +15 -0
- package/dist/stubs/auth-lib.d.ts +2 -0
- package/dist/stubs/auth-lib.js +519 -0
- package/dist/stubs/auth-scripts.d.ts +2 -0
- package/dist/stubs/auth-scripts.js +29 -0
- package/dist/stubs/auth-utils.d.ts +2 -0
- package/dist/stubs/auth-utils.js +36 -0
- package/dist/stubs/changelog.d.ts +2 -0
- package/dist/stubs/changelog.js +16 -0
- package/dist/stubs/components.d.ts +2 -0
- package/dist/stubs/components.js +67 -0
- package/dist/stubs/core.d.ts +2 -0
- package/dist/stubs/core.js +49 -0
- package/dist/stubs/i18n-dts.d.ts +2 -0
- package/dist/stubs/i18n-dts.js +117 -0
- package/dist/stubs/images.d.ts +1 -0
- package/dist/stubs/images.js +30 -0
- package/dist/stubs/index.d.ts +1 -0
- package/dist/stubs/index.js +40 -0
- package/dist/stubs/lib.d.ts +2 -0
- package/dist/stubs/lib.js +123 -0
- package/dist/stubs/plugins.d.ts +2 -0
- package/dist/stubs/plugins.js +60 -0
- package/dist/stubs/proxy.d.ts +2 -0
- package/dist/stubs/proxy.js +40 -0
- package/dist/stubs/renderer-config.d.ts +2 -0
- package/dist/stubs/renderer-config.js +18 -0
- package/dist/stubs/renderer-markdownConfig.d.ts +2 -0
- package/dist/stubs/renderer-markdownConfig.js +17 -0
- package/dist/stubs/renderer.d.ts +2 -0
- package/dist/stubs/renderer.js +44 -0
- package/dist/stubs/sdk.d.ts +2 -0
- package/dist/stubs/sdk.js +202 -0
- package/dist/stubs/webVitals.d.ts +2 -0
- package/dist/stubs/webVitals.js +40 -0
- package/dist/styles/404.css +47 -0
- package/dist/styles/SyntaxFont.woff2 +0 -0
- package/dist/styles/authlayout.css +138 -0
- package/dist/styles/dashboard-base.css +493 -0
- package/dist/styles/dashboard-code.css +33 -0
- package/dist/styles/dashboard-diff.css +389 -0
- package/dist/styles/dashboard-tiny-mde.css +224 -0
- package/dist/styles/md-remark-callouts/github.css +56 -0
- package/dist/styles/md-remark-callouts/obsidian.css +66 -0
- package/dist/styles/md-remark-callouts/vitepress.css +58 -0
- package/dist/styles/md-remark-headings.css +48 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.js +0 -0
- package/dist/utils/addAPIRoutes.d.ts +9 -0
- package/dist/utils/addAPIRoutes.js +33 -0
- package/dist/utils/addIntegrationArray.d.ts +24 -0
- package/dist/utils/addIntegrationArray.js +11 -0
- package/dist/utils/addIntegrationArrayWithCheck.d.ts +11 -0
- package/dist/utils/addIntegrationArrayWithCheck.js +24 -0
- package/dist/utils/astroConfigCheck.d.ts +8 -0
- package/dist/utils/astroConfigCheck.js +31 -0
- package/dist/utils/astroEnvConfig.d.ts +45 -0
- package/dist/utils/astroEnvConfig.js +9 -0
- package/dist/utils/authEnvCheck.d.ts +38 -0
- package/dist/utils/authEnvCheck.js +82 -0
- package/dist/utils/changelog.d.ts +1 -0
- package/dist/utils/changelog.js +53 -0
- package/dist/utils/changelogLoader.d.ts +15 -0
- package/dist/utils/changelogLoader.js +104 -0
- package/dist/utils/checkENV.d.ts +27 -0
- package/dist/utils/checkENV.js +115 -0
- package/dist/utils/configManager.d.ts +22 -0
- package/dist/utils/configManager.js +98 -0
- package/dist/utils/configResolver.d.ts +283 -0
- package/dist/utils/configResolver.js +105 -0
- package/dist/utils/defineStudioCMSConfig.d.ts +165 -0
- package/dist/utils/defineStudioCMSConfig.js +6 -0
- package/dist/utils/getLabelForPermissionLevel.d.ts +2 -0
- package/dist/utils/getLabelForPermissionLevel.js +17 -0
- package/dist/utils/injectRouteArray.d.ts +19 -0
- package/dist/utils/injectRouteArray.js +75 -0
- package/dist/utils/integrationLogger.d.ts +7 -0
- package/dist/utils/integrationLogger.js +18 -0
- package/dist/utils/integrations.d.ts +4 -0
- package/dist/utils/integrations.js +32 -0
- package/dist/utils/isDashboardRoute.d.ts +7 -0
- package/dist/utils/isDashboardRoute.js +10 -0
- package/dist/utils/loginBackgrounds/studiocms-blobs-dark.png +0 -0
- package/dist/utils/loginBackgrounds/studiocms-blobs-light.png +0 -0
- package/dist/utils/loginBackgrounds/studiocms-blocks-dark.png +0 -0
- package/dist/utils/loginBackgrounds/studiocms-blocks-light.png +0 -0
- package/dist/utils/loginBackgrounds/studiocms-curves-dark.png +0 -0
- package/dist/utils/loginBackgrounds/studiocms-curves-light.png +0 -0
- package/dist/utils/makePageTitle.d.ts +3 -0
- package/dist/utils/makePageTitle.js +7 -0
- package/dist/utils/pageListPackageLabel.d.ts +4 -0
- package/dist/utils/pageListPackageLabel.js +12 -0
- package/dist/utils/readJson.d.ts +1 -0
- package/dist/utils/readJson.js +7 -0
- package/dist/utils/routeBuilder.d.ts +18 -0
- package/dist/utils/routeBuilder.js +96 -0
- package/dist/utils/safeString.d.ts +1 -0
- package/dist/utils/safeString.js +6 -0
- package/dist/utils/simpleResponse.d.ts +1 -0
- package/dist/utils/simpleResponse.js +29 -0
- package/dist/utils/validImages.d.ts +13 -0
- package/dist/utils/validImages.js +39 -0
- package/dist/virtual.d.js +0 -0
- package/dist/virtual.d.ts +9 -0
- package/package.json +219 -0
- package/studiocms-cli.mjs +13 -0
- package/ui.d.ts +291 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import studioCMS_SDK_Cache from "studiocms:sdk/cache";
|
|
2
|
+
import { simpleResponse } from "../../../../../utils/simpleResponse.js";
|
|
3
|
+
const GET = async (context) => {
|
|
4
|
+
const { id } = context.params;
|
|
5
|
+
if (!id) {
|
|
6
|
+
return simpleResponse(400, "Invalid folder ID");
|
|
7
|
+
}
|
|
8
|
+
const folder = await studioCMS_SDK_Cache.GET.folder(id);
|
|
9
|
+
if (!folder) {
|
|
10
|
+
return simpleResponse(404, "Folder not found");
|
|
11
|
+
}
|
|
12
|
+
return new Response(JSON.stringify(folder), {
|
|
13
|
+
headers: {
|
|
14
|
+
"Content-Type": "application/json"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
const OPTIONS = async () => {
|
|
19
|
+
return new Response(null, {
|
|
20
|
+
status: 204,
|
|
21
|
+
statusText: "No Content",
|
|
22
|
+
headers: {
|
|
23
|
+
Allow: "OPTIONS, GET",
|
|
24
|
+
"ALLOW-ACCESS-CONTROL-ORIGIN": "*",
|
|
25
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
26
|
+
Date: (/* @__PURE__ */ new Date()).toUTCString()
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const ALL = async () => {
|
|
31
|
+
return new Response(null, {
|
|
32
|
+
status: 405,
|
|
33
|
+
statusText: "Method Not Allowed",
|
|
34
|
+
headers: {
|
|
35
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*"
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
ALL,
|
|
41
|
+
GET,
|
|
42
|
+
OPTIONS
|
|
43
|
+
};
|
|
@@ -0,0 +1,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,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,61 @@
|
|
|
1
|
+
import studioCMS_SDK_Cache from "studiocms:sdk/cache";
|
|
2
|
+
const GET = async (context) => {
|
|
3
|
+
const pages = await studioCMS_SDK_Cache.GET.pages();
|
|
4
|
+
const searchParams = context.url.searchParams;
|
|
5
|
+
const titleFilter = searchParams.get("title");
|
|
6
|
+
const slugFilter = searchParams.get("slug");
|
|
7
|
+
const authorFilter = searchParams.get("author");
|
|
8
|
+
const draftFilter = searchParams.get("draft") === "true";
|
|
9
|
+
const publishedFilter = searchParams.get("published") === "true";
|
|
10
|
+
const parentFolderFilter = searchParams.get("parentFolder");
|
|
11
|
+
let filteredPages = pages;
|
|
12
|
+
if (titleFilter) {
|
|
13
|
+
filteredPages = filteredPages.filter((page) => page.data.title.includes(titleFilter));
|
|
14
|
+
}
|
|
15
|
+
if (slugFilter) {
|
|
16
|
+
filteredPages = filteredPages.filter((page) => page.data.slug.includes(slugFilter));
|
|
17
|
+
}
|
|
18
|
+
if (authorFilter) {
|
|
19
|
+
filteredPages = filteredPages.filter((page) => page.data.authorId === authorFilter);
|
|
20
|
+
}
|
|
21
|
+
if (draftFilter) {
|
|
22
|
+
filteredPages = filteredPages.filter((page) => page.data.draft === draftFilter);
|
|
23
|
+
}
|
|
24
|
+
if (publishedFilter) {
|
|
25
|
+
filteredPages = filteredPages.filter((page) => !page.data.draft);
|
|
26
|
+
}
|
|
27
|
+
if (parentFolderFilter) {
|
|
28
|
+
filteredPages = filteredPages.filter((page) => page.data.parentFolder === parentFolderFilter);
|
|
29
|
+
}
|
|
30
|
+
return new Response(JSON.stringify(filteredPages), {
|
|
31
|
+
headers: {
|
|
32
|
+
"Content-Type": "application/json"
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
const OPTIONS = async () => {
|
|
37
|
+
return new Response(null, {
|
|
38
|
+
status: 204,
|
|
39
|
+
statusText: "No Content",
|
|
40
|
+
headers: {
|
|
41
|
+
Allow: "OPTIONS, GET",
|
|
42
|
+
"ALLOW-ACCESS-CONTROL-ORIGIN": "*",
|
|
43
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
44
|
+
Date: (/* @__PURE__ */ new Date()).toUTCString()
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const ALL = async () => {
|
|
49
|
+
return new Response(null, {
|
|
50
|
+
status: 405,
|
|
51
|
+
statusText: "Method Not Allowed",
|
|
52
|
+
headers: {
|
|
53
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*"
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
export {
|
|
58
|
+
ALL,
|
|
59
|
+
GET,
|
|
60
|
+
OPTIONS
|
|
61
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import studioCMS_SDK_Cache from "studiocms:sdk/cache";
|
|
2
|
+
import { simpleResponse } from "../../../../utils/simpleResponse.js";
|
|
3
|
+
import { verifyAuthToken } from "../../utils/auth-token.js";
|
|
4
|
+
const GET = async (context) => {
|
|
5
|
+
const user = await verifyAuthToken(context);
|
|
6
|
+
if (user instanceof Response) {
|
|
7
|
+
return user;
|
|
8
|
+
}
|
|
9
|
+
const { rank } = user;
|
|
10
|
+
if (rank !== "owner") {
|
|
11
|
+
return simpleResponse(401, "Unauthorized");
|
|
12
|
+
}
|
|
13
|
+
const siteConfig = await studioCMS_SDK_Cache.GET.siteConfig();
|
|
14
|
+
return new Response(JSON.stringify(siteConfig), {
|
|
15
|
+
headers: {
|
|
16
|
+
"Content-Type": "application/json"
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
const PATCH = async (context) => {
|
|
21
|
+
const user = await verifyAuthToken(context);
|
|
22
|
+
if (user instanceof Response) {
|
|
23
|
+
return user;
|
|
24
|
+
}
|
|
25
|
+
const { rank } = user;
|
|
26
|
+
if (rank !== "owner") {
|
|
27
|
+
return simpleResponse(401, "Unauthorized");
|
|
28
|
+
}
|
|
29
|
+
const siteConfig = await context.request.json();
|
|
30
|
+
if (!siteConfig.title) {
|
|
31
|
+
return simpleResponse(400, "Invalid form data, title is required");
|
|
32
|
+
}
|
|
33
|
+
if (!siteConfig.description) {
|
|
34
|
+
return simpleResponse(400, "Invalid form data, description is required");
|
|
35
|
+
}
|
|
36
|
+
if (!siteConfig.loginPageBackground) {
|
|
37
|
+
return simpleResponse(400, "Invalid form data, loginPageBackground is required");
|
|
38
|
+
}
|
|
39
|
+
if (siteConfig.loginPageBackground === "custom" && !siteConfig.loginPageCustomImage) {
|
|
40
|
+
return simpleResponse(400, "Invalid form data, loginPageCustomImage is required");
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
await studioCMS_SDK_Cache.UPDATE.siteConfig(siteConfig);
|
|
44
|
+
return simpleResponse(200, "Site config updated");
|
|
45
|
+
} catch (error) {
|
|
46
|
+
return simpleResponse(500, "Error updating site config");
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const OPTIONS = async () => {
|
|
50
|
+
return new Response(null, {
|
|
51
|
+
status: 204,
|
|
52
|
+
statusText: "No Content",
|
|
53
|
+
headers: {
|
|
54
|
+
Allow: "OPTIONS, GET, PATCH",
|
|
55
|
+
"ALLOW-ACCESS-CONTROL-ORIGIN": "*",
|
|
56
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
57
|
+
Date: (/* @__PURE__ */ new Date()).toUTCString()
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const ALL = async () => {
|
|
62
|
+
return new Response(null, {
|
|
63
|
+
status: 405,
|
|
64
|
+
statusText: "Method Not Allowed",
|
|
65
|
+
headers: {
|
|
66
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*"
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
export {
|
|
71
|
+
ALL,
|
|
72
|
+
GET,
|
|
73
|
+
OPTIONS,
|
|
74
|
+
PATCH
|
|
75
|
+
};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { verifyUserPermissionLevel } from "studiocms:auth/lib/user";
|
|
2
|
+
import studioCMS_SDK from "studiocms:sdk";
|
|
3
|
+
import { simpleResponse } from "../../../../utils/simpleResponse.js";
|
|
4
|
+
import { verifyAuthToken } from "../../utils/auth-token.js";
|
|
5
|
+
const GET = async (context) => {
|
|
6
|
+
const user = await verifyAuthToken(context);
|
|
7
|
+
if (user instanceof Response) {
|
|
8
|
+
return user;
|
|
9
|
+
}
|
|
10
|
+
const { rank } = user;
|
|
11
|
+
if (rank !== "owner" && rank !== "admin") {
|
|
12
|
+
return simpleResponse(401, "Unauthorized");
|
|
13
|
+
}
|
|
14
|
+
const { id } = context.params;
|
|
15
|
+
if (!id) {
|
|
16
|
+
return simpleResponse(400, "Invalid form data, id is required");
|
|
17
|
+
}
|
|
18
|
+
const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
|
|
19
|
+
if (!existingUser) {
|
|
20
|
+
return simpleResponse(400, "User not found");
|
|
21
|
+
}
|
|
22
|
+
const { avatar, createdAt, email, name, permissionsData, updatedAt, url, username } = existingUser;
|
|
23
|
+
const existingUserRank = permissionsData?.rank ?? "admin";
|
|
24
|
+
const data = {
|
|
25
|
+
avatar,
|
|
26
|
+
createdAt,
|
|
27
|
+
email,
|
|
28
|
+
id,
|
|
29
|
+
name,
|
|
30
|
+
rank: existingUserRank,
|
|
31
|
+
updatedAt,
|
|
32
|
+
url,
|
|
33
|
+
username
|
|
34
|
+
};
|
|
35
|
+
const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
|
|
36
|
+
(user2) => user2.id === id
|
|
37
|
+
);
|
|
38
|
+
if (!loggedInUser || loggedInUser === void 0) {
|
|
39
|
+
return simpleResponse(400, "User Error");
|
|
40
|
+
}
|
|
41
|
+
const permissionLevelInput = {
|
|
42
|
+
isLoggedIn: true,
|
|
43
|
+
user: loggedInUser,
|
|
44
|
+
permissionLevel: rank
|
|
45
|
+
};
|
|
46
|
+
const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
|
|
47
|
+
if (!isAllowed) {
|
|
48
|
+
return simpleResponse(401, "Unauthorized");
|
|
49
|
+
}
|
|
50
|
+
return new Response(JSON.stringify(data), {
|
|
51
|
+
headers: {
|
|
52
|
+
"Content-Type": "application/json"
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const PATCH = async (context) => {
|
|
57
|
+
const user = await verifyAuthToken(context);
|
|
58
|
+
if (user instanceof Response) {
|
|
59
|
+
return user;
|
|
60
|
+
}
|
|
61
|
+
const { rank } = user;
|
|
62
|
+
if (rank !== "owner" && rank !== "admin") {
|
|
63
|
+
return simpleResponse(401, "Unauthorized");
|
|
64
|
+
}
|
|
65
|
+
const { id } = context.params;
|
|
66
|
+
if (!id) {
|
|
67
|
+
return simpleResponse(400, "Invalid form data, id is required");
|
|
68
|
+
}
|
|
69
|
+
const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
|
|
70
|
+
if (!existingUser) {
|
|
71
|
+
return simpleResponse(400, "User not found");
|
|
72
|
+
}
|
|
73
|
+
const { permissionsData } = existingUser;
|
|
74
|
+
const existingUserRank = permissionsData?.rank ?? "admin";
|
|
75
|
+
const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
|
|
76
|
+
(user2) => user2.id === id
|
|
77
|
+
);
|
|
78
|
+
if (!loggedInUser || loggedInUser === void 0) {
|
|
79
|
+
return simpleResponse(400, "User Error");
|
|
80
|
+
}
|
|
81
|
+
const permissionLevelInput = {
|
|
82
|
+
isLoggedIn: true,
|
|
83
|
+
user: loggedInUser,
|
|
84
|
+
permissionLevel: rank
|
|
85
|
+
};
|
|
86
|
+
const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
|
|
87
|
+
if (!isAllowed) {
|
|
88
|
+
return simpleResponse(401, "Unauthorized");
|
|
89
|
+
}
|
|
90
|
+
const jsonData = await context.request.json();
|
|
91
|
+
const { rank: newRank } = jsonData;
|
|
92
|
+
if (!newRank) {
|
|
93
|
+
return simpleResponse(400, "Missing field: Rank is required");
|
|
94
|
+
}
|
|
95
|
+
const isRankValid = ["visitor", "editor", "admin", "owner"].includes(newRank);
|
|
96
|
+
if (!isRankValid) {
|
|
97
|
+
return simpleResponse(400, "Invalid rank");
|
|
98
|
+
}
|
|
99
|
+
const updateRank = await studioCMS_SDK.UPDATE.permissions({
|
|
100
|
+
user: id,
|
|
101
|
+
rank
|
|
102
|
+
});
|
|
103
|
+
if (!updateRank) {
|
|
104
|
+
return simpleResponse(400, "Failed to update rank");
|
|
105
|
+
}
|
|
106
|
+
const updatedUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
|
|
107
|
+
if (!updatedUser) {
|
|
108
|
+
return simpleResponse(400, "Failed to get updated user");
|
|
109
|
+
}
|
|
110
|
+
const {
|
|
111
|
+
avatar,
|
|
112
|
+
createdAt,
|
|
113
|
+
email,
|
|
114
|
+
name,
|
|
115
|
+
permissionsData: newPermissionsData,
|
|
116
|
+
updatedAt,
|
|
117
|
+
url,
|
|
118
|
+
username
|
|
119
|
+
} = updatedUser;
|
|
120
|
+
const updatedUserRank = newPermissionsData?.rank ?? "unknown";
|
|
121
|
+
const data = {
|
|
122
|
+
avatar,
|
|
123
|
+
createdAt,
|
|
124
|
+
email,
|
|
125
|
+
id,
|
|
126
|
+
name,
|
|
127
|
+
rank: updatedUserRank,
|
|
128
|
+
updatedAt,
|
|
129
|
+
url,
|
|
130
|
+
username
|
|
131
|
+
};
|
|
132
|
+
return new Response(JSON.stringify(data), {
|
|
133
|
+
headers: {
|
|
134
|
+
"Content-Type": "application/json"
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
const DELETE = async (context) => {
|
|
139
|
+
const user = await verifyAuthToken(context);
|
|
140
|
+
if (user instanceof Response) {
|
|
141
|
+
return user;
|
|
142
|
+
}
|
|
143
|
+
const { rank } = user;
|
|
144
|
+
if (rank !== "owner" && rank !== "admin") {
|
|
145
|
+
return simpleResponse(401, "Unauthorized");
|
|
146
|
+
}
|
|
147
|
+
const { id } = context.params;
|
|
148
|
+
if (!id) {
|
|
149
|
+
return simpleResponse(400, "Invalid form data, id is required");
|
|
150
|
+
}
|
|
151
|
+
const existingUser = await studioCMS_SDK.GET.databaseEntry.users.byId(id);
|
|
152
|
+
if (!existingUser) {
|
|
153
|
+
return simpleResponse(400, "User not found");
|
|
154
|
+
}
|
|
155
|
+
const { permissionsData } = existingUser;
|
|
156
|
+
const existingUserRank = permissionsData?.rank ?? "admin";
|
|
157
|
+
const loggedInUser = (await studioCMS_SDK.GET.databaseTable.users()).find(
|
|
158
|
+
(user2) => user2.id === id
|
|
159
|
+
);
|
|
160
|
+
if (!loggedInUser || loggedInUser === void 0) {
|
|
161
|
+
return simpleResponse(400, "User Error");
|
|
162
|
+
}
|
|
163
|
+
const permissionLevelInput = {
|
|
164
|
+
isLoggedIn: true,
|
|
165
|
+
user: loggedInUser,
|
|
166
|
+
permissionLevel: rank
|
|
167
|
+
};
|
|
168
|
+
const isAllowed = await verifyUserPermissionLevel(permissionLevelInput, existingUserRank);
|
|
169
|
+
if (!isAllowed) {
|
|
170
|
+
return simpleResponse(401, "Unauthorized");
|
|
171
|
+
}
|
|
172
|
+
try {
|
|
173
|
+
const response = await studioCMS_SDK.DELETE.user(id);
|
|
174
|
+
if (!response) {
|
|
175
|
+
return simpleResponse(400, "Failed to delete user");
|
|
176
|
+
}
|
|
177
|
+
if (response.status === "error") {
|
|
178
|
+
return simpleResponse(400, response.message);
|
|
179
|
+
}
|
|
180
|
+
return simpleResponse(200, response.message);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
return simpleResponse(400, `Failed to delete user: ${error}`);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const OPTIONS = async () => {
|
|
186
|
+
return new Response(null, {
|
|
187
|
+
status: 204,
|
|
188
|
+
statusText: "No Content",
|
|
189
|
+
headers: {
|
|
190
|
+
Allow: "OPTIONS, GET, PATCH, DELETE",
|
|
191
|
+
"ALLOW-ACCESS-CONTROL-ORIGIN": "*",
|
|
192
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
193
|
+
Date: (/* @__PURE__ */ new Date()).toUTCString()
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
const ALL = async () => {
|
|
198
|
+
return new Response(null, {
|
|
199
|
+
status: 405,
|
|
200
|
+
statusText: "Method Not Allowed",
|
|
201
|
+
headers: {
|
|
202
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*"
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
export {
|
|
207
|
+
ALL,
|
|
208
|
+
DELETE,
|
|
209
|
+
GET,
|
|
210
|
+
OPTIONS,
|
|
211
|
+
PATCH
|
|
212
|
+
};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { verifyPasswordStrength } from "studiocms:auth/lib/password";
|
|
2
|
+
import { createLocalUser, verifyUsernameInput } from "studiocms:auth/lib/user";
|
|
3
|
+
import studioCMS_SDK from "studiocms:sdk";
|
|
4
|
+
import { z } from "astro/zod";
|
|
5
|
+
import { simpleResponse } from "../../../../utils/simpleResponse.js";
|
|
6
|
+
import { verifyAuthToken } from "../../utils/auth-token.js";
|
|
7
|
+
const GET = async (context) => {
|
|
8
|
+
const user = await verifyAuthToken(context);
|
|
9
|
+
if (user instanceof Response) {
|
|
10
|
+
return user;
|
|
11
|
+
}
|
|
12
|
+
const { rank } = user;
|
|
13
|
+
if (rank !== "owner" && rank !== "admin") {
|
|
14
|
+
return simpleResponse(401, "Unauthorized");
|
|
15
|
+
}
|
|
16
|
+
const users = await studioCMS_SDK.GET.database.users();
|
|
17
|
+
let data = users.map(
|
|
18
|
+
({ avatar, createdAt, email, id, name, permissionsData, updatedAt, url, username }) => ({
|
|
19
|
+
avatar,
|
|
20
|
+
createdAt,
|
|
21
|
+
email,
|
|
22
|
+
id,
|
|
23
|
+
name,
|
|
24
|
+
rank: permissionsData?.rank ?? "unknown",
|
|
25
|
+
updatedAt,
|
|
26
|
+
url,
|
|
27
|
+
username
|
|
28
|
+
})
|
|
29
|
+
);
|
|
30
|
+
if (rank !== "owner") {
|
|
31
|
+
data = data.filter((user2) => user2.rank !== "owner");
|
|
32
|
+
}
|
|
33
|
+
const searchParams = context.url.searchParams;
|
|
34
|
+
const rankFilter = searchParams.get("rank");
|
|
35
|
+
const usernameFilter = searchParams.get("username");
|
|
36
|
+
const nameFilter = searchParams.get("name");
|
|
37
|
+
let filteredData = data;
|
|
38
|
+
if (rankFilter) {
|
|
39
|
+
filteredData = filteredData.filter((user2) => user2.rank === rankFilter);
|
|
40
|
+
}
|
|
41
|
+
if (usernameFilter) {
|
|
42
|
+
filteredData = filteredData.filter((user2) => user2.username.includes(usernameFilter));
|
|
43
|
+
}
|
|
44
|
+
if (nameFilter) {
|
|
45
|
+
filteredData = filteredData.filter((user2) => user2.name.includes(nameFilter));
|
|
46
|
+
}
|
|
47
|
+
return new Response(JSON.stringify(filteredData), {
|
|
48
|
+
headers: {
|
|
49
|
+
"Content-Type": "application/json"
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const POST = async (context) => {
|
|
54
|
+
const user = await verifyAuthToken(context);
|
|
55
|
+
if (user instanceof Response) {
|
|
56
|
+
return user;
|
|
57
|
+
}
|
|
58
|
+
const { rank } = user;
|
|
59
|
+
if (rank !== "owner" && rank !== "admin") {
|
|
60
|
+
return simpleResponse(401, "Unauthorized");
|
|
61
|
+
}
|
|
62
|
+
const jsonData = await context.request.json();
|
|
63
|
+
let { username, password, email, displayname, rank: newUserRank } = jsonData;
|
|
64
|
+
if (!username) {
|
|
65
|
+
return simpleResponse(400, "Missing field: Username is required");
|
|
66
|
+
}
|
|
67
|
+
if (!password) {
|
|
68
|
+
password = studioCMS_SDK.generateRandomPassword(12);
|
|
69
|
+
}
|
|
70
|
+
if (!email) {
|
|
71
|
+
return simpleResponse(400, "Missing field: Email is required");
|
|
72
|
+
}
|
|
73
|
+
if (!displayname) {
|
|
74
|
+
return simpleResponse(400, "Missing field: Display name is required");
|
|
75
|
+
}
|
|
76
|
+
if (!newUserRank) {
|
|
77
|
+
return simpleResponse(400, "Missing field: Rank is required");
|
|
78
|
+
}
|
|
79
|
+
if (verifyUsernameInput(username) !== true) {
|
|
80
|
+
return simpleResponse(
|
|
81
|
+
400,
|
|
82
|
+
"Invalid username: Username must be between 3 and 20 characters, only contain lowercase letters, numbers, -, and _ as well as not be a commonly used username (admin, root, etc.)"
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
if (await verifyPasswordStrength(password) !== true) {
|
|
86
|
+
return simpleResponse(
|
|
87
|
+
400,
|
|
88
|
+
'Invalid password: Password must be between 6 and 255 characters, and not be in the <a href="https://haveibeenpwned.com/Passwords" target="_blank">pwned password database</a>.'
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
const checkEmail = z.coerce.string().email({ message: "Email address is invalid" }).safeParse(email);
|
|
92
|
+
if (!checkEmail.success) {
|
|
93
|
+
return simpleResponse(400, `Invalid email: ${checkEmail.error.message}`);
|
|
94
|
+
}
|
|
95
|
+
const { usernameSearch, emailSearch } = await studioCMS_SDK.AUTH.user.searchUsersForUsernameOrEmail(username, checkEmail.data);
|
|
96
|
+
if (usernameSearch.length > 0) {
|
|
97
|
+
return simpleResponse(400, "Invalid username: Username is already in use");
|
|
98
|
+
}
|
|
99
|
+
if (emailSearch.length > 0) {
|
|
100
|
+
return simpleResponse(400, "Invalid email: Email is already in use");
|
|
101
|
+
}
|
|
102
|
+
const newUser = await createLocalUser(displayname, username, email, password);
|
|
103
|
+
const updateRank = await studioCMS_SDK.UPDATE.permissions({
|
|
104
|
+
user: newUser.id,
|
|
105
|
+
rank
|
|
106
|
+
});
|
|
107
|
+
return simpleResponse(
|
|
108
|
+
200,
|
|
109
|
+
JSON.stringify({ username, email, displayname, rank: updateRank.rank, password })
|
|
110
|
+
);
|
|
111
|
+
};
|
|
112
|
+
const OPTIONS = async () => {
|
|
113
|
+
return new Response(null, {
|
|
114
|
+
status: 204,
|
|
115
|
+
statusText: "No Content",
|
|
116
|
+
headers: {
|
|
117
|
+
Allow: "OPTIONS, GET, POST",
|
|
118
|
+
"ALLOW-ACCESS-CONTROL-ORIGIN": "*",
|
|
119
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
120
|
+
Date: (/* @__PURE__ */ new Date()).toUTCString()
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
const ALL = async () => {
|
|
125
|
+
return new Response(null, {
|
|
126
|
+
status: 405,
|
|
127
|
+
statusText: "Method Not Allowed",
|
|
128
|
+
headers: {
|
|
129
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*"
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
export {
|
|
134
|
+
ALL,
|
|
135
|
+
GET,
|
|
136
|
+
OPTIONS,
|
|
137
|
+
POST
|
|
138
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import studioCMS_SDK from "studiocms:sdk/cache";
|
|
2
|
+
const GET = async () => {
|
|
3
|
+
const pages = await studioCMS_SDK.GET.pages();
|
|
4
|
+
const lastUpdated = (/* @__PURE__ */ new Date()).toUTCString();
|
|
5
|
+
return new Response(
|
|
6
|
+
JSON.stringify({ lastUpdated, pages: pages.map((pageItem) => pageItem.data) }, null, 2),
|
|
7
|
+
{
|
|
8
|
+
headers: {
|
|
9
|
+
"Content-Type": "application/json",
|
|
10
|
+
"ACCESS-CONTROL-ALLOW-ORIGIN": "*",
|
|
11
|
+
"Cache-Control": "public, max-age=604800, immutable",
|
|
12
|
+
Date: lastUpdated
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
GET
|
|
19
|
+
};
|