diff --git a/packages/starlight-ghostcms/index.ts b/packages/starlight-ghostcms/index.ts index 1bf51245..06542310 100644 --- a/packages/starlight-ghostcms/index.ts +++ b/packages/starlight-ghostcms/index.ts @@ -1,12 +1,6 @@ -import type { - StarlightPlugin, - StarlightUserConfig, -} from "@astrojs/starlight/types"; +import type { StarlightPlugin, StarlightUserConfig } from "@astrojs/starlight/types"; import type { AstroIntegrationLogger } from "astro"; -import { - type StarlightGhostConfig, - validateConfig, -} from "./src/schemas/config"; +import { type StarlightGhostConfig, validateConfig } from "./src/schemas/config"; import { facebook, getSettings, invariant, twitter } from "./src/utils/api"; import starlightGhostcms from "./src/integrations/starlight-ghostcms"; @@ -32,7 +26,7 @@ export default function starlightGhostCMS( }) { // Add the Starlight-GhostCMS integration addIntegration(starlightGhostcms(config)); - + // Update the Starlight config with the GhostCMS config updateStarlightConfig({ social: { diff --git a/packages/starlight-ghostcms/package.json b/packages/starlight-ghostcms/package.json index 6dac4c07..7dbc544e 100644 --- a/packages/starlight-ghostcms/package.json +++ b/packages/starlight-ghostcms/package.json @@ -60,9 +60,12 @@ }, "dependencies": { "@astrojs/rss": "^4.0.5", + "@matthiesenxyz/astro-gists": "^0.2.1", "@ts-ghost/core-api": "^6.0.0", "@ts-ghost/content-api": "^4.0.12", "astro-integration-kit": "^0.5.1", + "astro-remote": "^0.3.2", + "ultrahtml": "^1.5.3", "vite": "^5.1.5", "vite-tsconfig-paths": "^4.3.1" }, diff --git a/packages/starlight-ghostcms/src/components/AdvancedAuthorCard.astro b/packages/starlight-ghostcms/src/components/AdvancedAuthorCard.astro index fd16ec71..3c0b0f70 100644 --- a/packages/starlight-ghostcms/src/components/AdvancedAuthorCard.astro +++ b/packages/starlight-ghostcms/src/components/AdvancedAuthorCard.astro @@ -64,7 +64,7 @@ const { author } = Astro.props img { border: 1px solid var(--sl-color-gray-2); border-radius: 9999px; - height: 10rem; - width: 10rem; + height: 6rem; + width: 6rem; } diff --git a/packages/starlight-ghostcms/src/components/Author.astro b/packages/starlight-ghostcms/src/components/Author.astro index bfacf6e3..685175fa 100644 --- a/packages/starlight-ghostcms/src/components/Author.astro +++ b/packages/starlight-ghostcms/src/components/Author.astro @@ -1,5 +1,6 @@ --- import type { Author } from '../schemas/authors' +import config from 'virtual:starlight-ghostcms/config'; interface Props { author: Author @@ -11,7 +12,7 @@ const isLink = author.slug !== undefined const Element = isLink ? 'a' : 'div' --- - + {author.profile_image && {author.name}}
{author.name}
diff --git a/packages/starlight-ghostcms/src/components/Preview.astro b/packages/starlight-ghostcms/src/components/Preview.astro index dcd5be13..b4efef93 100644 --- a/packages/starlight-ghostcms/src/components/Preview.astro +++ b/packages/starlight-ghostcms/src/components/Preview.astro @@ -1,6 +1,7 @@ --- import type { Post } from '../schemas/posts' import Metadata from './Metadata.astro' +import config from 'virtual:starlight-ghostcms/config'; interface Props { entry: Post @@ -14,7 +15,7 @@ const Excerpt = entry.excerpt

- {entry.title} + {entry.title}

diff --git a/packages/starlight-ghostcms/src/components/astro-remote/CodeSlot.astro b/packages/starlight-ghostcms/src/components/astro-remote/CodeSlot.astro new file mode 100644 index 00000000..99457158 --- /dev/null +++ b/packages/starlight-ghostcms/src/components/astro-remote/CodeSlot.astro @@ -0,0 +1,17 @@ +--- +import { Code } from "@astrojs/starlight/components" +import { parse } from "ultrahtml" +import { querySelector } from "ultrahtml/selector" + +const html = await Astro.slots.render("default") +const ast = await parse(html) +const codetag = querySelector(ast,'code') +const { children, attributes } = codetag + +const code = children[0].value +const checkLang = attributes.class ? attributes.class.slice(9) : undefined + +const lang = checkLang ? checkLang : 'txt' +--- + + \ No newline at end of file diff --git a/packages/starlight-ghostcms/src/components/astro-remote/index.ts b/packages/starlight-ghostcms/src/components/astro-remote/index.ts new file mode 100644 index 00000000..f5badee5 --- /dev/null +++ b/packages/starlight-ghostcms/src/components/astro-remote/index.ts @@ -0,0 +1 @@ +export { default as CodeSlot } from "./CodeSlot.astro"; diff --git a/packages/starlight-ghostcms/src/integrations/starlight-ghostcms.ts b/packages/starlight-ghostcms/src/integrations/starlight-ghostcms.ts index e547be7b..3fb20786 100644 --- a/packages/starlight-ghostcms/src/integrations/starlight-ghostcms.ts +++ b/packages/starlight-ghostcms/src/integrations/starlight-ghostcms.ts @@ -5,6 +5,7 @@ import { import { corePlugins } from "astro-integration-kit/plugins"; import { z } from "astro/zod"; import { type StarlightGhostConfig } from "../schemas/config"; +import astroGists from "@matthiesenxyz/astro-gists"; export default defineIntegration({ name: "@matthiesenxyz/starlight-ghostcms", @@ -17,10 +18,17 @@ export default defineIntegration({ "astro:config:setup": ({ watchIntegration, addVirtualImports, - injectRoute + injectRoute, + logger, + addIntegration, }) => { watchIntegration(resolve()); + // Add the AstroGist integration if enabled + logger.info("Adding @matthiesenxyz/astro-gists integration ..."); + addIntegration(astroGists()); + logger.info("Note: If you are using Astro-Gists with GhostCMS Make sure to set the `GITHUB_PERSONAL_TOKEN` in your `.env` file. \n Otherwise, you can ignore any error messages related to Astro-Gists.") + addVirtualImports({ 'virtual:starlight-ghostcms/config': `export default ${JSON.stringify(options)}`, }); diff --git a/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro b/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro index b9df9e05..3a77765a 100644 --- a/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro +++ b/packages/starlight-ghostcms/src/overrides/MarkdownContent.astro @@ -2,7 +2,6 @@ import StarlightMarkdownContent from '@astrojs/starlight/components/MarkdownContent.astro' import type { Props } from '@astrojs/starlight/props' import config from 'virtual:starlight-ghostcms/config' -import { isAnyBlogPostPage } from '../utils/page' import Metadata from '../components/Metadata.astro' import type { Post } from '../schemas/posts' @@ -11,7 +10,6 @@ export function checkpath(path: string){ } const isBlog = checkpath(Astro.url.pathname) -const isBlogPost = isAnyBlogPostPage(Astro.props.slug) let blogEntry: Post | undefined = undefined --- diff --git a/packages/starlight-ghostcms/src/routes/[slug].astro b/packages/starlight-ghostcms/src/routes/[slug].astro index c7ce65e2..7c000f15 100644 --- a/packages/starlight-ghostcms/src/routes/[slug].astro +++ b/packages/starlight-ghostcms/src/routes/[slug].astro @@ -1,11 +1,13 @@ --- -import config from 'virtual:starlight-ghostcms/config' +import config from 'virtual:starlight-ghostcms/config'; import { Image } from "astro:assets"; -import Page from '../components/Page.astro' -import { getPageProps } from '../utils/page' -import { getAllPosts } from '../utils/api' -import Metadata from '../components/Metadata.astro' - +import Page from '../components/Page.astro'; +import { getPageProps } from '../utils/page'; +import { getAllPosts } from '../utils/api'; +import Metadata from '../components/Metadata.astro'; +import { Markup } from 'astro-remote'; +import * as render from '../components/astro-remote'; +import * as Gists from '@matthiesenxyz/astro-gists/components'; export async function getStaticPaths() { const entries = await getAllPosts(); @@ -36,13 +38,25 @@ const pageProps = getPageProps(post.title) height={800} />
- + "} />
)}
- + +
diff --git a/packages/starlight-ghostcms/src/routes/about.astro b/packages/starlight-ghostcms/src/routes/about.astro index 0eabf65d..3c1ef4be 100644 --- a/packages/starlight-ghostcms/src/routes/about.astro +++ b/packages/starlight-ghostcms/src/routes/about.astro @@ -5,6 +5,8 @@ import Page from '../components/Page.astro' //import PrevNextLinks from '../components/PrevNextLinks.astro' import { getPageProps } from '../utils/page' import { getSluggedPage } from '../utils/api' +import { Markup } from 'astro-remote' +import * as render from '../components/astro-remote'; const aboutPage = await getSluggedPage("about"); @@ -18,7 +20,15 @@ const pageProps = getPageProps(aboutPage?.post?.title)
Powered by Ghost
)} - + diff --git a/packages/starlight-ghostcms/src/utils/page.ts b/packages/starlight-ghostcms/src/utils/page.ts index 83dcc1ab..cedf6f6d 100644 --- a/packages/starlight-ghostcms/src/utils/page.ts +++ b/packages/starlight-ghostcms/src/utils/page.ts @@ -1,7 +1,7 @@ import config from 'virtual:starlight-ghostcms/config' export function isBlogRoot(slug: string) { - return slug === "blog"; + return slug === `${config.route}`; } export function isAnyBlogPostPage(slug: string) { @@ -15,7 +15,7 @@ export function isBlogPostPage(slug: string, postSlug: string) { } export function isBlogTagsPage(slug: string, tag: string) { - return slug === `blog/tags/${tag}`; + return slug === `${config.route}/tags/${tag}`; } export function getPageProps(title: string): StarlightPageProps { diff --git a/packages/starlight-ghostcms/tsconfig.json b/packages/starlight-ghostcms/tsconfig.json index 77da9dd0..29712e85 100644 --- a/packages/starlight-ghostcms/tsconfig.json +++ b/packages/starlight-ghostcms/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "astro/tsconfigs/strict" + "extends": "astro/tsconfigs/strictest", + "compilerOptions": { + "jsx": "preserve" + } } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd940bd3..abc680d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -247,6 +247,9 @@ importers: '@astrojs/rss': specifier: ^4.0.5 version: 4.0.5 + '@matthiesenxyz/astro-gists': + specifier: ^0.2.1 + version: 0.2.1(astro@4.4.13) '@ts-ghost/content-api': specifier: ^4.0.12 version: 4.0.12 @@ -256,6 +259,12 @@ importers: astro-integration-kit: specifier: ^0.5.1 version: 0.5.1(astro@4.4.13) + astro-remote: + specifier: ^0.3.2 + version: 0.3.2 + ultrahtml: + specifier: ^1.5.3 + version: 1.5.3 vite: specifier: ^5.1.5 version: 5.1.5(sass@1.71.1) @@ -1392,6 +1401,13 @@ packages: '@expressive-code/core': 0.33.4 hastscript: 7.2.0 + /@expressive-code/plugin-line-numbers@0.33.4: + resolution: {integrity: sha512-+AIxeufcutV1+0sAtXsTEcma7uxKQK2F7qfQYWHYp0PW6QxLXkMYP7aGfuIFPsfovKEe+EmFKXKhEwYnraK7yQ==} + dependencies: + '@expressive-code/core': 0.33.4 + hastscript: 7.2.0 + dev: false + /@expressive-code/plugin-shiki@0.33.4: resolution: {integrity: sha512-XnDchHqCGk046hgQnu83t9+SDrRjsvpvUEBiI0wl4RljVDr1E0yllx0y6C1yEuKfFfasib6BxX/PkItgQdi/0Q==} dependencies: @@ -1707,6 +1723,35 @@ packages: globby: 11.1.0 read-yaml-file: 1.1.0 + /@matthiesenxyz/astro-gists@0.2.1(astro@4.4.13): + resolution: {integrity: sha512-6fZTZxnfQExNBlFdzecC/fdyonbhhAUfU7Pva4wMIN0lABAw480aobOqsY3NpI3D8VWafpKochqoNZjOIn7uIQ==} + peerDependencies: + astro: ^4.4.1 + dependencies: + '@expressive-code/plugin-line-numbers': 0.33.4 + '@octokit/types': 12.6.0 + astro: 4.4.13(typescript@5.4.2) + astro-integration-kit: 0.5.1(astro@4.4.13) + expressive-code: 0.33.4 + hast-util-to-html: 8.0.4 + octokit: 3.1.2 + vite: 5.1.5(sass@1.71.1) + transitivePeerDependencies: + - '@types/node' + - '@vitejs/plugin-react' + - less + - lightningcss + - preact + - react + - sass + - solid-js + - stylus + - sugarss + - svelte + - terser + - vue + dev: false + /@mdx-js/mdx@3.0.1: resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: @@ -1757,6 +1802,242 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + /@octokit/app@14.0.2: + resolution: {integrity: sha512-NCSCktSx+XmjuSUVn2dLfqQ9WIYePGP95SDJs4I9cn/0ZkeXcPkaoCLl64Us3dRKL2ozC7hArwze5Eu+/qt1tg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-app': 6.0.4 + '@octokit/auth-unauthenticated': 5.0.1 + '@octokit/core': 5.1.0 + '@octokit/oauth-app': 6.1.0 + '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.1.0) + '@octokit/types': 12.6.0 + '@octokit/webhooks': 12.1.2 + dev: false + + /@octokit/auth-app@6.0.4: + resolution: {integrity: sha512-TPmJYgd05ok3nzHj7Y6we/V7Ez1wU3ztLFW3zo/afgYFtqYZg0W7zb6Kp5ag6E85r8nCE1JfS6YZoZusa14o9g==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-app': 7.0.1 + '@octokit/auth-oauth-user': 4.0.1 + '@octokit/request': 8.2.0 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + deprecation: 2.3.1 + lru-cache: 10.2.0 + universal-github-app-jwt: 1.1.2 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-app@7.0.1: + resolution: {integrity: sha512-RE0KK0DCjCHXHlQBoubwlLijXEKfhMhKm9gO56xYvFmP1QTMb+vvwRPmQLLx0V+5AvV9N9I3lr1WyTzwL3rMDg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-device': 6.0.1 + '@octokit/auth-oauth-user': 4.0.1 + '@octokit/request': 8.2.0 + '@octokit/types': 12.6.0 + '@types/btoa-lite': 1.0.2 + btoa-lite: 1.0.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-device@6.0.1: + resolution: {integrity: sha512-yxU0rkL65QkjbqQedgVx3gmW7YM5fF+r5uaSj9tM/cQGVqloXcqP2xK90eTyYvl29arFVCW8Vz4H/t47mL0ELw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/oauth-methods': 4.0.1 + '@octokit/request': 8.2.0 + '@octokit/types': 12.6.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-oauth-user@4.0.1: + resolution: {integrity: sha512-N94wWW09d0hleCnrO5wt5MxekatqEJ4zf+1vSe8MKMrhZ7gAXKFOKrDEZW2INltvBWJCyDUELgGRv8gfErH1Iw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-device': 6.0.1 + '@octokit/oauth-methods': 4.0.1 + '@octokit/request': 8.2.0 + '@octokit/types': 12.6.0 + btoa-lite: 1.0.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/auth-token@4.0.0: + resolution: {integrity: sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==} + engines: {node: '>= 18'} + dev: false + + /@octokit/auth-unauthenticated@5.0.1: + resolution: {integrity: sha512-oxeWzmBFxWd+XolxKTc4zr+h3mt+yofn4r7OfoIkR/Cj/o70eEGmPsFbueyJE2iBAGpjgTnEOKM3pnuEGVmiqg==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + dev: false + + /@octokit/core@5.1.0: + resolution: {integrity: sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-token': 4.0.0 + '@octokit/graphql': 7.0.2 + '@octokit/request': 8.2.0 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/endpoint@9.0.4: + resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.6.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/graphql@7.0.2: + resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request': 8.2.0 + '@octokit/types': 12.6.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/oauth-app@6.1.0: + resolution: {integrity: sha512-nIn/8eUJ/BKUVzxUXd5vpzl1rwaVxMyYbQkNZjHrF7Vk/yu98/YDF/N2KeWO7uZ0g3b5EyiFXFkZI8rJ+DH1/g==} + engines: {node: '>= 18'} + dependencies: + '@octokit/auth-oauth-app': 7.0.1 + '@octokit/auth-oauth-user': 4.0.1 + '@octokit/auth-unauthenticated': 5.0.1 + '@octokit/core': 5.1.0 + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/oauth-methods': 4.0.1 + '@types/aws-lambda': 8.10.136 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/oauth-authorization-url@6.0.2: + resolution: {integrity: sha512-CdoJukjXXxqLNK4y/VOiVzQVjibqoj/xHgInekviUJV73y/BSIcwvJ/4aNHPBPKcPWFnd4/lO9uqRV65jXhcLA==} + engines: {node: '>= 18'} + dev: false + + /@octokit/oauth-methods@4.0.1: + resolution: {integrity: sha512-1NdTGCoBHyD6J0n2WGXg9+yDLZrRNZ0moTEex/LSPr49m530WNKcCfXDghofYptr3st3eTii+EHoG5k/o+vbtw==} + engines: {node: '>= 18'} + dependencies: + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/request': 8.2.0 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + btoa-lite: 1.0.0 + dev: false + + /@octokit/openapi-types@20.0.0: + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + dev: false + + /@octokit/plugin-paginate-graphql@4.0.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-R8ZQNmrIKKpHWC6V2gum4x9LG2qF1RxRjo27gjQcG3j+vf2tLsEfE7I/wRWEPzYMaenr1M+qDAtNcwZve1ce1A==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.1.0 + dev: false + + /@octokit/plugin-paginate-rest@9.2.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.6.0 + dev: false + + /@octokit/plugin-rest-endpoint-methods@10.4.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '5' + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.6.0 + dev: false + + /@octokit/plugin-retry@6.0.1(@octokit/core@5.1.0): + resolution: {integrity: sha512-SKs+Tz9oj0g4p28qkZwl/topGcb0k0qPNX/i7vBKmDsjoeqnVfFUquqrE/O9oJY7+oLzdCtkiWSXLpLjvl6uog==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': '>=5' + dependencies: + '@octokit/core': 5.1.0 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + dev: false + + /@octokit/plugin-throttling@8.2.0(@octokit/core@5.1.0): + resolution: {integrity: sha512-nOpWtLayKFpgqmgD0y3GqXafMFuKcA4tRPZIfu7BArd2lEZeb1988nhWhwx4aZWmjDmUfdgVf7W+Tt4AmvRmMQ==} + engines: {node: '>= 18'} + peerDependencies: + '@octokit/core': ^5.0.0 + dependencies: + '@octokit/core': 5.1.0 + '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + dev: false + + /@octokit/request-error@5.0.1: + resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/types': 12.6.0 + deprecation: 2.3.1 + once: 1.4.0 + dev: false + + /@octokit/request@8.2.0: + resolution: {integrity: sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==} + engines: {node: '>= 18'} + dependencies: + '@octokit/endpoint': 9.0.4 + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + universal-user-agent: 6.0.1 + dev: false + + /@octokit/types@12.6.0: + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + dependencies: + '@octokit/openapi-types': 20.0.0 + dev: false + + /@octokit/webhooks-methods@4.1.0: + resolution: {integrity: sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==} + engines: {node: '>= 18'} + dev: false + + /@octokit/webhooks-types@7.3.2: + resolution: {integrity: sha512-JWOoOgtWTFnTSAamPXXyjTY5/apttvNxF+vPBnwdSu5cj5snrd7FO0fyw4+wTXy8fHduq626JjhO+TwCyyA6vA==} + dev: false + + /@octokit/webhooks@12.1.2: + resolution: {integrity: sha512-+nGS3ReCByF6m+nbNB59x7Aa3CNjCCGuBLFzfkiJP1O3uVKKuJbkP4uO4t46YqH26nlugmOhqjT7nx5D0VPtdA==} + engines: {node: '>= 18'} + dependencies: + '@octokit/request-error': 5.0.1 + '@octokit/webhooks-methods': 4.1.0 + '@octokit/webhooks-types': 7.3.2 + aggregate-error: 3.1.0 + dev: false + /@pagefind/darwin-arm64@1.0.4: resolution: {integrity: sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==} cpu: [arm64] @@ -2108,6 +2389,10 @@ packages: dependencies: '@types/estree': 1.0.5 + /@types/aws-lambda@8.10.136: + resolution: {integrity: sha512-cmmgqxdVGhxYK9lZMYYXYRJk6twBo53ivtXjIUEFZxfxe4TkZTZBK3RRWrY2HjJcUIix0mdifn15yjOAat5lTA==} + dev: false + /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: @@ -2133,6 +2418,10 @@ packages: dependencies: '@babel/types': 7.23.9 + /@types/btoa-lite@1.0.2: + resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==} + dev: false + /@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: @@ -2175,6 +2464,12 @@ packages: '@types/node': 20.11.25 dev: true + /@types/jsonwebtoken@9.0.6: + resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} + dependencies: + '@types/node': 20.11.25 + dev: false + /@types/mdast@4.0.3: resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: @@ -2659,6 +2954,14 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + dev: false + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -2905,6 +3208,17 @@ packages: resolution: {integrity: sha512-lLvhWS03Qc3heMU23adFwEnBUJFlL6gxYi0xPvIyX1atb2oCov4kOS/MaWOPGnvj2nK63szebUzlG+NdIoUZzQ==} dev: false + /astro-remote@0.3.2: + resolution: {integrity: sha512-Xwm6Y+ldQEnDB2l1WwVqeUs3QvUX8LtJWnovpXlf8xhpicPu159jXOhDbHZS9wilGO/+/nR67A1qskF8pDvdGQ==} + engines: {node: '>=18.14.1'} + dependencies: + entities: 4.5.0 + marked: 12.0.1 + marked-footnote: 1.2.2(marked@12.0.1) + marked-smartypants: 1.1.6(marked@12.0.1) + ultrahtml: 1.5.3 + dev: false + /astro-robots-txt@1.0.0: resolution: {integrity: sha512-6JQSLid4gMhoWjOm85UHLkgrw0+hHIjnJVIUqxjU2D6feKlVyYukMNYjH44ZDZBK1P8hNxd33PgWlHzCASvedA==} dependencies: @@ -3282,6 +3596,10 @@ packages: is-alphanumerical: 2.0.1 is-decimal: 2.0.1 + /before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + dev: false + /better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -3311,6 +3629,10 @@ packages: /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + /bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + dev: false + /boxen@7.1.1: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} @@ -3357,6 +3679,14 @@ packages: node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) + /btoa-lite@1.0.0: + resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==} + dev: false + + /buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: false + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} requiresBuild: true @@ -3501,6 +3831,11 @@ packages: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: false + /cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3786,6 +4121,10 @@ packages: /defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + /deprecation@2.3.1: + resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dev: false + /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -3859,6 +4198,12 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + /ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /electron-to-chromium@1.4.670: resolution: {integrity: sha512-hcijYOWjOtjKrKPtNA6tuLlA/bTLO3heFG8pQA6mLpq7dRydSWicXova5lyxDzp1iVJaYhK7J2OQlGE52KYn7A==} @@ -5322,6 +5667,22 @@ packages: graceful-fs: 4.2.11 dev: false + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.0 + dev: false + /jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} @@ -5332,6 +5693,21 @@ packages: object.values: 1.1.7 dev: true + /jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -5430,13 +5806,37 @@ packages: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} dev: false + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: false + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: false + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -5499,6 +5899,29 @@ packages: /markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + /marked-footnote@1.2.2(marked@12.0.1): + resolution: {integrity: sha512-TFBEHwHLSSedub7P6XHHs+dMMOnDeNV5+kFDo4trU//gDd8iM57lg9jr9NGwDifPwLllHwKmFcRNp5uYvO2Fnw==} + peerDependencies: + marked: '>=7.0.0' + dependencies: + marked: 12.0.1 + dev: false + + /marked-smartypants@1.1.6(marked@12.0.1): + resolution: {integrity: sha512-38rdxcV3+EHrvoHioSrgBDvOmFb+TNcszZggrl15qe4MEfQxBArfSgsGgFP0YqHlGy8Rgoyi4gN4ThBWzwNJeA==} + peerDependencies: + marked: '>=4 <13' + dependencies: + marked: 12.0.1 + smartypants: 0.2.2 + dev: false + + /marked@12.0.1: + resolution: {integrity: sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==} + engines: {node: '>= 18'} + hasBin: true + dev: false + /mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} dependencies: @@ -6287,6 +6710,22 @@ packages: es-abstract: 1.22.4 dev: true + /octokit@3.1.2: + resolution: {integrity: sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==} + engines: {node: '>= 18'} + dependencies: + '@octokit/app': 14.0.2 + '@octokit/core': 5.1.0 + '@octokit/oauth-app': 6.1.0 + '@octokit/plugin-paginate-graphql': 4.0.1(@octokit/core@5.1.0) + '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.1.0) + '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.1.0) + '@octokit/plugin-retry': 6.0.1(@octokit/core@5.1.0) + '@octokit/plugin-throttling': 8.2.0(@octokit/core@5.1.0) + '@octokit/request-error': 5.0.1 + '@octokit/types': 12.6.0 + dev: false + /ofetch@1.3.3: resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: @@ -7346,6 +7785,11 @@ packages: wcwidth: 1.0.1 yargs: 15.4.1 + /smartypants@0.2.2: + resolution: {integrity: sha512-TzobUYoEft/xBtb2voRPryAUIvYguG0V7Tt3de79I1WfXgCwelqVsGuZSnu3GFGRZhXR90AeEYIM+icuB/S06Q==} + hasBin: true + dev: false + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -8028,6 +8472,17 @@ packages: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + /universal-github-app-jwt@1.1.2: + resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==} + dependencies: + '@types/jsonwebtoken': 9.0.6 + jsonwebtoken: 9.0.2 + dev: false + + /universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + dev: false + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'}