diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs index 90ac0a6..aa94d81 100644 --- a/docs/astro.config.mjs +++ b/docs/astro.config.mjs @@ -6,6 +6,7 @@ const site = 'https://secco.lekoarts.de' // https://astro.build/config export default defineConfig({ site, + trailingSlash: 'always', integrations: [ starlight({ title: 'secco', diff --git a/docs/package.json b/docs/package.json index eaa61d5..d8f7230 100644 --- a/docs/package.json +++ b/docs/package.json @@ -9,8 +9,8 @@ "astro": "astro" }, "dependencies": { - "@astrojs/starlight": "^0.11.2", - "astro": "^3.3.0", + "@astrojs/starlight": "^0.14.0", + "astro": "^3.6.4", "sharp": "^0.33.0" } } diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index bae724a..77fbc40 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@astrojs/starlight': - specifier: ^0.11.2 - version: 0.11.2(astro@3.3.0) + specifier: ^0.14.0 + version: 0.14.0(astro@3.6.4) astro: - specifier: ^3.3.0 - version: 3.3.0 + specifier: ^3.6.4 + version: 3.6.4 sharp: specifier: ^0.33.0 version: 0.33.0 @@ -25,21 +25,21 @@ packages: '@jridgewell/trace-mapping': 0.3.19 dev: false - /@astrojs/compiler@2.1.0: - resolution: {integrity: sha512-Mp+qrNhly+27bL/Zq8lGeUY+YrdoU0eDfIlAeGIPrzt0PnI/jGpvPUdCaugv4zbCrDkOUScFfcbeEiYumrdJnw==} + /@astrojs/compiler@2.3.2: + resolution: {integrity: sha512-jkY7bCVxl27KeZsSxIZ+pqACe+g8VQUdTiSJRj/sXYdIaZlW3ZMq4qF2M17P/oDt3LBq0zLNwQr4Cb7fSpRGxQ==} dev: false /@astrojs/internal-helpers@0.2.1: resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} dev: false - /@astrojs/markdown-remark@3.2.0(astro@3.3.0): + /@astrojs/markdown-remark@3.2.0(astro@3.6.4): resolution: {integrity: sha512-jigyLfefUZPKgVmmraCkVpdUuFH1R3SrpgQO13axsgwLDBgkggaQpNR5Ag4O9PDualeBtbdt30aYSfvnBKx9Hg==} peerDependencies: astro: ^3.1.0 dependencies: '@astrojs/prism': 3.0.0 - astro: 3.3.0 + astro: 3.6.4 github-slugger: 2.0.0 import-meta-resolve: 3.0.0 mdast-util-definitions: 6.0.0 @@ -57,13 +57,13 @@ packages: - supports-color dev: false - /@astrojs/markdown-remark@3.3.0(astro@3.3.0): - resolution: {integrity: sha512-ezFzEiZygc/ASe2Eul9v1yrTbNGqSbR348UGNXQ4Dtkx8MYRwfiBfmPm6VnEdfIGkW+bi5qIUReKfc7mPVUkIg==} + /@astrojs/markdown-remark@3.5.0(astro@3.6.4): + resolution: {integrity: sha512-q7vdIqzYhxpsfghg2YmkmSXCfp4w7lBTYP+SSHw89wVhC5Riltr3u8w2otBRxNLSByNi+ht/gGkFC23Shetytw==} peerDependencies: - astro: ^3.3.0 + astro: ^3.0.0 dependencies: '@astrojs/prism': 3.0.0 - astro: 3.3.0 + astro: 3.6.4 github-slugger: 2.0.0 import-meta-resolve: 3.0.0 mdast-util-definitions: 6.0.0 @@ -81,16 +81,16 @@ packages: - supports-color dev: false - /@astrojs/mdx@1.1.0(astro@3.3.0): + /@astrojs/mdx@1.1.0(astro@3.6.4): resolution: {integrity: sha512-rmLZBw3CUCkp+5blBJloV2EqJGRaJTraJygWMfCvrLcCA3vzhwzACnVQKdUDlts8EEr6V6+HXYVqi46AVEfobg==} engines: {node: '>=18.14.1'} peerDependencies: astro: ^3.1.0 dependencies: - '@astrojs/markdown-remark': 3.2.0(astro@3.3.0) + '@astrojs/markdown-remark': 3.2.0(astro@3.6.4) '@mdx-js/mdx': 2.3.0 acorn: 8.10.0 - astro: 3.3.0 + astro: 3.6.4 es-module-lexer: 1.3.1 estree-util-visit: 1.2.1 github-slugger: 2.0.0 @@ -114,23 +114,24 @@ packages: prismjs: 1.29.0 dev: false - /@astrojs/sitemap@3.0.0: - resolution: {integrity: sha512-qm7npHuUW4q3OOmulqhJ1g69jEQu0Sdc6P8NbOzqIoosj/L+3v4i8dtKBnp6n1UQ4Sx8H8Vdi3Z/On7i9/ZJhw==} + /@astrojs/sitemap@3.0.3: + resolution: {integrity: sha512-+GRKp1yho9dpHBcMcU6JpbL41k0yYZghOkNsMRb8QIRflbGHvd787tdv9oIZ5NJj0SqAuOlqp2UpqLkJXuAe2A==} dependencies: sitemap: 7.1.1 - zod: 3.21.1 + zod: 3.22.4 dev: false - /@astrojs/starlight@0.11.2(astro@3.3.0): - resolution: {integrity: sha512-bwKYgU70SP1AItFJqdQ1k+cC9cVEvQ849+9pg5Ms3PF1BlN/f0H3bj6SPqRkZnNEwYGREqjbtempJRTnpTaJnA==} + /@astrojs/starlight@0.14.0(astro@3.6.4): + resolution: {integrity: sha512-wrve52CIIymvntjf2QCfCFpYrmZTyD1qObkvLImeGDVAAyNdUnNlj6MU6SkqQg2fQkJcX9Kh4zkwepm79zYveQ==} peerDependencies: astro: ^3.2.0 dependencies: - '@astrojs/mdx': 1.1.0(astro@3.3.0) - '@astrojs/sitemap': 3.0.0 + '@astrojs/mdx': 1.1.0(astro@3.6.4) + '@astrojs/sitemap': 3.0.3 '@pagefind/default-ui': 1.0.3 '@types/mdast': 3.0.13 - astro: 3.3.0 + astro: 3.6.4 + astro-expressive-code: 0.29.2(astro@3.6.4) bcp-47: 2.1.0 execa: 8.0.1 hast-util-select: 5.0.5 @@ -146,8 +147,8 @@ packages: - supports-color dev: false - /@astrojs/telemetry@3.0.3: - resolution: {integrity: sha512-j19Cf5mfyLt9hxgJ9W/FMdAA5Lovfp7/CINNB/7V71GqvygnL7KXhRC3TzfB+PsVQcBtgWZzCXhUWRbmJ64Raw==} + /@astrojs/telemetry@3.0.4: + resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} engines: {node: '>=18.14.1'} dependencies: ci-info: 3.8.0 @@ -388,6 +389,11 @@ packages: to-fast-properties: 2.0.0 dev: false + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: false + /@emnapi/runtime@0.44.0: resolution: {integrity: sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw==} requiresBuild: true @@ -792,6 +798,38 @@ packages: dev: false optional: true + /@expressive-code/core@0.29.2: + resolution: {integrity: sha512-QJv5rDqSpx8WcAE4cZE+9GE31NtkN3i1zdr0KmdgwcIAEixhgxCFfngMoHWYYcLQnBMCIsFCyHnS39SAL4ub0Q==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + hast-util-to-html: 8.0.4 + hastscript: 7.2.0 + postcss: 8.4.31 + postcss-nested: 6.0.1(postcss@8.4.31) + dev: false + + /@expressive-code/plugin-frames@0.29.2: + resolution: {integrity: sha512-qQoDHB3iW7+Jb38omXGcaMNCbcBnGOijREDU5VW8TkFKzwx63gxcia8EYzzuCK15A2Pa8/5YqgE+0RrwKTGXHA==} + dependencies: + '@expressive-code/core': 0.29.2 + hastscript: 7.2.0 + dev: false + + /@expressive-code/plugin-shiki@0.29.2: + resolution: {integrity: sha512-ZRcG0Rh7S98XzHqTVlZd4pMcXehv6bjSzdM0r0LT2LpCl5oAbzx5DBYCy6BFKu2Qc4UkhTm04obXZSWoAtSaGw==} + dependencies: + '@expressive-code/core': 0.29.2 + shiki: 0.14.4 + dev: false + + /@expressive-code/plugin-text-markers@0.29.2: + resolution: {integrity: sha512-2jhmKIUIizTTnkasFQMmonNNMKmKQxfIIIZcsCLZ0ZaJdBkU0OueAVfQbk0amsrsiPL2ihJ3iDh0JZE0Ztz0AA==} + dependencies: + '@expressive-code/core': 0.29.2 + hastscript: 7.2.0 + unist-util-visit-parents: 5.1.3 + dev: false + /@img/sharp-darwin-arm64@0.33.0: resolution: {integrity: sha512-070tEheekI1LJWTGPC9WlQEa5UoKTXzzlORBHMX4TbfUxMiL336YHR8vBEUNsjse0RJCX8dZ4ZXwT595aEF1ug==} engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} @@ -1291,15 +1329,24 @@ packages: hasBin: true dev: false - /astro@3.3.0: - resolution: {integrity: sha512-O3MsXULamxQMy6sBgv07iVe5teJ41o+9tVScB/Yo2Io0XwvLXVhjVrjAxKpulBcKpU3/LyOpVfj/x63fcONbPA==} + /astro-expressive-code@0.29.2(astro@3.6.4): + resolution: {integrity: sha512-fVslVRplAQGaZyVkAFOM1csHqWDkhPzBhXEMEKfjHCzk8CMnl5VPD9yljx48GizwbB0EId68uIc6xO2hoVK9rQ==} + peerDependencies: + astro: ^3.0.0-beta + dependencies: + astro: 3.6.4 + remark-expressive-code: 0.29.2 + dev: false + + /astro@3.6.4: + resolution: {integrity: sha512-YatUyWEQ9GUC79Wc2zbovy6D6bXPW9++Z6PYs4GDamEDspUSnnzL/INB7WJqgFI0xAFk9jcUr+MZYjkdWqXYTw==} engines: {node: '>=18.14.1', npm: '>=6.14.0'} hasBin: true dependencies: - '@astrojs/compiler': 2.1.0 + '@astrojs/compiler': 2.3.2 '@astrojs/internal-helpers': 0.2.1 - '@astrojs/markdown-remark': 3.3.0(astro@3.3.0) - '@astrojs/telemetry': 3.0.3 + '@astrojs/markdown-remark': 3.5.0(astro@3.6.4) + '@astrojs/telemetry': 3.0.4 '@babel/core': 7.23.0 '@babel/generator': 7.23.0 '@babel/parser': 7.23.0 @@ -1315,6 +1362,7 @@ packages: common-ancestor-path: 1.0.1 cookie: 0.5.0 debug: 4.3.4 + deterministic-object-hash: 1.3.1 devalue: 4.3.2 diff: 5.1.0 es-module-lexer: 1.3.1 @@ -1329,9 +1377,11 @@ packages: js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.4 + mdast-util-to-hast: 12.3.0 mime: 3.0.0 ora: 7.0.1 p-limit: 4.0.0 + p-queue: 7.4.1 path-to-regexp: 6.2.1 preferred-pm: 3.1.2 probe-image-size: 7.2.3 @@ -1343,14 +1393,14 @@ packages: shikiji: 0.6.10 string-width: 6.1.0 strip-ansi: 7.1.0 - tsconfck: 3.0.0-next.9 + tsconfck: 3.0.0 unist-util-visit: 4.1.2 vfile: 5.3.7 vite: 4.4.9 vitefu: 0.2.4(vite@4.4.9) which-pm: 2.1.1 yargs-parser: 21.1.1 - zod: 3.21.1 + zod: 3.22.4 optionalDependencies: sharp: 0.32.6 transitivePeerDependencies: @@ -1623,6 +1673,12 @@ packages: resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} dev: false + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -1689,6 +1745,10 @@ packages: engines: {node: '>=8'} dev: false + /deterministic-object-hash@1.3.1: + resolution: {integrity: sha512-kQDIieBUreEgY+akq0N7o4FzZCr27dPG1xr3wq267vPwDlSXQ3UMcBXHqTGUBaM/5WDS1jwTYjxRhUzHeuiAvw==} + dev: false + /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} dev: false @@ -1875,6 +1935,10 @@ packages: '@types/estree': 1.0.2 dev: false + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false + /execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -1897,6 +1961,15 @@ packages: dev: false optional: true + /expressive-code@0.29.2: + resolution: {integrity: sha512-UwC+GjYSUbonH8gYlHS4fmh0TSdyrdDry88GdVYVUiN2EI1nh7Duu8s2cpYvFsObPIeUXsbHLWTygBO1XhXtEQ==} + dependencies: + '@expressive-code/core': 0.29.2 + '@expressive-code/plugin-frames': 0.29.2 + '@expressive-code/plugin-shiki': 0.29.2 + '@expressive-code/plugin-text-markers': 0.29.2 + dev: false + /extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -3340,6 +3413,19 @@ packages: p-limit: 3.1.0 dev: false + /p-queue@7.4.1: + resolution: {integrity: sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==} + engines: {node: '>=12'} + dependencies: + eventemitter3: 5.0.1 + p-timeout: 5.1.0 + dev: false + + /p-timeout@5.1.0: + resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} + engines: {node: '>=12'} + dev: false + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -3439,6 +3525,24 @@ packages: find-up: 4.1.0 dev: false + /postcss-nested@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: false + /postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -3598,6 +3702,14 @@ packages: - supports-color dev: false + /remark-expressive-code@0.29.2: + resolution: {integrity: sha512-XIsrURhMOJNOUkCSp0OQ3suAZxNIS6ZkubjOxlTLyViOuVPmvRIXp36t6om9PYSwbxesorM+DNJpsla297GzQQ==} + dependencies: + expressive-code: 0.29.2 + hast-util-to-html: 8.0.4 + unist-util-visit: 4.1.2 + dev: false + /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: @@ -4080,8 +4192,8 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /tsconfck@3.0.0-next.9: - resolution: {integrity: sha512-bgVlu3qcRUZpm9Au1IHiPDkb8XU+72bRkXrBaJsiAjIlixtkbKLe4q1odrrqG0rVHvh0Q4R3adT/nh1FwzftXA==} + /tsconfck@3.0.0: + resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -4433,8 +4545,8 @@ packages: engines: {node: '>=12.20'} dev: false - /zod@3.21.1: - resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false /zwitch@2.0.4: diff --git a/docs/src/content/docs/guide.md b/docs/src/content/docs/guide.md index f184227..ebae2a2 100644 --- a/docs/src/content/docs/guide.md +++ b/docs/src/content/docs/guide.md @@ -35,7 +35,7 @@ secco uses the terms **source** and **destination** throughout its docs and mess :::note[Example] -```shell +```shell title="File tree" repositories ├── test-project │ ├── cli.mjs diff --git a/docs/src/content/docs/guide/continuous-integration.md b/docs/src/content/docs/guide/continuous-integration.md index a4de7c9..ab68ad2 100644 --- a/docs/src/content/docs/guide/continuous-integration.md +++ b/docs/src/content/docs/guide/continuous-integration.md @@ -17,7 +17,7 @@ Regardless of your CI provider or overall setup, you should use the `--force-ver Let's say you have the following setup: -```shell +```shell title="File tree" dist/ ├─ index.js e2e-tests/ @@ -49,7 +49,7 @@ Generally speaking, you'll want to run the script like so: ### Bash -```sh +```bash title="e2e-test.sh" #!/bin/bash set -e # Bail on errors @@ -99,9 +99,9 @@ Install the necessary dependencies: npm install zx @actions/core ``` -Create a new file, e.g. called `install-site-in-isolation-mjs`: +Create a new file, e.g. called `install-site-in-isolation.mjs`: -```js +```js title="install-site-in-isolation.mjs" #!/usr/bin/env zx import { cp, mkdir, mkdtemp } from 'node:fs/promises' @@ -162,9 +162,7 @@ This script won't run your tests yet, you'd need to add the functionality to the You could run the [bash script](#bash-script) inside CircleCI like so: -```yml -# .circleci/config.yml - +```yml title=".circleci/config.yml" commands: e2e-test: parameters: @@ -184,9 +182,7 @@ commands: You could use the [zx](#zx) script inside GitHub actions like so: -```yml -# .github/workflows/e2e-test.yml - +```yml title=".github/workflows/e2e-test.yml" name: E2E Tests on: pull_request