Compare commits

...

122 Commits

Author SHA1 Message Date
Adam Matthiesen ca3e595401
Update package.json 2024-03-19 05:22:27 -07:00
Adam Matthiesen fa276f9d64
Update changeset-main.yml 2024-03-19 05:20:16 -07:00
Adam Matthiesen 5166bdc11f
Update package.json 2024-03-19 05:18:51 -07:00
github-actions[bot] acf9a1def4
👷 [ci]: Ready for Release (#120)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-19 05:16:19 -07:00
dependabot[bot] f82035b813
Bump the prod-dependencies group with 9 updates (#119)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-19 05:14:59 -07:00
dependabot[bot] a6b2b28843
Bump the dev-dependencies group with 6 updates (#118)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-19 05:03:24 -07:00
Adam Matthiesen c3b8872706 Update package versions in pnpm-lock.yaml 2024-03-12 23:27:32 -07:00
github-actions[bot] 13d6b551b8
👷 [ci]: Ready for Release (#116)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-12 23:23:30 -07:00
create-issue-branch[bot] f097c6a18b
fix: 🐛 bug: ultrahtml does not handle all html strings. add switch to enable standard html fragment tag instead. (#115)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-12 23:22:39 -07:00
github-actions[bot] ec50145786
👷 [ci]: Ready for Release (#113)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-12 17:09:02 -07:00
create-issue-branch[bot] b0218e182b
fix: 🐛 Custom Code Component Swap is causing issues. (#112)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-12 17:06:50 -07:00
Adam Matthiesen 8074b66935
Update coauthor.yml 2024-03-12 15:16:10 -07:00
Adam Matthiesen c57ff7d370
Update README.md 2024-03-11 16:30:54 -07:00
Adam Matthiesen 2854ad8a33
Update gitlab-sync.yml 2024-03-11 15:17:08 -07:00
Adam Matthiesen cfc6c88a8f Update @matthiesenxyz/astro-ghostcms version specifier to ^3.3.3 2024-03-11 10:22:18 -07:00
github-actions[bot] e532e1471e
👷 [ci]: Ready for Release (#110)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-11 10:19:45 -07:00
create-issue-branch[bot] b685e6617d
chore: ♻️ Fix: Some Deps should be Peer not dev/main (#109)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-11 10:18:12 -07:00
dependabot[bot] 62829e268a
Bump the dev-dependencies group with 2 updates (#105)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-11 08:44:46 -07:00
Adam Matthiesen 6f1139f038 update pnpm-lock 2024-03-09 21:05:19 -08:00
github-actions[bot] f1ee69c8b7
👷 [ci]: Ready for Release (#102)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-09 21:03:00 -08:00
create-issue-branch[bot] 4c1002a733
fix: 🐛 Tag slug page returns 404 in development environment (#101)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Jungley <yejing@live.cn>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-09 21:02:03 -08:00
github-actions[bot] 10bcac444b
👷 [ci]: Ready for Release (#98)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-09 08:49:52 -08:00
create-issue-branch[bot] a02c78b323
feat: bump starlight-ghostcms (#97)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <30383579+Adammatthiesen@users.noreply.github.com>
2024-03-09 08:49:00 -08:00
github-actions[bot] 6fee8bab1d
👷 [ci]: Ready for Release (#95)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-09 08:44:55 -08:00
Adam Matthiesen 209e99b8c7
update deps (#94) 2024-03-09 08:43:42 -08:00
github-actions[bot] b0ebb96783
👷 [ci]: Ready for Release (#93)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-09 05:11:38 -08:00
create-issue-branch[bot] 746fcc5858
fix: 🐛 bug: `starlight-ghostcms` markup allowElements list breaks `astro-gists` (#92)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-09 05:09:43 -08:00
github-actions[bot] 110c5a973a
👷 [ci]: Ready for Release (#90)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-09 04:12:50 -08:00
create-issue-branch[bot] 205738c288
fix: 🐛 Bug: `Starlight-GhostCMS` on line 113 of `ghostAPI.ts` (#89)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-09 04:11:54 -08:00
Adam Matthiesen fa93f54b68
Update changeset-main.yml 2024-03-07 23:53:14 -08:00
github-actions[bot] 81095d78b5
Chore: Ready for Release (#87)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-07 23:31:10 -08:00
create-issue-branch[bot] 27241192af
feat: Chore: Migrate from Render content Util and `<Fragment set:html />` to `astro-remote` (#86)
Co-authored-by: create-issue-branch[bot] <53036503+create-issue-branch[bot]@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <30383579+Adammatthiesen@users.noreply.github.com>
Co-authored-by: Adam Matthiesen <amatthiesen@outlook.com>
2024-03-07 23:29:02 -08:00
Adam Matthiesen b606fac02d
Update issue-branch.yml 2024-03-07 20:25:42 -08:00
Adam Matthiesen 827be67b2d
Update issue-branch.yml 2024-03-07 20:23:17 -08:00
Adam Matthiesen 5709e8706e
Create issue-branch.yml 2024-03-07 20:00:28 -08:00
Adam Matthiesen 18f99e9b58
Update new_chore.md 2024-03-07 16:24:01 -08:00
Adam Matthiesen f57800a911
Rename new_chore.yml to new_chore.md 2024-03-07 16:19:18 -08:00
Adam Matthiesen 08561b74ca
Update new_chore.yml 2024-03-07 16:17:29 -08:00
Adam Matthiesen 78c0a72040
Update new_chore.yml 2024-03-07 16:17:01 -08:00
Adam Matthiesen 487d6e49fd
Create new_chore.yml 2024-03-07 16:13:01 -08:00
Adam Matthiesen 20a12344a1 Update dependencies in pnpm-lock.yaml 2024-03-07 06:41:57 -08:00
Adam Matthiesen dc7147421e
Chore: Ready for Release (#84)
This PR was opened by a GitHub Action to signify a new release is ready!

# Releases
## @matthiesenxyz/astro-ghostcms@3.3.1

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

-   Updated dependencies [f921005]
    -   @matthiesenxyz/astro-ghostcms-theme-default@0.1.14

## @matthiesenxyz/astro-ghostcms-brutalbyelian@0.0.12

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

-   Updated dependencies [f921005]

-   Updated dependencies [f921005]
    -   @matthiesenxyz/astro-ghostcms@3.3.1
    -   @matthiesenxyz/astro-ghostcms-rendercontent@0.0.8

## @matthiesenxyz/astro-ghostcms-catppuccin@0.0.9

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

-   Updated dependencies [f921005]
    -   @matthiesenxyz/astro-ghostcms@3.3.1

## @matthiesenxyz/astro-ghostcms-rendercontent@0.0.8

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

## @matthiesenxyz/astro-ghostcms-theme-default@0.1.14

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

-   Updated dependencies [f921005]
    -   @matthiesenxyz/astro-ghostcms@3.3.1

## @matthiesenxyz/create-astro-ghostcms@0.1.1

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to

## @matthiesenxyz/starlight-ghostcms@0.1.1

### Patch Changes

-   f921005: Bump dependencies:

    -   vite from to
    -   @eliancodes/brutal-ui from to
    -   typescript from to
    -   ultrahtml from to
    -   @fontsource-variable/inter from to
    -   astro-seo from to
    -   astro from to
    -   sass from to
    -   @astrojs/starlight from to
    -   sharp from to
2024-03-07 06:38:52 -08:00
github-actions[bot] 7babbf79dd chore: update versions 2024-03-07 14:38:11 +00:00
Adam Matthiesen 20ba7b1bd2
Bump the prod-dependencies group with 10 updates (#83)
Bumps the prod-dependencies group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) |
`5.1.4` | `5.1.5` |
| [@eliancodes/brutal-ui](https://github.com/ElianCodes/brutal-ui) |
`0.2.3` | `0.2.6` |
| [typescript](https://github.com/Microsoft/TypeScript) | `5.3.3` |
`5.4.2` |
| [ultrahtml](https://github.com/natemoo-re/ultrahtml) | `1.5.2` |
`1.5.3` |
|
[@fontsource-variable/inter](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/inter)
| `5.0.16` | `5.0.17` |
| [astro-seo](https://github.com/jonasmerlin/astro-seo) | `0.8.2` |
`0.8.3` |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) |
`4.4.0` | `4.4.13` |
| [sass](https://github.com/sass/dart-sass) | `1.71.0` | `1.71.1` |
|
[@astrojs/starlight](https://github.com/withastro/starlight/tree/HEAD/packages/starlight)
| `0.19.0` | `0.21.1` |
| [sharp](https://github.com/lovell/sharp) | `0.32.6` | `0.33.2` |

Updates `vite` from 5.1.4 to 5.1.5
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.1.5 (2024-03-04)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: <code>__vite__mapDeps</code> code injection (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15732">#15732</a>)
(<a href="https://github.com/vitejs/vite/commit/aff54e1">aff54e1</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15732">#15732</a></li>
<li>fix: analysing build chunk without dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15469">#15469</a>)
(<a href="https://github.com/vitejs/vite/commit/bd52283">bd52283</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15469">#15469</a></li>
<li>fix: import with query with imports field (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16085">#16085</a>)
(<a href="https://github.com/vitejs/vite/commit/ab823ab">ab823ab</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16085">#16085</a></li>
<li>fix: normalize literal-only entry pattern (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16010">#16010</a>)
(<a href="https://github.com/vitejs/vite/commit/1dccc37">1dccc37</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16010">#16010</a></li>
<li>fix: optimizeDeps.entries with literal-only pattern(s) (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15853">#15853</a>)
(<a href="https://github.com/vitejs/vite/commit/49300b3">49300b3</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15853">#15853</a></li>
<li>fix: output correct error for empty import specifier (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16055">#16055</a>)
(<a href="https://github.com/vitejs/vite/commit/a9112eb">a9112eb</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16055">#16055</a></li>
<li>fix: upgrade esbuild to 0.20.x (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16062">#16062</a>)
(<a href="https://github.com/vitejs/vite/commit/899d9b1">899d9b1</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16062">#16062</a></li>
<li>fix(runtime): runtime HMR affects only imported files (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15898">#15898</a>)
(<a href="https://github.com/vitejs/vite/commit/57463fc">57463fc</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15898">#15898</a></li>
<li>fix(scanner): respect <code>experimentalDecorators: true</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15206">#15206</a>)
(<a href="https://github.com/vitejs/vite/commit/4144781">4144781</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15206">#15206</a></li>
<li>revert: &quot;fix: upgrade esbuild to 0.20.x&quot; (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16072">#16072</a>)
(<a href="https://github.com/vitejs/vite/commit/11cceea">11cceea</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16072">#16072</a></li>
<li>refactor: share code with vite runtime (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15907">#15907</a>)
(<a href="https://github.com/vitejs/vite/commit/b20d542">b20d542</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/15907">#15907</a></li>
<li>refactor(runtime): use functions from <code>pathe</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16061">#16061</a>)
(<a href="https://github.com/vitejs/vite/commit/aac2ef7">aac2ef7</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16061">#16061</a></li>
<li>chore(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16028">#16028</a>)
(<a href="https://github.com/vitejs/vite/commit/7cfe80d">7cfe80d</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/16028">#16028</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2af1ae807d"><code>2af1ae8</code></a>
release: v5.1.5</li>
<li><a
href="bd52283a70"><code>bd52283</code></a>
fix: analysing build chunk without dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15469">#15469</a>)</li>
<li><a
href="ab823ab618"><code>ab823ab</code></a>
fix: import with query with imports field (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16085">#16085</a>)</li>
<li><a
href="11cceeab39"><code>11cceea</code></a>
revert: &quot;fix: upgrade esbuild to 0.20.x&quot; (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16072">#16072</a>)</li>
<li><a
href="899d9b1d27"><code>899d9b1</code></a>
fix: upgrade esbuild to 0.20.x (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16062">#16062</a>)</li>
<li><a
href="aac2ef7752"><code>aac2ef7</code></a>
refactor(runtime): use functions from <code>pathe</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16061">#16061</a>)</li>
<li><a
href="a9112ebb21"><code>a9112eb</code></a>
fix: output correct error for empty import specifier (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16055">#16055</a>)</li>
<li><a
href="1dccc3713a"><code>1dccc37</code></a>
fix: normalize literal-only entry pattern (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16010">#16010</a>)</li>
<li><a
href="7cfe80d0df"><code>7cfe80d</code></a>
chore(deps): update all non-major dependencies (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/16028">#16028</a>)</li>
<li><a
href="b20d54257e"><code>b20d542</code></a>
refactor: share code with vite runtime (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/15907">#15907</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/vitejs/vite/commits/v5.1.5/packages/vite">compare
view</a></li>
</ul>
</details>
<br />

Updates `@eliancodes/brutal-ui` from 0.2.3 to 0.2.6
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/ElianCodes/brutal-ui/blob/main/CHANGELOG.md"><code>@​eliancodes/brutal-ui</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>0.2.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>button props</li>
</ul>
<h2>0.2.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>add ActualButton component</li>
</ul>
<h2>0.2.4</h2>
<h3>Patch Changes</h3>
<ul>
<li>make button extend HTMLButton</li>
<li>c6d3ff6: Change the use of utility css classes to vanilla css for
the Button component.</li>
</ul>
<p>All notable changes to this project will be documented in this file.
See <a
href="https://github.com/conventional-changelog/standard-version">standard-version</a>
for commit guidelines.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/ElianCodes/brutal-ui/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `typescript` from 5.3.3 to 5.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Microsoft/TypeScript/releases">typescript's
releases</a>.</em></p>
<blockquote>
<h2>TypeScript 5.4</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.1 (RC)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.2 (Stable)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.4 RC</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4-rc/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.0 (Beta)</a>.</li>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.1 (RC)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
<h2>TypeScript 5.4 Beta</h2>
<p>For release notes, check out the <a
href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-4-beta/">release
announcement</a>.</p>
<p>For the complete list of fixed issues, check out the</p>
<ul>
<li><a
href="https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93&amp;q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+">fixed
issues query for Typescript 5.4.0 (Beta)</a>.</li>
</ul>
<p>Downloads are available on:</p>
<ul>
<li><a href="https://www.npmjs.com/package/typescript">npm</a></li>
<li><a
href="https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild">NuGet
package</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="42bb138173"><code>42bb138</code></a>
Bump version to 5.4.2 and LKG</li>
<li><a
href="992c70519c"><code>992c705</code></a>
Add release pipeline to release-5.4 (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/57513">#57513</a>)</li>
<li><a
href="db6b2a9802"><code>db6b2a9</code></a>
Bump version to 5.4.1-rc and LKG</li>
<li><a
href="bd4f51c8f0"><code>bd4f51c</code></a>
Update LKG</li>
<li><a
href="8a1f79dca5"><code>8a1f79d</code></a>
Merge remote-tracking branch 'origin/main' into release-5.4</li>
<li><a
href="d04e3489b0"><code>d04e348</code></a>
Improve apparent type of mapped types (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/57122">#57122</a>)</li>
<li><a
href="86a16636ca"><code>86a1663</code></a>
Update package-lock.json</li>
<li><a
href="feb57c269b"><code>feb57c2</code></a>
Instantiate earlier inferred constraints in conditional types (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/57362">#57362</a>)</li>
<li><a
href="91e67ffbea"><code>91e67ff</code></a>
fix(57392): using is not suggested as a keyword (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/57394">#57394</a>)</li>
<li><a
href="29c0024bcf"><code>29c0024</code></a>
Avoid creating rest elements with <code>errorType</code> when
<code>any</code> is spread (<a
href="https://redirect.github.com/Microsoft/TypeScript/issues/57116">#57116</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `ultrahtml` from 1.5.2 to 1.5.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/natemoo-re/ultrahtml/releases">ultrahtml's
releases</a>.</em></p>
<blockquote>
<h2>v1.5.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>ebc97e0: upgrades <code>dts-bundle-generator</code> to
<code>9.2.1</code>, fixing an issue with <code>.d.ts</code>
generation which led methods prefixed with two underscores to be
incorrectly made private in the generated declaration file.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/natemoo-re/ultrahtml/blob/main/CHANGELOG.md">ultrahtml's
changelog</a>.</em></p>
<blockquote>
<h2>1.5.3</h2>
<h3>Patch Changes</h3>
<ul>
<li>ebc97e0: upgrades <code>dts-bundle-generator</code> to
<code>9.2.1</code>, fixing an issue with <code>.d.ts</code>
generation which led methods prefixed with two underscores to be
incorrectly made private in the generated declaration file.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="93a127343f"><code>93a1273</code></a>
Merge pull request <a
href="https://redirect.github.com/natemoo-re/ultrahtml/issues/68">#68</a>
from natemoo-re/changeset-release/main</li>
<li><a
href="8d42d8dbf2"><code>8d42d8d</code></a>
[ci] release</li>
<li><a
href="007824dffe"><code>007824d</code></a>
Merge pull request <a
href="https://redirect.github.com/natemoo-re/ultrahtml/issues/65">#65</a>
from michaelhthomas/chore/upgrade-dts-bundle-generator</li>
<li><a
href="efc44dc146"><code>efc44dc</code></a>
Merge pull request <a
href="https://redirect.github.com/natemoo-re/ultrahtml/issues/67">#67</a>
from natemoo-re/fix-test</li>
<li><a
href="a59ac9291e"><code>a59ac92</code></a>
This Fixes <code>script.test.ts</code>, Mozilla.org updated the website
being tested fro...</li>
<li><a
href="ebc97e0186"><code>ebc97e0</code></a>
chore: add changeset</li>
<li><a
href="2f6c0dade6"><code>2f6c0da</code></a>
chore: upgrade <code>dts-bundle-generator</code> <code>8.0.1</code>
-&gt; <code>9.2.1</code></li>
<li>See full diff in <a
href="https://github.com/natemoo-re/ultrahtml/compare/v1.5.2...v1.5.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `@fontsource-variable/inter` from 5.0.16 to 5.0.17
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/inter">compare
view</a></li>
</ul>
</details>
<br />

Updates `astro-seo` from 0.8.2 to 0.8.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jonasmerlin/astro-seo/releases">astro-seo's
releases</a>.</em></p>
<blockquote>
<h2>v0.8.3</h2>
<h3><a
href="https://github.com/jonasmerlin/astro-seo/compare/v0.8.2...v0.8.3">0.8.3</a>
(2024-03-03)</h3>
<ul>
<li>improvement: re-export Props as SEOProps</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jonasmerlin/astro-seo/blob/main/CHANGELOG.md">astro-seo's
changelog</a>.</em></p>
<blockquote>
<h3><a
href="https://github.com/jonasmerlin/astro-seo/compare/v0.8.2...v0.8.3">0.8.3</a>
(2024-03-03)</h3>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7d3387a2d9"><code>7d3387a</code></a>
chore(release): 0.8.3</li>
<li><a
href="9278a17b2e"><code>9278a17</code></a>
improvement: re-export Props as SEOProps</li>
<li><a
href="6974c405b4"><code>6974c40</code></a>
test: Delete trailing slash from test</li>
<li><a
href="3c16c642a5"><code>3c16c64</code></a>
Update all GH actions to latest version</li>
<li><a
href="8e3f440441"><code>8e3f440</code></a>
chore: Update Cypress GH action to v6</li>
<li><a
href="47c2378a94"><code>47c2378</code></a>
Update CHANGELOG</li>
<li>See full diff in <a
href="https://github.com/jonasmerlin/astro-seo/compare/v0.8.2...v0.8.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `astro` from 4.4.0 to 4.4.13
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/astro/releases">astro's
releases</a>.</em></p>
<blockquote>
<h2>astro@4.4.13</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10342">#10342</a>
<a
href="a2e9b2b936"><code>a2e9b2b936666b2a4779feb00dcb8ff0ab82c2ec</code></a>
Thanks <a
href="https://github.com/matthewp"><code>@​matthewp</code></a>! - Fixes
<code>@​astrojs/db</code> loading TS in the fixtures</li>
</ul>
<h2>astro@4.4.12</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10336">#10336</a>
<a
href="f2e60a9675"><code>f2e60a96754ed1d86001fe4d5d3a0c0ef657408d</code></a>
Thanks <a
href="https://github.com/FredKSchott"><code>@​FredKSchott</code></a>! -
Fixes an issue where slotting interactive components within a
&quot;client:only&quot; component prevented all component code in the
page from running.</li>
</ul>
<h2>astro@4.4.11</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10281">#10281</a>
<a
href="9deb919ff9"><code>9deb919ff95b1d2ffe5a5f70ec683e32ebfafd05</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where <code>404.astro</code> was ignored with
<code>i18n</code> routing enabled.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10279">#10279</a>
<a
href="9ba3e2605d"><code>9ba3e2605daee3861e3bf6c5768f1d8bced4709d</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where returning redirect responses resulted in missing
files with certain adapters.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10319">#10319</a>
<a
href="19ecccedaa"><code>19ecccedaab6d8fa0ff23711c88fa7d4fa34df38</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where streaming SSR responses sometimes failed with
&quot;<code>iterator.result</code> is not a function&quot; on node-based
adapters.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10302">#10302</a>
<a
href="992537e79f"><code>992537e79f1847b590a2e226aac88a47a6304f68</code></a>
Thanks <a
href="https://github.com/florian-lefebvre"><code>@​florian-lefebvre</code></a>!
- Fixes an issue that causes static entrypoints build to fail because of
the path in certain conditions. Specifically, it failed if the path had
an extension (like <code>.astro</code>, <code>.mdx</code> etc) and such
extension would be also within the path (like
<code>./.astro/index.astro</code>).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10298">#10298</a>
<a
href="819d20a89c"><code>819d20a89c0d269333c2d397c1080884f516307a</code></a>
Thanks <a href="https://github.com/Fryuni"><code>@​Fryuni</code></a>! -
Fix an incorrect conflict resolution between pages generated from static
routes and rest parameters</p>
</li>
</ul>
<h2>astro@4.4.10</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10235">#10235</a>
<a
href="4bc360cd5f"><code>4bc360cd5f25496aca3232f6efb3710424a14a34</code></a>
Thanks <a
href="https://github.com/sanman1k98"><code>@​sanman1k98</code></a>! -
Fixes jerky scrolling on IOS when using view transitions.</li>
</ul>
<h2>astro@4.4.9</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10278">#10278</a>
<a
href="a548a3a99c"><code>a548a3a99c2835c19662fc38636f92b2bda26614</code></a>
Thanks <a
href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! -
Fixes original images sometimes being kept / deleted when they shouldn't
in both MDX and Markdoc</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10280">#10280</a>
<a
href="3488be9b59"><code>3488be9b59d1cb65325b0e087c33bcd74aaa4926</code></a>
Thanks <a
href="https://github.com/bholmesdev"><code>@​bholmesdev</code></a>! -
Finalize db API to a shared db/ directory.</p>
</li>
</ul>
<h2>astro@4.4.8</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10275">#10275</a>
<a
href="5e3e74b61d"><code>5e3e74b61daa2ba44c761c9ab5745818661a656e</code></a>
Thanks <a
href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! -
Fixes dev toolbar warning about using the proper loading attributes on
images using <code>data:</code> URIs</li>
</ul>
<h2>astro@4.4.7</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10274">#10274</a>
<a
href="e556151603"><code>e556151603a2f0173059d0f98fdcbec0610b48ff</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes a regression introduced in v4.4.5 where image optimization did
not work in dev mode when a base was configured.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10263">#10263</a>
<a
href="9bdbed723e"><code>9bdbed723e0aa4243d7d6ee64d1c1df3b75b9aeb</code></a>
Thanks <a
href="https://github.com/martrapp"><code>@​martrapp</code></a>! - Adds
auto completion for <code>astro:</code> event names when adding or
removing event listeners on <code>document</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10284">#10284</a>
<a
href="07f89429a1"><code>07f89429a1ef5173d3321e0b362a9dc71fc74fe5</code></a>
Thanks <a
href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! -
Fixes an issue where in Node SSR, the image endpoint could be used
maliciously to reveal unintended information about the underlying
system.</p>
<p>Thanks to Google Security Team for reporting this issue.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md">astro's
changelog</a>.</em></p>
<blockquote>
<h2>4.4.13</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10342">#10342</a>
<a
href="a2e9b2b936"><code>a2e9b2b936666b2a4779feb00dcb8ff0ab82c2ec</code></a>
Thanks <a
href="https://github.com/matthewp"><code>@​matthewp</code></a>! - Fixes
<code>@​astrojs/db</code> loading TS in the fixtures</li>
</ul>
<h2>4.4.12</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10336">#10336</a>
<a
href="f2e60a9675"><code>f2e60a96754ed1d86001fe4d5d3a0c0ef657408d</code></a>
Thanks <a
href="https://github.com/FredKSchott"><code>@​FredKSchott</code></a>! -
Fixes an issue where slotting interactive components within a
&quot;client:only&quot; component prevented all component code in the
page from running.</li>
</ul>
<h2>4.4.11</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10281">#10281</a>
<a
href="9deb919ff9"><code>9deb919ff95b1d2ffe5a5f70ec683e32ebfafd05</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where <code>404.astro</code> was ignored with
<code>i18n</code> routing enabled.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10279">#10279</a>
<a
href="9ba3e2605d"><code>9ba3e2605daee3861e3bf6c5768f1d8bced4709d</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where returning redirect responses resulted in missing
files with certain adapters.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10319">#10319</a>
<a
href="19ecccedaa"><code>19ecccedaab6d8fa0ff23711c88fa7d4fa34df38</code></a>
Thanks <a href="https://github.com/lilnasy"><code>@​lilnasy</code></a>!
- Fixes an issue where streaming SSR responses sometimes failed with
&quot;<code>iterator.result</code> is not a function&quot; on node-based
adapters.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10302">#10302</a>
<a
href="992537e79f"><code>992537e79f1847b590a2e226aac88a47a6304f68</code></a>
Thanks <a
href="https://github.com/florian-lefebvre"><code>@​florian-lefebvre</code></a>!
- Fixes an issue that causes static entrypoints build to fail because of
the path in certain conditions. Specifically, it failed if the path had
an extension (like <code>.astro</code>, <code>.mdx</code> etc) and such
extension would be also within the path (like
<code>./.astro/index.astro</code>).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10298">#10298</a>
<a
href="819d20a89c"><code>819d20a89c0d269333c2d397c1080884f516307a</code></a>
Thanks <a href="https://github.com/Fryuni"><code>@​Fryuni</code></a>! -
Fix an incorrect conflict resolution between pages generated from static
routes and rest parameters</p>
</li>
</ul>
<h2>4.4.10</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10235">#10235</a>
<a
href="4bc360cd5f"><code>4bc360cd5f25496aca3232f6efb3710424a14a34</code></a>
Thanks <a
href="https://github.com/sanman1k98"><code>@​sanman1k98</code></a>! -
Fixes jerky scrolling on IOS when using view transitions.</li>
</ul>
<h2>4.4.9</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10278">#10278</a>
<a
href="a548a3a99c"><code>a548a3a99c2835c19662fc38636f92b2bda26614</code></a>
Thanks <a
href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! -
Fixes original images sometimes being kept / deleted when they shouldn't
in both MDX and Markdoc</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/astro/pull/10280">#10280</a>
<a
href="3488be9b59"><code>3488be9b59d1cb65325b0e087c33bcd74aaa4926</code></a>
Thanks <a
href="https://github.com/bholmesdev"><code>@​bholmesdev</code></a>! -
Finalize db API to a shared db/ directory.</p>
</li>
</ul>
<h2>4.4.8</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/astro/pull/10275">#10275</a>
<a
href="5e3e74b61d"><code>5e3e74b61daa2ba44c761c9ab5745818661a656e</code></a>
Thanks <a
href="https://github.com/Princesseuh"><code>@​Princesseuh</code></a>! -
Fixes dev toolbar warning about using the proper loading attributes on
images using <code>data:</code> URIs</li>
</ul>
<h2>4.4.7</h2>
<h3>Patch Changes</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c793f194c9"><code>c793f19</code></a>
[ci] release (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10344">#10344</a>)</li>
<li><a
href="74cf1af86e"><code>74cf1af</code></a>
Fix cli package resolution for <code>@astrojs/db</code> (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10338">#10338</a>)</li>
<li><a
href="a2e9b2b936"><code>a2e9b2b</code></a>
Fixes loading .ts configs in astro:db (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10342">#10342</a>)</li>
<li><a
href="038201fbae"><code>038201f</code></a>
[ci] release (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10337">#10337</a>)</li>
<li><a
href="f2e60a9675"><code>f2e60a9</code></a>
Revert bad release (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10336">#10336</a>)</li>
<li><a
href="dd3935b31c"><code>dd3935b</code></a>
[ci] release (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10332">#10332</a>)</li>
<li><a
href="2809d13600"><code>2809d13</code></a>
[ci] format</li>
<li><a
href="507b4ac246"><code>507b4ac</code></a>
fix(rendering): allow render instructions to propagate while rendering
slots ...</li>
<li><a
href="5fe98599a3"><code>5fe9859</code></a>
fix broken link in code examples (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10322">#10322</a>)</li>
<li><a
href="3c0b854ac6"><code>3c0b854</code></a>
chore: delete <code>core/endpoint/index.ts</code> (<a
href="https://github.com/withastro/astro/tree/HEAD/packages/astro/issues/10324">#10324</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/withastro/astro/commits/astro@4.4.13/packages/astro">compare
view</a></li>
</ul>
</details>
<br />

Updates `sass` from 1.71.0 to 1.71.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/releases">sass's
releases</a>.</em></p>
<blockquote>
<h2>Dart Sass 1.71.1</h2>
<p>To install Sass 1.71.1, download one of the packages below and <a
href="https://katiek2.github.io/path-doc/">add it to your PATH</a>, or
see <a href="https://sass-lang.com/install">the Sass website</a> for
full installation instructions.</p>
<h1>Changes</h1>
<h3>Command-Line Interface</h3>
<ul>
<li>Ship the musl Linux release with the proper Dart executable.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Export the <code>NodePackageImporter</code> class in ESM mode.</p>
</li>
<li>
<p>Allow <code>NodePackageImporter</code> to locate a default directory
even when the entrypoint is an ESM module.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Make passing a null argument to <code>NodePackageImporter()</code> a
static error rather than just a runtime error.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the musl Linux embedded
compiler when running on musl Linux.</li>
</ul>
<p>See the <a
href="https://github.com/sass/dart-sass/blob/master/CHANGELOG.md#1711">full
changelog</a> for changes in earlier releases.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/sass/dart-sass/blob/main/CHANGELOG.md">sass's
changelog</a>.</em></p>
<blockquote>
<h2>1.71.1</h2>
<h3>Command-Line Interface</h3>
<ul>
<li>Ship the musl Linux release with the proper Dart executable.</li>
</ul>
<h3>JavaScript API</h3>
<ul>
<li>
<p>Export the <code>NodePackageImporter</code> class in ESM mode.</p>
</li>
<li>
<p>Allow <code>NodePackageImporter</code> to locate a default directory
even when the
entrypoint is an ESM module.</p>
</li>
</ul>
<h3>Dart API</h3>
<ul>
<li>Make passing a null argument to <code>NodePackageImporter()</code> a
static error rather
than just a runtime error.</li>
</ul>
<h3>Embedded Sass</h3>
<ul>
<li>In the JS Embedded Host, properly install the musl Linux embedded
compiler
when running on musl Linux.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1b4d703ad3"><code>1b4d703</code></a>
Release 1.71.1 (<a
href="https://redirect.github.com/sass/dart-sass/issues/2182">#2182</a>)</li>
<li><a
href="6d66c4376a"><code>6d66c43</code></a>
Properly handle <code>new NodePackageImporter()</code> with an ESM
entrypoint (<a
href="https://redirect.github.com/sass/dart-sass/issues/2181">#2181</a>)</li>
<li><a
href="85a932f648"><code>85a932f</code></a>
Add missing ESM export of NodePackageImporter (<a
href="https://redirect.github.com/sass/dart-sass/issues/2177">#2177</a>)</li>
<li><a
href="786dd63ea1"><code>786dd63</code></a>
Fix linux musl builds (<a
href="https://redirect.github.com/sass/dart-sass/issues/2175">#2175</a>)</li>
<li>See full diff in <a
href="https://github.com/sass/dart-sass/compare/1.71.0...1.71.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `@astrojs/starlight` from 0.19.0 to 0.21.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/starlight/releases"><code>@​astrojs/starlight</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​astrojs/starlight</code><a
href="https://github.com/0"><code>@​0</code></a>.21.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1584">#1584</a>
<a
href="8851d5cd0d"><code>8851d5cd</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 2 new icons: <code>apple</code> and <code>linux</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1577">#1577</a>
<a
href="0ba77890e0"><code>0ba77890</code></a>
Thanks <a
href="https://github.com/morinokami"><code>@​morinokami</code></a>! -
Translates <code>fileTree.directory</code> UI string into Japanese.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1593">#1593</a>
<a
href="fa7ed2458c"><code>fa7ed245</code></a>
Thanks <a
href="https://github.com/liruifengv"><code>@​liruifengv</code></a>! -
Translates <code>fileTree.directory</code> UI string into simplified
Chinese.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1585">#1585</a>
<a
href="bd4e278f7f"><code>bd4e278f</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Translates <code>fileTree.directory</code> UI string into French.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1587">#1587</a>
<a
href="c579426025"><code>c5794260</code></a>
Thanks <a
href="https://github.com/Eveeifyeve"><code>@​Eveeifyeve</code></a>! -
Adds 1 new icon: <code>homebrew</code>.</p>
</li>
</ul>
<h2><code>@​astrojs/starlight</code><a
href="https://github.com/0"><code>@​0</code></a>.21.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1568">#1568</a>
<a
href="5f99a71ddf"><code>5f99a71d</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds support for optionally setting an icon on a
<code>&lt;TabItem&gt;</code> component to make it easier to visually
distinguish between tabs.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds <code>&lt;FileTree&gt;</code> component to display the structure of
a directory.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 144 new file-type icons from the <a
href="https://github.com/jesseweed/seti-ui#current-icons">Seti UI icon
set</a>, available with the <code>seti:</code> prefix, e.g.
<code>seti:javascript</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1564">#1564</a>
<a
href="d880065e29"><code>d880065e</code></a>
Thanks <a href="https://github.com/delucis"><code>@​delucis</code></a>!
- Adds a <code>&lt;Steps&gt;</code> component for styling more complex
guided tasks.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 5 new icons: <code>astro</code>, <code>biome</code>,
<code>bun</code>, <code>mdx</code>, and <code>pnpm</code>.</p>
</li>
</ul>
<h2><code>@​astrojs/starlight</code><a
href="https://github.com/0"><code>@​0</code></a>.20.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/starlight/pull/1553">#1553</a>
<a
href="8e09114755"><code>8e091147</code></a>
Thanks <a
href="https://github.com/hippotastic"><code>@​hippotastic</code></a>! -
Updates Expressive Code to v0.33.4 to fix potential race condition bug
in Shiki.</li>
</ul>
<h2><code>@​astrojs/starlight</code><a
href="https://github.com/0"><code>@​0</code></a>.20.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1541">#1541</a>
<a
href="1043052f38"><code>1043052f</code></a>
Thanks <a
href="https://github.com/hippotastic"><code>@​hippotastic</code></a>! -
Updates <code>astro-expressive-code</code> dependency to the latest
minor release (0.33).</p>
<p>This unlocks support for <a
href="https://expressive-code.com/key-features/word-wrap/">word wrap</a>
and <a href="https://expressive-code.com/plugins/line-numbers/">line
numbers</a>, as well as updating the syntax highlighter to the latest
Shiki release, which includes new and updated language grammars.</p>
<p>See the <a href="https://expressive-code.com/releases/">Expressive
Code release notes</a> for more information including details of
potentially breaking changes.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1542">#1542</a>
<a
href="b3b7a60699"><code>b3b7a606</code></a>
Thanks <a href="https://github.com/delucis"><code>@​delucis</code></a>!
- Improves error messages shown by Starlight for configuration
errors.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1544">#1544</a>
<a
href="65dc6586ef"><code>65dc6586</code></a>
Thanks <a
href="https://github.com/torn4dom4n"><code>@​torn4dom4n</code></a>! -
Update Vietnamese UI translations</p>
</li>
</ul>
<h2><code>@​astrojs/starlight</code><a
href="https://github.com/0"><code>@​0</code></a>.19.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/starlight/pull/1527">#1527</a>
<a
href="163bc848e1"><code>163bc84</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Exports the <code>StarlightPageProps</code> TypeScript type representing
the props expected by the <code>&lt;StarlightPage /&gt;</code>
component.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/starlight/blob/main/packages/starlight/CHANGELOG.md"><code>@​astrojs/starlight</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>0.21.1</h2>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1584">#1584</a>
<a
href="8851d5cd0d"><code>8851d5cd</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 2 new icons: <code>apple</code> and <code>linux</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1577">#1577</a>
<a
href="0ba77890e0"><code>0ba77890</code></a>
Thanks <a
href="https://github.com/morinokami"><code>@​morinokami</code></a>! -
Translates <code>fileTree.directory</code> UI string into Japanese.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1593">#1593</a>
<a
href="fa7ed2458c"><code>fa7ed245</code></a>
Thanks <a
href="https://github.com/liruifengv"><code>@​liruifengv</code></a>! -
Translates <code>fileTree.directory</code> UI string into simplified
Chinese.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1585">#1585</a>
<a
href="bd4e278f7f"><code>bd4e278f</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Translates <code>fileTree.directory</code> UI string into French.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1587">#1587</a>
<a
href="c579426025"><code>c5794260</code></a>
Thanks <a
href="https://github.com/Eveeifyeve"><code>@​Eveeifyeve</code></a>! -
Adds 1 new icon: <code>homebrew</code>.</p>
</li>
</ul>
<h2>0.21.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1568">#1568</a>
<a
href="5f99a71ddf"><code>5f99a71d</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds support for optionally setting an icon on a
<code>&lt;TabItem&gt;</code> component to make it easier to visually
distinguish between tabs.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds <code>&lt;FileTree&gt;</code> component to display the structure of
a directory.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 144 new file-type icons from the <a
href="https://github.com/jesseweed/seti-ui#current-icons">Seti UI icon
set</a>, available with the <code>seti:</code> prefix, e.g.
<code>seti:javascript</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1564">#1564</a>
<a
href="d880065e29"><code>d880065e</code></a>
Thanks <a href="https://github.com/delucis"><code>@​delucis</code></a>!
- Adds a <code>&lt;Steps&gt;</code> component for styling more complex
guided tasks.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1308">#1308</a>
<a
href="9a918a5b49"><code>9a918a5b</code></a>
Thanks <a href="https://github.com/HiDeoo"><code>@​HiDeoo</code></a>! -
Adds 5 new icons: <code>astro</code>, <code>biome</code>,
<code>bun</code>, <code>mdx</code>, and <code>pnpm</code>.</p>
</li>
</ul>
<h2>0.20.1</h2>
<h3>Patch Changes</h3>
<ul>
<li><a
href="https://redirect.github.com/withastro/starlight/pull/1553">#1553</a>
<a
href="8e09114755"><code>8e091147</code></a>
Thanks <a
href="https://github.com/hippotastic"><code>@​hippotastic</code></a>! -
Updates Expressive Code to v0.33.4 to fix potential race condition bug
in Shiki.</li>
</ul>
<h2>0.20.0</h2>
<h3>Minor Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1541">#1541</a>
<a
href="1043052f38"><code>1043052f</code></a>
Thanks <a
href="https://github.com/hippotastic"><code>@​hippotastic</code></a>! -
Updates <code>astro-expressive-code</code> dependency to the latest
minor release (0.33).</p>
<p>This unlocks support for <a
href="https://expressive-code.com/key-features/word-wrap/">word wrap</a>
and <a href="https://expressive-code.com/plugins/line-numbers/">line
numbers</a>, as well as updating the syntax highlighter to the latest
Shiki release, which includes new and updated language grammars.</p>
<p>See the <a href="https://expressive-code.com/releases/">Expressive
Code release notes</a> for more information including details of
potentially breaking changes.</p>
</li>
</ul>
<h3>Patch Changes</h3>
<ul>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1542">#1542</a>
<a
href="b3b7a60699"><code>b3b7a606</code></a>
Thanks <a href="https://github.com/delucis"><code>@​delucis</code></a>!
- Improves error messages shown by Starlight for configuration
errors.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/withastro/starlight/pull/1544">#1544</a>
<a
href="65dc6586ef"><code>65dc6586</code></a>
Thanks <a
href="https://github.com/torn4dom4n"><code>@​torn4dom4n</code></a>! -
Update Vietnamese UI translations</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6204cf2880"><code>6204cf2</code></a>
[ci] release (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1586">#1586</a>)</li>
<li><a
href="8851d5cd0d"><code>8851d5c</code></a>
Add <code>apple</code> &amp; <code>linux</code> icons (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1584">#1584</a>)</li>
<li><a
href="8e37ac8db0"><code>8e37ac8</code></a>
[ci] format</li>
<li><a
href="c579426025"><code>c579426</code></a>
Add <code>homebrew</code> icon (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1587">#1587</a>)</li>
<li><a
href="fa7ed2458c"><code>fa7ed24</code></a>
Translates <code>fileTree.directory</code> UI string into simplified
Chinese. (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1593">#1593</a>)</li>
<li><a
href="bd4e278f7f"><code>bd4e278</code></a>
i18n(fr): translate <code>fileTree.directory</code> UI string (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1585">#1585</a>)</li>
<li><a
href="0ba77890e0"><code>0ba7789</code></a>
Translate <code>fileTree.directory</code> into Japanese (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1577">#1577</a>)</li>
<li><a
href="dae1cb2601"><code>dae1cb2</code></a>
[ci] format</li>
<li><a
href="ab38709dd9"><code>ab38709</code></a>
[ci] release (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1574">#1574</a>)</li>
<li><a
href="d880065e29"><code>d880065</code></a>
Add <code>\&lt;Steps&gt;</code> component (<a
href="https://github.com/withastro/starlight/tree/HEAD/packages/starlight/issues/1564">#1564</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/withastro/starlight/commits/@astrojs/starlight@0.21.1/packages/starlight">compare
view</a></li>
</ul>
</details>
<br />

Updates `sharp` from 0.32.6 to 0.33.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/lovell/sharp/blob/main/docs/changelog.md">sharp's
changelog</a>.</em></p>
<blockquote>
<h3>v0.33.2 - 12th January 2024</h3>
<ul>
<li>
<p>Upgrade to libvips v8.15.1 for upstream bug fixes.</p>
</li>
<li>
<p>TypeScript: add definition for <code>keepMetadata</code>.
<a href="https://redirect.github.com/lovell/sharp/pull/3914">#3914</a>
<a href="https://github.com/abhi0498"><code>@​abhi0498</code></a></p>
</li>
<li>
<p>Ensure <code>extend</code> operation stays sequential when copying
(regression in 0.32.0).
<a
href="https://redirect.github.com/lovell/sharp/issues/3928">#3928</a></p>
</li>
<li>
<p>Improve error handling for unsupported multi-page rotation.
<a
href="https://redirect.github.com/lovell/sharp/issues/3940">#3940</a></p>
</li>
</ul>
<h3>v0.33.1 - 17th December 2023</h3>
<ul>
<li>
<p>Add support for Yarn Plug'n'Play filesystem layout.
<a
href="https://redirect.github.com/lovell/sharp/issues/3888">#3888</a></p>
</li>
<li>
<p>Emit warning when attempting to use invalid ICC profiles.
<a
href="https://redirect.github.com/lovell/sharp/issues/3895">#3895</a></p>
</li>
<li>
<p>Ensure <code>VIPS_NOVECTOR</code> environment variable is respected.
<a href="https://redirect.github.com/lovell/sharp/pull/3897">#3897</a>
<a href="https://github.com/icetee"><code>@​icetee</code></a></p>
</li>
</ul>
<h3>v0.33.0 - 29th November 2023</h3>
<ul>
<li>
<p>Drop support for Node.js 14 and 16, now requires Node.js ^18.17.0 or
&gt;= 20.3.0</p>
</li>
<li>
<p>Prebuilt binaries distributed via npm registry and installed via
package manager.</p>
</li>
<li>
<p>Building from source requires dependency on
<code>node-addon-api</code>.</p>
</li>
<li>
<p>Remove <code>sharp.vendor</code>.</p>
</li>
<li>
<p>Partially deprecate <code>withMetadata()</code>, use
<code>withExif()</code> and <code>withIccProfile()</code>.</p>
</li>
<li>
<p>Add experimental support for WebAssembly-based runtimes.
<a href="https://github.com/RReverser"><code>@​RReverser</code></a></p>
</li>
<li>
<p>Options for <code>trim</code> operation must be an Object, add new
<code>lineArt</code> option.
<a
href="https://redirect.github.com/lovell/sharp/issues/2363">#2363</a></p>
</li>
<li>
<p>Improve luminance of <code>tint</code> operation with weighting
function.
<a href="https://redirect.github.com/lovell/sharp/issues/3338">#3338</a>
<a href="https://github.com/jcupitt"><code>@​jcupitt</code></a></p>
</li>
<li>
<p>Ensure all <code>Error</code> objects contain a <code>stack</code>
property.
<a
href="https://redirect.github.com/lovell/sharp/issues/3653">#3653</a></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bcb22af034"><code>bcb22af</code></a>
Release v0.33.2</li>
<li><a
href="d04dc62666"><code>d04dc62</code></a>
Prerelease v0.33.2-rc.1</li>
<li><a
href="c30d355f97"><code>c30d355</code></a>
CI: Fix npm smoke test expectation</li>
<li><a
href="49cb148b38"><code>49cb148</code></a>
Prerelease v0.33.2-rc.0</li>
<li><a
href="3bc31a8b20"><code>3bc31a8</code></a>
CI: Verify emscripten versions match</li>
<li><a
href="c28523e70e"><code>c28523e</code></a>
CI: Update Emscripten Docker image to 3.1.51 (<a
href="https://redirect.github.com/lovell/sharp/issues/3907">#3907</a>)</li>
<li><a
href="278f393f74"><code>278f393</code></a>
Upgrade to libvips v8.15.1</li>
<li><a
href="cbf68c1395"><code>cbf68c1</code></a>
Improve error for unsupported multi-page rotation <a
href="https://redirect.github.com/lovell/sharp/issues/3940">#3940</a></li>
<li><a
href="45e8071599"><code>45e8071</code></a>
Add runtime check for outdated Node.js version</li>
<li><a
href="b96389d975"><code>b96389d</code></a>
Docs: refresh index</li>
<li>Additional commits viewable in <a
href="https://github.com/lovell/sharp/compare/v0.32.6...v0.33.2">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
2024-03-07 06:37:43 -08:00
Adam Matthiesen 3396cf4249
Create coauthor.yml 2024-03-07 06:19:19 -08:00
github-actions[bot] f921005a60 Add changeset for dependabot updates
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-07 14:09:01 +00:00
dependabot[bot] 79e7a279e0
Bump the prod-dependencies group with 10 updates
Bumps the prod-dependencies group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.1.4` | `5.1.5` |
| [@eliancodes/brutal-ui](https://github.com/ElianCodes/brutal-ui) | `0.2.3` | `0.2.6` |
| [typescript](https://github.com/Microsoft/TypeScript) | `5.3.3` | `5.4.2` |
| [ultrahtml](https://github.com/natemoo-re/ultrahtml) | `1.5.2` | `1.5.3` |
| [@fontsource-variable/inter](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/inter) | `5.0.16` | `5.0.17` |
| [astro-seo](https://github.com/jonasmerlin/astro-seo) | `0.8.2` | `0.8.3` |
| [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `4.4.0` | `4.4.13` |
| [sass](https://github.com/sass/dart-sass) | `1.71.0` | `1.71.1` |
| [@astrojs/starlight](https://github.com/withastro/starlight/tree/HEAD/packages/starlight) | `0.19.0` | `0.21.1` |
| [sharp](https://github.com/lovell/sharp) | `0.32.6` | `0.33.2` |


Updates `vite` from 5.1.4 to 5.1.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.5/packages/vite)

Updates `@eliancodes/brutal-ui` from 0.2.3 to 0.2.6
- [Release notes](https://github.com/ElianCodes/brutal-ui/releases)
- [Changelog](https://github.com/ElianCodes/brutal-ui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ElianCodes/brutal-ui/commits)

Updates `typescript` from 5.3.3 to 5.4.2
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v5.3.3...v5.4.2)

Updates `ultrahtml` from 1.5.2 to 1.5.3
- [Release notes](https://github.com/natemoo-re/ultrahtml/releases)
- [Changelog](https://github.com/natemoo-re/ultrahtml/blob/main/CHANGELOG.md)
- [Commits](https://github.com/natemoo-re/ultrahtml/compare/v1.5.2...v1.5.3)

Updates `@fontsource-variable/inter` from 5.0.16 to 5.0.17
- [Changelog](https://github.com/fontsource/font-files/blob/main/fonts/variable/inter/CHANGELOG.md)
- [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/inter)

Updates `astro-seo` from 0.8.2 to 0.8.3
- [Release notes](https://github.com/jonasmerlin/astro-seo/releases)
- [Changelog](https://github.com/jonasmerlin/astro-seo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jonasmerlin/astro-seo/compare/v0.8.2...v0.8.3)

Updates `astro` from 4.4.0 to 4.4.13
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@4.4.13/packages/astro)

Updates `sass` from 1.71.0 to 1.71.1
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.71.0...1.71.1)

Updates `@astrojs/starlight` from 0.19.0 to 0.21.1
- [Release notes](https://github.com/withastro/starlight/releases)
- [Changelog](https://github.com/withastro/starlight/blob/main/packages/starlight/CHANGELOG.md)
- [Commits](https://github.com/withastro/starlight/commits/@astrojs/starlight@0.21.1/packages/starlight)

Updates `sharp` from 0.32.6 to 0.33.2
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/main/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/compare/v0.32.6...v0.33.2)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: "@eliancodes/brutal-ui"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: typescript
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
- dependency-name: ultrahtml
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: "@fontsource-variable/inter"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: astro-seo
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: astro
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: sass
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: "@astrojs/starlight"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
- dependency-name: sharp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 14:08:41 +00:00
Adam Matthiesen f7ef16ff66
Update changeset-dependabot.yml 2024-03-07 06:00:01 -08:00
Adam Matthiesen cee0255bb3
Bump the dev-dependencies group with 4 updates (#82)
Bumps the dev-dependencies group with 4 updates:
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node),
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser),
[eslint](https://github.com/eslint/eslint) and
[@astrojs/check](https://github.com/withastro/language-tools/tree/HEAD/packages/astro-check).

Updates `@types/node` from 20.11.19 to 20.11.25
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 7.0.1 to 7.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases"><code>@​typescript-eslint/parser</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v7.1.1</h2>
<h2>7.1.1 (2024-03-04)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>typescript-eslint:</strong> apply <code>ignores</code> to
all extended configs passed to <code>config</code> helper function (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8567">#8567</a>)</li>
</ul>
<h3>❤️  Thank You</h3>
<ul>
<li>auvred <a
href="https://github.com/auvred"><code>@​auvred</code></a></li>
</ul>
<p>You can read about our <a
href="https://main--typescript-eslint.netlify.app/users/versioning">versioning
strategy</a> and <a
href="https://main--typescript-eslint.netlify.app/users/releases">releases</a>
on our website.</p>
<h2>v7.1.0</h2>
<h2>7.1.0 (2024-02-26)</h2>
<h3>🚀 Features</h3>
<ul>
<li><strong>eslint-plugin:</strong> add *-type-checked-only configs (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8367">#8367</a>)</li>
<li><strong>eslint-plugin:</strong> [naming-convention] support the
auto-accessor syntax (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8084">#8084</a>)</li>
<li><strong>eslint-plugin:</strong> [consistent-return] add new rule (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8289">#8289</a>)</li>
<li><strong>typescript-estree:</strong> add debug logs for
useProgramFromProjectService (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8426">#8426</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [prefer-optional-chan] allow typeof
for avoiding reference error (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8472">#8472</a>)</li>
<li><strong>eslint-plugin:</strong> [no-misused-promises] improve check
union types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8534">#8534</a>)</li>
<li><strong>eslint-plugin:</strong> [no-use-before-define] fix false
positive type reference in as, satisfies (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8474">#8474</a>)</li>
<li><strong>typescript-estree:</strong> use simpler absolutify behavior
for project service client file paths (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8520">#8520</a>)</li>
</ul>
<h3>❤️  Thank You</h3>
<ul>
<li>Arka Pratim Chaudhuri <a
href="https://github.com/arka1002"><code>@​arka1002</code></a></li>
<li>Josh Goldberg </li>
<li>YeonJuan <a
href="https://github.com/yeonjuan"><code>@​yeonjuan</code></a></li>
</ul>
<p>You can read about our <a
href="https://main--typescript-eslint.netlify.app/users/versioning">versioning
strategy</a> and <a
href="https://main--typescript-eslint.netlify.app/users/releases">releases</a>
on our website.</p>
<h2>v7.0.2</h2>
<h2>7.0.2 (2024-02-19)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>fix tsconfig-less check errors, fix <code>@types/eslint</code>
incompatibilities, add tests (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8460">#8460</a>)</li>
<li><strong>utils:</strong> use mergeable interface for
<code>settings</code> property (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/8485">#8485</a>)</li>
</ul>
<h3>❤️  Thank You</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md"><code>@​typescript-eslint/parser</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>7.1.1 (2024-03-04)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>You can read about our <a
href="https://main--typescript-eslint.netlify.app/users/versioning">versioning
strategy</a> and <a
href="https://main--typescript-eslint.netlify.app/users/releases">releases</a>
on our website.</p>
<h2>7.1.0 (2024-02-26)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>You can read about our <a
href="https://main--typescript-eslint.netlify.app/users/versioning">versioning
strategy</a> and <a
href="https://main--typescript-eslint.netlify.app/users/releases">releases</a>
on our website.</p>
<h2>7.0.2 (2024-02-19)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li>fix tsconfig-less check errors, fix <code>@types/eslint</code>
incompatibilities, add tests</li>
</ul>
<h3>❤️  Thank You</h3>
<ul>
<li>Brad Zacher</li>
<li>Gareth Jones</li>
</ul>
<p>You can read about our <a
href="https://main--typescript-eslint.netlify.app/users/versioning">versioning
strategy</a> and <a
href="https://main--typescript-eslint.netlify.app/users/releases">releases</a>
on our website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="88b7463c89"><code>88b7463</code></a>
chore(release): publish 7.1.1</li>
<li><a
href="4bc6944f88"><code>4bc6944</code></a>
chore(release): publish 7.1.0</li>
<li><a
href="677e7cc97c"><code>677e7cc</code></a>
chore(release): publish 7.0.2</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.1/packages/parser">compare
view</a></li>
</ul>
</details>
<br />

Updates `eslint` from 8.56.0 to 8.57.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/releases">eslint's
releases</a>.</em></p>
<blockquote>
<h2>v8.57.0</h2>
<h2>Features</h2>
<ul>
<li><a
href="1120b9b7b9"><code>1120b9b</code></a>
feat: Add loadESLint() API method for v8 (<a
href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>)
(Nicholas C. Zakas)</li>
<li><a
href="dca7d0f1c2"><code>dca7d0f</code></a>
feat: Enable <code>eslint.config.mjs</code> and
<code>eslint.config.cjs</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18066">#18066</a>)
(Nitin Kumar)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li><a
href="2196d97094"><code>2196d97</code></a>
fix: handle absolute file paths in <code>FlatRuleTester</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>)
(Nitin Kumar)</li>
<li><a
href="69dd1d1387"><code>69dd1d1</code></a>
fix: Ensure config keys are printed for config errors (<a
href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>)
(Nitin Kumar)</li>
<li><a
href="9852a31edc"><code>9852a31</code></a>
fix: deep merge behavior in flat config (<a
href="https://redirect.github.com/eslint/eslint/issues/18065">#18065</a>)
(Nitin Kumar)</li>
<li><a
href="4c7e9b0b53"><code>4c7e9b0</code></a>
fix: allow circular references in config (<a
href="https://redirect.github.com/eslint/eslint/issues/18056">#18056</a>)
(Milos Djermanovic)</li>
</ul>
<h2>Documentation</h2>
<ul>
<li><a
href="84922d0bfa"><code>84922d0</code></a>
docs: Show prerelease version in dropdown (<a
href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>)
(Nicholas C. Zakas)</li>
<li><a
href="5b8c3636a3"><code>5b8c363</code></a>
docs: Switch to Ethical Ads (<a
href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>)
(Milos Djermanovic)</li>
<li><a
href="77dbfd9887"><code>77dbfd9</code></a>
docs: show NEXT in version selectors (<a
href="https://redirect.github.com/eslint/eslint/issues/18052">#18052</a>)
(Milos Djermanovic)</li>
</ul>
<h2>Chores</h2>
<ul>
<li><a
href="1813aecc46"><code>1813aec</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/8"><code>@​8</code></a>.57.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>)
(Milos Djermanovic)</li>
<li><a
href="5c356bb0c6"><code>5c356bb</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="f4a1fe2e45"><code>f4a1fe2</code></a>
test: add more tests for ignoring files and directories (<a
href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>)
(Nitin Kumar)</li>
<li><a
href="42c0aefaf6"><code>42c0aef</code></a>
ci: Enable CI for <code>v8.x</code> branch (<a
href="https://redirect.github.com/eslint/eslint/issues/18047">#18047</a>)
(Milos Djermanovic)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/eslint/eslint/blob/main/CHANGELOG.md">eslint's
changelog</a>.</em></p>
<blockquote>
<p>v8.57.0 - February 23, 2024</p>
<ul>
<li><a
href="1813aecc46"><code>1813aec</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/8"><code>@​8</code></a>.57.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>)
(Milos Djermanovic)</li>
<li><a
href="5c356bb0c6"><code>5c356bb</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="84922d0bfa"><code>84922d0</code></a>
docs: Show prerelease version in dropdown (<a
href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>)
(Nicholas C. Zakas)</li>
<li><a
href="1120b9b7b9"><code>1120b9b</code></a>
feat: Add loadESLint() API method for v8 (<a
href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>)
(Nicholas C. Zakas)</li>
<li><a
href="5b8c3636a3"><code>5b8c363</code></a>
docs: Switch to Ethical Ads (<a
href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>)
(Milos Djermanovic)</li>
<li><a
href="2196d97094"><code>2196d97</code></a>
fix: handle absolute file paths in <code>FlatRuleTester</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>)
(Nitin Kumar)</li>
<li><a
href="f4a1fe2e45"><code>f4a1fe2</code></a>
test: add more tests for ignoring files and directories (<a
href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>)
(Nitin Kumar)</li>
<li><a
href="69dd1d1387"><code>69dd1d1</code></a>
fix: Ensure config keys are printed for config errors (<a
href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>)
(Nitin Kumar)</li>
<li><a
href="9852a31edc"><code>9852a31</code></a>
fix: deep merge behavior in flat config (<a
href="https://redirect.github.com/eslint/eslint/issues/18065">#18065</a>)
(Nitin Kumar)</li>
<li><a
href="dca7d0f1c2"><code>dca7d0f</code></a>
feat: Enable <code>eslint.config.mjs</code> and
<code>eslint.config.cjs</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18066">#18066</a>)
(Nitin Kumar)</li>
<li><a
href="4c7e9b0b53"><code>4c7e9b0</code></a>
fix: allow circular references in config (<a
href="https://redirect.github.com/eslint/eslint/issues/18056">#18056</a>)
(Milos Djermanovic)</li>
<li><a
href="77dbfd9887"><code>77dbfd9</code></a>
docs: show NEXT in version selectors (<a
href="https://redirect.github.com/eslint/eslint/issues/18052">#18052</a>)
(Milos Djermanovic)</li>
<li><a
href="42c0aefaf6"><code>42c0aef</code></a>
ci: Enable CI for <code>v8.x</code> branch (<a
href="https://redirect.github.com/eslint/eslint/issues/18047">#18047</a>)
(Milos Djermanovic)</li>
</ul>
<p>v9.0.0-beta.0 - February 9, 2024</p>
<ul>
<li><a
href="e40d1d74a5"><code>e40d1d7</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/9"><code>@​9</code></a>.0.0-beta.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18108">#18108</a>)
(Milos Djermanovic)</li>
<li><a
href="9870f93e71"><code>9870f93</code></a>
chore: package.json update for <code>@​eslint/js</code> release
(Jenkins)</li>
<li><a
href="2c62e797a4"><code>2c62e79</code></a>
chore: upgrade <code>@​eslint/eslintrc</code><a
href="https://github.com/3"><code>@​3</code></a>.0.1 (<a
href="https://redirect.github.com/eslint/eslint/issues/18107">#18107</a>)
(Milos Djermanovic)</li>
<li><a
href="81f0294e65"><code>81f0294</code></a>
chore: upgrade espree@10.0.1 (<a
href="https://redirect.github.com/eslint/eslint/issues/18106">#18106</a>)
(Milos Djermanovic)</li>
<li><a
href="5e2b2922aa"><code>5e2b292</code></a>
chore: upgrade eslint-visitor-keys@4.0.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18105">#18105</a>)
(Milos Djermanovic)</li>
<li><a
href="916364692b"><code>9163646</code></a>
feat!: Rule Tester checks for missing placeholder data in the message
(<a
href="https://redirect.github.com/eslint/eslint/issues/18073">#18073</a>)
(fnx)</li>
<li><a
href="53f0f47bad"><code>53f0f47</code></a>
feat: Add loadESLint() API method for v9 (<a
href="https://redirect.github.com/eslint/eslint/issues/18097">#18097</a>)
(Nicholas C. Zakas)</li>
<li><a
href="f1c7e6fc8e"><code>f1c7e6f</code></a>
docs: Switch to Ethical Ads (<a
href="https://redirect.github.com/eslint/eslint/issues/18090">#18090</a>)
(Strek)</li>
<li><a
href="15c143f96e"><code>15c143f</code></a>
docs: JS Foundation -&gt; OpenJS Foundation in PR template (<a
href="https://redirect.github.com/eslint/eslint/issues/18092">#18092</a>)
(Nicholas C. Zakas)</li>
<li><a
href="c4d26fd3d1"><code>c4d26fd</code></a>
fix: <code>use-isnan</code> doesn't report on
<code>SequenceExpression</code>s (<a
href="https://redirect.github.com/eslint/eslint/issues/18059">#18059</a>)
(StyleShit)</li>
<li><a
href="6ea339e658"><code>6ea339e</code></a>
docs: add stricter rule test validations to v9 migration guide (<a
href="https://redirect.github.com/eslint/eslint/issues/18085">#18085</a>)
(Milos Djermanovic)</li>
<li><a
href="ce838adc3b"><code>ce838ad</code></a>
chore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18045">#18045</a>)
(renovate[bot])</li>
<li><a
href="3c816f193e"><code>3c816f1</code></a>
docs: use relative link from CLI to core concepts (<a
href="https://redirect.github.com/eslint/eslint/issues/18083">#18083</a>)
(Milos Djermanovic)</li>
<li><a
href="54df731174"><code>54df731</code></a>
chore: update dependency markdownlint-cli to ^0.39.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18084">#18084</a>)
(renovate[bot])</li>
<li><a
href="9458735381"><code>9458735</code></a>
docs: fix malformed <code>eslint</code> config comments in rule examples
(<a
href="https://redirect.github.com/eslint/eslint/issues/18078">#18078</a>)
(Francesco Trotta)</li>
<li><a
href="07a1ada716"><code>07a1ada</code></a>
docs: link from <code>--fix</code> CLI doc to the relevant core concept
(<a
href="https://redirect.github.com/eslint/eslint/issues/18080">#18080</a>)
(Bryan Mishkin)</li>
<li><a
href="8f06a60684"><code>8f06a60</code></a>
chore: update dependency shelljs to ^0.8.5 (<a
href="https://redirect.github.com/eslint/eslint/issues/18079">#18079</a>)
(Francesco Trotta)</li>
<li><a
href="b844324e4e"><code>b844324</code></a>
docs: Update team responsibilities (<a
href="https://redirect.github.com/eslint/eslint/issues/18048">#18048</a>)
(Nicholas C. Zakas)</li>
<li><a
href="aadfb609f1"><code>aadfb60</code></a>
docs: document languageOptions and other v9 changes for context (<a
href="https://redirect.github.com/eslint/eslint/issues/18074">#18074</a>)
(fnx)</li>
<li><a
href="3c4d51d55f"><code>3c4d51d</code></a>
feat!: default for <code>enforceForClassMembers</code> in
<code>no-useless-computed-key</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18054">#18054</a>)
(Francesco Trotta)</li>
<li><a
href="47e60f85e0"><code>47e60f8</code></a>
feat!: Stricter rule test validations (<a
href="https://redirect.github.com/eslint/eslint/issues/17654">#17654</a>)
(fnx)</li>
<li><a
href="1a94589010"><code>1a94589</code></a>
feat!: <code>no-unused-vars</code> default caughtErrors to 'all' (<a
href="https://redirect.github.com/eslint/eslint/issues/18043">#18043</a>)
(Josh Goldberg )</li>
<li><a
href="857e242584"><code>857e242</code></a>
docs: tweak explanation for meta.docs rule properties (<a
href="https://redirect.github.com/eslint/eslint/issues/18057">#18057</a>)
(Bryan Mishkin)</li>
<li><a
href="10485e8b96"><code>10485e8</code></a>
docs: recommend messageId over message for reporting rule violations (<a
href="https://redirect.github.com/eslint/eslint/issues/18050">#18050</a>)
(Bryan Mishkin)</li>
<li><a
href="98b5ab406b"><code>98b5ab4</code></a>
docs: Update README (GitHub Actions Bot)</li>
<li><a
href="93ffe30da5"><code>93ffe30</code></a>
chore: update dependency file-entry-cache to v8 (<a
href="https://redirect.github.com/eslint/eslint/issues/17903">#17903</a>)
(renovate[bot])</li>
<li><a
href="505fbf4b35"><code>505fbf4</code></a>
docs: update <code>no-restricted-imports</code> rule (<a
href="https://redirect.github.com/eslint/eslint/issues/18015">#18015</a>)
(Tanuj Kanti)</li>
<li><a
href="2d11d46e89"><code>2d11d46</code></a>
feat: add suggestions to <code>use-isnan</code> in binary expressions
(<a
href="https://redirect.github.com/eslint/eslint/issues/17996">#17996</a>)
(StyleShit)</li>
<li><a
href="c25b4aff1f"><code>c25b4af</code></a>
docs: Update README (GitHub Actions Bot)</li>
</ul>
<p>v9.0.0-alpha.2 - January 26, 2024</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="abea3b6f39"><code>abea3b6</code></a>
8.57.0</li>
<li><a
href="1cd3f8c34d"><code>1cd3f8c</code></a>
Build: changelog update for 8.57.0</li>
<li><a
href="1813aecc46"><code>1813aec</code></a>
chore: upgrade <code>@​eslint/js</code><a
href="https://github.com/8"><code>@​8</code></a>.57.0 (<a
href="https://redirect.github.com/eslint/eslint/issues/18143">#18143</a>)</li>
<li><a
href="5c356bb0c6"><code>5c356bb</code></a>
chore: package.json update for <code>@​eslint/js</code> release</li>
<li><a
href="84922d0bfa"><code>84922d0</code></a>
docs: Show prerelease version in dropdown (<a
href="https://redirect.github.com/eslint/eslint/issues/18139">#18139</a>)</li>
<li><a
href="1120b9b7b9"><code>1120b9b</code></a>
feat: Add loadESLint() API method for v8 (<a
href="https://redirect.github.com/eslint/eslint/issues/18098">#18098</a>)</li>
<li><a
href="5b8c3636a3"><code>5b8c363</code></a>
docs: Switch to Ethical Ads (<a
href="https://redirect.github.com/eslint/eslint/issues/18117">#18117</a>)</li>
<li><a
href="2196d97094"><code>2196d97</code></a>
fix: handle absolute file paths in <code>FlatRuleTester</code> (<a
href="https://redirect.github.com/eslint/eslint/issues/18064">#18064</a>)</li>
<li><a
href="f4a1fe2e45"><code>f4a1fe2</code></a>
test: add more tests for ignoring files and directories (<a
href="https://redirect.github.com/eslint/eslint/issues/18068">#18068</a>)</li>
<li><a
href="69dd1d1387"><code>69dd1d1</code></a>
fix: Ensure config keys are printed for config errors (<a
href="https://redirect.github.com/eslint/eslint/issues/18067">#18067</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@astrojs/check` from 0.5.4 to 0.5.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/language-tools/releases"><code>@​astrojs/check</code>'s
releases</a>.</em></p>
<blockquote>
<h2><code>@​astrojs/check</code><a
href="https://github.com/0"><code>@​0</code></a>.5.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>fe6165b: Makes astro check --tsconfig understand relative file
names</li>
<li>Updated dependencies [fe6165b]
<ul>
<li><code>@​astrojs/language-server</code><a
href="https://github.com/2"><code>@​2</code></a>.7.6</li>
</ul>
</li>
</ul>
<h2><code>@​astrojs/check</code><a
href="https://github.com/0"><code>@​0</code></a>.5.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>1436e6e: Fixes mapping from compiler location to LSP range.</li>
<li>Updated dependencies [7c4c1f2]</li>
<li>Updated dependencies [1436e6e]
<ul>
<li><code>@​astrojs/language-server</code><a
href="https://github.com/2"><code>@​2</code></a>.7.5</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/withastro/language-tools/blob/main/packages/astro-check/CHANGELOG.md"><code>@​astrojs/check</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>0.5.6</h2>
<h3>Patch Changes</h3>
<ul>
<li>fe6165b: Makes astro check --tsconfig understand relative file
names</li>
<li>Updated dependencies [fe6165b]
<ul>
<li><code>@​astrojs/language-server</code><a
href="https://github.com/2"><code>@​2</code></a>.7.6</li>
</ul>
</li>
</ul>
<h2>0.5.5</h2>
<h3>Patch Changes</h3>
<ul>
<li>1436e6e: Fixes mapping from compiler location to LSP range.</li>
<li>Updated dependencies [7c4c1f2]</li>
<li>Updated dependencies [1436e6e]
<ul>
<li><code>@​astrojs/language-server</code><a
href="https://github.com/2"><code>@​2</code></a>.7.5</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="153e9bb290"><code>153e9bb</code></a>
Version Packages (<a
href="https://github.com/withastro/language-tools/tree/HEAD/packages/astro-check/issues/807">#807</a>)</li>
<li><a
href="28ecc4749a"><code>28ecc47</code></a>
Version Packages (<a
href="https://github.com/withastro/language-tools/tree/HEAD/packages/astro-check/issues/801">#801</a>)</li>
<li>See full diff in <a
href="https://github.com/withastro/language-tools/commits/@astrojs/check@0.5.6/packages/astro-check">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
2024-03-07 05:58:57 -08:00
dependabot[bot] 409946a5d3
Bump the dev-dependencies group with 4 updates
Bumps the dev-dependencies group with 4 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [eslint](https://github.com/eslint/eslint) and [@astrojs/check](https://github.com/withastro/language-tools/tree/HEAD/packages/astro-check).


Updates `@types/node` from 20.11.19 to 20.11.25
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `@typescript-eslint/parser` from 7.0.1 to 7.1.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.1.1/packages/parser)

Updates `eslint` from 8.56.0 to 8.57.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.56.0...v8.57.0)

Updates `@astrojs/check` from 0.5.4 to 0.5.6
- [Release notes](https://github.com/withastro/language-tools/releases)
- [Changelog](https://github.com/withastro/language-tools/blob/main/packages/astro-check/CHANGELOG.md)
- [Commits](https://github.com/withastro/language-tools/commits/@astrojs/check@0.5.6/packages/astro-check)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: "@astrojs/check"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-07 12:22:33 +00:00
Adam Matthiesen 4a5e508cfb Update dependencies in pnpm-lock.yaml 2024-03-07 04:16:13 -08:00
Adam Matthiesen c1db889879
Chore: Ready for Release (#81)
This PR was opened by a GitHub Action to signify a new release is ready!

# Releases
## @matthiesenxyz/astro-ghostcms@3.3.0

### Minor Changes

- eebcd36: This is a HUGE internal update, Our integration is now built
on
[`Astro-Integration-Kit`](https://github.com/florian-lefebvre/astro-integration-kit)
to give better control over the entire `Astro-GhostCMS` Eco-System.

    # Breaking Changes:

- NEW USER CONFIG! Some of the options have changed! Please check the
Readme for a current version of the available options!
- Thats it! Some how even though this is almost an entire rebuild, There
is no other USER breaking changes aside from the new more advanced
config!

    # Updates:

- Moved from `@ts-ghost/core-api` to `@ts-ghost/content-api` as it
provides the same functions as the standard core-api but pre-wrapped
with a nice `HTTPClientFactory` instead of `HTTPClient`.
- Updated a ton of Dependencies that Dependabot was reporting as needed
updated.

## @matthiesenxyz/create-astro-ghostcms@0.1.0

### Minor Changes

-   9ec2a61: Bumb all templates to new `astro-ghostcms` version v3.3

## @matthiesenxyz/starlight-ghostcms@0.1.0

### Minor Changes

-   9ec2a61: Bumb GhostCMS API, No user facing breaking changes.

    NEW:

- You can now set a `route: "blog"` in your `astro.config.mjs` to change
the default `/<route>` to your blog/posts
2024-03-07 04:12:19 -08:00
github-actions[bot] 5b94b30316 chore: update versions 2024-03-07 12:08:51 +00:00
Adam Matthiesen 62159744bc
Chore: Upgrade to `AIK` & Massive Overhaul to internal processing (#78)
This PR is described under Issue #77
2024-03-07 04:08:19 -08:00
Adam Matthiesen b6ba6fedc1 Refactor route generation in starlight-ghostcms integration 2024-03-07 04:05:50 -08:00
Adam Matthiesen 5e73f12070 update and remove now unused package 2024-03-05 23:15:39 -08:00
Adam Matthiesen c896e50468 some more cleanup and fixes 2024-03-05 23:12:40 -08:00
Adam Matthiesen 70c366e0b8 cleanup 2024-03-05 22:31:18 -08:00
Adam Matthiesen edad9da91f some more starlight cleanup... also powered by AIK 2024-03-05 22:25:43 -08:00
Adam Matthiesen f078ebc063 new starlight feature.... prep for expansion of astro-ghostcms 2024-03-05 21:24:01 -08:00
Adam Matthiesen 70b6fd2d16 remove unused config option 2024-03-05 20:26:43 -08:00
Adam Matthiesen f7816e69a6 cleanup starlight-ghostcms code 2024-03-05 20:24:59 -08:00
Adam Matthiesen 363c22bf36 removed extra changeset 2024-03-05 19:02:07 -08:00
Adam Matthiesen 9ec2a61782 Updates to starlight-ghostcms and create-astro-ghostcms 2024-03-05 19:00:22 -08:00
Adam Matthiesen 9f6f137155 Change all InjectRoute entrypoints to utilitze the `createResolver` `resolve()` Util 2024-03-05 01:30:10 -08:00
Adam Matthiesen b1d7a044cf new logging 2024-03-05 01:16:10 -08:00
Adam Matthiesen bc3ec6d653 fix casing 2024-03-05 01:01:59 -08:00
Adam Matthiesen 01ad923e30 last change.... i forgot to remove those two `?` marks as they are no longer required 2024-03-05 00:14:18 -08:00
Adam Matthiesen b50e8882cc better config typings... made it way better XD 2024-03-05 00:11:03 -08:00
Adam Matthiesen 30ad4ac355
Update changeset-main.yml 2024-03-04 22:48:29 -08:00
Adam Matthiesen 33d8d1782a
Update changeset-main.yml 2024-03-04 22:46:49 -08:00
Adam Matthiesen e73131984b
Update changeset-main.yml 2024-03-04 22:18:29 -08:00
Adam Matthiesen 24a7b3144b
Update changeset-main.yml 2024-03-04 22:18:10 -08:00
Adam Matthiesen 0441bc0fad
Update changeset-main.yml 2024-03-04 22:00:32 -08:00
Adam Matthiesen 28d9c9e5c4
Update changeset-main.yml 2024-03-04 22:00:13 -08:00
Adam Matthiesen 546bd3fe10
Update changeset-main.yml 2024-03-04 21:58:53 -08:00
Adam Matthiesen ee0d5b5147 more internal code notes! 2024-03-04 12:58:42 -08:00
Adam Matthiesen f881e4f2a6 change path resolver to `AIK` resolve function now that i figured it out... XD 2024-03-04 12:50:20 -08:00
Adam Matthiesen c077205215 updated and verified tests are still working 2024-03-04 12:43:45 -08:00
Adam Matthiesen 621bafbd61 update deps 2024-03-04 12:39:42 -08:00
Adam Matthiesen 5cfea0a0a7 remove unused import 2024-03-04 12:32:42 -08:00
Adam Matthiesen e3080d763c removed unused function... i dont need to create a dts for this virtual module within the user scope 2024-03-04 12:31:09 -08:00
Adam Matthiesen 6f78923d92 cleanup imports 2024-03-04 12:15:28 -08:00
Adam Matthiesen 5b4c3e3268 cleanup and OCD some code... 2024-03-04 12:02:55 -08:00
Adam Matthiesen e0372288ed more helpers.... 2024-03-04 11:54:40 -08:00
Adam Matthiesen aea8305ac0 add checkIntegration helper for sitemap and astro-robots-txt 2024-03-04 11:11:15 -08:00
Adam Matthiesen 41b0ce75d3 Verbose log helper function added to all the others now 2024-03-04 10:36:00 -08:00
Adam Matthiesen 5f1f157152 remove unused import 2024-03-04 10:27:26 -08:00
Adam Matthiesen 3a9ee8aa0b add verbose helper function 2024-03-04 10:25:19 -08:00
Adam Matthiesen 03c1de5591 change `else { if() ` to `else if` 2024-03-04 09:09:09 -08:00
Adam Matthiesen 1350532de4 last check to make sure things are working.... AND LINT! 2024-03-03 11:42:34 -08:00
Adam Matthiesen 078b1c4088 Change Version of Starlight GhostCMS TS-coreAPI to be stuck and prevent updating to v6.0.0 as that would be a breaking change 2024-03-03 11:12:48 -08:00
Adam Matthiesen eebcd36583 add changeset to prep for PR 2024-03-03 11:11:28 -08:00
Adam Matthiesen 4288cbe1ac update. More progress and nothing has broken 2024-03-03 10:41:41 -08:00
Adam Matthiesen 302af0f7b6 update 2024-03-03 10:37:18 -08:00
Adam Matthiesen 65f3f2b019 Some cleanup, and change to how config options are 2024-03-03 10:25:51 -08:00
Adam Matthiesen 017e641afd Woo Better config options! 2024-03-03 09:51:00 -08:00
Adam Matthiesen 657cfe7568 update readme 2024-03-03 08:58:22 -08:00
Adam Matthiesen 5f7ac8e4a6 massive lint 2024-03-03 08:49:15 -08:00
Adam Matthiesen 3192714355 code cleanup and fixes 2024-03-03 08:43:44 -08:00
Adam Matthiesen 2901524b8a move import 2024-03-03 08:17:27 -08:00
Adam Matthiesen 557120f6e6 New version check system setup 2024-03-03 08:16:17 -08:00
Adam Matthiesen fd21ee8df5 Some basic tests 2024-03-03 07:06:58 -08:00
Adam Matthiesen 8db7190be8 First group of progress changes... and it works 2024-03-03 05:17:54 -08:00
Adam Matthiesen 8e276d533d
chore: update versions (#74)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @matthiesenxyz/starlight-ghostcms@0.0.7

### Patch Changes

- cb979d5: Adds 2 new pages, Authors, and about page(Link will disappear
if you dont have the default ghost about page with slug "about"). Also
adds auto links from ghost settings for twitter and facebook if not set
my the user in starlight.
2024-02-21 16:45:18 -08:00
github-actions[bot] a9a0222c59 chore: update versions 2024-02-22 00:44:29 +00:00
Adam Matthiesen 127bcd22c9
Starlight-GhostCMS: Add 2 new pages, and social icons (#73)
Just a quick patch to add the following

- About page that will turn on if a GhostCMS page with the slug "about"
is available (This is true in any default Ghost install)
- Add Authors page
- Adds Twitter & Facebook social icons from ghost to Starlight if not
filled by user in Starlight config
2024-02-21 16:43:58 -08:00
Adam Matthiesen cb979d5b0f add changeset 2024-02-21 16:26:09 -08:00
Adam Matthiesen e99553f413 add authors page, facebook and twitter autofil from ghost if not set by user, and added an about page that will auto populate if users have a Page on their ghost server called about like in the default configuration. 2024-02-21 16:22:58 -08:00
Adam Matthiesen 271ad759a8
chore: update versions (#72)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @matthiesenxyz/starlight-ghostcms@0.0.6

### Patch Changes

- 40d6454: add rss feeds, also adds a link in the socials based on the
astro `site` config option
2024-02-21 05:44:13 -08:00
github-actions[bot] d8463fb696 chore: update versions 2024-02-21 13:38:45 +00:00
Adam Matthiesen 40d6454fee add rss feature 2024-02-21 05:36:27 -08:00
Adam Matthiesen 32bab4e4c6 Merge branch 'main' of https://github.com/MatthiesenXYZ/astro-ghostcms 2024-02-21 05:06:31 -08:00
Adam Matthiesen e2438684f7 update 2024-02-21 05:06:23 -08:00
Adam Matthiesen 94b71b11d0
Update README.md 2024-02-20 08:13:25 -08:00
Adam Matthiesen 62f917ac8c
Update README.md 2024-02-20 08:12:20 -08:00
Adam Matthiesen 5560722bd8
Update README.md 2024-02-20 08:12:10 -08:00
Adam Matthiesen ebd45257f6
Update README.md 2024-02-20 08:11:27 -08:00
Adam Matthiesen 504cdc90e9
chore: update versions (#71)
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @matthiesenxyz/starlight-ghostcms@0.0.5

### Patch Changes

-   95171f3: fixed spelling issues in package.json
2024-02-20 07:24:58 -08:00
github-actions[bot] 6044e4e63f chore: update versions 2024-02-20 15:24:37 +00:00
Adam Matthiesen 517081a1e8 update lockfile 2024-02-20 07:23:54 -08:00
Adam Matthiesen 95171f3329 fix spelling issues 2024-02-20 07:22:02 -08:00
226 changed files with 4586 additions and 3921 deletions

View File

@ -7,5 +7,5 @@
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": ["playground","starlight-playground"]
"ignore": ["astro-playground", "starlight-playground"]
}

18
.github/ISSUE_TEMPLATE/new_chore.md vendored Normal file
View File

@ -0,0 +1,18 @@
---
name: New Chore
about: Used to create a new Chore for a needed task
title: "Chore: [NAME]"
labels: chore
---
**Is your chore related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

38
.github/issue-branch.yml vendored Normal file
View File

@ -0,0 +1,38 @@
branchName: 'issue-${issue.number}-${issue.title[0,32]}'
gitReplaceChars: '/<>'
autoLinkIssue: true
openDraftPR: true
prSkipCI: true
copyIssueDescriptionToPR: true
copyIssueLabelsToPR: true
copyIssueAssigneeToPR: true
copyIssueProjectsToPR: true
copyIssueMilestoneToPR: true
conventionalPrTitles: true
conventionalLabels:
fix:
bug: '🐛'
dependencies: '⬆️'
security: '🔒'
feat:
enhancement: '✨'
new-stuff: '🚀'
build:
build: '🔧'
chore:
chore: '♻️'
ci:
ci: '👷'
docs:
documentation: '📝'
style:
style: '💎'
refactor:
refactor: '♻️'
perf:
performance: '⚡️'
test:
test: '✅'
breaking:
breaking-change: '💥'
breaking change: '💥'

View File

@ -1,8 +1,7 @@
name: "Changesets: Build Changesets for Dependabot"
#on: pull_request
on:
workflow_dispatch:
on: pull_request
permissions:
contents: write

View File

@ -3,6 +3,9 @@ on:
push:
branches:
- main
permissions:
pull-requests: write
contents: write
env:
CI: true
jobs:
@ -17,19 +20,19 @@ jobs:
- name: setup node.js
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 20
- name: install pnpm
run: npm i pnpm@latest -g
- name: Setup npmrc
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- name: install dependencies
run: pnpm install
run: pnpm install --no-frozen-lockfile
- name: create and publish versions
uses: matthiesenxyz/changeset-action@v1
uses: matthiesenxyz/changeset@v1
with:
version: pnpm ci:version
commit: "chore: update versions"
title: "chore: update versions"
title: "👷 [ci]: Ready for Release"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.ACTION_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

17
.github/workflows/coauthor.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: Write coauthors to a pull request
permissions:
pull-requests: write
on:
issue_comment:
types:
- created
jobs:
generate-coauthors:
name: Generate Coauthor
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: kevinzunigacuellar/coauthor-action@v0.1.2

View File

@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: jauderho/git-repo-sync@63782025e80e84c48b25a1ee6bb9a22a3bd570d3
- uses: MatthiesenXYZ/git-sync-action@v1.1
with:
# Such as https://github.com/wangchucheng/git-repo-sync.git
target-url: ${{ secrets.GITLAB_URL }}

View File

@ -11,6 +11,7 @@ Don't like GitHub, and prefer GitLab? This Repo is Auto Cloned to Gitlab! Check
- [Default Theme](https://demo.astro-ghostcms.xyz) - ( [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-themedefault) )
- [Catppuccin Theme](https://catppuccindark-demo.astro-ghostcms.xyz/) - ( [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-catppuccin) )
- [Brutal by Elian Theme](https://brutal-demo.astro-ghostcms.xyz) - ( [Github Repo](https://github.com/MatthiesenXYZ/demo-astroghostcms-brutalbyelian) )
- [Starlight GhostCMS](https://starlightdemo.astro-ghostcms.xyz/) - ( [Github Repo](https://github.com/MatthiesenXYZ/demo-starlightghostcms) )
## Quick Start
@ -29,16 +30,16 @@ This repo is structured as a `pnpm` monorepo. All of our packages can be found
In this Repo you will find the Following:
- `playground`: Development and Testing
- `playgrounds/`:
- [`astro-playground`](./playgrounds/astro-playground/): Playground for Astro-GhostCMS development and testing.
- [`starlight-playground`](./playgrounds/starlight-playground/): Playground of Starlight-GhostCMS development and testing.
- `packages/`:
- [`create-astro-ghostcms`](./packages/create-astro-ghostcms/): CLI Utility to quickly deploy new Astro-GhostCMS projects.
- [`astro-ghostcms`](./packages/astro-ghostcms/): The main Integration!
- [`astro-ghostcms-rendercontent`](./packages/astro-ghostcms-rendercontent/): Allows rendering of remote GhostCMS HTML with Custom Astro Components
- [`astro-ghostcms-theme-default`](./packages/astro-ghostcms-theme-default/): The Default theme in integration mode.
- [`astro-ghostcms-catppuccin`](./packages/astro-ghostcms-catppuccin/): A dark theme made with Catppuccin and TailwindCSS for Astro-GhostCMS Integration Mode.
- [`astro-ghostcms-brutalbyelian`](./packages/astro-ghostcms-brutalbyelian/): [ElianCodes](https://www.elian.codes/) Brutal theme modified to work with Astro-GhostCMS
- [`starlight-ghostcms`](./packages/starlight-ghostcms/) A [Starlight Plugin](https://starlight.astro.build/resources/plugins/) to integrate your GhostCMS into your documentation website
- `tsconfig`: *LOCAL* Development package for `@ts-ghost/core-api`.
## Contributing

View File

@ -6,26 +6,26 @@
"node": ">=18.19.0"
},
"scripts": {
"dev": "pnpm --filter playground dev",
"astro:dev": "pnpm --filter astro-playground dev",
"starlight:dev": "pnpm --filter starlight-playground dev",
"lint": "biome check .",
"lint:fix": "biome check --apply .",
"ci:version": "pnpm changeset version",
"ci:publish": "pnpm changeset publish",
"ci:test:api": "pnpm --filter astro-ghostcms test:ci",
"test:api": "pnpm --filter astro-ghostcms test",
"test:api:watch": "pnpm --filter astro-ghostcms test:watch",
"test:api:coverage": "pnpm --filter astro-ghostcms test:coverage",
"test:create": "pnpm --filter create-astro-ghostcms test",
"test:slg": "pnpm --filter starlight-ghostcms test",
"test:slg:watch": "pnpm --filter starlight-ghostcms test:watch",
"test:slg:coverage": "pnpm --filter starlight-ghostcms test:coverage"
"ci:test:integration": "pnpm --filter astro-ghostcms test:ci",
"test:integration": "pnpm --filter astro-ghostcms test",
"test:integration:watch": "pnpm --filter astro-ghostcms test:watch",
"test:integration:coverage": "pnpm --filter astro-ghostcms test:coverage",
"test:create-utility": "pnpm --filter create-astro-ghostcms test",
"test:starlight": "pnpm --filter starlight-ghostcms test",
"test:starlight:watch": "pnpm --filter starlight-ghostcms test:watch",
"test:starlight:coverage": "pnpm --filter starlight-ghostcms test:coverage"
},
"devDependencies": {
"@biomejs/biome": "1.5.3",
"@biomejs/biome": "1.6.1",
"@changesets/cli": "^2.27.1",
"vitest": "^1.3.0",
"vitest-fetch-mock": "^0.2.2",
"@vitest/ui": "1.3.0"
"@vitest/ui": "^1.4.0",
"vitest": "^1.4.0",
"vitest-fetch-mock": "^0.2.2"
}
}

View File

@ -1,5 +1,83 @@
# @matthiesenxyz/astro-ghostcms-brutalbyelian
## 0.0.18
### Patch Changes
- f82035b: Bump dependencies:
- astro-integration-kit from to
- @unocss/astro from to
- @unocss/reset from to
- astro-font from to
- unocss from to
- sass from to
- @matthiesenxyz/astro-gists from to
- vite-tsconfig-paths from to
- astro from to
- Updated dependencies [f82035b]
- @matthiesenxyz/astro-ghostcms@3.3.5
## 0.0.17
### Patch Changes
- f097c6a: Adds a toggleswitch to allow users to disable astro-remote usage for rendering ghost-content
- Updated dependencies [f097c6a]
- @matthiesenxyz/astro-ghostcms@3.3.4
## 0.0.16
### Patch Changes
- b0218e1: fix:
- Removed CodeSlot Component that sometimes would break with some <pre> components
- Will be adding at a latter time a custom component to replace this, but at this time this is now fixed.
## 0.0.15
### Patch Changes
- 4c1002a: fix getAllTags bug for themes and bump other packages deps
- Updated dependencies [4c1002a]
- @matthiesenxyz/astro-ghostcms@3.3.2
## 0.0.14
### Patch Changes
- 746fcc5: Fix html rendering to allow custom components
## 0.0.13
### Patch Changes
- 2724119: Migrate from `astro-ghostcms-rendercontent` to `astro-remote` for internal processing of GhostCMS HTML. no user changes required.
## 0.0.12
### Patch Changes
- f921005: Bump dependencies:
- vite from to
- @eliancodes/brutal-ui from to
- typescript from to
- ultrahtml from to
- @fontsource-variable/inter from to
- astro-seo from to
- astro from to
- sass from to
- @astrojs/starlight from to
- sharp from to
- Updated dependencies [f921005]
- Updated dependencies [f921005]
- @matthiesenxyz/astro-ghostcms@3.3.1
- @matthiesenxyz/astro-ghostcms-rendercontent@0.0.8
## 0.0.11
### Patch Changes

View File

@ -1,7 +1,7 @@
{
"name": "@matthiesenxyz/astro-ghostcms-brutalbyelian",
"description": "ElianCodes Brutal theme modified to work with Astro-GhostCMS",
"version": "0.0.11",
"version": "0.0.18",
"homepage": "https://astro-ghostcms.xyz/",
"type": "module",
"license": "MIT",
@ -42,29 +42,27 @@
},
"scripts": {},
"peerDependencies": {
"astro": "^4.2.0"
"@matthiesenxyz/astro-ghostcms": ">=3.3.5",
"astro": ">=4.4.1"
},
"devDependencies": {
"@typescript-eslint/parser": "^7.0.1",
"eslint": "^8.56.0",
"@typescript-eslint/parser": "^7.2.0",
"eslint": "^8.57.0",
"eslint-plugin-astro": "^0.31.4",
"eslint-plugin-jsx-a11y": "^6.8.0",
"prettier-plugin-astro": "^0.13.0",
"prettier": "^3.2.5",
"@matthiesenxyz/astro-ghostcms": "workspace:*",
"@matthiesenxyz/astro-ghostcms-rendercontent": "workspace:*"
"prettier": "^3.2.5"
},
"dependencies": {
"@eliancodes/brutal-ui": "^0.2.6",
"@iconify-json/logos": "^1.1.41",
"@iconify-json/uil": "^1.1.8",
"@matthiesenxyz/astro-ghostcms": "^3.2.9",
"@matthiesenxyz/astro-ghostcms-rendercontent": "^0.0.7",
"@unocss/astro": "^0.58.5",
"@unocss/reset": "^0.58.5",
"unocss": "^0.58.5",
"@eliancodes/brutal-ui": "^0.2.3",
"astro-font": "^0.0.77",
"typescript": "^5.3.3",
"ultrahtml": "^1.5.2"
"@unocss/astro": "^0.58.6",
"@unocss/reset": "^0.58.6",
"astro-font": "^0.0.78",
"astro-remote": "0.3.2",
"typescript": "^5.4.2",
"ultrahtml": "^1.5.3",
"unocss": "^0.58.6"
}
}

View File

@ -1,6 +1,11 @@
---
import { getGhostImgPath } from "../../utils";
import type { Settings } from "@matthiesenxyz/astro-ghostcms/api";
import { Markup } from 'astro-remote';
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export type Props = {
image: string;
alt?: string;
@ -22,5 +27,8 @@ const { image, alt, caption = "", settings, transitionName } = Astro.props as Pr
alt={alt}
transition:name={transitionName}
/>
{caption && <figcaption class="text-ctp-overlay2"><Fragment set:html={caption}></figcaption>}
{caption && (
<figcaption class="text-ctp-overlay2">
{useRemote ? <Markup content={caption} /> : <Fragment set:html={caption} />}
</figcaption>)}
</figure>

View File

@ -1,12 +0,0 @@
---
import { Code } from "astro/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 } = codetag
const code = children[0].value
---
<Code code={code} lang={"sh"} theme={"monokai"}/>

View File

@ -4,6 +4,5 @@ export { default as H3 } from "./H3.astro";
export { default as H4 } from "./H4.astro";
export { default as H5 } from "./H5.astro";
export { default as H6 } from "./H6.astro";
export { default as CodeSlot } from "./CodeSlot.astro";
export { default as Paragraph } from "./Paragraph.astro";
export { default as astrocard } from "./astrocard.astro";

View File

@ -4,9 +4,12 @@ import { getAllPosts, getAllPages, getSettings, invariant } from "@matthiesenxyz
import type { InferGetStaticPropsType } from "astro";
import RecentBlogPosts from "../components/generic/RecentBlogPosts.astro";
import BlogPostHeader from "../components/blog/BlogPostHeader.astro";
import { GhostRender } from "@matthiesenxyz/astro-ghostcms-rendercontent";
import { Markup } from 'astro-remote';
import * as C from "../components/ghostrender";
import { Card } from "@eliancodes/brutal-ui";
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export async function getStaticPaths() {
const [posts, pages, settings] = await Promise.all([getAllPosts(), await getAllPages(), await getSettings()]);
@ -30,8 +33,12 @@ invariant(settings, "Settings are required");
<div class="my-5"/>
<div id="ghost">
<GhostRender
{useRemote ? <Markup
content={post.html}
sanitize={{
allowComponents: true,
allowElements: ['a', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'figure', 'figcaption', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'em', 'strong', 'del', 'hr', 'br', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'div', 'span', 'script', 'astrocard'],
}}
components={{
h1: C.H1,
h2: C.H2,
@ -39,11 +46,10 @@ invariant(settings, "Settings are required");
h4: C.H4,
h5: C.H5,
h6: C.H6,
pre: C.CodeSlot,
p: C.Paragraph,
astrocard: C.astrocard,
}}
/>
/> : <Fragment set:html={post.html} />}
</div>
</article>

View File

@ -8,7 +8,7 @@ import { getAllPosts, getAllTags, getSettings, invariant } from "@matthiesenxyz/
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {

View File

@ -2,7 +2,7 @@
import Layout from '../layouts/Default.astro';
import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import TagSummaryCard from '../components/generic/TagSummaryCard.astro';
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, 'Settings not found');
const title = settings.title;
@ -16,7 +16,7 @@ const description = settings.description;
description={description}
>
<main class='bg-pink p-6'>
{
{
tags
.filter((tag) => tag.slug && !tag.slug.startsWith("hash-"))
.map((tag) => (

View File

@ -1,5 +1,62 @@
# @matthiesenxyz/astro-ghostcms-catppuccin
## 0.0.14
### Patch Changes
- f097c6a: Adds a toggleswitch to allow users to disable astro-remote usage for rendering ghost-content
- Updated dependencies [f097c6a]
- @matthiesenxyz/astro-ghostcms@3.3.4
## 0.0.13
### Patch Changes
- b0218e1: fix:
- Removed CodeSlot Component that sometimes would break with some <pre> components
- Will be adding at a latter time a custom component to replace this, but at this time this is now fixed.
## 0.0.12
### Patch Changes
- 4c1002a: fix getAllTags bug for themes and bump other packages deps
- Updated dependencies [4c1002a]
- @matthiesenxyz/astro-ghostcms@3.3.2
## 0.0.11
### Patch Changes
- 746fcc5: Fix html rendering to allow custom components
## 0.0.10
### Patch Changes
- 2724119: Migrate to `astro-remote` for internal processing of GhostCMS HTML. No user changes required.
## 0.0.9
### Patch Changes
- f921005: Bump dependencies:
- vite from to
- @eliancodes/brutal-ui from to
- typescript from to
- ultrahtml from to
- @fontsource-variable/inter from to
- astro-seo from to
- astro from to
- sass from to
- @astrojs/starlight from to
- sharp from to
- Updated dependencies [f921005]
- @matthiesenxyz/astro-ghostcms@3.3.1
## 0.0.8
### Patch Changes

View File

@ -1,7 +1,7 @@
{
"name": "@matthiesenxyz/astro-ghostcms-catppuccin",
"description": "A dark theme made with Catppuccin and TailwindCSS for Astro-GhostCMS",
"version": "0.0.8",
"version": "0.0.14",
"homepage": "https://astro-ghostcms.xyz/",
"type": "module",
"license": "MIT",
@ -50,7 +50,8 @@
},
"scripts": {},
"peerDependencies": {
"astro": "^4.2.1"
"@matthiesenxyz/astro-ghostcms": ">=3.3.5",
"astro": ">=4.4.0"
},
"devDependencies": {
"@matthiesenxyz/astro-ghostcms": "workspace:*"
@ -58,11 +59,13 @@
"dependencies": {
"@astrojs/tailwind": "^5.1.0",
"@catppuccin/tailwindcss": "0.1.6",
"@fontsource-variable/inter": "^5.0.16",
"@matthiesenxyz/astro-ghostcms": "^3.2.9",
"@fontsource-variable/inter": "^5.0.17",
"@matthiesenxyz/astro-ghostcms": "^3.3.5",
"@tailwindcss/typography": "^0.5.10",
"tailwindcss": "^3.3.5",
"astro-navbar": "^2.3.1",
"astro-seo": "^0.8.2"
"astro-remote": "^0.3.2",
"astro-seo": "^0.8.3",
"tailwindcss": "^3.3.5",
"ultrahtml": "1.5.3"
}
}

View File

@ -3,6 +3,11 @@ import type { Settings, Post } from "@matthiesenxyz/astro-ghostcms/api";
import FeatureImage from "./FeatureImage.astro";
import AuthorList from "./AuthorList.astro";
import { formatDate } from "../utils";
import { Markup } from 'astro-remote';
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export type Props = {
posts: Post[];
settings: Settings;
@ -59,7 +64,15 @@ const latestFeatured = posts[0]
</div>
<div class="divider my-4"/>
<section id="ghostimport" class="text-ctp-subtext1">
{latestFeatured && <Fragment set:html={latestFeatured.html} />}
{useRemote ? (latestFeatured && <Markup
content={latestFeatured.html}
sanitize={{
allowComponents: true,
allowElements: ['a', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'figure', 'figcaption', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'em', 'strong', 'del', 'hr', 'br', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'div', 'span', 'script', 'astrocard'],
}}
/>) : (latestFeatured && <Fragment set:html={latestFeatured.html} />) }
</section>
</div>
</main>

View File

@ -2,6 +2,11 @@
import PostHero from "../components/PostHero.astro";
import PostFooter from "../components/PostFooter.astro";
import { getFeaturedPosts, invariant, type Post, type Settings } from "@matthiesenxyz/astro-ghostcms/api";
import { Markup } from 'astro-remote';
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export type Props = {
post: Post;
settings: Settings;
@ -14,10 +19,10 @@ async function getPostsSet(){
const featuredPosts = await getFeaturedPosts();
const fposts = posts;
if(featuredPosts.posts.length === 0){ return fposts }
else {
const featured = featuredPosts.posts[0]
return fposts.filter((p: Post)=>p.id !== featured.id)
}
const featured = featuredPosts.posts[0]
return fposts.filter((p: Post)=>p.id !== featured.id)
}
const mPosts = await getPostsSet()
@ -27,7 +32,15 @@ invariant(settings, "Settings not found");
<PostHero post={post} settings={settings} />
<div id="ghostimport" class="mt-4 text-ctp-subtext1">
<Fragment set:html={post.html} />
{useRemote ? (
<Markup
content={post.html}
sanitize={{
allowComponents: true,
allowElements: ['a', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'figure', 'figcaption', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'em', 'strong', 'del', 'hr', 'br', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'div', 'span', 'script', 'astrocard'],
}}
/>
) : <Fragment set:html={post.html} /> }
</div>
<PostFooter post={post} settings={settings} posts={mPosts} />

View File

@ -7,7 +7,7 @@ import PostPreview from '../../components/PostPreview.astro';
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {
@ -37,7 +37,7 @@ const description = `All of the articles we've posted and linked so far under th
<Layout title={title} description={description} settings={settings}>
<Container>
<section class="post-card post-card-large">
<div class="post-card-content">
<div class="post-card-content-link">
<header class="post-card-header">

View File

@ -6,7 +6,7 @@ import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcm
let title = "All Tags";
let description = "All the tags used so far...";
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, 'Settings not found');

View File

@ -1,37 +0,0 @@
# @matthiesenxyz/astro-ghostcms-rendercontent
## 0.0.7
### Patch Changes
- 1f850db: Bump dependencies:
- astro from to
- vite from to
- astro-seo from to
- sass from to
## 0.0.6
### Patch Changes
- 3a5aea9: Updated Tests and Linted packages
## 0.0.5
### Patch Changes
- 455ad3f: Bump astro from 4.0.0 to 4.3.7
- 12be739: Depencency updates
## 0.0.4
### Patch Changes
- Fix License File
## 0.0.3
### Patch Changes
- Initialization of changeset cli

View File

@ -1,33 +0,0 @@
# Astro GhostCMS Content API HTML Processor
Render remote GhostCMS HTML in Astro with full control over the output.
Powered by [`ultrahtml`](https://github.com/natemoo-re/ultrahtml).
## Rendering Remote Content
The most basic function of `astro-ghostcms-rendercontent` is to convert a string of HTML to Astro friendly HTML. Use the `GhostRender` component.
```astro
---
import { GhostRender } from "@matthiesenxyz/astro-ghostcms-rendercontent";
---
<GhostRender content={post.html} />
```
### Customization
`GhostRender` allows full control over the rendering of output. The `components` option allows you to replace a standard HTML element with a custom component.
```astro
---
import { GhostRender } from "@matthiesenxyz/astro-ghostcms-rendercontent";
import Title from '../components/Title.astro';
---
<!-- Render <h1> as custom <Title> component -->
<GhostRender content={post.html} components={{ h1: Title }} />
```
For examples on how to setup custom components check [examples](./examples/)

View File

@ -1,12 +0,0 @@
---
import { Code } from "astro/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 } = codetag
const code = children[0].value
---
<Code code={code} lang={"sh"} theme={"monokai"}/>

View File

@ -1,5 +0,0 @@
---
---
<h1 class="righteous">
<slot />
</h1>

View File

@ -1,5 +0,0 @@
---
---
<h2 class="righteous">
<slot />
</h2>

View File

@ -1,5 +0,0 @@
---
---
<h3 class="righteous">
<slot />
</h3>

View File

@ -1,5 +0,0 @@
---
---
<h4 class="righteous">
<slot />
</h4>

View File

@ -1,5 +0,0 @@
---
---
<h5 class="righteous">
<slot />
</h5>

View File

@ -1,5 +0,0 @@
---
---
<h6 class="righteous">
<slot />
</h6>

View File

@ -1,21 +0,0 @@
---
---
<p class="my-5"><slot /></p>
<style is:inline>
#ghost p a {
color: rgb(0, 123, 247);
}
#ghost ul li a {
color: rgb(0, 123, 247);
}
#ghost ul li {
padding-top: 0.5rem;
margin-left: 2rem;
list-style: circle;
}
#ghost ul {
margin-top: 1rem;
margin-bottom: 1rem;
}
</style>

View File

@ -1,8 +0,0 @@
export { default as H1 } from "./H1.astro";
export { default as H2 } from "./H2.astro";
export { default as H3 } from "./H3.astro";
export { default as H4 } from "./H4.astro";
export { default as H5 } from "./H5.astro";
export { default as H6 } from "./H6.astro";
export { default as CodeSlot } from "./CodeSlot.astro";
export { default as Paragraph } from "./Paragraph.astro";

View File

@ -1 +0,0 @@
export { default as GhostRender } from "./lib/GhostRender.astro";

View File

@ -1,18 +0,0 @@
---
import { createComponentProxy, html } from './utils';
export interface Props {
content?: string;
components?: Record<string, any>;
}
const input = Astro.props.content ?? await Astro.slots.render('default');
if (!input) {
throw new Error('Unable to render <GhostRender> without a content prop or children')
}
// @ts-ignore
const components = createComponentProxy($$result, Astro.props.components);
const content = await html(input, { components });
---
<Fragment set:html={content} />

View File

@ -1 +0,0 @@
/// <reference types="astro/client" />

View File

@ -1,59 +0,0 @@
import { jsx as h } from "astro/jsx-runtime";
import { renderJSX } from "astro/runtime/server/jsx";
import * as entities from "entities";
import { transform } from "ultrahtml";
import { __unsafeHTML } from "ultrahtml";
import swap from "ultrahtml/transformers/swap";
export function createComponentProxy(
result,
_components: Record<string, any> = {},
) {
const components = {};
for (const [key, value] of Object.entries(_components)) {
if (typeof value === "string") {
components[key] = value;
} else {
components[key] = async (props, children) => {
if (key === "CodeBlock" || key === "CodeSpan") {
props.code = entities.decode(JSON.parse(`"${props.code}"`));
}
const output = await renderJSX(
result,
h(value, { ...props, "set:html": children.value }),
);
return __unsafeHTML(output);
};
}
}
return components;
}
function getIndent(ln: string): string {
if (ln.trim() === ln) return "";
return ln.slice(0, ln.length - ln.trim().length);
}
export function dedent(str: string): string {
const lns = str.replace(/^[\r\n]+/, "").split("\n");
let indent = getIndent(lns[0]);
if (indent.length === 0 && lns.length > 1) {
indent = getIndent(lns[1]);
}
return lns
.map((ln) => (ln.startsWith(indent) ? ln.slice(indent.length) : ln))
.map((ln, i, { length }) => (i === length - 1 ? ln.trim() : ln))
.join("\n");
}
export interface HTMLOptions {
// biome-ignore lint/complexity/noBannedTypes: <explanation>
components?: {};
}
export async function html(
input: string,
opts: HTMLOptions = {},
): Promise<string> {
return transform(dedent(input), [swap(opts.components)]);
}

View File

@ -1,47 +0,0 @@
{
"name": "@matthiesenxyz/astro-ghostcms-rendercontent",
"type": "module",
"version": "0.0.7",
"repository": {
"type": "git",
"url": "git+https://github.com/MatthiesenXYZ/astro-ghostcms.git"
},
"bugs": {
"url": "https://github.com/MatthiesenXYZ/astro-ghostcms/issues",
"email": "issues@astro-ghostcms.xyz"
},
"publishConfig": {
"access": "public"
},
"sideEffects": false,
"homepage": "https://astro-ghostcms.xyz",
"files": [
"examples",
"lib",
"index.ts",
"CHANGELOG.md"
],
"types": "./index.ts",
"exports": {
".": "./index.ts",
"./lib/*": "./lib/*",
"./examples/*": "./examples/*",
"./package.json": "./package.json"
},
"keywords": [
"astro-ghostcms"
],
"author": {
"email": "adam@matthiesen.xyz",
"name": "Adam Matthiesen - MatthiesenXYZ",
"url": "https://matthiesen.xyz"
},
"license": "MIT",
"dependencies": {
"entities": "^4.5.0",
"ultrahtml": "^1.5.2"
},
"devDependencies": {
"astro": "4.4.0"
}
}

View File

@ -1,5 +1,81 @@
# @matthiesenxyz/astro-ghostcms-theme-default
## 0.1.20
### Patch Changes
- f82035b: Bump dependencies:
- astro-integration-kit from to
- @unocss/astro from to
- @unocss/reset from to
- astro-font from to
- unocss from to
- sass from to
- @matthiesenxyz/astro-gists from to
- vite-tsconfig-paths from to
- astro from to
- Updated dependencies [f82035b]
- @matthiesenxyz/astro-ghostcms@3.3.5
## 0.1.19
### Patch Changes
- f097c6a: Adds a toggleswitch to allow users to disable astro-remote usage for rendering ghost-content
- Updated dependencies [f097c6a]
- @matthiesenxyz/astro-ghostcms@3.3.4
## 0.1.18
### Patch Changes
- b0218e1: fix:
- Removed CodeSlot Component that sometimes would break with some <pre> components
- Will be adding at a latter time a custom component to replace this, but at this time this is now fixed.
## 0.1.17
### Patch Changes
- 4c1002a: fix getAllTags bug for themes and bump other packages deps
- Updated dependencies [4c1002a]
- @matthiesenxyz/astro-ghostcms@3.3.2
## 0.1.16
### Patch Changes
- 746fcc5: Fix html rendering to allow custom components
## 0.1.15
### Patch Changes
- 2724119: Migrate to `astro-remote` for internal processing of GhostCMS HTML. No user changes required.
## 0.1.14
### Patch Changes
- f921005: Bump dependencies:
- vite from to
- @eliancodes/brutal-ui from to
- typescript from to
- ultrahtml from to
- @fontsource-variable/inter from to
- astro-seo from to
- astro from to
- sass from to
- @astrojs/starlight from to
- sharp from to
- Updated dependencies [f921005]
- @matthiesenxyz/astro-ghostcms@3.3.1
## 0.1.13
### Patch Changes

View File

@ -1,7 +1,7 @@
{
"name": "@matthiesenxyz/astro-ghostcms-theme-default",
"description": "Default Theme for astro-ghostcms",
"version": "0.1.13",
"version": "0.1.20",
"homepage": "https://astro-ghostcms.xyz/",
"type": "module",
"license": "MIT",
@ -43,15 +43,17 @@
"scripts": {},
"devDependencies": {
"@matthiesenxyz/astro-ghostcms": "*",
"@astrojs/check": "^0.5.4",
"typescript": "^5.3.3"
"@astrojs/check": "^0.5.9",
"typescript": "^5.4.2"
},
"peerDependencies": {
"astro": "^4.2.1"
"@matthiesenxyz/astro-ghostcms": ">=3.3.5",
"astro": ">=4.4.0"
},
"dependencies": {
"@matthiesenxyz/astro-ghostcms": "^3.2.9",
"astro-font": "^0.0.77",
"sass": "^1.71.0"
"astro-font": "^0.0.78",
"astro-remote": "^0.3.2",
"sass": "^1.72.0",
"ultrahtml": "^1.5.3"
}
}

View File

@ -1,6 +1,11 @@
---
import FeatureImage from "../components/FeatureImage.astro";
import type { Settings, Page } from "@matthiesenxyz/astro-ghostcms/api";
import { Markup } from 'astro-remote';
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export type Props = {
page: Page;
settings: Settings;
@ -24,7 +29,15 @@ const { page, settings, pageClass } = Astro.props as Props;
<section class="gh-content gh-canvas">
<h1 class="article-title">{page.title}</h1>
<Fragment set:html={page.html} />
{useRemote ? (
<Markup
content={page.html}
sanitize={{
allowComponents: true,
allowElements: ['a', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'figure', 'figcaption', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'em', 'strong', 'del', 'hr', 'br', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'div', 'span', 'script', 'astrocard'],
}}
/>
) : <Fragment set:html={page.html} /> }
</section>
</article>
</main>

View File

@ -2,6 +2,11 @@
import PostHero from "../components/PostHero.astro";
import PostFooter from "../components/PostFooter.astro";
import {invariant, type Post, type Settings } from "@matthiesenxyz/astro-ghostcms/api";
import { Markup } from 'astro-remote';
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const useRemote = config.ThemeProvider.astroRemote.enable;
export type Props = {
post: Post;
settings: Settings;
@ -16,7 +21,15 @@ invariant(settings, "Settings not found");
<article class={`article post ${postClass}`}>
<PostHero post={post} settings={settings} />
<section class="gh-content gh-canvas">
<Fragment set:html={post.html} />
{useRemote ? (
<Markup
content={post.html}
sanitize={{
allowComponents: true,
allowElements: ['a', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'figure', 'figcaption', 'ul', 'ol', 'li', 'blockquote', 'pre', 'code', 'em', 'strong', 'del', 'hr', 'br', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'div', 'span', 'script', 'astrocard'],
}}
/>
) : <Fragment set:html={post.html} /> }
</section>
</article>
<PostFooter post={post} settings={settings} posts={posts} />

View File

@ -1,13 +1,13 @@
---
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import DefaultPageLayout from "../../layouts/default.astro";
import PostPreview from "../../components/PostPreview.astro";
import { getAllPosts, getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import PostPreview from "../../components/PostPreview.astro";
import DefaultPageLayout from "../../layouts/default.astro";
import { getGhostImgPath } from "../../utils";
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {

View File

@ -1,13 +1,13 @@
---
import DefaultPageLayout from "../layouts/default.astro";
import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import TagCard from "../components/TagCard.astro";
import { getSettings, getAllTags, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import DefaultPageLayout from "../layouts/default.astro";
let title = "All Tags";
let description = "All the tags used so far...";
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, "Settings not found");
---

View File

@ -1,2 +0,0 @@
CONTENT_API_KEY=a33da3965a3a9fb2c6b3f63b48
CONTENT_API_URL=https://ghostdemo.matthiesen.xyz

View File

@ -1,5 +1,82 @@
# @matthiesenxyz/astro-ghostcms
## 3.3.5
### Patch Changes
- f82035b: Bump dependencies:
- astro-integration-kit from to
- @unocss/astro from to
- @unocss/reset from to
- astro-font from to
- unocss from to
- sass from to
- @matthiesenxyz/astro-gists from to
- vite-tsconfig-paths from to
- astro from to
- Updated dependencies [f82035b]
- @matthiesenxyz/astro-ghostcms-theme-default@0.1.20
## 3.3.4
### Patch Changes
- f097c6a: Adds a toggleswitch to allow users to disable astro-remote usage for rendering ghost-content
- Updated dependencies [f097c6a]
- @matthiesenxyz/astro-ghostcms-theme-default@0.1.19
## 3.3.3
### Patch Changes
- b685e66: Update Deps
## 3.3.2
### Patch Changes
- 4c1002a: fix getAllTags bug for themes and bump other packages deps
- Updated dependencies [4c1002a]
- @matthiesenxyz/astro-ghostcms-theme-default@0.1.17
## 3.3.1
### Patch Changes
- f921005: Bump dependencies:
- vite from to
- @eliancodes/brutal-ui from to
- typescript from to
- ultrahtml from to
- @fontsource-variable/inter from to
- astro-seo from to
- astro from to
- sass from to
- @astrojs/starlight from to
- sharp from to
- Updated dependencies [f921005]
- @matthiesenxyz/astro-ghostcms-theme-default@0.1.14
## 3.3.0
### Minor Changes
- eebcd36: This is a HUGE internal update, Our integration is now built on [`Astro-Integration-Kit`](https://github.com/florian-lefebvre/astro-integration-kit) to give better control over the entire `Astro-GhostCMS` Eco-System.
# Breaking Changes:
- NEW USER CONFIG! Some of the options have changed! Please check the Readme for a current version of the available options!
- Thats it! Some how even though this is almost an entire rebuild, There is no other USER breaking changes aside from the new more advanced config!
# Updates:
- Moved from `@ts-ghost/core-api` to `@ts-ghost/content-api` as it provides the same functions as the standard core-api but pre-wrapped with a nice `HTTPClientFactory` instead of `HTTPClient`.
- Updated a ton of Dependencies that Dependabot was reporting as needed updated.
## 3.2.9
### Patch Changes

View File

@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

View File

@ -59,7 +59,34 @@ import GhostCMS from '@matthiesenxyz/astro-ghostcms';
// https://astro.build/config
export default defineConfig({
site: "https://YOUR-DOMAIN-HERE.com"
integrations: [GhostCMS()],
integrations: [
GhostCMS({
// Config Options
ghostURL: "http://example.com", // Recommended to set here, Can also set in .env as CONTENT_API_URL
ThemeProvider: { // Allows you to pass config options to our ThemeProvider if enabled.
disableThemeProvider: false, // OPTIONAL - Default False
theme: "@matthiesenxyz/astro-ghostcms-theme-default", // OPTIONAL - Default Theme shown.
astroRemote: {
enable: true // OPTIONAL - Default True, Allows the user to switch to standard <Fragment> html rendering if they are having issues with Astro-remote
}
};
disableDefault404: false, // Allows the user to disable the default `/404 page, to be able to create their own under `/src/pages/404.astro`.
enableRSSFeed: true, // Allows the user to Enable or disable RSS Feed Generation. Default: true
enableOGImages: true, // Allows the user to Enable or disable OG Image Generation. Default: true
verbose: false, // Show the full Log output from All parts of Astro-GhostCMS
Integrations: {
// This allows user config passthrough from Astro-GhostCMS to the Included Integrations
robotsTxt: {
// OPTIONAL
// ADVANCED USAGE - https://www.npmjs.com/package/astro-robots-txt#configuration
},
sitemap: {
// OPTIONAL
// ADVANCED USAGE - https://docs.astro.build/en/guides/integrations-guide/sitemap
},
},
})
],
});
```
@ -113,4 +140,3 @@ For more information and to see the docs please check our website: [Astro-GhostC
# Foot Notes & Credits
[^1]: Ghost.org, Ghost.io, Ghost are all trademarks of [The Ghost Foundation](https://ghost.org/). This project is Open Source and not directly related to or provided by The Ghost Foundation and is intended to help create a easier method to utilize their provided JavaScript tools to link a Headless GhostCMS install in to your Astro project.

View File

@ -1,359 +0,0 @@
import path from "node:path";
import { fileURLToPath } from "node:url";
import type { AstroIntegration } from "astro";
import type { SafeParseError, SafeParseSuccess } from "astro/zod";
import fse from "fs-extra";
import { loadEnv } from "vite";
import ghostRobots from "./src/integrations/robots-txt";
import ghostSitemap from "./src/integrations/sitemap";
import { UserConfigSchema } from "./src/schemas";
import { addVirtualImport } from "./src/utils/add-virtual-import";
import latestVersion from "./src/utils/latestVersion.js";
import { fromZodError } from "./src/utils/zod-validation/fromZodError.js";
import type { UserConfig } from "./types";
/** INTERNAL CONSTANTS */
const IC = {
/** INTERNAL PACKAGE NAME */
PKG: "@matthiesenxyz/astro-ghostcms",
/** INTERNAL PACKAGE NAME (THEME) */
DT: "@matthiesenxyz/astro-ghostcms-theme-default",
/** INTERNAL STRING */
CHECK_ENV: "Checking for Environment Variables...",
/** SET ENV GRABBER MODE */
MODE: "all",
/** SET ENV GRABBER PREFIXES */
PREFIXES: "CONTENT_API",
/** INTERNAL STRING */
KEY_MISSING: "CONTENT_API_KEY Missing from .env/environment variables",
/** INTERNAL STRING */
URL_MISSING:
"CONTENT_API_URL Missing from .env/environment variables or ghostURL under the integration settings in `astro.config.mjs`",
/** INTERNAL STRING */
IT: "Injecting Theme: ",
/** INTERNAL STRING */
IDR: "Injecting Default Routes...",
/** INTERNAL STRING */
ITR: "Injecting Default Theme Routes...",
/** INTERNAL STRING */
IRD: "Route Injection Disabled - Skipping...",
/** INTERNAL STRING */
IIR: "Injecting Integration Route: ",
/** INTERNAL STRING */
II: "Injecting Integration: ",
/** INTERNAL STRING */
AIbU: "Already Imported by User: ",
/** INTERNAL STRING */
CF: "Checking for ",
/** INTERNAL STRING */
CONFSETUPDONE: "Step Complete",
/** INTERNAL STRING */
F0FR: "Inject `/404` Route",
/** INTERNAL STRING */
RSS: "Injecting `/rss.xml` Route and `@astrojs/rss` Integration",
/** INTERNAL STRING */
NOURL:
"No Ghost URL defined in User Config: Falling back to environment variables.",
/** INTERNAL STRING */
id404: "404 Injection Disabled",
/** INTERNAL STRING */
idRSS: "RSS Injection Disabled",
/** INTERNAL STRING */
satori_e: "Injecting Satori-OpenGraph Generator",
/** INTERNAL STRING */
satori_d: "Satori Injection disabled",
};
/** CONTENT API ENVIRONMENT VARIABLES */
const ENV = loadEnv(IC.MODE, process.cwd(), IC.PREFIXES);
/** Astro-GhostCMS Integration
* @ For more information and to see the docs check
* @see https://astro-ghostcms.xyz
*/
export default function GhostCMS(options: UserConfig): AstroIntegration {
return {
name: "astro-ghostcms",
hooks: {
"astro:config:setup": async ({
injectRoute,
config,
updateConfig,
logger,
}) => {
// DEFINE LOGGERS
const logConfigCheck = logger.fork("astro-ghostcms/config:check");
const logConfigSetup = logger.fork("astro-ghostcms/config:setup");
// CHECK USER CONFIG AND MAKE AVAILBLE TO INTEGRATIONS
logConfigCheck.info("Checking Config...");
const GhostUserConfig = UserConfigSchema.safeParse(
options || {},
) as SafeParseSuccess<UserConfig>;
if (!GhostUserConfig.success) {
const validationError = fromZodError(
(GhostUserConfig as unknown as SafeParseError<UserConfig>).error,
);
logConfigCheck.error(`Config Error - ${validationError}`);
throw Error("");
}
const GhostConfig = GhostUserConfig.data;
const GCD = {
theme: GhostConfig.theme,
dRI: GhostConfig.disableRouteInjection,
dCO: GhostConfig.disableConsoleOutput,
SM: GhostConfig.sitemap,
RTXT: GhostConfig.robotstxt,
gSite: GhostConfig.ghostURL,
dRSS: GhostConfig.disableRSS,
d404: GhostConfig.disable404,
dOG: GhostConfig.disableSatoriOG,
};
// Check For ENV Variables
if (!GCD.dCO) {
logConfigCheck.info(IC.CHECK_ENV);
}
if (ENV.CONTENT_API_KEY === undefined) {
logConfigCheck.error(IC.KEY_MISSING);
throw IC.KEY_MISSING;
}
if (GCD.gSite === undefined) {
logConfigCheck.warn(IC.NOURL);
if (ENV.CONTENT_API_URL === undefined) {
logConfigCheck.error(IC.URL_MISSING);
throw IC.URL_MISSING;
}
}
if (!GCD.dRI) {
// THEME SELECTOR
if (GCD.theme === IC.DT) {
if (!GCD.dCO) {
logConfigCheck.info(IC.IT + IC.DT);
}
} else {
if (!GCD.dCO) {
logConfigCheck.info(IC.IT + GCD.theme);
}
}
// INJECT ROUTES
//// DEFAULT PROGRAM ROUTES
if (!GCD.dCO) {
logConfigSetup.info(IC.IDR);
}
if (!GCD.d404) {
if (!GCD.dCO) {
logConfigSetup.info(IC.F0FR);
}
injectRoute({
pattern: "/404",
entrypoint: `${IC.PKG}/404.astro`,
});
} else {
if (!GCD.dCO) {
logConfigSetup.info(IC.id404);
}
}
if (!GCD.dRSS) {
if (!GCD.dCO) {
logConfigSetup.info(IC.RSS);
}
injectRoute({
pattern: "/rss-style.xsl",
entrypoint: `${IC.PKG}/rss-style.xsl.ts`,
});
injectRoute({
pattern: "/rss.xml",
entrypoint: `${IC.PKG}/rss.xml.ts`,
});
} else {
if (!GCD.dCO) {
logConfigSetup.info(IC.idRSS);
}
}
if (!GCD.dOG) {
if (!GCD.dCO) {
logConfigSetup.info(IC.satori_e);
}
injectRoute({
pattern: "/open-graph/[slug].png",
entrypoint: `${IC.PKG}/open-graph/[slug].png.ts`,
});
injectRoute({
pattern: "/open-graph/index.png",
entrypoint: `${IC.PKG}/open-graph/index.png.ts`,
});
injectRoute({
pattern: "/open-graph/authors.png",
entrypoint: `${IC.PKG}/open-graph/authors.png.ts`,
});
injectRoute({
pattern: "/open-graph/author/[slug].png",
entrypoint: `${IC.PKG}/open-graph/author/[slug].png.ts`,
});
injectRoute({
pattern: "/open-graph/tags.png",
entrypoint: `${IC.PKG}/open-graph/tags.png.ts`,
});
injectRoute({
pattern: "/open-graph/tag/[slug].png",
entrypoint: `${IC.PKG}/open-graph/tag/[slug].png.ts`,
});
} else {
if (!GCD.dCO) {
logConfigSetup.info(IC.satori_d);
}
}
// THEME ROUTES
if (!GCD.dCO) {
logConfigSetup.info(IC.ITR);
}
injectRoute({
pattern: "/",
entrypoint: `${GCD.theme}/index.astro`,
});
injectRoute({
pattern: "/[slug]",
entrypoint: `${GCD.theme}/[slug].astro`,
});
injectRoute({
pattern: "/tags",
entrypoint: `${GCD.theme}/tags.astro`,
});
injectRoute({
pattern: "/authors",
entrypoint: `${GCD.theme}/authors.astro`,
});
injectRoute({
pattern: "/tag/[slug]",
entrypoint: `${GCD.theme}/tag/[slug].astro`,
});
injectRoute({
pattern: "/author/[slug]",
entrypoint: `${GCD.theme}/author/[slug].astro`,
});
injectRoute({
pattern: "/archives/[...page]",
entrypoint: `${GCD.theme}/archives/[...page].astro`,
});
} else {
if (!GCD.dCO) {
logConfigSetup.info(IC.IRD);
}
}
// IMPORT INTEGRATIONS & INTEGRATION ROUTES
const integrations = [...config.integrations];
// IMPORT INTEGRATION: @ASTROJS/SITEMAP
if (!GCD.dCO) {
logConfigSetup.info(`${IC.CF}@astrojs/sitemap`);
}
if (!integrations.find(({ name }) => name === "@astrojs/sitemap")) {
if (!GCD.dCO) {
logConfigSetup.info(`${IC.II}@astrojs/sitemap`);
}
integrations.push(ghostSitemap(GCD.SM));
} else {
if (!GCD.dCO) {
logConfigSetup.info(`${IC.AIbU}@astrojs/sitemap`);
}
}
// IMPORT INTEGRATION: ASTRO-ROBOTS-TXT
if (!GCD.dCO) {
logConfigSetup.info(`${IC.CF}astro-robots-txt`);
}
if (!integrations.find(({ name }) => name === "astro-robots-txt")) {
if (!GCD.dCO) {
logConfigSetup.info(`${IC.II}astro-robots-txt`);
}
integrations.push(ghostRobots(GCD.RTXT));
} else {
if (!GCD.dCO) {
logConfigSetup.info(`${IC.AIbU}astro-robots-txt`);
}
}
// FINAL STEP TO KEEP INTEGRATION LIVE
try {
updateConfig({
// UPDATE ASTRO CONFIG WITH INTEGRATED INTEGRATIONS
integrations: [ghostSitemap(GCD.SM), ghostRobots(GCD.RTXT)],
vite: {
optimizeDeps: { exclude: ["@resvg/resvg-js"] },
},
});
} catch (e) {
logConfigSetup.error(e as string);
throw e;
}
addVirtualImport({
name: "virtual:@matthiesenxyz/astro-ghostcms/config",
content: `export default ${JSON.stringify(GhostUserConfig.data)}`,
updateConfig,
});
},
"astro:config:done": async ({ logger }) => {
// Config Done
const logConfigDone = logger.fork("astro-ghostcms/config:done");
const pJSON = await fse.readJson(
path.resolve(fileURLToPath(import.meta.url), "..", "package.json"),
);
const pkgVer = pJSON.version;
logConfigDone.info(`Config Done. Current Version: v${pkgVer}`);
},
"astro:server:setup": async ({ logger }) => {
// Dev Server Start
const logServerSetup = logger.fork("astro-ghostcms/server:setup");
const logCurrentVersion = logger.fork("astro-ghostcms/current-version");
const logNpmVersion = logger.fork("astro-ghostcms/npm-pub-version");
const logCheck = logger.fork("astro-ghostcms/check");
const pJSON = await fse.readJson(
path.resolve(fileURLToPath(import.meta.url), "..", "package.json"),
);
const pkgVer = pJSON.version;
const npmVER = await latestVersion(IC.PKG);
if (pkgVer !== npmVER) {
logCurrentVersion.warn(`Current Installed Version is v${pkgVer}`);
logNpmVersion.warn(`Latest Published Version is v${npmVER}`);
logCheck.warn("Please consider updating.");
}
logServerSetup.info(
"Setting up Astro-GhostCMS server for Development!",
);
},
"astro:server:start": async ({ logger }) => {
// Server Start
const logServerStart = logger.fork("astro-ghostcms/server:start");
logServerStart.info("Astro-GhostCMS Integration Ready!");
},
"astro:build:done": async ({ logger }) => {
// Build Done
const logBuildDone = logger.fork("astro-ghostcms/build:done");
const logCurrentVersion = logger.fork("astro-ghostcms/current-version");
const logNpmVersion = logger.fork("astro-ghostcms/npm-pub-version");
const logCheck = logger.fork("astro-ghostcms/check");
const pJSON = await fse.readJson(
path.resolve(fileURLToPath(import.meta.url), "..", "package.json"),
);
const pkgVer = pJSON.version;
const npmVER = await latestVersion(IC.PKG);
if (pkgVer !== npmVER) {
logCurrentVersion.warn(`Current Installed Version is v${pkgVer}`);
logNpmVersion.warn(`Latest Published Version is v${npmVER}`);
logCheck.warn("Please consider updating.");
}
logBuildDone.info(
`Build Complete, Integration Now ready for Production. Astro-GhostCMS v${pkgVer}`,
);
},
},
};
}

View File

@ -1,7 +1,7 @@
{
"name": "@matthiesenxyz/astro-ghostcms",
"description": "Astro GhostCMS integration to allow easier importing of GhostCMS Content",
"version": "3.2.9",
"version": "3.3.5",
"homepage": "https://astro-ghostcms.xyz/",
"type": "module",
"license": "MIT",
@ -36,36 +36,16 @@
"url": "https://github.com/MatthiesenXYZ/astro-ghostcms/issues",
"email": "issues@astro-ghostcms.xyz"
},
"main": "index.ts",
"types": "types.d.ts",
"files": [
"src",
".env.demo",
"index.ts",
"tsconfig.json",
"types.d.ts"
"CHANGELOG.md",
"LICENSE",
"README.md"
],
"exports": {
".": "./index.ts",
"./api": {
"types": "./src/api/index.ts",
"default": "./src/api/index.ts"
},
"./api-core": "./src/api/content-api/index.ts",
"./config": {
"types": "./src/integrations/virtual.d.ts",
"default": "./src/integrations/virtual-config.ts"
},
"./satoriOG": "./src/integrations/satori.ts",
"./404.astro": "./src/default-routes/404/404.astro",
"./rss.xml.ts": "./src/default-routes/rss.xml.ts",
"./rss-style.xsl.ts": "./src/default-routes/rss-style.xsl.ts",
"./open-graph/index.png.ts": "./src/default-routes/open-graph/index.png.ts",
"./open-graph/authors.png.ts": "./src/default-routes/open-graph/authors.png.ts",
"./open-graph/tags.png.ts": "./src/default-routes/open-graph/tags.png.ts",
"./open-graph/[slug].png.ts": "./src/default-routes/open-graph/[slug].png.ts",
"./open-graph/author/[slug].png.ts": "./src/default-routes/open-graph/author/[slug].png.ts",
"./open-graph/tag/[slug].png.ts": "./src/default-routes/open-graph/tag/[slug].png.ts"
".": "./src/index.ts",
"./api": "./src/api/index.ts",
"./satoriOG": "./src/integrations/satoriog/satori.ts"
},
"scripts": {
"test": "vitest run",
@ -73,39 +53,32 @@
"test:coverage": "vitest run --coverage",
"test:ci": "vitest run --coverage.enabled --coverage.reporter='text-summary'"
},
"enginesStrict": {
"node": ">=18.19.0"
},
"peerDependencies": {
"astro": ">=4.4.1"
},
"devDependencies": {
"@astrojs/check": "^0.5.4",
"@ts-ghost/core-api": "*",
"@ts-ghost/tsconfig": "*",
"@matthiesenxyz/astro-ghostcms-theme-default": "*",
"@matthiesenxyz/astro-ghostcms-catppuccin": "*",
"@types/fs-extra": "^11.0.1",
"@types/node": "^20.11.19",
"@typescript-eslint/eslint-plugin": "^7.0.1",
"@typescript-eslint/parser": "^7.0.1",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-astro": "^0.31.4",
"prettier": "^3.2.5",
"prettier-plugin-astro": "^0.13.0",
"typescript": "^5.3.3",
"vitest": "^1.3.0",
"@types/fs-extra": "^11.0.4",
"@types/node": "^20.11.28",
"vitest": "^1.4.0",
"vitest-fetch-mock": "^0.2.2"
},
"dependencies": {
"@matthiesenxyz/astro-ghostcms-theme-default": "^0.1.13",
"@astrojs/rss": "^4.0.5",
"@astrojs/sitemap": "^3.0.5",
"@astrojs/sitemap": "^3.1.1",
"@matthiesenxyz/astro-ghostcms-theme-default": "^0.1.20",
"@resvg/resvg-js": "^2.6.0",
"@ts-ghost/core-api": "^5.1.2",
"astro": "^4.4.0",
"@ts-ghost/core-api": "^6.0.0",
"@ts-ghost/content-api": "^4.0.12",
"astro-integration-kit": "^0.6.0",
"astro-robots-txt": "^1.0.0",
"fs-extra": "^11.1.0",
"package-json": "9.0.0",
"satori": "^0.10.11",
"fs-extra": "^11.2.0",
"package-json": "^10.0.0",
"picocolors": "^1.0.0",
"satori": "^0.10.13",
"satori-html": "^0.3.2",
"vite": "^5.1.3",
"vite-tsconfig-paths": "^4.2.2",
"zod": "^3.22.4"
"vite": "^5.1.6"
}
}
}

View File

@ -1,116 +0,0 @@
import {
APIComposer,
BasicFetcher,
HTTPClient,
contentAPICredentialsSchema,
slugOrIdSchema,
} from "@ts-ghost/core-api";
import {
authorsIncludeSchema,
authorsSchema,
pagesIncludeSchema,
pagesSchema,
postsIncludeSchema,
postsSchema,
settingsSchema,
tagsIncludeSchema,
tagsSchema,
tiersIncludeSchema,
tiersSchema,
} from "./schemas";
export type { ContentAPICredentials, APIVersions } from "@ts-ghost/core-api";
export enum BrowseEndpointType {
authors = "authors",
tiers = "tiers",
posts = "posts",
pages = "pages",
tags = "tags",
settings = "settings",
}
export default class TS_API<Version extends `v5.${string}` = any> {
private httpClient: HTTPClient;
constructor(
protected readonly url: string,
protected readonly key: string,
protected readonly version: Version,
) {
const apiCredentials = contentAPICredentialsSchema.parse({
key,
version,
url,
});
this.httpClient = new HTTPClient({
...apiCredentials,
endpoint: "content",
});
}
get authors() {
return new APIComposer(
"authors",
{
schema: authorsSchema,
identitySchema: slugOrIdSchema,
include: authorsIncludeSchema,
},
this.httpClient,
).access(["read", "browse"]);
}
get tiers() {
return new APIComposer(
"tiers",
{
schema: tiersSchema,
identitySchema: slugOrIdSchema,
include: tiersIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get posts() {
return new APIComposer(
"posts",
{
schema: postsSchema,
identitySchema: slugOrIdSchema,
include: postsIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get pages() {
return new APIComposer(
"pages",
{
schema: pagesSchema,
identitySchema: slugOrIdSchema,
include: pagesIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get tags() {
return new APIComposer(
"tags",
{
schema: tagsSchema,
identitySchema: slugOrIdSchema,
include: tagsIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get settings() {
return new BasicFetcher(
"settings",
{ output: settingsSchema },
this.httpClient,
);
}
}

View File

@ -1,8 +0,0 @@
export { default as TS_API } from "./content-api";
export * from "./schemas";
export type {
InferFetcherDataShape,
InferResponseDataShape,
BrowseParams,
} from "@ts-ghost/core-api";

View File

@ -1 +0,0 @@
export * from "./authors";

View File

@ -1 +0,0 @@
export * from "./socials";

View File

@ -1 +0,0 @@
export * from "./pages";

View File

@ -1 +0,0 @@
export * from "./posts";

View File

@ -1 +0,0 @@
export * from "./settings";

View File

@ -1 +0,0 @@
export * from "./tags";

View File

@ -1 +0,0 @@
export * from "./tiers";

View File

@ -1,11 +1,15 @@
import { assert, beforeEach, describe, expect, test } from "vitest";
import TS_API from "./content-api";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
describe("content-api", () => {
let api: TS_API;
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TS_API("https://ghost.org", "59d4bf56c73c04a18c867dc3ba", "v5.0");
api = new TSGhostContentAPI(
"https://ghost.org",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",
);
});
test("content-api", () => {
@ -14,21 +18,25 @@ describe("content-api", () => {
test("content-api shouldn't instantiate with an incorrect url", () => {
assert.throws(() => {
const api = new TS_API("ghost.org", "59d4bf56c73c04a18c867dc3ba", "v5.0");
const api = new TSGhostContentAPI(
"ghost.org",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",
);
api.settings;
});
});
test("content-api shouldn't instantiate with an incorrect key", () => {
assert.throws(() => {
const api = new TS_API("https://ghost.org", "a", "v5.0");
const api = new TSGhostContentAPI("https://ghost.org", "a", "v5.0");
api.settings;
});
});
test("content-api shouldn't instantiate with an incorrect version", () => {
assert.throws(() => {
const api = new TS_API(
const api = new TSGhostContentAPI(
"https://ghost.org",
"1efedd9db174adee2d23d982:4b74dca0219bad629852191af326a45037346c2231240e0f7aec1f9371cc14e8",
// @ts-expect-error

View File

@ -1,23 +1,24 @@
import { TS_API } from "./content-api";
import type { Page, Post } from "./content-api/schemas";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
import type { Page, Post, Tag } from "../schemas/api";
// LOAD ENVIRONMENT VARIABLES
import { loadEnv } from "vite";
import config from "../integrations/virtual-config";
const CONF_URL = config.ghostURL;
const { CONTENT_API_KEY, CONTENT_API_URL } = loadEnv(
"all",
process.cwd(),
"CONTENT_",
);
const ghostApiKey = CONTENT_API_KEY;
const ghostUrl = CONF_URL ? CONF_URL : CONTENT_API_URL;
// LOAD CONFIG
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const CONF_URL = config.ghostURL;
// SETUP GHOST API
const ghostApiKey = CONTENT_API_KEY || "";
const ghostUrl = CONF_URL || CONTENT_API_URL || "";
const version = "v5.0";
const api = new TS_API(ghostUrl, ghostApiKey, version);
const api = new TSGhostContentAPI(ghostUrl, ghostApiKey, version);
export const getAllAuthors = async () => {
const results = await api.authors
@ -93,17 +94,20 @@ export const getSettings = async () => {
};
export const getAllTags = async () => {
const results = await api.tags
.browse()
const tags: Tag[] = [];
let cursor = await api.tags
.browse({
limit: 'all'
})
.include({ "count.posts": true })
.fetch();
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
.paginate();
if (cursor.current.success) tags.push(...cursor.current.data);
while (cursor.next) {
cursor = await cursor.next.paginate();
if (cursor.current.success) tags.push(...cursor.current.data);
}
return {
tags: results.data,
meta: results.meta,
};
return tags;
};
export const getFeaturedPosts = async () => {

View File

@ -1,3 +1,3 @@
export * from "./api-functions";
export * from "./content-api/schemas";
export * from "./ghostAPI";
export * from "./invariant";
export * from "../schemas/api/index";

View File

@ -20,7 +20,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
const tinyinvariant = "merged";
const isProduction: boolean = process.env.NODE_ENV === "production";
const prefix: string = "Invariant failed";

View File

@ -0,0 +1,303 @@
import fse from "fs-extra";
import { createResolver, defineIntegration } from "astro-integration-kit";
import { corePlugins } from "astro-integration-kit/plugins";
import { AstroError } from "astro/errors";
import type { AstroIntegration } from "astro";
import c from "picocolors";
import { loadEnv } from "vite";
import sitemap from "@astrojs/sitemap";
import robotsTxt from "astro-robots-txt";
// Internal Imports
import { GhostUserConfigSchema } from "./schemas/userconfig";
import ghostRSS from "./integrations/rssfeed";
import ghostOGImages from "./integrations/satoriog";
import ghostThemeProvider from "./integrations/themeprovider";
import latestVersion from "./utils/latestVersion";
// Load environment variables
const ENV = loadEnv("all", process.cwd(), "CONTENT_API");
/** Astro-GhostCMS Integration
* @description This integration allows you to use GhostCMS as a headless CMS for your Astro project
* @see https://astro-ghostcms.xyz for the most up-to-date documentation!
*/
export default defineIntegration({
name: "@matthiesenxyz/astro-ghostcms",
optionsSchema: GhostUserConfigSchema,
plugins: [...corePlugins],
setup({ options, name }) {
const { resolve } = createResolver(import.meta.url);
return {
"astro:config:setup": ({
watchIntegration,
hasIntegration,
addIntegration,
addVirtualImports,
injectRoute,
logger,
}) => {
// Set up verbose logging
const verbose = options.verbose;
// Configure Loggers
const GhostLogger = logger.fork(c.bold(c.blue("👻 Astro-GhostCMS")));
const loggerTagged = (message: string) => {
return logger.fork(`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(message)}`)
}
// Configure ENV Logger
const GhostENVLogger = loggerTagged("ENV Check");
// Configure Integration Loggers & verbose logging
const GhostIntegrationLogger = loggerTagged("Integrations");
// Configure Route Logger & verbose logging
const GhostRouteLogger = loggerTagged("Router");
// Log Info Helper
const intLogInfo = (message:string) => {
if (verbose) {
GhostIntegrationLogger.info(message);
}
};
// Log Route Info Helper
const routeLogInfo = (message:string) => {
if (verbose) {
GhostRouteLogger.info(message);
}
};
// Local Integration Helper
const localIntegration = (enabled: boolean, name: string, integration: AstroIntegration) => {
if (enabled) {
addIntegration(integration);
} else {
intLogInfo(c.gray(`${name} integration is disabled`));
}
}
// Check External Integration Helper
const checkIntegration = (name: string, integration: AstroIntegration) => {
if (!hasIntegration(name)) {
intLogInfo(c.bold(c.magenta(`Adding ${c.blue(name)} integration`)));
addIntegration(integration);
} else {
intLogInfo(c.gray(`${name} integration already exists, skipping...`));
}
}
// Inject Route Helper
const routeHelper = (routename: string, enabled: boolean, pattern: string, entrypoint: string) => {
if (enabled) {
routeLogInfo(c.bold(c.cyan(`Setting up ${routename} route`)));
injectRoute({
pattern: pattern,
entrypoint: resolve(`./routes${entrypoint}`),
prerender: true,
});
} else {
routeLogInfo(c.gray(`${routename} route is disabled, Skipping...`));
}
}
// Setup Watch Integration for Hot Reload during DEV
watchIntegration(resolve());
GhostLogger.info("Initializing @matthiesenxyz/astro-ghostcms...");
// Check for GhostCMS environment variables
GhostENVLogger.info(
c.bold(
c.yellow(
"Checking for GhostCMS environment variables & user configuration",
),
),
);
// Check for GhostCMS API Key
if (ENV.CONTENT_API_KEY === undefined) {
GhostENVLogger.error(
c.bgRed(
c.bold(
c.white("CONTENT_API_KEY is not set in environment variables"),
),
),
);
throw new AstroError(
`${name} CONTENT_API_KEY is not set in environment variables`,
);
}
// Check for GhostCMS URL
if (options.ghostURL === undefined) {
GhostENVLogger.warn(
c.bgYellow(
c.bold(
c.black(
"ghostURL is not set in user configuration falling back to environment variable",
),
),
),
);
if (ENV.CONTENT_API_URL === undefined) {
GhostENVLogger.error(
c.bgRed(
c.bold(
c.white(
"CONTENT_API_URL is not set in environment variables",
),
),
),
);
throw new AstroError(
`${name} CONTENT_API_URL is not set in environment variables`,
);
}
}
GhostENVLogger.info(
c.bold(c.green("GhostCMS environment variables are set")),
);
// Set up Astro-GhostCMS Integrations
GhostIntegrationLogger.info(
c.bold(c.magenta("Configuring Enabled Integrations")),
);
// Setup GhostCMS Theme Provider
localIntegration(
!options.ThemeProvider.disableThemeProvider,
"Theme Provider",
ghostThemeProvider({
theme: options.ThemeProvider.theme,
verbose,
})
);
// Setup GhostCMS OG Image Provider
localIntegration(
options.enableOGImages,
"Satori OG Images",
ghostOGImages({ verbose })
);
// Setup GhostCMS RSS Feed Provider
localIntegration(
options.enableRSSFeed,
"RSS Feed",
ghostRSS({ verbose })
);
// Setup @astrojs/sitemap Integration
checkIntegration(
"@astrojs/sitemap",
sitemap(options.Integrations.sitemap)
);
// Setup astro-robots-txt Integration
checkIntegration(
"astro-robots-txt",
robotsTxt(options.Integrations.robotsTxt)
);
// Setup Default 404 Page
routeHelper(
"Default 404 Page",
!options.disableDefault404,
"/404",
"/404.astro"
);
// Add virtual imports for user configuration
addVirtualImports({
"virtual:@matthiesenxyz/astro-ghostcms/config": `export default ${JSON.stringify(
options,
)}`,
});
},
"astro:config:done": ({ logger }) => {
// Configure Loggers
const GhostLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.green(
"CONFIG",
)}`,
);
// Log Configuration Complete
GhostLogger.info(
c.bold(c.green("Integration Setup & Configuration Complete")),
);
},
"astro:server:start": async ({ logger }) => {
const loggerTagged = (message: string) => {
return logger.fork(`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.green(message)}`)
}
// Configure Loggers
const GhostLogger = loggerTagged("DEV");
const GhostUpdateLogger = loggerTagged("VERSION CHECK");
// Start the DEV server
GhostLogger.info(
c.bold(c.magenta("Running Astro-GhostCMS in Deveopment mode 🚀")),
);
// Check for updates
// Get the latest version of Astro-GhostCMS
const currentNPMVersion = await latestVersion(
"@matthiesenxyz/astro-ghostcms",
);
// Get the local version of Astro-GhostCMS
const packageJson = await fse.readJson(resolve("../package.json"));
const localVersion = packageJson.version;
// Log the version check
if (currentNPMVersion !== localVersion) {
GhostUpdateLogger.warn(
`\n${c.bgYellow(
c.bold(
c.black(
" There is a new version of Astro-GhostCMS available! ",
),
),
)}\n${
c.bold(c.white(" Current Installed Version: ")) +
c.bold(c.red(`${localVersion} `))
} \n ${c.bold(c.white("New Available Version: "))} ${c.green(
currentNPMVersion,
)} \n ${c.bold(
c.white(
"Please consider updating to the latest version by running: ",
),
)} ${c.bold(
c.green("npm i @matthiesenxyz/astro-ghostcms@latest"),
)} \n`,
);
} else {
GhostUpdateLogger.info(
c.bold(c.green(`Astro-GhostCMS is up to date! v${localVersion}`)),
);
}
},
"astro:build:done": ({ logger }) => {
// Configure Loggers
const GhostLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.bold(
c.green("BUILD"),
)}`,
);
// Log Build Complete
GhostLogger.info(
c.bold(c.magenta("Running Astro-GhostCMS in Production mode 🚀")),
);
},
};
},
});

View File

@ -0,0 +1,3 @@
import astroGhostCMS from "./astro-ghostcms";
export default astroGhostCMS;

View File

@ -1,28 +0,0 @@
import robotsTxt, { type RobotsTxtOptions } from "astro-robots-txt";
import type { UserConfig } from "../schemas";
export function getRobotsTxtConfig(
opts: UserConfig["robotstxt"],
): RobotsTxtOptions {
const robotsConfig: RobotsTxtOptions = {};
if (opts?.host) {
robotsConfig.host = opts.host;
}
if (opts?.policy) {
robotsConfig.policy = opts.policy;
}
if (opts?.sitemap) {
robotsConfig.sitemap = opts.sitemap;
}
if (opts?.sitemapBaseFileName) {
robotsConfig.sitemapBaseFileName = opts.sitemapBaseFileName;
}
return robotsConfig;
}
/**
* A wrapped version of the `astro-robots-txt` integration for GhostCMS.
*/
export default function ghostRobots(opts: UserConfig["robotstxt"]) {
return robotsTxt(getRobotsTxtConfig(opts));
}

View File

@ -0,0 +1,52 @@
import { createResolver, defineIntegration } from "astro-integration-kit";
import { corePlugins } from "astro-integration-kit/plugins";
import { z } from "astro/zod";
import c from "picocolors";
export default defineIntegration({
name: "@matthiesenxyz/astro-ghostcms-rss",
optionsSchema: z.object({
verbose: z.coerce.boolean().optional(),
}),
plugins: [...corePlugins],
setup({ options }) {
const { resolve } = createResolver(import.meta.url);
return {
"astro:config:setup": ({ watchIntegration, injectRoute, logger }) => {
watchIntegration(resolve());
const RSSLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"RSSGenerator",
)}`,
);
RSSLogger.info(c.bold(c.magenta("RSS Feed Enabled. Setting up...")));
injectRoute({
pattern: "/rss-style.xsl",
entrypoint: resolve("./routes/rss-style.xsl.ts"),
});
injectRoute({
pattern: "/rss.xml",
entrypoint: resolve("./routes/rss.xml.ts"),
});
},
"astro:config:done": ({ logger }) => {
const RSSLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"RSSGenerator",
)}`,
);
const verboseLogsInfo = (message:string) => {
if (options.verbose) {
RSSLogger.info(message);
}
};
verboseLogsInfo(c.bold(c.green("RSS Feed Setup Complete")));
},
};
},
});

View File

@ -0,0 +1,3 @@
import astroGhostcmsRSS from "./astro-ghostcms-rss";
export default astroGhostcmsRSS;

View File

@ -1,6 +1,6 @@
import rss from "@astrojs/rss";
import type { APIContext } from "astro";
import { getAllPosts, getSettings, invariant } from "../api";
import { getAllPosts, getSettings, invariant } from "../../../api";
const posts = await getAllPosts();
const settings = await getSettings();

View File

@ -0,0 +1,84 @@
import { createResolver, defineIntegration } from "astro-integration-kit";
import { corePlugins } from "astro-integration-kit/plugins";
import { z } from "astro/zod";
import c from "picocolors";
export default defineIntegration({
name: "@matthiesenxyz/astro-ghostcms-satoriog",
optionsSchema: z.object({
verbose: z.coerce.boolean().optional(),
}),
plugins: [...corePlugins],
setup({ options }) {
const { resolve } = createResolver(import.meta.url);
return {
"astro:config:setup": ({
watchIntegration,
updateConfig,
injectRoute,
logger,
}) => {
watchIntegration(resolve());
const SatoriLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"SatoriOG",
)}`,
);
SatoriLogger.info(
c.bold(c.magenta("OG Image Integration Enabled. Setting up...")),
);
injectRoute({
pattern: "/open-graph/[slug].png",
entrypoint: resolve("./routes/[slug].png.ts"),
});
injectRoute({
pattern: "/open-graph/index.png",
entrypoint: resolve("./routes/index.png.ts"),
});
injectRoute({
pattern: "/open-graph/authors.png",
entrypoint: resolve("./routes/authors.png.ts"),
});
injectRoute({
pattern: "/open-graph/author/[slug].png",
entrypoint: resolve("./routes/author/[slug].png.ts"),
});
injectRoute({
pattern: "/open-graph/tags.png",
entrypoint: resolve("./routes/tags.png.ts"),
});
injectRoute({
pattern: "/open-graph/tag/[slug].png",
entrypoint: resolve("./routes/tag/[slug].png.ts"),
});
updateConfig({
vite: { optimizeDeps: { exclude: ["@resvg/resvg-js"] } },
});
},
"astro:config:done": ({ logger }) => {
const SatoriLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"SatoriOG",
)}`,
);
const verboseLogsInfo = (message:string) => {
if (options.verbose) {
SatoriLogger.info(message);
}
};
verboseLogsInfo(c.bold(c.green("OG Image Integration Setup Complete")));
},
};
},
});

View File

@ -0,0 +1,3 @@
import astroGhostcmsSatoriog from "./astro-ghostcms-satoriog";
export default astroGhostcmsSatoriog;

View File

@ -5,13 +5,8 @@ import type {
InferGetStaticPropsType,
} from "astro";
import { html } from "satori-html";
import {
getAllPages,
getAllPosts,
getSettings,
invariant,
} from "../../api/index.js";
import satoriOG from "../../integrations/satori.js";
import { getAllPages, getAllPosts, getSettings, invariant } from "../../../api";
import satoriOG from "../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];

View File

@ -10,8 +10,8 @@ import {
getAllPosts,
getSettings,
invariant,
} from "../../../api/index.js";
import satoriOG from "../../../integrations/satori.js";
} from "../../../../api";
import satoriOG from "../../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];

View File

@ -5,13 +5,8 @@ import type {
InferGetStaticPropsType,
} from "astro";
import { html } from "satori-html";
import {
getAllPages,
getAllPosts,
getSettings,
invariant,
} from "../../api/index.js";
import satoriOG from "../../integrations/satori.js";
import { getAllPages, getAllPosts, getSettings, invariant } from "../../../api";
import satoriOG from "../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];

View File

@ -5,13 +5,8 @@ import type {
InferGetStaticPropsType,
} from "astro";
import { html } from "satori-html";
import {
getAllPages,
getAllPosts,
getSettings,
invariant,
} from "../../api/index.js";
import satoriOG from "../../integrations/satori.js";
import { getAllPages, getAllPosts, getSettings, invariant } from "../../../api";
import satoriOG from "../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];

View File

@ -10,13 +10,13 @@ import {
getAllTags,
getSettings,
invariant,
} from "../../../api/index.js";
import satoriOG from "../../../integrations/satori.js";
} from "../../../../api";
import satoriOG from "../../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, "Settings are required");

View File

@ -5,13 +5,8 @@ import type {
InferGetStaticPropsType,
} from "astro";
import { html } from "satori-html";
import {
getAllPages,
getAllPosts,
getSettings,
invariant,
} from "../../api/index.js";
import satoriOG from "../../integrations/satori.js";
import { getAllPages, getAllPosts, getSettings, invariant } from "../../../api";
import satoriOG from "../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];

View File

@ -5,7 +5,7 @@ import type {
ToImageOptions,
ToResponseOptions,
ToSvgOptions,
} from "../../types.js";
} from "./types";
const satoriOG = ({ width, height, template }: SatoriAstroOGOptions) => {
return {

View File

@ -1,24 +1,5 @@
import type { Resvg } from "@resvg/resvg-js";
import type satori from "satori";
export type { UserConfig, GhostUserConfig } from "./src/schemas";
export type {
Author,
AuthorsIncludeSchema,
Page,
PagesIncludeSchema,
Post,
PostsIncludeSchema,
Settings,
Tag,
TagsIncludeSchema,
Tier,
TiersIncludeSchema,
} from "./src/api/index.ts";
export type { ContentAPICredentials, APIVersions } from "@ts-ghost/core-api";
type SatoriParameters = Parameters<typeof satori>;
type SatoriOptions = SatoriParameters[1];
type ResvgOptions = NonNullable<ConstructorParameters<typeof Resvg>[1]>;

View File

@ -1,38 +0,0 @@
import sitemap, { type SitemapOptions } from "@astrojs/sitemap";
import type { UserConfig } from "../schemas";
export function getSitemapConfig(opts: UserConfig["sitemap"]): SitemapOptions {
const sitemapConfig: SitemapOptions = {};
if (opts?.filter) {
sitemapConfig.filter = opts.filter;
}
if (opts?.changefreq) {
sitemapConfig.changefreq = opts.changefreq;
}
if (opts?.entryLimit) {
sitemapConfig.entryLimit = opts.entryLimit;
}
if (opts?.customPages) {
sitemapConfig.customPages = opts.customPages;
}
if (opts?.i18n) {
sitemapConfig.i18n = opts.i18n;
}
if (opts?.lastmod) {
sitemapConfig.lastmod = opts.lastmod;
}
if (opts?.priority) {
sitemapConfig.priority = opts.priority;
}
if (opts?.serialize) {
sitemapConfig.serialize = opts.serialize;
}
return sitemapConfig;
}
/**
* A wrapped version of the `@astrojs/sitemap` integration for GhostCMS.
*/
export default function ghostSitemap(opts: UserConfig["sitemap"]) {
return sitemap(getSitemapConfig(opts));
}

View File

@ -0,0 +1,99 @@
import { createResolver, defineIntegration } from "astro-integration-kit";
import { corePlugins } from "astro-integration-kit/plugins";
import { z } from "astro/zod";
import c from "picocolors";
export default defineIntegration({
name: "@matthiesenxyz/astro-ghostcms-themeprovider",
optionsSchema: z.object({
theme: z.string(),
verbose: z.coerce.boolean().optional(),
}),
plugins: [...corePlugins],
setup({ options }) {
const { resolve } = createResolver(import.meta.url);
const DEFAULT_THEME = "@matthiesenxyz/astro-ghostcms-theme-default";
return {
"astro:config:setup": ({ watchIntegration, injectRoute, logger }) => {
watchIntegration(resolve());
const themeLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"Theme Provider",
)}`,
);
const verboseLogsInfo = (message:string) => {
if (options.verbose) {
themeLogger.info(message);
}
};
themeLogger.info(
c.bold(c.magenta("Theme Provider enabled. Setting up...")),
);
if (options.theme === DEFAULT_THEME) {
verboseLogsInfo(
c.blue("No theme is set, injecting default theme"),
);
} else {
verboseLogsInfo(`${c.bold(c.cyan("Injecting Theme:"))} ${c.bold(c.underline(c.magenta(options.theme)))}`);
}
injectRoute({
pattern: "/",
entrypoint: `${options.theme}/index.astro`,
});
injectRoute({
pattern: "/[slug]",
entrypoint: `${options.theme}/[slug].astro`,
});
injectRoute({
pattern: "/tags",
entrypoint: `${options.theme}/tags.astro`,
});
injectRoute({
pattern: "/authors",
entrypoint: `${options.theme}/authors.astro`,
});
injectRoute({
pattern: "/tag/[slug]",
entrypoint: `${options.theme}/tag/[slug].astro`,
});
injectRoute({
pattern: "/author/[slug]",
entrypoint: `${options.theme}/author/[slug].astro`,
});
injectRoute({
pattern: "/archives/[...page]",
entrypoint: `${options.theme}/archives/[...page].astro`,
});
},
"astro:config:done": ({ logger }) => {
const themeLogger = logger.fork(
`${c.bold(c.blue("👻 Astro-GhostCMS"))}${c.gray("/")}${c.blue(
"Theme Provider",
)}`,
);
const verboseLogsInfo = (message:string) => {
if (options.verbose) {
themeLogger.info(message);
}
};
verboseLogsInfo(c.bold(c.green("Provider Setup Complete")));
},
};
},
});

View File

@ -0,0 +1,3 @@
import astroGhostcmsThemeProvider from "./astro-ghostcms-themeprovider";
export default astroGhostcmsThemeProvider;

View File

@ -1,6 +0,0 @@
import type { GhostUserConfig } from "../schemas";
import config from "virtual:@matthiesenxyz/astro-ghostcms/config";
const UserConfig = config as GhostUserConfig;
export default UserConfig;

View File

@ -1,6 +1,6 @@
---
import './404.css';
import { getSettings, invariant } from '../../api';
import { getSettings, invariant } from '../api';
const settings = await getSettings();
invariant(settings, "Settings not found");

View File

@ -1,7 +1,7 @@
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
import createFetchMock from "vitest-fetch-mock";
import TS_API from "../../content-api";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
const fetchMocker = createFetchMock(vi);
@ -9,7 +9,7 @@ describe("authors api .browse() Args Type-safety", () => {
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
const api = new TS_API(url, key, "v5.0");
const api = new TSGhostContentAPI(url, key, "v5.0");
test(".browse() params shouldnt accept invalid params", () => {
// @ts-expect-error - shouldnt accept invalid params
const browse = api.authors.browse({ pp: 2 });
@ -95,10 +95,10 @@ describe("authors api .browse() Args Type-safety", () => {
});
describe("authors resource mocked", () => {
let api: TS_API;
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TS_API(
api = new TSGhostContentAPI(
"https://my-ghost-blog.com",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",

View File

@ -1,7 +1,7 @@
export * from "./authors";
export * from "./helpers";
export * from "./pages";
export * from "./posts";
export * from "./settings";
export * from "./socials";
export * from "./tags";
export * from "./tiers";

View File

@ -7,8 +7,8 @@ import {
} from "@ts-ghost/core-api";
import { z } from "astro/zod";
import { authorsSchema } from "../authors";
import { tagsSchema } from "../tags";
import { authorsSchema } from "./authors";
import { tagsSchema } from "./tags";
const postsAuthorSchema = authorsSchema.extend({
url: z.string().nullish(),

View File

@ -1,14 +1,14 @@
import { describe, expect, test } from "vitest";
import TS_API from "../../content-api";
import type { Post } from "./posts";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
import type { Post } from "./index";
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
describe("posts api .browse() Args Type-safety", () => {
const api = new TS_API(url, key, "v5.0");
const api = new TSGhostContentAPI(url, key, "v5.0");
test(".browse() params shouldnt accept invalid params", () => {
// @ts-expect-error - shouldnt accept invalid params
const browse = api.posts.browse({ pp: 2 });
@ -21,8 +21,7 @@ describe("posts api .browse() Args Type-safety", () => {
foo: true,
} satisfies { [k in keyof Post]?: true | undefined };
// biome-ignore lint/style/useConst: <explanation>
let test = api.posts
const test = api.posts
.browse()
// @ts-expect-error - shouldnt accept invalid params
.fields(outputFields);
@ -45,8 +44,7 @@ describe("posts api .browse() Args Type-safety", () => {
title: true,
} satisfies { [k in keyof Post]?: true | undefined };
// biome-ignore lint/style/useConst: <explanation>
let test = api.posts.browse().fields(outputFields);
const test = api.posts.browse().fields(outputFields);
expect(test.getOutputFields()).toEqual(["slug", "title"]);
// @ts-expect-error - shouldnt accept invalid params

View File

@ -7,8 +7,8 @@ import {
} from "@ts-ghost/core-api";
import { z } from "astro/zod";
import { authorsSchema } from "../authors";
import { tagsSchema } from "../tags";
import { authorsSchema } from "./authors";
import { tagsSchema } from "./tags";
const postsAuthorSchema = authorsSchema.extend({
url: z.string().nullish(),

View File

@ -0,0 +1,39 @@
import { beforeEach, describe, expect, test } from "vitest";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
describe("settings integration tests browse", () => {
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TSGhostContentAPI(url, key, "v5.0");
});
test("settings.fetch()", async () => {
const result = await api.settings.fetch();
expect(result).not.toBeUndefined();
expect(result).not.toBeNull();
if (!result.success) {
expect(result.errors).toBeDefined();
expect(result.errors).toHaveLength(1);
} else {
expect(result.data).toBeDefined();
const settings = result.data;
expect(settings).toBeDefined();
expect(settings.title).toBe("Astro Starter");
expect(settings.description).toBe("Thoughts, stories and ideas.");
expect(settings.logo).toBeNull();
expect(settings.cover_image).toBe(
"https://static.ghost.org/v4.0.0/images/publication-cover.jpg",
);
expect(settings.icon).toBeNull();
expect(settings.lang).toBe("en");
expect(settings.timezone).toBe("Etc/UTC");
expect(settings.codeinjection_head).toBeNull();
expect(settings.codeinjection_foot).toBeNull();
expect(settings.members_support_address).toBe("noreply");
}
});
});

View File

@ -1,3 +0,0 @@
export * from "./robots";
export * from "./sitemap";
export * from "./userconfig";

View File

@ -1,37 +0,0 @@
import { z } from "astro/zod";
const RobotsPolicySchema = z.object({
/** You must provide a name of the automatic client (search engine crawler).
* Wildcards are allowed.
*/
userAgent: z.string(),
/** Allowed paths for crawling */
allow: z.string().optional(),
/** Disallowed paths for crawling */
disallow: z.string().optional(),
/** Indicates that the page's URL contains parameters that should be ignored during crawling.
* Maximum string length is limited to 500.
*/
cleanParam: z.string().optional(),
/** Minimum interval (in secs) for the crawler to wait after loading one page, before starting other */
crawlDelay: z.number().optional(),
});
export const RobotsTxtSchema = z.object({
/** @example host: true
* // Automatically resolve using the site option from Astro config
* @example host: 'example.com'
*/
host: z.string().optional(),
/** @example sitemap: "https://example.com/sitemap-0.xml"
* @example sitemap: ['https://example.com/sitemap-0.xml','https://example.com/sitemap-1.xml']
* @example sitemap: false - If you want to get the robots.txt file without the Sitemap: ... entry, set the sitemap parameter to false.
*/
sitemap: z.union([z.string(), z.string().array(), z.boolean()]).optional(),
/** astrojs/sitemap and astro-robots-txt integrations have the sitemap-index.xml as their primary output. That is why the default value of sitemapBaseFileName is set to sitemap-index.
* @example sitemapBaseFileName: 'custom-sitemap'
*/
sitemapBaseFileName: z.string().optional(),
/** SET POLICY RULES */
policy: RobotsPolicySchema.array().optional(),
});

Some files were not shown because too many files have changed in this diff Show More