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