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,56 @@
|
|
|
1
|
+
import reactRenderer from '@astrojs/react/server.js';
|
|
2
|
+
import Markdoc, { type RenderableTreeNode } from '@markdoc/markdoc';
|
|
3
|
+
import { experimental_AstroContainer as AstroContainer } from 'astro/container';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import type { MarkdocRenderer } from 'studiocms/schemas/renderer';
|
|
6
|
+
import ReactWrapper from './markdocReact-components/MarkDocReactWrapper.astro';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* MarkDoc React Components
|
|
10
|
+
*
|
|
11
|
+
* The React components to use for rendering the content
|
|
12
|
+
*
|
|
13
|
+
* @type {Object} - The React components to use for rendering the content
|
|
14
|
+
*/
|
|
15
|
+
// biome-ignore lint/complexity/noBannedTypes: This is a valid use case for `any`
|
|
16
|
+
export type markdocReactComponents = {} | undefined;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* MarkDoc Render for React
|
|
20
|
+
*
|
|
21
|
+
* @requires `@astrojs/react` - Astro React Integration
|
|
22
|
+
* @param components - The React components to use for rendering the content
|
|
23
|
+
* @returns The MarkDoc React Renderer for StudioCMS MarkDoc
|
|
24
|
+
*/
|
|
25
|
+
export function markDocRenderReact(components?: markdocReactComponents): MarkdocRenderer {
|
|
26
|
+
return {
|
|
27
|
+
name: 'react',
|
|
28
|
+
renderer: async (content: RenderableTreeNode) => {
|
|
29
|
+
// Create an Astro container
|
|
30
|
+
const container = await AstroContainer.create();
|
|
31
|
+
|
|
32
|
+
// Add the Astro React server renderer
|
|
33
|
+
container.addServerRenderer({
|
|
34
|
+
name: '@astrojs/react',
|
|
35
|
+
renderer: reactRenderer,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Add the Astro React client renderer
|
|
39
|
+
container.addClientRenderer({
|
|
40
|
+
name: '@astrojs/react',
|
|
41
|
+
entrypoint: '@astrojs/react/client.js',
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Return the rendered content
|
|
45
|
+
return await container.renderToString(ReactWrapper, {
|
|
46
|
+
props: {
|
|
47
|
+
content: Markdoc.renderers.react(content, React, {
|
|
48
|
+
components,
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default markDocRenderReact;
|
package/dist/auth.d.js
ADDED
|
File without changes
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
declare module 'studiocms:auth/utils/authEnvCheck' {
|
|
2
|
+
export const authEnvCheck: typeof import('./utils/authEnvCheck.js').authEnvCheck;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare module 'studiocms:auth/utils/validImages' {
|
|
6
|
+
export const validImages: typeof import('./utils/validImages.js').validImages;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare module 'studiocms:auth/utils/getLabelForPermissionLevel' {
|
|
10
|
+
export const getLabelForPermissionLevel: typeof import(
|
|
11
|
+
'./utils/getLabelForPermissionLevel.js'
|
|
12
|
+
).getLabelForPermissionLevel;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare module 'studiocms:auth/scripts/three' {
|
|
16
|
+
/**
|
|
17
|
+
* This module should be imported within a script tag.
|
|
18
|
+
* @example <script>import "studiocms:auth/scripts/three";</script>
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
22
|
+
const defaultExport: any;
|
|
23
|
+
export default defaultExport;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare module 'studiocms:auth/scripts/formListener' {
|
|
27
|
+
export const formListener: typeof import('./scripts/formListener.js').formListener;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare module 'studiocms:auth/lib/encryption' {
|
|
31
|
+
/**
|
|
32
|
+
* Encrypts the given data using AES-128-GCM encryption.
|
|
33
|
+
*
|
|
34
|
+
* @param data - The data to be encrypted as a Uint8Array.
|
|
35
|
+
* @returns The encrypted data as a Uint8Array, which includes the initialization vector (IV), the encrypted content, and the authentication tag.
|
|
36
|
+
*/
|
|
37
|
+
export const encrypt: typeof import('./lib/auth/encryption.js').encrypt;
|
|
38
|
+
/**
|
|
39
|
+
* Encrypts a given string and returns the encrypted data as a Uint8Array.
|
|
40
|
+
*
|
|
41
|
+
* @param data - The string to be encrypted.
|
|
42
|
+
* @returns The encrypted data as a Uint8Array.
|
|
43
|
+
*/
|
|
44
|
+
export const encryptString: typeof import('./lib/auth/encryption.js').encryptString;
|
|
45
|
+
/**
|
|
46
|
+
* Decrypts the given encrypted data using AES-128-GCM.
|
|
47
|
+
*
|
|
48
|
+
* @param encrypted - The encrypted data as a Uint8Array. The data must be at least 33 bytes long.
|
|
49
|
+
* @returns The decrypted data as a Uint8Array.
|
|
50
|
+
* @throws Will throw an error if the encrypted data is less than 33 bytes.
|
|
51
|
+
*/
|
|
52
|
+
export const decrypt: typeof import('./lib/auth/encryption.js').decrypt;
|
|
53
|
+
/**
|
|
54
|
+
* Decrypts the given Uint8Array data and returns the result as a string.
|
|
55
|
+
*
|
|
56
|
+
* @param data - The encrypted data as a Uint8Array.
|
|
57
|
+
* @returns The decrypted data as a string.
|
|
58
|
+
*/
|
|
59
|
+
export const decryptToString: typeof import('./lib/auth/encryption.js').decryptToString;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
declare module 'studiocms:auth/lib/password' {
|
|
63
|
+
/**
|
|
64
|
+
* Hashes a plain text password using bcrypt.
|
|
65
|
+
*
|
|
66
|
+
* @param password - The plain text password to hash.
|
|
67
|
+
* @returns A promise that resolves to the hashed password.
|
|
68
|
+
*/
|
|
69
|
+
export const hashPassword: typeof import('./lib/auth/password.js').hashPassword;
|
|
70
|
+
/**
|
|
71
|
+
* Verifies if the provided password matches the hashed password.
|
|
72
|
+
*
|
|
73
|
+
* @param hash - The hashed password to compare against.
|
|
74
|
+
* @param password - The plain text password to verify.
|
|
75
|
+
* @returns A promise that resolves to a boolean indicating whether the password matches the hash.
|
|
76
|
+
*/
|
|
77
|
+
export const verifyPasswordHash: typeof import('./lib/auth/password.js').verifyPasswordHash;
|
|
78
|
+
/**
|
|
79
|
+
* Verifies the strength of a given password.
|
|
80
|
+
*
|
|
81
|
+
* The password must meet the following criteria:
|
|
82
|
+
* - Be between 6 and 255 characters in length.
|
|
83
|
+
* - Not be a known unsafe password.
|
|
84
|
+
* - Not be found in the pwned password database.
|
|
85
|
+
*
|
|
86
|
+
* @param password - The password to verify.
|
|
87
|
+
* @returns A promise that resolves to `true` if the password is strong/secure enough, otherwise `false`.
|
|
88
|
+
*/
|
|
89
|
+
export const verifyPasswordStrength: typeof import(
|
|
90
|
+
'./lib/auth/password.js'
|
|
91
|
+
).verifyPasswordStrength;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
declare module 'studiocms:auth/lib/rate-limit' {
|
|
95
|
+
/**
|
|
96
|
+
* Represents a token bucket that refills tokens at a specified interval.
|
|
97
|
+
* Used to control access to resources by limiting the number of tokens
|
|
98
|
+
* that can be consumed over time.
|
|
99
|
+
*
|
|
100
|
+
* @template _Key - The type of key used to identify individual token buckets.
|
|
101
|
+
*/
|
|
102
|
+
export class RefillingTokenBucket<_Key> {
|
|
103
|
+
/**
|
|
104
|
+
* The maximum number of tokens that the bucket can hold.
|
|
105
|
+
* @type {number}
|
|
106
|
+
*/
|
|
107
|
+
public max: number;
|
|
108
|
+
/**
|
|
109
|
+
* The interval in seconds at which tokens are refilled.
|
|
110
|
+
* @type {number}
|
|
111
|
+
*/
|
|
112
|
+
public refillIntervalSeconds: number;
|
|
113
|
+
/**
|
|
114
|
+
* Initializes a new instance of the RefillingTokenBucket class.
|
|
115
|
+
*
|
|
116
|
+
* @param {number} max - The maximum number of tokens the bucket can hold.
|
|
117
|
+
* @param {number} refillIntervalSeconds - The refill interval in seconds.
|
|
118
|
+
*/
|
|
119
|
+
constructor(max: number, refillIntervalSeconds: number);
|
|
120
|
+
/**
|
|
121
|
+
* A map storing individual token buckets associated with specific keys.
|
|
122
|
+
* @private
|
|
123
|
+
*/
|
|
124
|
+
private storage;
|
|
125
|
+
/**
|
|
126
|
+
* Checks if there are enough tokens available in the bucket for the specified key and cost.
|
|
127
|
+
*
|
|
128
|
+
* @param {_Key} key - The key associated with the token bucket.
|
|
129
|
+
* @param {number} cost - The number of tokens required.
|
|
130
|
+
* @returns {boolean} - Returns 'true' if there are enough tokens; otherwise, 'false'.
|
|
131
|
+
*/
|
|
132
|
+
public check(key: _Key, cost: number): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Consumes tokens from the bucket for the specified key and cost.
|
|
135
|
+
*
|
|
136
|
+
* @param {_Key} key - The key associated with the token bucket.
|
|
137
|
+
* @param {number} cost - The number of tokens to consume.
|
|
138
|
+
* @returns {boolean} - Returns 'true' if tokens were successfully consumed; otherwise, 'false'.
|
|
139
|
+
*/
|
|
140
|
+
public consume(key: _Key, cost: number): boolean;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Represents a throttler that limits the frequency of actions performed with a specified key.
|
|
145
|
+
* Uses incremental timeouts to delay repeated actions.
|
|
146
|
+
*
|
|
147
|
+
* @template _Key - The type of key used to identify throttling counters.
|
|
148
|
+
*/
|
|
149
|
+
export class Throttler<_Key> {
|
|
150
|
+
/**
|
|
151
|
+
* Array of timeout durations (in seconds) for each consecutive attempt.
|
|
152
|
+
* @type {number[]}
|
|
153
|
+
*/
|
|
154
|
+
public timeoutSeconds: number[];
|
|
155
|
+
/**
|
|
156
|
+
* A map storing individual throttling counters associated with specific keys.
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
private storage;
|
|
160
|
+
/**
|
|
161
|
+
* Initializes a new instance of the Throttler class.
|
|
162
|
+
*
|
|
163
|
+
* @param {number[]} timeoutSeconds - Array of timeout durations in seconds for each consecutive attempt.
|
|
164
|
+
*/
|
|
165
|
+
constructor(timeoutSeconds: number[]);
|
|
166
|
+
/**
|
|
167
|
+
* Attempts to consume an action for the specified key.
|
|
168
|
+
*
|
|
169
|
+
* @param {_Key} key - The key associated with the throttling counter.
|
|
170
|
+
* @returns {boolean} - Returns 'true' if the action is allowed; otherwise, 'false'.
|
|
171
|
+
*/
|
|
172
|
+
public consume(key: _Key): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Resets the throttling counter for a specified key.
|
|
175
|
+
*
|
|
176
|
+
* @param {_Key} key - The key associated with the throttling counter to reset.
|
|
177
|
+
*/
|
|
178
|
+
public reset(key: _Key): void;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Represents a token bucket with tokens that expire after a specified duration.
|
|
183
|
+
* Used to control access to resources with tokens that reset after expiration.
|
|
184
|
+
*
|
|
185
|
+
* @template _Key - The type of key used to identify individual token buckets.
|
|
186
|
+
*/
|
|
187
|
+
export class ExpiringTokenBucket<_Key> {
|
|
188
|
+
/**
|
|
189
|
+
* The maximum number of tokens the bucket can hold.
|
|
190
|
+
* @type {number}
|
|
191
|
+
*/
|
|
192
|
+
public max: number;
|
|
193
|
+
/**
|
|
194
|
+
* The duration (in seconds) after which tokens in the bucket expire.
|
|
195
|
+
* @type {number}
|
|
196
|
+
*/
|
|
197
|
+
public expirationSeconds: number;
|
|
198
|
+
/**
|
|
199
|
+
* A map storing individual expiring token buckets associated with specific keys.
|
|
200
|
+
* @private
|
|
201
|
+
*/
|
|
202
|
+
constructor(max: number, expirationSeconds: number);
|
|
203
|
+
/**
|
|
204
|
+
* Initializes a new instance of the ExpiringTokenBucket class.
|
|
205
|
+
*
|
|
206
|
+
* @param {number} max - The maximum number of tokens the bucket can hold.
|
|
207
|
+
* @param {number} expiresInSeconds - The duration in seconds after which tokens expire.
|
|
208
|
+
*/
|
|
209
|
+
private storage;
|
|
210
|
+
/**
|
|
211
|
+
* Checks if there are enough tokens available in the bucket for the specified key and cost.
|
|
212
|
+
*
|
|
213
|
+
* @param {_Key} key - The key associated with the token bucket.
|
|
214
|
+
* @param {number} cost - The number of tokens required.
|
|
215
|
+
* @returns {boolean} - Returns 'true' if there are enough tokens or if the tokens have expired; otherwise, 'false'.
|
|
216
|
+
*/
|
|
217
|
+
public check(key: _Key, cost: number): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Consumes tokens from the bucket for the specified key and cost.
|
|
220
|
+
*
|
|
221
|
+
* @param {_Key} key - The key associated with the token bucket.
|
|
222
|
+
* @param {number} cost - The number of tokens to consume.
|
|
223
|
+
* @returns {boolean} - Returns 'true' if tokens were successfully consumed; otherwise, 'false'.
|
|
224
|
+
*/
|
|
225
|
+
public consume(key: _Key, cost: number): boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Resets the token bucket for a specified key, removing all tokens.
|
|
228
|
+
*
|
|
229
|
+
* @param {_Key} key - The key associated with the token bucket to reset.
|
|
230
|
+
*/
|
|
231
|
+
public reset(key: _Key): void;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
declare module 'studiocms:auth/lib/session' {
|
|
235
|
+
/**
|
|
236
|
+
* Generates a new session token.
|
|
237
|
+
*
|
|
238
|
+
* @returns The generated session token as a string.
|
|
239
|
+
*/
|
|
240
|
+
export const generateSessionToken: typeof import('./lib/auth/session.js').generateSessionToken;
|
|
241
|
+
/**
|
|
242
|
+
* The name of the cookie used to store the authentication session.
|
|
243
|
+
*
|
|
244
|
+
* @constant {string}
|
|
245
|
+
*/
|
|
246
|
+
export const sessionCookieName: typeof import('./lib/auth/session.js').sessionCookieName;
|
|
247
|
+
/**
|
|
248
|
+
* Creates a new session for a user.
|
|
249
|
+
*
|
|
250
|
+
* @param token - The token used to create the session.
|
|
251
|
+
* @param userId - The ID of the user for whom the session is being created.
|
|
252
|
+
* @returns A promise that resolves to the created session object.
|
|
253
|
+
*/
|
|
254
|
+
export const createSession: typeof import('./lib/auth/session.js').createSession;
|
|
255
|
+
/**
|
|
256
|
+
* Validates a session token by checking its existence and expiration in the database.
|
|
257
|
+
* If the session is valid but close to expiration, it extends the session expiration time.
|
|
258
|
+
* If the session is expired, it deletes the session from the database.
|
|
259
|
+
*
|
|
260
|
+
* @param token - The session token to validate.
|
|
261
|
+
* @returns A promise that resolves to an object containing the session and user information. If the session is invalid or expired, both session and user will be null.
|
|
262
|
+
*/
|
|
263
|
+
export const validateSessionToken: typeof import('./lib/auth/session.js').validateSessionToken;
|
|
264
|
+
/**
|
|
265
|
+
* Invalidates a session by deleting it from the database.
|
|
266
|
+
*
|
|
267
|
+
* @param token - The session token to invalidate.
|
|
268
|
+
* @returns A promise that resolves to `true` if the session was successfully invalidated; otherwise, `false`.
|
|
269
|
+
*/
|
|
270
|
+
export const invalidateSession: typeof import('./lib/auth/session.js').invalidateSession;
|
|
271
|
+
/**
|
|
272
|
+
* Sets the session token cookie in the response object.
|
|
273
|
+
*
|
|
274
|
+
* @param context - The context object containing the request and response objects.
|
|
275
|
+
* @param token - The session token to set in the cookie.
|
|
276
|
+
* @param expiresAt - The expiration date and time of the session token.
|
|
277
|
+
*/
|
|
278
|
+
export const setSessionTokenCookie: typeof import('./lib/auth/session.js').setSessionTokenCookie;
|
|
279
|
+
/**
|
|
280
|
+
* Deletes the session token cookie from the response object.
|
|
281
|
+
*
|
|
282
|
+
* @param context - The context object containing the request and response objects.
|
|
283
|
+
*/
|
|
284
|
+
export const deleteSessionTokenCookie: typeof import(
|
|
285
|
+
'./lib/auth/session.js'
|
|
286
|
+
).deleteSessionTokenCookie;
|
|
287
|
+
/**
|
|
288
|
+
* Sets the OAuth session token cookie in the response object.
|
|
289
|
+
*
|
|
290
|
+
* @param context - The context object containing the request and response objects.
|
|
291
|
+
* @param key - The name of the cookie to set.
|
|
292
|
+
* @param expiresAt - The expiration date and time of the session token.
|
|
293
|
+
*/
|
|
294
|
+
export const setOAuthSessionTokenCookie: typeof import(
|
|
295
|
+
'./lib/auth/session.js'
|
|
296
|
+
).setOAuthSessionTokenCookie;
|
|
297
|
+
/**
|
|
298
|
+
* Generates a new expiration date for a session.
|
|
299
|
+
*
|
|
300
|
+
* @returns The expiration date calculated by adding the session expiration time to the current date and time.
|
|
301
|
+
*/
|
|
302
|
+
export const makeExpirationDate: typeof import('./lib/auth/session.js').makeExpirationDate;
|
|
303
|
+
/**
|
|
304
|
+
* The session expiration time in milliseconds.
|
|
305
|
+
* This value represents 14 days.
|
|
306
|
+
*/
|
|
307
|
+
export const sessionExpTime: typeof import('./lib/auth/session.js').sessionExpTime;
|
|
308
|
+
/**
|
|
309
|
+
* Creates a new user session.
|
|
310
|
+
*
|
|
311
|
+
* @param userId - The ID of the user to create the session for.
|
|
312
|
+
* @param context - The context object containing the request and response objects.
|
|
313
|
+
* @returns A promise that resolves to the created session object.
|
|
314
|
+
*/
|
|
315
|
+
export const createUserSession: typeof import('./lib/auth/session.js').createUserSession;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
declare module 'studiocms:auth/lib/types' {
|
|
319
|
+
/**
|
|
320
|
+
* Represents a table of OAuth accounts.
|
|
321
|
+
*
|
|
322
|
+
* @interface OAuthAccountsTable
|
|
323
|
+
* @property {string} provider - The name of the OAuth provider (e.g., Google, Facebook).
|
|
324
|
+
* @property {string} providerUserId - The unique identifier for the user provided by the OAuth provider.
|
|
325
|
+
* @property {string} userId - The unique identifier for the user within the application.
|
|
326
|
+
*/
|
|
327
|
+
export type OAuthAccountsTable = import('./lib/auth/types.js').OAuthAccountsTable;
|
|
328
|
+
/**
|
|
329
|
+
* Interface representing a table of user permissions.
|
|
330
|
+
*
|
|
331
|
+
* @interface PermissionsTable
|
|
332
|
+
* @property {string} user - The username of the individual.
|
|
333
|
+
* @property {string} rank - The rank or role assigned to the user.
|
|
334
|
+
*/
|
|
335
|
+
export type PermissionsTable = import('./lib/auth/types.js').PermissionsTable;
|
|
336
|
+
/**
|
|
337
|
+
* Represents the session data for a user.
|
|
338
|
+
*
|
|
339
|
+
* @property {boolean} isLoggedIn - Indicates whether the user is logged in.
|
|
340
|
+
* @property {UserTable | null} user - The user data, or null if no user is logged in.
|
|
341
|
+
* @property {'owner' | 'admin' | 'editor' | 'visitor' | 'unknown'} permissionLevel - The permission level of the user.
|
|
342
|
+
*/
|
|
343
|
+
export type UserSessionData = import('./lib/auth/types.js').UserSessionData;
|
|
344
|
+
/**
|
|
345
|
+
* Represents a user session which includes user information and session details.
|
|
346
|
+
*
|
|
347
|
+
* @property {UserTable} user - The user data.
|
|
348
|
+
* @property {SessionTable} session - The session data.
|
|
349
|
+
*/
|
|
350
|
+
export type UserSession = import('./lib/auth/types.js').UserSession;
|
|
351
|
+
/**
|
|
352
|
+
* Represents the result of validating a session token.
|
|
353
|
+
*
|
|
354
|
+
* This type can either be a valid `UserSession` or an object indicating an invalid session with both `session` and `user` properties set to `null`.
|
|
355
|
+
*/
|
|
356
|
+
export type SessionValidationResult = import('./lib/auth/types.js').SessionValidationResult;
|
|
357
|
+
/**
|
|
358
|
+
* Represents an individual refillable token bucket.
|
|
359
|
+
*
|
|
360
|
+
* @interface RefillBucket
|
|
361
|
+
* @property {number} count - The current token count in the bucket.
|
|
362
|
+
* @property {number} refillAt - The time at which the bucket was last refilled.
|
|
363
|
+
*/
|
|
364
|
+
export type RefillBucket = import('./lib/auth/types.js').RefillBucket;
|
|
365
|
+
/**
|
|
366
|
+
* Represents a bucket with an expiration mechanism.
|
|
367
|
+
*
|
|
368
|
+
* @interface ExpiringBucket
|
|
369
|
+
* @property {number} count - The current token count in the bucket.
|
|
370
|
+
* @property {number} createdAt - The timestamp when the bucket was created.
|
|
371
|
+
*/
|
|
372
|
+
export type ExpiringBucket = import('./lib/auth/types.js').ExpiringBucket;
|
|
373
|
+
/**
|
|
374
|
+
* Interface representing a throttling counter.
|
|
375
|
+
*
|
|
376
|
+
* @interface ThrottlingCounter
|
|
377
|
+
* @property {number} timeout - The duration (in milliseconds) for which the throttling is applied.
|
|
378
|
+
* @property {number} updatedAt - The timestamp (in milliseconds since epoch) when the throttling counter was last updated.
|
|
379
|
+
*/
|
|
380
|
+
export type ThrottlingCounter = import('./lib/auth/types.js').ThrottlingCounter;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
declare module 'studiocms:auth/lib/user' {
|
|
384
|
+
export const verifyUsernameInput: typeof import('./lib/auth/user.js').verifyUsernameInput;
|
|
385
|
+
export const createUserAvatar: typeof import('./lib/auth/user.js').createUserAvatar;
|
|
386
|
+
export const createLocalUser: typeof import('./lib/auth/user.js').createLocalUser;
|
|
387
|
+
export const createOAuthUser: typeof import('./lib/auth/user.js').createOAuthUser;
|
|
388
|
+
export const updateUserPassword: typeof import('./lib/auth/user.js').updateUserPassword;
|
|
389
|
+
export const getUserPasswordHash: typeof import('./lib/auth/user.js').getUserPasswordHash;
|
|
390
|
+
export const getUserFromEmail: typeof import('./lib/auth/user.js').getUserFromEmail;
|
|
391
|
+
export const getUserData: typeof import('./lib/auth/user.js').getUserData;
|
|
392
|
+
export const permissionRanksMap: typeof import('./lib/auth/user.js').permissionRanksMap;
|
|
393
|
+
export const verifyUserPermissionLevel: typeof import(
|
|
394
|
+
'./lib/auth/user.js'
|
|
395
|
+
).verifyUserPermissionLevel;
|
|
396
|
+
export const LinkNewOAuthCookieName: typeof import('./lib/auth/user.js').LinkNewOAuthCookieName;
|
|
397
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command } from "../lib/commander.js";
|
|
2
|
+
import { runInteractiveCommand } from "../lib/runExternal";
|
|
3
|
+
await new Command("getTurso").description("Turso CLI Utilities").summary("Turso CLI Utilities").action(async () => {
|
|
4
|
+
try {
|
|
5
|
+
await runInteractiveCommand("curl -sSfL https://get.tur.so/install.sh | bash");
|
|
6
|
+
console.log("Command completed successfully.");
|
|
7
|
+
} catch (error) {
|
|
8
|
+
console.error(`Failed to run Turso install: ${error.message}`);
|
|
9
|
+
}
|
|
10
|
+
}).parseAsync();
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import color from "chalk";
|
|
2
|
+
import { getContext } from "../../lib/context.js";
|
|
3
|
+
import { StudioCMSColorwayBg, label } from "../../lib/utils.js";
|
|
4
|
+
import { intro } from "../../shared/intro.js";
|
|
5
|
+
import { env } from "./steps/envBuilder.js";
|
|
6
|
+
import { next } from "./steps/nextSteps.js";
|
|
7
|
+
async function initCMD() {
|
|
8
|
+
const opts = this.opts();
|
|
9
|
+
const ctx = await getContext(opts);
|
|
10
|
+
ctx.logger.log("Starting interactive CLI...");
|
|
11
|
+
ctx.debug && ctx.logger.debug(`Options: ${JSON.stringify(opts, null, 2)}`);
|
|
12
|
+
ctx.debug && ctx.logger.debug(`Context: ${JSON.stringify(ctx, null, 2)}`);
|
|
13
|
+
console.log("");
|
|
14
|
+
ctx.debug && ctx.logger.debug("Running interactive CLI Steps...");
|
|
15
|
+
ctx.p.intro(
|
|
16
|
+
`${label("StudioCMS", StudioCMSColorwayBg, color.black)} Interactive CLI - initializing...`
|
|
17
|
+
);
|
|
18
|
+
await intro(ctx);
|
|
19
|
+
const steps = [];
|
|
20
|
+
ctx.debug && ctx.logger.debug("Running Option selection...");
|
|
21
|
+
const options = await ctx.p.multiselect({
|
|
22
|
+
message: "What would you like to do? (Select all that apply)",
|
|
23
|
+
options: [{ value: "env", label: "Setup Environment File", hint: "Create a .env file" }]
|
|
24
|
+
});
|
|
25
|
+
if (typeof options === "symbol") {
|
|
26
|
+
ctx.pCancel(options);
|
|
27
|
+
} else {
|
|
28
|
+
options.includes("env") && steps.push(env);
|
|
29
|
+
}
|
|
30
|
+
ctx.debug && ctx.logger.debug("Running steps...");
|
|
31
|
+
if (steps.length === 0) {
|
|
32
|
+
ctx.p.log.error("No steps selected, exiting...");
|
|
33
|
+
ctx.exit(0);
|
|
34
|
+
}
|
|
35
|
+
for (const step of steps) {
|
|
36
|
+
await step(ctx);
|
|
37
|
+
}
|
|
38
|
+
ctx.debug && ctx.logger.debug("Running tasks...");
|
|
39
|
+
if (ctx.tasks.length === 0) {
|
|
40
|
+
ctx.p.log.error("No tasks selected, exiting...");
|
|
41
|
+
ctx.exit(0);
|
|
42
|
+
}
|
|
43
|
+
await ctx.p.tasks(ctx.tasks);
|
|
44
|
+
ctx.debug && ctx.logger.debug("Running next steps...");
|
|
45
|
+
await next(ctx);
|
|
46
|
+
ctx.debug && ctx.logger.debug("Interactive CLI completed, exiting...");
|
|
47
|
+
ctx.exit(0);
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
getContext,
|
|
51
|
+
initCMD
|
|
52
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
const ExampleEnv = `# StudioCMS Environment Variables
|
|
2
|
+
|
|
3
|
+
# libSQL URL and Token for AstroDB
|
|
4
|
+
ASTRO_DB_REMOTE_URL=libsql://your-database.turso.io
|
|
5
|
+
ASTRO_DB_APP_TOKEN=
|
|
6
|
+
|
|
7
|
+
# Auth encryption key
|
|
8
|
+
CMS_ENCRYPTION_KEY="..." # openssl rand --base64 16
|
|
9
|
+
|
|
10
|
+
# credentials for GitHub OAuth
|
|
11
|
+
CMS_GITHUB_CLIENT_ID=
|
|
12
|
+
CMS_GITHUB_CLIENT_SECRET=
|
|
13
|
+
CMS_GITHUB_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/github/callback
|
|
14
|
+
|
|
15
|
+
# credentials for Discord OAuth
|
|
16
|
+
CMS_DISCORD_CLIENT_ID=
|
|
17
|
+
CMS_DISCORD_CLIENT_SECRET=
|
|
18
|
+
CMS_DISCORD_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/discord/callback
|
|
19
|
+
|
|
20
|
+
# credentials for Google OAuth
|
|
21
|
+
CMS_GOOGLE_CLIENT_ID=
|
|
22
|
+
CMS_GOOGLE_CLIENT_SECRET=
|
|
23
|
+
CMS_GOOGLE_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/google/callback
|
|
24
|
+
|
|
25
|
+
# credentials for auth0 OAuth
|
|
26
|
+
CMS_AUTH0_CLIENT_ID=
|
|
27
|
+
CMS_AUTH0_CLIENT_SECRET=
|
|
28
|
+
CMS_AUTH0_DOMAIN=
|
|
29
|
+
CMS_AUTH0_REDIRECT_URI=http://localhost:4321/studiocms_api/auth/auth0/callback
|
|
30
|
+
|
|
31
|
+
## Cloudinary Javascript SDK
|
|
32
|
+
CMS_CLOUDINARY_CLOUDNAME="demo"`;
|
|
33
|
+
function buildEnvFile(envBuilderOpts) {
|
|
34
|
+
return `# StudioCMS Environment Variables
|
|
35
|
+
|
|
36
|
+
# libSQL URL and Token for AstroDB
|
|
37
|
+
ASTRO_DB_REMOTE_URL=${envBuilderOpts.astroDbRemoteUrl}
|
|
38
|
+
ASTRO_DB_APP_TOKEN=${envBuilderOpts.astroDbToken}
|
|
39
|
+
|
|
40
|
+
# Auth encryption key
|
|
41
|
+
CMS_ENCRYPTION_KEY="${envBuilderOpts.encryptionKey}" # openssl rand --base64 16
|
|
42
|
+
|
|
43
|
+
# credentials for GitHub OAuth
|
|
44
|
+
CMS_GITHUB_CLIENT_ID=${envBuilderOpts.githubOAuth?.clientId}
|
|
45
|
+
CMS_GITHUB_CLIENT_SECRET=${envBuilderOpts.githubOAuth?.clientSecret}
|
|
46
|
+
CMS_GITHUB_REDIRECT_URI=${envBuilderOpts.githubOAuth?.redirectUri}/studiocms_api/auth/github/callback
|
|
47
|
+
|
|
48
|
+
# credentials for Discord OAuth
|
|
49
|
+
CMS_DISCORD_CLIENT_ID=${envBuilderOpts.discordOAuth?.clientId}
|
|
50
|
+
CMS_DISCORD_CLIENT_SECRET=${envBuilderOpts.discordOAuth?.clientSecret}
|
|
51
|
+
CMS_DISCORD_REDIRECT_URI=${envBuilderOpts.discordOAuth?.redirectUri}/studiocms_api/auth/discord/callback
|
|
52
|
+
|
|
53
|
+
# credentials for Google OAuth
|
|
54
|
+
CMS_GOOGLE_CLIENT_ID=${envBuilderOpts.googleOAuth?.clientId}
|
|
55
|
+
CMS_GOOGLE_CLIENT_SECRET=${envBuilderOpts.googleOAuth?.clientSecret}
|
|
56
|
+
CMS_GOOGLE_REDIRECT_URI=${envBuilderOpts.googleOAuth?.redirectUri}/studiocms_api/auth/google/callback
|
|
57
|
+
|
|
58
|
+
# credentials for auth0 OAuth
|
|
59
|
+
CMS_AUTH0_CLIENT_ID=${envBuilderOpts.auth0OAuth?.clientId}
|
|
60
|
+
CMS_AUTH0_CLIENT_SECRET=${envBuilderOpts.auth0OAuth?.clientSecret}
|
|
61
|
+
CMS_AUTH0_DOMAIN=${envBuilderOpts.auth0OAuth?.domain}
|
|
62
|
+
CMS_AUTH0_REDIRECT_URI=${envBuilderOpts.auth0OAuth?.redirectUri}/studiocms_api/auth/auth0/callback
|
|
63
|
+
|
|
64
|
+
## Cloudinary Javascript SDK
|
|
65
|
+
CMS_CLOUDINARY_CLOUDNAME="demo"
|
|
66
|
+
`;
|
|
67
|
+
}
|
|
68
|
+
export {
|
|
69
|
+
ExampleEnv,
|
|
70
|
+
buildEnvFile
|
|
71
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Context } from '../../../lib/context.js';
|
|
2
|
+
interface GenericOAuth {
|
|
3
|
+
clientId: string;
|
|
4
|
+
clientSecret: string;
|
|
5
|
+
redirectUri: string;
|
|
6
|
+
}
|
|
7
|
+
interface Auth0OAuth extends GenericOAuth {
|
|
8
|
+
domain: string;
|
|
9
|
+
}
|
|
10
|
+
export interface EnvBuilderOptions {
|
|
11
|
+
astroDbRemoteUrl?: string;
|
|
12
|
+
astroDbToken?: string;
|
|
13
|
+
encryptionKey?: string;
|
|
14
|
+
oAuthOptions?: ('github' | 'discord' | 'google' | 'auth0')[];
|
|
15
|
+
githubOAuth?: GenericOAuth;
|
|
16
|
+
discordOAuth?: GenericOAuth;
|
|
17
|
+
googleOAuth?: GenericOAuth;
|
|
18
|
+
auth0OAuth?: Auth0OAuth;
|
|
19
|
+
}
|
|
20
|
+
export declare function env(ctx: Pick<Context, 'cwd' | 'p' | 'pCancel' | 'pOnCancel' | 'dryRun' | 'tasks' | 'exit' | 'debug' | 'logger'>): Promise<void>;
|
|
21
|
+
export {};
|