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,31 @@
|
|
|
1
|
+
import rendererConfig from "studiocms:renderer/config";
|
|
2
|
+
import renderAstroMD from "./astro-remark.js";
|
|
3
|
+
import renderMarkDoc from "./markdoc.js";
|
|
4
|
+
import renderAstroMDX from "./mdx.js";
|
|
5
|
+
import renderStudioCMS from "./studiocms.js";
|
|
6
|
+
const { renderer } = rendererConfig;
|
|
7
|
+
async function contentRenderer(content, SSRResult) {
|
|
8
|
+
if (typeof renderer === "object") {
|
|
9
|
+
if (!renderer.renderer || !renderer.name) {
|
|
10
|
+
throw new Error("Invalid custom renderer");
|
|
11
|
+
}
|
|
12
|
+
return await renderer.renderer(content);
|
|
13
|
+
}
|
|
14
|
+
switch (renderer) {
|
|
15
|
+
case "studiocms":
|
|
16
|
+
return await renderStudioCMS(content, SSRResult);
|
|
17
|
+
case "astro":
|
|
18
|
+
return await renderAstroMD(content);
|
|
19
|
+
case "markdoc":
|
|
20
|
+
return await renderMarkDoc(content);
|
|
21
|
+
case "mdx":
|
|
22
|
+
return await renderAstroMDX(content);
|
|
23
|
+
default:
|
|
24
|
+
return await renderAstroMD(content);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
var contentRenderer_default = contentRenderer;
|
|
28
|
+
export {
|
|
29
|
+
contentRenderer,
|
|
30
|
+
contentRenderer_default as default
|
|
31
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StudioCMSCoreError } from "../../errors.js";
|
|
2
|
+
class StudioCMSRendererError extends StudioCMSCoreError {
|
|
3
|
+
name = "StudioCMS Renderer Error";
|
|
4
|
+
}
|
|
5
|
+
function prefixError(err, prefix) {
|
|
6
|
+
if (err?.message) {
|
|
7
|
+
try {
|
|
8
|
+
err.message = `${prefix}:
|
|
9
|
+
${err.message}`;
|
|
10
|
+
return err;
|
|
11
|
+
} catch {
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const wrappedError = new Error(`${prefix}${err ? `: ${err}` : ""}`);
|
|
15
|
+
try {
|
|
16
|
+
wrappedError.stack = err.stack;
|
|
17
|
+
wrappedError.cause = err;
|
|
18
|
+
} catch {
|
|
19
|
+
}
|
|
20
|
+
return wrappedError;
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
StudioCMSRendererError,
|
|
24
|
+
prefixError
|
|
25
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Markdoc, {} from "@markdoc/markdoc";
|
|
2
|
+
function renderHTML() {
|
|
3
|
+
return {
|
|
4
|
+
name: "html",
|
|
5
|
+
renderer: async (content) => {
|
|
6
|
+
return Markdoc.renderers.html(content);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
var markdocHTML_default = renderHTML;
|
|
11
|
+
export {
|
|
12
|
+
markdocHTML_default as default,
|
|
13
|
+
renderHTML
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import Markdoc, {} from "@markdoc/markdoc";
|
|
2
|
+
function renderReactStatic() {
|
|
3
|
+
return {
|
|
4
|
+
name: "react-static",
|
|
5
|
+
renderer: async (content) => {
|
|
6
|
+
return Markdoc.renderers.reactStatic(content);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
var markdocReactStatic_default = renderReactStatic;
|
|
11
|
+
export {
|
|
12
|
+
markdocReactStatic_default as default,
|
|
13
|
+
renderReactStatic
|
|
14
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a Markdown string into HTML using the Markdoc renderer
|
|
3
|
+
*
|
|
4
|
+
* Markdoc is a powerful, flexible, Markdown-based authoring framework. Built by Stripe.
|
|
5
|
+
* @see https://markdoc.dev/ for more info about markdoc.
|
|
6
|
+
*
|
|
7
|
+
* @param input - The Markdown string to render
|
|
8
|
+
* @returns The rendered HTML string
|
|
9
|
+
*/
|
|
10
|
+
export declare function renderMarkDoc(input: string): Promise<string>;
|
|
11
|
+
export default renderMarkDoc;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import rendererConfig from "studiocms:renderer/config";
|
|
2
|
+
import Markdoc, {} from "@markdoc/markdoc";
|
|
3
|
+
import { StudioCMSRendererError } from "./errors.js";
|
|
4
|
+
import renderHTML from "./markdoc-renderers/markdocHTML.js";
|
|
5
|
+
import renderReactStatic from "./markdoc-renderers/markdocReactStatic.js";
|
|
6
|
+
const {
|
|
7
|
+
markdocConfig: { argParse, transformConfig, renderType }
|
|
8
|
+
} = rendererConfig;
|
|
9
|
+
const renderers = [renderHTML(), renderReactStatic()];
|
|
10
|
+
async function renderMarkDoc(input) {
|
|
11
|
+
const ast = Markdoc.parse(input, argParse);
|
|
12
|
+
const content = Markdoc.transform(ast, transformConfig);
|
|
13
|
+
const renderer = renderers.find((r) => r.name === renderType);
|
|
14
|
+
if (renderer) {
|
|
15
|
+
return renderer.renderer(content);
|
|
16
|
+
}
|
|
17
|
+
if (renderType !== "html" && renderType !== "react-static" && renderType.name && renderType.renderer) {
|
|
18
|
+
return renderType.renderer(content).catch((e) => {
|
|
19
|
+
throw new Error(`Failed to render content with custom renderer: [${renderType.name}]: ${e}`);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
throw new StudioCMSRendererError(`Unknown MarkDoc render type: ${renderType}`);
|
|
23
|
+
}
|
|
24
|
+
var markdoc_default = renderMarkDoc;
|
|
25
|
+
export {
|
|
26
|
+
markdoc_default as default,
|
|
27
|
+
renderMarkDoc
|
|
28
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import Config from "studiocms:renderer/config";
|
|
2
|
+
import { evaluate } from "@mdx-js/mdx";
|
|
3
|
+
import { createElement } from "react";
|
|
4
|
+
import { renderToString } from "react-dom/server";
|
|
5
|
+
import * as runtime from "react/jsx-runtime";
|
|
6
|
+
import rehypeHighlight from "rehype-highlight";
|
|
7
|
+
import remarkGfm from "remark-gfm";
|
|
8
|
+
const {
|
|
9
|
+
mdxConfig: { recmaPlugins, rehypePlugins, remarkPlugins, remarkRehypeOptions }
|
|
10
|
+
} = Config;
|
|
11
|
+
const makeList = (included, userDefinedPlugins) => {
|
|
12
|
+
const Plugins = included;
|
|
13
|
+
if (userDefinedPlugins) {
|
|
14
|
+
for (const plugin of userDefinedPlugins) {
|
|
15
|
+
Plugins.push(plugin);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return Plugins;
|
|
19
|
+
};
|
|
20
|
+
const includedRemarkPlugins = [remarkGfm];
|
|
21
|
+
const includedRehypePlugins = [rehypeHighlight];
|
|
22
|
+
async function renderAstroMDX(content) {
|
|
23
|
+
const { default: MDXContent } = await evaluate(content, {
|
|
24
|
+
// biome-ignore lint/suspicious/noExplicitAny: react jsx-runtime is not typed
|
|
25
|
+
...runtime,
|
|
26
|
+
remarkPlugins: makeList(includedRemarkPlugins, remarkPlugins),
|
|
27
|
+
rehypePlugins: makeList(includedRehypePlugins, rehypePlugins),
|
|
28
|
+
recmaPlugins,
|
|
29
|
+
remarkRehypeOptions
|
|
30
|
+
});
|
|
31
|
+
return renderToString(createElement(MDXContent));
|
|
32
|
+
}
|
|
33
|
+
var mdx_default = renderAstroMDX;
|
|
34
|
+
export {
|
|
35
|
+
mdx_default as default,
|
|
36
|
+
renderAstroMDX
|
|
37
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Imports components by their keys from the 'studiocms:markdown-remark/user-components' module.
|
|
3
|
+
*
|
|
4
|
+
* @param keys - An array of strings representing the keys of the components to import.
|
|
5
|
+
* @returns A promise that resolves to an object containing the imported components.
|
|
6
|
+
* @throws {MarkdownRemarkError} If any component fails to import, an error is thrown with a prefixed message.
|
|
7
|
+
*/
|
|
8
|
+
export declare function importComponentsKeys(): Promise<Record<string, any>>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { componentKeys } from "studiocms:component-proxy";
|
|
2
|
+
import * as mod from "studiocms:component-proxy";
|
|
3
|
+
import { StudioCMSRendererError, prefixError } from "./errors.js";
|
|
4
|
+
async function importComponentsKeys() {
|
|
5
|
+
const predefinedComponents = {};
|
|
6
|
+
for (const key of componentKeys) {
|
|
7
|
+
try {
|
|
8
|
+
predefinedComponents[key.toLowerCase()] = mod[key.toLowerCase()];
|
|
9
|
+
} catch (e) {
|
|
10
|
+
if (e instanceof Error) {
|
|
11
|
+
const newErr2 = prefixError(
|
|
12
|
+
e,
|
|
13
|
+
`Failed to import component "${key}" from Virtual Module "studiocms:component-proxy"`
|
|
14
|
+
);
|
|
15
|
+
console.error(newErr2);
|
|
16
|
+
throw new StudioCMSRendererError(newErr2.message, newErr2.stack);
|
|
17
|
+
}
|
|
18
|
+
const newErr = prefixError(
|
|
19
|
+
new Error("Unknown error"),
|
|
20
|
+
`Failed to import component "${key}" from Virtual Module "studiocms:component-proxy"`
|
|
21
|
+
);
|
|
22
|
+
console.error(newErr);
|
|
23
|
+
throw new StudioCMSRendererError(newErr.message, newErr.stack);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return predefinedComponents;
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
importComponentsKeys
|
|
30
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Shared } from './types.js';
|
|
2
|
+
export declare const symbol: symbol;
|
|
3
|
+
/**
|
|
4
|
+
* A shared object that is either retrieved from the global scope using a symbol or
|
|
5
|
+
* initialized as a new object with a `markdownConfig` property.
|
|
6
|
+
*
|
|
7
|
+
* @constant
|
|
8
|
+
* @type {Shared}
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* The `@ts-ignore` comments are used to suppress TypeScript errors related to the use of
|
|
12
|
+
* the global scope and assignment within expressions. The `biome-ignore` comment is used
|
|
13
|
+
* to suppress linting errors for the same reason.
|
|
14
|
+
*/
|
|
15
|
+
export declare const shared: Shared;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const symbol = Symbol.for("@studiocms/markdown-remark");
|
|
2
|
+
const shared = (
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
globalThis[symbol] || // @ts-ignore
|
|
5
|
+
// biome-ignore lint/suspicious/noAssignInExpressions: <explanation>
|
|
6
|
+
(globalThis[symbol] = {
|
|
7
|
+
markdownConfig: {}
|
|
8
|
+
})
|
|
9
|
+
);
|
|
10
|
+
export {
|
|
11
|
+
shared,
|
|
12
|
+
symbol
|
|
13
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SSRResult } from 'astro';
|
|
2
|
+
/**
|
|
3
|
+
* Render StudioCMS Markdown content
|
|
4
|
+
*
|
|
5
|
+
* @param content - The StudioCMS Markdown content
|
|
6
|
+
* @param SSRResult - The SSR result Used to render the custom components
|
|
7
|
+
*
|
|
8
|
+
* @returns The rendered HTML
|
|
9
|
+
*/
|
|
10
|
+
export declare function renderStudioCMS(content: string, SSRResult: SSRResult): Promise<string>;
|
|
11
|
+
export default renderStudioCMS;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createMarkdownProcessor } from "@studiocms/markdown-remark-processor";
|
|
2
|
+
import { createComponentProxy, transformHTML } from "../../runtime/AstroComponentProxy.js";
|
|
3
|
+
import { TransformToProcessor } from "../../schemas/index.js";
|
|
4
|
+
import { importComponentsKeys } from "./runtime.js";
|
|
5
|
+
import { shared } from "./shared.js";
|
|
6
|
+
const studiocmsMarkdownExtended = TransformToProcessor.parse({ studiocms: shared.studiocms });
|
|
7
|
+
const cachedProcessor = await createMarkdownProcessor({
|
|
8
|
+
...shared.markdownConfig,
|
|
9
|
+
...studiocmsMarkdownExtended
|
|
10
|
+
});
|
|
11
|
+
const _components = await importComponentsKeys();
|
|
12
|
+
async function renderStudioCMS(content, SSRResult) {
|
|
13
|
+
const components = createComponentProxy(SSRResult, _components);
|
|
14
|
+
const code = (await cachedProcessor.render(content)).code;
|
|
15
|
+
const html = await transformHTML(code, components);
|
|
16
|
+
return html;
|
|
17
|
+
}
|
|
18
|
+
var studiocms_default = renderStudioCMS;
|
|
19
|
+
export {
|
|
20
|
+
studiocms_default as default,
|
|
21
|
+
renderStudioCMS
|
|
22
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StudioCMSConfigOptions } from '@studiocms/markdown-remark-processor';
|
|
2
|
+
import type { AstroConfig } from 'astro';
|
|
3
|
+
/**
|
|
4
|
+
* Interface representing shared configuration for markdown.
|
|
5
|
+
*
|
|
6
|
+
* @interface Shared
|
|
7
|
+
* @property {AstroConfig['markdown']} markdownConfig - The markdown configuration from AstroConfig.
|
|
8
|
+
*/
|
|
9
|
+
export interface Shared {
|
|
10
|
+
markdownConfig: AstroConfig['markdown'];
|
|
11
|
+
studiocms: StudioCMSConfigOptions;
|
|
12
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AstroIntegrationLogger } from 'astro';
|
|
2
|
+
import type { RobotsConfig } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Generates the content for the robots.txt file based on the provided configuration.
|
|
5
|
+
*
|
|
6
|
+
* @param {RobotsConfig} config - The configuration object for generating the robots.txt content.
|
|
7
|
+
* @param {string} siteMapHref - The URL of the sitemap.
|
|
8
|
+
* @param {AstroIntegrationLogger} logger - The logger instance for logging messages.
|
|
9
|
+
* @returns {string} The generated content for the robots.txt file.
|
|
10
|
+
*
|
|
11
|
+
* @throws Will throw an error if any policy is missing a required userAgent,
|
|
12
|
+
* if both allow and disallow entries are missing or empty,
|
|
13
|
+
* if crawlDelay is not a number or is out of the allowed range (0.1 to 60 seconds).
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateContent(config: RobotsConfig, siteMapHref: string, logger: AstroIntegrationLogger): string;
|
|
16
|
+
/**
|
|
17
|
+
* Prints information about the generation of the 'robots.txt' file.
|
|
18
|
+
*
|
|
19
|
+
* @param fileSize - The size of the generated 'robots.txt' file in KB.
|
|
20
|
+
* @param executionTime - The time taken to generate the 'robots.txt' file in milliseconds.
|
|
21
|
+
* @param logger - The logger instance used to log information.
|
|
22
|
+
* @param destDir - The destination directory where the 'robots.txt' file is created.
|
|
23
|
+
*/
|
|
24
|
+
export declare function printInfo(fileSize: number, executionTime: number, logger: AstroIntegrationLogger, destDir: string): void;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
function validateHost(host, logger) {
|
|
3
|
+
const hostPattern = /^(?=.{1,253}$)(?:(?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63}$/;
|
|
4
|
+
if (typeof host !== "string") {
|
|
5
|
+
throwMsg("Host must be a string", "error", logger);
|
|
6
|
+
}
|
|
7
|
+
if (!hostPattern.test(host)) {
|
|
8
|
+
throwMsg("Host is invalid", "error", logger);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function generateHostContent(config, logger) {
|
|
12
|
+
let content = "";
|
|
13
|
+
if (config.host === true) {
|
|
14
|
+
} else if (config.host === false) {
|
|
15
|
+
} else if (typeof config.host === "number") {
|
|
16
|
+
validateHost(config.host, logger);
|
|
17
|
+
} else if (typeof config.host === "string" && config.host !== "localhost") {
|
|
18
|
+
validateHost(config.host, logger);
|
|
19
|
+
content += `Host: ${config.host}
|
|
20
|
+
`;
|
|
21
|
+
}
|
|
22
|
+
return content;
|
|
23
|
+
}
|
|
24
|
+
function validateUrl(url, logger) {
|
|
25
|
+
const urlPattern = /^https?:\/\/[^\s/$.?#].[^\s]*\.(xml|txt|html|xml.gz|txt.gz|json|xhtml)$/i;
|
|
26
|
+
if (!urlPattern.test(url)) {
|
|
27
|
+
throwMsg("sitemap [URL is invalid or not a valid sitemap file.]", true, logger);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function generateSitemapContent(config, siteHref, logger) {
|
|
31
|
+
let content = "";
|
|
32
|
+
if (config.sitemap === true) {
|
|
33
|
+
content += `Sitemap: ${siteHref}sitemap-index.xml
|
|
34
|
+
`;
|
|
35
|
+
} else if (typeof config.sitemap === "number") {
|
|
36
|
+
throwMsg("sitemap [URL is invalid or not a valid sitemap file.]", true, logger);
|
|
37
|
+
} else if (typeof config.sitemap === "string") {
|
|
38
|
+
validateUrl(config.sitemap, logger);
|
|
39
|
+
content += `Sitemap: ${config.sitemap}
|
|
40
|
+
`;
|
|
41
|
+
} else if (Array.isArray(config.sitemap)) {
|
|
42
|
+
for (const url of config.sitemap) {
|
|
43
|
+
validateUrl(url, logger);
|
|
44
|
+
content += `Sitemap: ${url}
|
|
45
|
+
`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return content;
|
|
49
|
+
}
|
|
50
|
+
function throwMsg(msg, type, logger) {
|
|
51
|
+
const sentenceHead = "\x1B[1mRefer:\x1B[22m";
|
|
52
|
+
const failure = (message) => {
|
|
53
|
+
logger.info(`\x1B[31mFailure! [${message}]\x1B[39m`);
|
|
54
|
+
};
|
|
55
|
+
const warn = (message) => {
|
|
56
|
+
logger.warn(`Skipped! [${message}].`);
|
|
57
|
+
};
|
|
58
|
+
switch (type) {
|
|
59
|
+
case "warn":
|
|
60
|
+
warn(msg);
|
|
61
|
+
break;
|
|
62
|
+
case "error":
|
|
63
|
+
failure(msg);
|
|
64
|
+
throw new Error(`${msg}`);
|
|
65
|
+
case true:
|
|
66
|
+
failure(msg);
|
|
67
|
+
throw new Error(
|
|
68
|
+
`${msg}
|
|
69
|
+
${sentenceHead}
|
|
70
|
+
Visit \x1B[4m${"https://developers.google.com/search/docs/crawling-indexing/robots/create-robots-txt#useful-robots.txt-rules"}\x1B[24m for instructions.`
|
|
71
|
+
);
|
|
72
|
+
default:
|
|
73
|
+
failure(msg);
|
|
74
|
+
throw new Error(
|
|
75
|
+
`${msg}
|
|
76
|
+
${sentenceHead}
|
|
77
|
+
Visit \x1B[4m${"https://yandex.com/support/webmaster/controlling-robot/robots-txt.html#recommend"}\x1B[24m for instructions.`
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function generateContent(config, siteMapHref, logger) {
|
|
82
|
+
let content = "";
|
|
83
|
+
for (const policy of config.policy ?? []) {
|
|
84
|
+
config?.policy?.forEach((policy2, index) => {
|
|
85
|
+
if (!policy2.userAgent) {
|
|
86
|
+
throwMsg(
|
|
87
|
+
`policy[${index}].userAgent [Required, one or more per group].
|
|
88
|
+
${JSON.stringify(policy2, null, 2)}`,
|
|
89
|
+
!!policy2.userAgent,
|
|
90
|
+
logger
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
if (!policy2.allow && !policy2.disallow || policy2.allow?.length === 0 && policy2.disallow?.length === 0) {
|
|
94
|
+
throwMsg(
|
|
95
|
+
`policy[${index}] [At least one or more 'disallow' or 'allow' entries per rule].
|
|
96
|
+
${JSON.stringify(policy2, null, 2)}`,
|
|
97
|
+
!policy2.allow && !policy2.disallow,
|
|
98
|
+
logger
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
if (policy2.crawlDelay && typeof policy2.crawlDelay !== "number") {
|
|
102
|
+
throwMsg(
|
|
103
|
+
`policy[${index}].crawlDelay [Must be number].
|
|
104
|
+
${JSON.stringify(policy2, null, 2)}`,
|
|
105
|
+
false,
|
|
106
|
+
logger
|
|
107
|
+
);
|
|
108
|
+
} else if (policy2.crawlDelay !== void 0 && policy2?.crawlDelay < 0) {
|
|
109
|
+
throwMsg(
|
|
110
|
+
`policy[${index}].crawlDelay [Must be a positive number].
|
|
111
|
+
${JSON.stringify(policy2, null, 2)}`,
|
|
112
|
+
false,
|
|
113
|
+
logger
|
|
114
|
+
);
|
|
115
|
+
} else if (policy2.crawlDelay !== void 0 && (policy2?.crawlDelay < 0.1 || policy2.crawlDelay > 60)) {
|
|
116
|
+
throwMsg(
|
|
117
|
+
`policy[${index}].crawlDelay [Must be between 0.1 and 60 seconds].
|
|
118
|
+
${JSON.stringify(policy2, null, 2)}`,
|
|
119
|
+
false,
|
|
120
|
+
logger
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
if (policy.userAgent) {
|
|
125
|
+
const userAgents = Array.isArray(policy.userAgent) ? policy.userAgent : [policy.userAgent || "*"];
|
|
126
|
+
for (const userAgent of userAgents) {
|
|
127
|
+
if (userAgent) {
|
|
128
|
+
content += `User-agent: ${userAgent}
|
|
129
|
+
`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (policy.allow) {
|
|
134
|
+
const allowPaths = Array.isArray(policy.allow) ? policy.allow : [policy.allow];
|
|
135
|
+
for (const path2 of allowPaths) {
|
|
136
|
+
content += `Allow: ${path2}
|
|
137
|
+
`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (policy.disallow) {
|
|
141
|
+
const disallowPaths = Array.isArray(policy.disallow) ? policy.disallow : [policy.disallow];
|
|
142
|
+
for (const path2 of disallowPaths) {
|
|
143
|
+
content += `Disallow: ${path2}
|
|
144
|
+
`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (policy.crawlDelay) {
|
|
148
|
+
content += `Crawl-delay: ${policy.crawlDelay}
|
|
149
|
+
`;
|
|
150
|
+
}
|
|
151
|
+
if (policy.cleanParam) {
|
|
152
|
+
const cleanParams = Array.isArray(policy.cleanParam) ? policy.cleanParam : [policy.cleanParam];
|
|
153
|
+
for (const param of cleanParams) {
|
|
154
|
+
content += `Clean-param: ${param}
|
|
155
|
+
`;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (config.policy && policy !== config.policy[config.policy.length - 1]) {
|
|
159
|
+
content += "\n";
|
|
160
|
+
} else if (config.sitemap !== false) {
|
|
161
|
+
content += "\n# crawling rule(s) for above bots\n";
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
content += generateSitemapContent(config, siteMapHref, logger);
|
|
165
|
+
content += generateHostContent(config, logger);
|
|
166
|
+
return content;
|
|
167
|
+
}
|
|
168
|
+
function printInfo(fileSize, executionTime, logger, destDir) {
|
|
169
|
+
if (fileSize > 10) {
|
|
170
|
+
console.log(`
|
|
171
|
+
\x1B[42m\x1B[30m generating 'robots.txt' file \x1B[39m\x1B[0m`);
|
|
172
|
+
const warnMsg = [
|
|
173
|
+
`
|
|
174
|
+
\x1B[33m(!) Keep your 'robots.txt' file size under 10 KB for best crawling results.`,
|
|
175
|
+
"- To keep it low, only include directives that are necessary for your site.",
|
|
176
|
+
"- Remove rules for pages that no longer exist to avoid bloat.\x1B[0m\n"
|
|
177
|
+
];
|
|
178
|
+
console.log(`${warnMsg.join("\n")}`);
|
|
179
|
+
}
|
|
180
|
+
logger.info(
|
|
181
|
+
`\`robots.txt\` (${fileSize}KB) created at \`${path.relative(process.cwd(), destDir)}\` in ${executionTime}ms`
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
export {
|
|
185
|
+
generateContent,
|
|
186
|
+
printInfo
|
|
187
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AstroIntegration } from 'astro';
|
|
2
|
+
import type { RobotsConfig } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* **Robots.txt Integration**
|
|
5
|
+
*
|
|
6
|
+
* A simple integration to generate a `robots.txt` file for your Astro project.
|
|
7
|
+
*
|
|
8
|
+
* @param astroConfig Robots Configuration
|
|
9
|
+
* @returns AstroIntegration
|
|
10
|
+
*/
|
|
11
|
+
export default function createRobotsIntegration(options?: RobotsConfig): AstroIntegration;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { generateContent, printInfo } from "./core.js";
|
|
4
|
+
import { getFileSizeInKilobytes, measureExecutionTime } from "./utils.js";
|
|
5
|
+
const defaultConfig = {
|
|
6
|
+
sitemap: false,
|
|
7
|
+
host: false,
|
|
8
|
+
policy: [
|
|
9
|
+
{
|
|
10
|
+
userAgent: ["*"],
|
|
11
|
+
allow: ["/"],
|
|
12
|
+
disallow: ["/dashboard/", "/studiocms_api/"]
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
};
|
|
16
|
+
function createRobotsIntegration(options) {
|
|
17
|
+
let astroConfig;
|
|
18
|
+
let finalSiteMapHref;
|
|
19
|
+
let executionTime;
|
|
20
|
+
const config = { ...defaultConfig, ...options };
|
|
21
|
+
return {
|
|
22
|
+
name: "studiocms/robotstxt",
|
|
23
|
+
hooks: {
|
|
24
|
+
"astro:config:setup": ({ config: cfg }) => {
|
|
25
|
+
astroConfig = cfg;
|
|
26
|
+
},
|
|
27
|
+
"astro:build:start": () => {
|
|
28
|
+
finalSiteMapHref = new URL(astroConfig.base, astroConfig.site).href;
|
|
29
|
+
},
|
|
30
|
+
"astro:build:done": async ({ dir, logger }) => {
|
|
31
|
+
executionTime = measureExecutionTime(() => {
|
|
32
|
+
fs.writeFileSync(
|
|
33
|
+
new URL("robots.txt", dir),
|
|
34
|
+
generateContent(config, finalSiteMapHref, logger),
|
|
35
|
+
"utf-8"
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
const fileSize = getFileSizeInKilobytes(new URL("robots.txt", dir));
|
|
39
|
+
const destDir = fileURLToPath(dir);
|
|
40
|
+
printInfo(fileSize, executionTime, logger, destDir);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
createRobotsIntegration as default
|
|
47
|
+
};
|