diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..613c65fe --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "master", + "updateInternalDependencies": "patch", + "ignore": [], + "privatePackages": { + "version": true, + "tag": true + } +} diff --git a/.devcontainer.json b/.devcontainer.json index 8cdd33a1..61c389e0 100644 --- a/.devcontainer.json +++ b/.devcontainer.json @@ -1,27 +1,26 @@ { - "name": "openscript-ch", - "image": "mcr.microsoft.com/devcontainers/typescript-node:1-20-bookworm", - "customizations": { - "vscode": { - "extensions": [ - "streetsidesoftware.code-spell-checker", - "streetsidesoftware.code-spell-checker-german", - "esbenp.prettier-vscode", - "mikestead.dotenv", - "eamodio.gitlens", - "vscode-icons-team.vscode-icons", - "mgmcdermott.vscode-language-babel", - "dbaeumer.vscode-eslint", - "styled-components.vscode-styled-components", - "graphql.vscode-graphql", - "lokalise.i18n-ally", - "eliostruyf.vscode-front-matter", - "unifiedjs.vscode-mdx", - "GraphQL.vscode-graphql" - ] - } - }, - "forwardPorts": [ - 8000 - ] + "name": "openscript.ch", + "image": "mcr.microsoft.com/devcontainers/typescript-node:3-22-bookworm", + "customizations": { + "vscode": { + "extensions": [ + "astro-build.astro-vscode", + "vitest.explorer", + "streetsidesoftware.code-spell-checker", + "streetsidesoftware.code-spell-checker-swiss-german", + "esbenp.prettier-vscode", + "mgmcdermott.vscode-language-babel", + "dbaeumer.vscode-eslint", + "eliostruyf.vscode-front-matter", + "unifiedjs.vscode-mdx", + "github.vscode-github-actions", + "GitHub.vscode-pull-request-github", + "vunguyentuan.vscode-css-variables", + ] + } + }, + "containerEnv": { + "ASTRO_TELEMETRY_DISABLED": "1" + }, + "postCreateCommand": "npm install -g npm@11.5.2 pnpm@10.18.0" } diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..cf1f3e38 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = false + + +[{.*,*.md,*.json,*.toml,*.yml,*.json5}] +indent_style = space diff --git a/.env.development b/.env.development deleted file mode 100644 index 005e3f32..00000000 --- a/.env.development +++ /dev/null @@ -1 +0,0 @@ -SITE_URL=http://localhost:8000 \ No newline at end of file diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 0d24b4d2..00000000 --- a/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules -public -dist -.cache -*.js -__mock__ -graphql-types.ts diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 699f42cd..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - }, - overrides: [ - { - files: ['*.js', '*.jsx', '*.ts', '*.tsx'], - extends: ['plugin:react/recommended', 'airbnb', 'airbnb-typescript', 'plugin:react/jsx-runtime', 'plugin:prettier/recommended'], - parser: '@typescript-eslint/parser', - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 13, - sourceType: 'module', - project: './tsconfig.json', - }, - plugins: ['react', '@typescript-eslint'], - rules: { - 'import/prefer-default-export': 'off', - 'import/no-relative-packages': 'off', - 'import/no-extraneous-dependencies': 'off', - 'react/require-default-props': 'off', - 'react/jsx-fragments': ['error', 'element'], - 'react/no-unknown-property': ['error', { ignore: ['css'] }], - }, - }, - { - files: ['*.md', '*.mdx'], - extends: ['plugin:react/recommended', 'airbnb', 'plugin:react/jsx-runtime', 'plugin:prettier/recommended', 'plugin:mdx/recommended'], - plugins: ['react'], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 13, - sourceType: 'module', - project: './tsconfig.json', - }, - rules: { - 'import/prefer-default-export': 'off', - 'import/no-relative-packages': 'off', - 'import/no-extraneous-dependencies': 'off', - 'react/require-default-props': 'off', - 'react/jsx-filename-extension': 'off', - 'react/jsx-fragments': ['error', 'element'], - 'react/no-unknown-property': ['error', { ignore: ['css'] }], - }, - }, - ], -}; diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 00000000..93a31643 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,49 @@ +name: Check + +on: + push: + branches: + - master + pull_request: + types: + - opened + - reopened + - synchronize + branches: + - master + + workflow_dispatch: + +env: + BUILD_PATH: "." + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + registry-url: https://registry.npmjs.org + cache: pnpm + cache-dependency-path: ${{ env.BUILD_PATH }}/pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: ${{ env.BUILD_PATH }} + + - name: Check with ESLint and Prettier + run: | + pnpm check + + - name: Check with Astro + run: | + pnpm astro check diff --git a/.github/workflows/clear-cache.yml b/.github/workflows/clear-cache.yml deleted file mode 100644 index fceb17ee..00000000 --- a/.github/workflows/clear-cache.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Clear cache - -on: workflow_dispatch - -jobs: - clear-cache: - name: Clear cache - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Use nodejs - uses: actions/setup-node@v4 - with: - node-version: '20.x' - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: Activate dependency cache - uses: actions/cache@v3 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install dependencies - run: yarn install --frozen-lockfile - - - name: Caching Gatsby - id: gatsby-cache-build - uses: actions/cache@v3 - with: - path: | - public - .cache - key: ${{ runner.os }}-gatsby-cache-${{ github.run_id }} - restore-keys: | - ${{ runner.os }}-gatsby-cache- - - - name: Clean Gatsby cache - id: clean-cache - run: yarn run gatsby clean diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index fa177717..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,86 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: 'CodeQL' - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: '33 7 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: ['javascript'] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - #- name: Autobuild - # uses: github/codeql-action/autobuild@v2 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - name: Use nodejs - uses: actions/setup-node@v4 - with: - node-version: '20.x' - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: Activate dependency cache - uses: actions/cache@v3 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Install dependencies - run: yarn install --frozen-lockfile - - - name: Run build - run: yarn build - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/continuous-deployment.yml b/.github/workflows/continuous-deployment.yml deleted file mode 100644 index 7019ca6e..00000000 --- a/.github/workflows/continuous-deployment.yml +++ /dev/null @@ -1,100 +0,0 @@ -name: Continuous Deployment - -on: - push: - branches: - - master - schedule: - - cron: '0 0 * * *' - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: 'pages' - cancel-in-progress: true - -defaults: - run: - shell: bash - -jobs: - build: - name: Build project - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - with: - ref: 'master' - - - name: Use nodejs - uses: actions/setup-node@v4 - with: - node-version: '20.x' - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "cache_dir=$(yarn cache dir)" >> "$GITHUB_ENV" - - - name: Activate dependency cache - uses: actions/cache@v3 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: ${{ env.cache_dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install dependencies - run: yarn install --frozen-lockfile - - - name: Caching Gatsby - id: gatsby-cache-build - uses: actions/cache@v3 - with: - path: | - public - .cache - key: ${{ runner.os }}-gatsby-cache-${{ github.run_id }} - restore-keys: | - ${{ runner.os }}-gatsby-cache- - - - name: Build website - id: build-website - run: yarn build - continue-on-error: true - env: - CI: true - - - name: Clean Gatsby cache - id: clean-cache - if: steps.build-website.outcome != 'success' - run: yarn run gatsby clean - - - name: Build website with clean cache - id: build-website-without-cache - if: steps.clean-cache.outcome == 'success' - run: yarn build - env: - CI: true - - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - if: steps.build-website.outcome == 'success' || steps.build-website-without-cache.outcome == 'success' - with: - path: ./public - - deploy: - name: Deploy project - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml deleted file mode 100644 index 3bacd696..00000000 --- a/.github/workflows/continuous-integration.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Continuous Integration - -on: - pull_request: - branches: - - develop - push: - branches: - - develop - -jobs: - check: - name: Run some checks - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Use nodejs - uses: actions/setup-node@v4 - with: - node-version: '20.x' - - - name: Install dependencies - run: yarn install --frozen-lockfile - - - name: Check types - run: yarn check:types - - - name: Check formatting - run: yarn check:format - - - name: Run tests - run: yarn test - - - name: Submit coverage - uses: codecov/codecov-action@v3 - - - name: Try to build - run: yarn build diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 00000000..5754056e --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,75 @@ +name: Deploy + +on: + workflow_call: + inputs: + ref: + required: true + type: string + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: true + +env: + BUILD_PATH: "." + +jobs: + build: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: main + # Fetch all history for tags + # https://github.com/actions/checkout/issues/1471#issuecomment-1755639487 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + registry-url: https://registry.npmjs.org + cache: pnpm + + - name: Setup Pages + id: pages + uses: actions/configure-pages@v5 + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: ${{ env.BUILD_PATH }} + + - name: Build with Astro + run: | + pnpm astro build \ + --site "${{ steps.pages.outputs.origin }}" \ + --base "${{ steps.pages.outputs.base_path }}" + working-directory: ${{ env.BUILD_PATH }} + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ${{ env.BUILD_PATH }}/dist + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..912a465c --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,53 @@ +name: Publish + +on: + pull_request: + types: + - closed + branches: + - master + +jobs: + publish: + if: github.event.pull_request.merged == true && github.head_ref == 'changeset-release/master' + name: Publish + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + registry-url: https://registry.npmjs.org + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Publish + uses: changesets/action@v1 + id: changesets + with: + version: pnpm version + publish: pnpm tag + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + outputs: + ref: ${{ github.ref }} + published: ${{ steps.changesets.outputs.published }} + + deploy-to-static-file-host: + name: Deploy to Static File Host + uses: ./.github/workflows/deploy.yaml + needs: publish + with: + ref: ${{ needs.publish.outputs.ref }} + if: ${{ needs.publish.outputs.published }} diff --git a/.github/workflows/version.yaml b/.github/workflows/version.yaml new file mode 100644 index 00000000..0f98870f --- /dev/null +++ b/.github/workflows/version.yaml @@ -0,0 +1,36 @@ +name: Version + +on: + push: + branches: + - master + +jobs: + version: + name: Version + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + registry-url: https://registry.npmjs.org + cache: pnpm + + - name: Install dependencies + run: pnpm install + + - name: Create Release Pull Request + uses: changesets/action@v1 + id: changesets + with: + commit: "chore: publish new release" + title: "chore: publish new release" + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.gitignore b/.gitignore index 31a5026d..ca475c6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,10 @@ -# Created by https://www.toptal.com/developers/gitignore/api/windows,linux,macos,node,react,visualstudiocode,intellij -# Edit at https://www.toptal.com/developers/gitignore?templates=windows,linux,macos,node,react,visualstudiocode,intellij +# Created by https://www.toptal.com/developers/gitignore/api/windows,linux,macos,node,react,visualstudiocode,intellij,astro +# Edit at https://www.toptal.com/developers/gitignore?templates=windows,linux,macos,node,react,visualstudiocode,intellij,astro + +### Astro ### +# Gitignore template for Astro projects +# Ignore content collection generated files +.astro ### Intellij ### # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider @@ -360,8 +365,7 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos,node,react,visualstudiocode,intellij +# End of https://www.toptal.com/developers/gitignore/api/windows,linux,macos,node,react,visualstudiocode,intellij,astro -# Gatsby -public -static/sprite.svg +.pnpm-store +public/sprite.svg \ No newline at end of file diff --git a/.graphqlrc.yml b/.graphqlrc.yml deleted file mode 100644 index 750a3446..00000000 --- a/.graphqlrc.yml +++ /dev/null @@ -1,2 +0,0 @@ -schema: 'http://localhost:8000/___graphql' -documents: 'src/**/*.{graphql,js,ts,jsx,tsx}' diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 58d06c36..00000000 --- a/.prettierignore +++ /dev/null @@ -1,4 +0,0 @@ -.cache -package.json -package-lock.json -public diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 658bed28..00000000 --- a/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "arrowParens": "avoid", - "semi": true, - "printWidth": 150, - "singleQuote": true -} diff --git a/.vscode/launch.json b/.vscode/launch.json index ebf4f6d6..d6422097 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,24 +2,10 @@ "version": "0.2.0", "configurations": [ { - "name": "Gatsby develop", - "type": "node", + "command": "./node_modules/.bin/astro dev", + "name": "Development server", "request": "launch", - "program": "${workspaceRoot}/node_modules/.bin/gatsby", - "args": [ - "develop" - ], - "console": "integratedTerminal" - }, - { - "name": "Gatsby build", - "type": "node", - "request": "launch", - "program": "${workspaceRoot}/node_modules/.bin/gatsby", - "args": [ - "build" - ], - "console": "integratedTerminal" + "type": "node-terminal" } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 96e89967..a2f8c128 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,43 +1,16 @@ { - "i18n-ally.localesPaths": [ - "content/i18n" - ], - "editor.formatOnSave": true, - "eslint.options": { - "extensions": [ - ".md", - ".mdx", - ".js", - ".jsx", - ".ts", - ".tsx", - ] - }, - "eslint.validate": [ - "markdown", - "mdx", - "javascript", - "javascriptreact", - "typescript", - "typescriptreact" - ], - "i18n-ally.enabledFrameworks": [ - "react" - ], - "i18n-ally.keystyle": "flat", - "i18n-ally.sortKeys": true, - "i18n-ally.sourceLanguage": "de-CH", - "i18n-ally.displayLanguage": "de-CH", + "cSpell.language": "en,de-ch", "cSpell.words": [ - "Bühler", - "Europastrasse", - "frontmatter", - "gatsby", - "Glattbrugg", - "Micael", - "openscript", - "Stampa", - "Stäubli" + "Astro" ], - "cSpell.language": "de-de, en" + "typescript.tsdk": "node_modules/typescript/lib", + "editor.rulers": [ + 120 + ], + "[astro]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, } diff --git a/LICENSE b/LICENSE index 11dbb163..64dc5049 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,13 @@ +All content (text, images, photos, illustrations and other media) as well as +the brand is the property of openscript Ltd. (CH) and cannot be used in any +way without written permission by openscript Ltd. (CH). + +The source code that is being used to generate the website is licensed as +follows: + The BSD Zero Clause License (0BSD) -Copyright (c) 2021 https://github.com/openscript -Copyright (c) 2020 Gatsby Inc. +Copyright (c) 2025 openscript Ltd. (CH) Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. @@ -12,4 +18,4 @@ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. +PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 0d53d561..b4736ffe 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,15 @@ # openscript Ltd.
Website -This project is based on [gatsby-starter-dogmatism](https://github.com/openscript/gatsby-starter-dogmatism) and [Gatsby](https://www.gatsbyjs.com/). +This is our organizations website. ## Getting started -1. **Open** the new project with Visual Studio Code and [Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). -1. **Install** the projects dependencies with `yarn install`. -1. **Run** the project with `yarn develop`. - -## Development - -- Enable Gatsby SSR during development with the `DEV_SSR` flag in the `gatsby-config.ts`. Be aware that `loadPageDataSync()` isn't implemented for development, so not everything will be run. - - see https://github.com/gatsbyjs/gatsby/issues/36675 -- Serve build locally with `cd public && python -m http.server 9000` on port 9000. +1. **Open** the new project with Visual Studio Code and [Dev Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). +1. **Install** the projects dependencies with `pnpm install`. +1. **Run** the project with `pnpm dev`. ## License -All content (text, images, photos, illustrations and other media) as well as the brand is the property of openscript Ltd. (CH). The software which is utilized to generate the website is licensed as stated in the [LICENSE](./LICENSE) file. Additionally the following licenses are applied: +All content (text, images, photos, illustrations and other media) as well as the brand is the property of openscript Ltd. (CH) and cannot be used in any way without written permission by openscript Ltd. (CH). The software which is utilized to generate the website is licensed as stated in the [LICENSE](./LICENSE) file. Additionally the following licenses are applied: - Font `2MASS J1808`: Licensed to use by openscript Ltd via fontbundles. diff --git a/__mock__/file-mock.js b/__mock__/file-mock.js deleted file mode 100644 index 86059f36..00000000 --- a/__mock__/file-mock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'test-file-stub'; diff --git a/__mock__/gatsby.js b/__mock__/gatsby.js deleted file mode 100644 index 0295ce8d..00000000 --- a/__mock__/gatsby.js +++ /dev/null @@ -1,22 +0,0 @@ -const React = require('react'); -const gatsby = jest.requireActual('gatsby'); - -module.exports = { - ...gatsby, - graphql: jest.fn(), - Link: jest.fn().mockImplementation( - // these props are invalid for an `a` tag - ({ activeClassName, activeStyle, getProps, innerRef, partiallyActive, ref, replace, to, ...rest }) => - React.createElement('a', { - ...rest, - href: to, - }) - ), - Slice: jest.fn().mockImplementation(({ alias, ...rest }) => - React.createElement('div', { - ...rest, - 'data-test-slice-alias': alias, - }) - ), - useStaticQuery: jest.fn(), -}; diff --git a/astro.config.ts b/astro.config.ts new file mode 100644 index 00000000..5e391210 --- /dev/null +++ b/astro.config.ts @@ -0,0 +1,62 @@ +import { defineConfig } from "astro/config"; +import unpluginFavicons from "@openscript/unplugin-favicons/vite"; +import { C } from "./src/site.config"; +import mdx from "@astrojs/mdx"; +import rehypeSlug from "rehype-slug"; +import rehypeAutolinkHeadings from "rehype-autolink-headings"; +import search from "./src/integrations/search"; +import sitemap from "@astrojs/sitemap"; +import nanostoresI18n from "astro-nanostores-i18n"; +import de from "./src/translations/de.json"; +import en from "./src/translations/en.json"; + +export default defineConfig({ + prefetch: true, + build: { + format: "file", + }, + i18n: { + defaultLocale: C.DEFAULT_LOCALE, + locales: Object.keys(C.LOCALES), + }, + markdown: { + shikiConfig: { + themes: { + light: "github-light", + dark: "github-dark", + }, + }, + rehypePlugins: [rehypeSlug, [rehypeAutolinkHeadings, { behavior: "wrap" }]], + }, + vite: { + plugins: [ + unpluginFavicons({ + logo: "res/icon.png", + inject: true, + favicons: { + theme_color: C.SETTINGS.BROWSER.THEME_COLOR, + icons: { + android: true, + appleIcon: true, + favicons: true, + windows: true, + yandex: true, + appleStartup: false, + }, + }, + }), + ], + }, + integrations: [ + nanostoresI18n({ + addMiddleware: true, + translations: { + de, + en, + }, + }), + search(), + mdx(), + sitemap({ i18n: { defaultLocale: C.DEFAULT_LOCALE, locales: C.LOCALES } }), + ], +}); diff --git a/content/data/galleries/team/20211014_visiting_bern.de.md b/content/data/galleries/team/20211014_visiting_bern.de.md deleted file mode 100644 index c76a6cf5..00000000 --- a/content/data/galleries/team/20211014_visiting_bern.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Besuch in Bern -image: 20211014_visiting_bern.jpg ---- diff --git a/content/data/galleries/team/20211014_visiting_bern.en.md b/content/data/galleries/team/20211014_visiting_bern.en.md deleted file mode 100644 index aca10d8b..00000000 --- a/content/data/galleries/team/20211014_visiting_bern.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Visiting Bern -image: 20211014_visiting_bern.jpg ---- diff --git a/content/data/galleries/team/20211014_visiting_bern.jpg b/content/data/galleries/team/20211014_visiting_bern.jpg deleted file mode 100644 index daf97441..00000000 Binary files a/content/data/galleries/team/20211014_visiting_bern.jpg and /dev/null differ diff --git a/content/data/galleries/team/20211019_diego_at_work.de.md b/content/data/galleries/team/20211019_diego_at_work.de.md deleted file mode 100644 index a04ddf27..00000000 --- a/content/data/galleries/team/20211019_diego_at_work.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Diego at work -image: 20211019_diego_at_work.jpg ---- diff --git a/content/data/galleries/team/20211019_diego_at_work.en.md b/content/data/galleries/team/20211019_diego_at_work.en.md deleted file mode 100644 index 1e8ea3c4..00000000 --- a/content/data/galleries/team/20211019_diego_at_work.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Diego bei der Arbeit -image: 20211019_diego_at_work.jpg ---- diff --git a/content/data/galleries/team/20220624_dinner_at_uetliberg.de.md b/content/data/galleries/team/20220624_dinner_at_uetliberg.de.md deleted file mode 100644 index 8be5719c..00000000 --- a/content/data/galleries/team/20220624_dinner_at_uetliberg.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Abendessen auf dem Uetliberg -image: 20220624_dinner_at_uetliberg.jpg ---- diff --git a/content/data/galleries/team/20220624_dinner_at_uetliberg.en.md b/content/data/galleries/team/20220624_dinner_at_uetliberg.en.md deleted file mode 100644 index f855118b..00000000 --- a/content/data/galleries/team/20220624_dinner_at_uetliberg.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Dinner at Uetliberg -image: 20220624_dinner_at_uetliberg.jpg ---- diff --git a/content/data/galleries/team/20220624_dinner_at_uetliberg.jpg b/content/data/galleries/team/20220624_dinner_at_uetliberg.jpg deleted file mode 100644 index fe757faa..00000000 Binary files a/content/data/galleries/team/20220624_dinner_at_uetliberg.jpg and /dev/null differ diff --git a/content/data/galleries/team/20230120_playing_card_games_at_retreat.de.md b/content/data/galleries/team/20230120_playing_card_games_at_retreat.de.md deleted file mode 100644 index b238d887..00000000 --- a/content/data/galleries/team/20230120_playing_card_games_at_retreat.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Wir beim Kartenspielen auf unserem Retreat. -image: 20230120_playing_card_games_at_retreat.jpg ---- diff --git a/content/data/galleries/team/20230120_playing_card_games_at_retreat.en.md b/content/data/galleries/team/20230120_playing_card_games_at_retreat.en.md deleted file mode 100644 index 111e40d8..00000000 --- a/content/data/galleries/team/20230120_playing_card_games_at_retreat.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: Playing card games at our retreat. -image: 20230120_playing_card_games_at_retreat.jpg ---- diff --git a/content/data/galleries/team/20230120_playing_card_games_at_retreat.jpg b/content/data/galleries/team/20230120_playing_card_games_at_retreat.jpg deleted file mode 100644 index 872ce992..00000000 Binary files a/content/data/galleries/team/20230120_playing_card_games_at_retreat.jpg and /dev/null differ diff --git a/content/data/pages/data-protection.de.mdx b/content/data/pages/data-protection.de.mdx deleted file mode 100644 index f0583384..00000000 --- a/content/data/pages/data-protection.de.mdx +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: Datenschutz -description: Datenschutzerklärung zur Webseite von openscript GmbH -type: content ---- - -# Datenschutzerklärung - -## Präambel - -Wir legen grossen Wert auf die Wahrung Ihrer Privatsphäre und den Schutz Ihrer personenbezogenen Daten. Aus diesem Grund informieren wir Sie mit dieser Datenschutzerklärung über die Verarbeitung Ihrer personenbezogenen Daten, damit Sie sich in Kenntnis und Vertrauen darauf, dass wir mit Ihren Daten nur gemäss dieser Datenschutzerklärung und gemäss der gesetzlichen Vorschriften verfahren, sicher auf unserer Webseite aufhalten können. Die Erklärung legt für Sie transparent dar, welche Arten von personenbezogenen Daten betroffen sind und auf welche Art, in welchem Umfang und zu welchem Zweck sie von uns verarbeitet werden. Die Datenschutzerklärung ist dabei umfassend, gilt also für alle von uns durchgeführten Verarbeitungshandlungen. Sie sind nicht verpflichtet, uns personenbezogene Daten zukommen zu lassen. Dann kann aber gegebenenfalls Ihre Anfrage von uns nicht ihren Interessen entsprechend gewürdigt und bearbeitet werden. - -Personenbezogene Daten sind alle Informationen, die sich auf eine identifizierte oder identifizierbare Person beziehen. - -## 1. Verantwortliche Stelle - -Nachfolgend, Informationen zur verantwortlichen Stelle bzw. zum Verantwortlichen nach den geltenden Datenschutzgesetzen, sowie Ihre Kontaktmöglichkeit bei Datenschutzfragen: - -openscript GmbH \ -Europa-Strasse 30 \ -8152 Glattbrugg \ -Schweiz \ -vertreten durch: Robin Bühler - -Telefon: +41 44 520 54 67 \ -E-Mail: hi@openscript.ch - -Durch diese Datenschutzerklärung werden Betroffene über Zwecke, Umfang und Art der Verarbeitung personenbezogener Daten durch die oben genannte verantwortliche Stelle aufgeklärt. Die verantwortliche Stelle ist hier die juristische Person, welche über die Mittel und Zwecke der Verarbeitung von personenbezogenen Daten allein oder gemeinsam mit anderen Personen entscheidet. Der Verantwortliche ist die Stelle, an die Sie sich bei Fragen und zur Geltendmachung Ihrer Rechte wenden können und Anspruch auf Antwort haben. - -Wir nehmen das Thema Datenschutz sehr ernst und arbeiten deshalb mit zertifizierten Datenschutzbeauftragten / Datenschutzberatern zusammen. Wir sind jedoch gesetzlich nicht verpflichtet, einen Datenschutzbeauftragten / Datenschutzberater zu benennen und haben daher auch keinen Datenschutzbeauftragten / Datenschutzberater benannt. Wenn Sie Fragen zum Datenschutz haben, sind wir gerne und ausführlich über die genannten Kontaktdaten für Sie da. - -### Rechtsgrundlagen der Datenverarbeitung - -Gemäss der DSGVO dürfen personenbezogene Daten innerhalb der EU/des EWR nur mit einer Rechtsgrundlage nach Art. 6 DSGVO verarbeitet werden. Dies ist in den meisten Fällen ein berechtigtes Interesse unsererseits (Art. 6 Abs. 1 S. 1 lit. f) DSGVO) oder Ihre Einwilligung (Art. 6 Abs. 1 S. 1 lit. a) DSGVO), solange Sie diese erteilen. Wenn Sie mit uns in einem Vertragsverhältnis stehen, oder sich ein solches anbahnt, begründet dies ebenfalls eine Verarbeitung von personenbezogenen Daten (Art. 6 Abs. 1 S. 1 lit. b) DSGVO). Weiterhin besteht die Möglichkeit der Erfüllung einer rechtlichen Verpflichtung zur Verarbeitung unsererseits (Art. 6 Abs. 1 S. 1 lit. c) DSGVO). Welche Rechtsgrundlagen im Einzelfall vorliegen, ist nachfolgend in dieser Datenschutzerklärung aufgeführt. Bitte beachten Sie ausserdem, dass, abhängig von Ihrem Sitz bzw. Aufenthaltsort, weitere Datenschutzregelungen, insbesondere nationale Bestimmungen, zur Geltung kommen können. - -Personendaten von Betroffenen aus der Schweiz bearbeiten wir nach dem am 01.09.2023 in Kraft tretenden schweizerischen Datenschutzgesetz (DSG neu CH). Anders als nach der DSGVO ist gemäss dem DSG neu CH die Bearbeitung von Personendaten grundsätzlich ohne Rechtsgrundlage erlaubt. Nachfolgend wird das Wort Rechtsgrundlage jedoch im Text an einigen Stellen zwecks Vereinheitlichung verwendet auch wenn nach Schweizer Recht diese nicht notwendig ist jedoch auf die passende DSG neu CH Norm Bezug genommen wird. Wir halten uns bei der Bearbeitung an die Grundsätze aus Art. 6 DSG neu CH. Diese sind insbesondere die Bearbeitung nach Treu und Glauben und zu einem bestimmten und erkennbaren Zweck, die Verhältnismässigkeit der Bearbeitung, sowie die Vernichtung bzw. Anonymisierung der Personendaten, sobald der Zweck der Bearbeitung wegfällt und die Bearbeitung nicht mehr erforderlich ist. - -Da diese Datenschutzerklärung ggf. auch länderübergreifend genutzt wird, verwenden wir bei folgenden gleichbedeutenden Begriffen die Wortwahl der DSGVO: - -Begriff DSGVO | Äquivalent DSG neu CH: - -Verarbeitung | Bearbeitung \ -Personenbezogene Daten | Personendaten \ -Berechtigtes Interesse | Überwiegendes Interesse \ -Besondere Kategorien personenbezogener Daten | Besonders schützenswerte Personendaten \ -Übermittlung personenbezogener Daten | Bekanntgabe von Personendaten - -## 2. Art und Zweck der Verwendung personenbezogener Daten sowie deren Erhebung und Speicherung - -### Allgemeine Informationen - -Abhängig von Ihrer Nutzung unseres Angebots verarbeiten wir unterschiedliche personenbezogene Daten zu unterschiedlichen Zwecken. - -Verschiedene Zwecke können insbesondere die Bereitstellung unseres Internetauftritts, das Management unserer IT-Infrastruktur, Sicherheitsmassnahmen, Büroverfahren, Organisationsmanagement und Marketing sein. Weiterhin kann der Zweck der Bearbeitung in der Erfüllung vertraglicher Pflichten inklusive der Erbringung einer vertraglich geschuldeten Leistung, sowie der Kommunikation, Verwaltung und Beantwortung von Kontakt- und weiteren Anfragen und/oder dem Durchführen von Gewinnspielen liegen. - -Für diese Zwecke verarbeiten wir unterschiedliche Arten von Daten, primär Bestands-, Nutzungs- Inhalts- und/oder Metadaten, aber auch Zahlungs-, Kontakt-, Kommunikations-, Standort-, sonstige Vertrags- und/oder Verfahrensdaten, sowie Eventdaten. Die Arten der verarbeiteten Daten beschränken sich stets abhängig vom entsprechenden Zweck. - -Dabei können folgende Kategorien von Personen von einer Verarbeitung personenbezogener Daten durch uns betroffen sein: Nutzer und Interessenten; Kunden, Bewerber, Geschäfts- und andere Vertragspartner; weitere Kommunikationspartner, Teilnehmer an Gewinnspielen oder ähnlichen Wettbewerben und Mitglieder. - -Die jeweiligen Zwecke, Datenarten und betroffenen Personen sind nachfolgend auch im Detail aufgeführt. - -## 2.1 Beim Besuch von „openscript.ch“ allgemeine sowie über die Webseite hinausgehende Datenverarbeitungen - -### Server-Log-Files - -Bei Aufruf unserer Website werden automatisch folgende Daten verarbeitet, die erforderlich sind, um die Verbindung zwischen Ihrem Endgerät und unserer Website problemlos aufbauen und die Website ordnungsgemäss anzeigen zu können: - -- IP-Adresse -- Name und Adresse der besuchten Website und Dateien -- Zugriffszeit -- Meldung über erfolgreichen Abruf -- Genutztes Betriebssystem und Browser -- Referrer-URL -- Internet-Provider - -Die verarbeiteten personenbezogenen Daten dienen auch der Optimierung und Gewährleistung der Sicherheit der Website und der informationstechnischen Systeme. - -Rechtsgrundlage für die Verarbeitung dieser Daten ist unser berechtigtes Interesse, der eine Verarbeitung von personenbezogenen Daten zur Wahrung der berechtigten Interessen des Verantwortlichen vorsieht. Die berechtigten Interessen ergeben sich aus den obigen Gründen. Die Daten werden gelöscht, sobald sie nicht mehr gebraucht werden, was bei Beendigung der Sitzung der Fall ist, sofern nicht berechtigte Interessen an einer weiteren Speicherung (z.B. rechtswidriger Zugriff) bestehen. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Nutzungsdaten (z.B. Zugriffszeiten) -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Bereitstellung einer optimalen Onlinepräsenz, IT-Infrastruktur; Sicherheitsmassnahmen -- Rechtsgrundlagen: berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f DSGVO) Einwilligung (Art. 6 Abs. 1 S. 1 lit. a DSGVO) / berechtigtes Interesse an der Bereitstellung eines Onlineangebots (gemäss Art. 6 und 8 DSG neu CH), Einwilligung der Teilnehmer (Art. 31 Abs. 1 DSG neu CH) -- Garantien: Auftragsdatenverarbeitungsvertrag und soweit Datenübertragung in Drittstaaten erfolgt die Anwendung von EU-Standardvertragsklauseln sowie ggf. zusätzlich die Zertifizierung des Hosters / Anbieters nach EU-US Data Privacy Framework DPF. Nach Art. 45 DSGVO sind alle EU-Mitgliedstaaten ein sicheres Datenexport-Land für personenbezogene Daten sowie aktuell (letzter Abruf im Juni 2023) folgende Drittländer: Andorra, Argentinien, Kanada, Färöer, Guernsey, Israel, Isle of Man, Jersey, Neuseeland, Schweiz, Uruguay, Japan, das Vereinigte Königreich und Südkorea sind von der europäischen Kommission als datenschutzkonform eingestuft worden, sodass dorthin der Datenexport von personenbezogenen Daten aus der EU erlaubt ist. Bei einer Verarbeitung von personenbezogenen Daten aus der Schweiz in der EU/des ERW oder dem Vereinigten Königreich (UK) wird laut dem Bundesrat der Schweiz aktuell (letzter Abruf im Juni 2023) angemessener Datenschutz im Sinne von Art. 16 Abs. 1 DSG neu CH gewährleistet, sodass in diese Länder ein Datenexport von personenbezogenen Daten aus der Schweiz gestattet ist. - -Hinsichtlich unserer Webseite verweisen wir zudem auf die Datenschutzerklärung des Hostinganbieters GitHub, Inc., 88 Colin P. Kelly Jr., St. San Francisco, CA 94107, Vereinigte Staaten: -https://docs.github.com/de/site-policy/privacy-policies/github-privacy-statement - -### Blogs und Publikationen - -Auf dieser Seite verwenden wir Blogs oder andere vergleichbare Publikationsmedien. In diesem Zusammenhang werden Daten nur erhoben, soweit es für die ordnungsgemässe Darstellung und aus Sicherheitsgründen erforderlich ist. Einzelheiten können Sie dieser Datenschutzerklärung entnehmen. Dies Verarbeitung erfolgt aufgrund unseres berechtigten Interesses an der ansprechenden Gestaltung unserer Website und Kommunikation mit unseren Nutzern. - -Falls Sie über eine Kommentarfunktion oder vergleichbare Funktionen selbst Beiträge verfassen, kann es zu einer weiterreichenden Datenverarbeitung kommen. Davon erfasst sind insbesondere Ihre IP-Adresse sowie alle Daten, die Sie bei Verwendung der Funktion angeben. Die Datenverarbeitung erfolgt in diesem Fall aufgrund Ihrer Einwilligung die Sie bei der Veröffentlichung Ihres Beitrags erteilen. Ausserdem besteht von unserer Seite ein berechtigtes Interesse an der Datenverarbeitung, um die Verfolgung rechtswidriger Beiträge zu ermöglichen. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-,Adressen), Nutzungsdaten (z.B. Zugriffszeiten), Inhaltsdaten, Kontaktdaten (z.B. E-Mail-Adresse), Bestandsdaten (z.B. Name, Anschrift) -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Gewährleistung vertraglicher Leistungen/Pflichten, Bereitstellung einer optimalen Onlinepräsenz, Sammeln von Feedback, Verwaltung; Sicherheitsmassnahmen -- Rechtsgrundlagen: berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f DSGVO), Einwilligung (Art. 6 Abs. 1 S. 1 lit. a DSGVO) / berechtigtes Interesse (gemäss Art. 6 und 8 DSG neu CH), Einwilligung (Art. 6 Abs. 6, Art. 31 Abs. 1 DSG neu CH) - -### Geschäftliche Leistungen und Bewerbungen - -Falls Sie als Geschäftspartner, Bewerber, Kunde oder sonstiger Vertragspartner in einem vertraglichen oder vertragsähnlichen Rechtsverhältnis zu uns stehen, verarbeiten wir Ihre personenbezogenen Daten grundsätzlich zur Erfüllung unserer Pflichten aus diesem Verhältnis – die Erbringung der geschuldeten Leistung oder vorvertragliche Massnahmen. Darüber hinaus können, abhängig von den einzelnen Daten, rechtliche Pflichten zur Verarbeitung bestehen, wie beispielsweise steuerliche Pflichten. Ausserdem haben wir an der Verarbeitung regelmässig ein berechtigtes Interesse, insbesondere zur ordnungsgemässen Geschäftsführung und dem Schutz des Geschäftsbetriebs. Eine Weitergabe Ihrer Daten an Dritte findet nur gemäss den gesetzlichen Vorgaben statt. Die hierbei verarbeiteten Daten umfassen insbesondere Bestands- und Kontaktdaten (Name, Adresse, Telefonnummer, E-Mail-Adresse) sowie Zahlungsdaten (Bankverbindungen, Rechnungen). Falls Sie im Rahmen der Vertragsbeziehung unser Internetangebot nutzen, können ausserdem entsprechende Nutzungs- und Metadaten (bspw. IP-Adresse, Zeitpunkt und Dauer des Zugriffs, etwaige Einwilligungen) verarbeitet werden. - -Diese personenbezogenen Daten verarbeiten wir nach Ablauf des Vertragsverhältnisses in der Regel solange wie gegebenenfalls gesetzliche Gewährleistungs- oder vergleichbare Pflichten bestehen oder solange gesetzliche Aufbewahrungsfristen bestehen. - -Wir weisen darauf hin, dass ausserdem Geschäftsbedingungen und Datenschutzhinweise von Dritten zur Geltung kommen können, falls diese Teil des Vertragsverhältnisses werden. Dies kann der Fall sein, wenn wir Drittanbieter zur Erfüllung unserer Leistungen und Pflichten einsetzen oder beauftragen. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Nutzungsdaten (z.B. Zugriffszeiten), Kontaktdaten (z.B. E-Mail-Adresse), Zahlungsdaten, Bestandsdaten (z.B. Name, Anschrift) -- Betroffene Personen: Interessenten, Bewerber, Kunden, Vertrags- und Geschäftspartner -- Verarbeitungszwecke: Gewährleistung vertraglicher Leistungen/Pflichten, Kommunikation und Kontaktanfragen, Büro- und Organisationsverfahren; Sicherheitsmassnahmen, Verwaltung, Eignung für eine Stelle prüfen -- Rechtsgrundlagen: Vertragliche Ansprüche (Art. 6 Abs. 1 S. 1 lit. b DSGVO), Rechtliche Verpflichtungen (Art. 6 Abs. 1 S. 1 lit. c DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 lit. f DSGVO) / berechtigtes Interesse (gemäss Art. 6 und 8 DSG neu CH) - -### Aufgabenerledigung nach Geschäftsordnung oder Satzung - -Falls Sie Mitglied sind oder in einem vergleichbaren Verhältnis zu uns stehen, beispielsweise als Unterstützer oder Geschäftspartner, verarbeiten wir personenbezogene Daten bei der Wahrnehmung unserer Aufgaben sowie dem Empfang von Zuwendungen oder sonstigen Leistungen. Darin inbegriffen kann ausserdem ein berechtigtes Interesse unsererseits sein, beispielsweise bei organisatorischen Aufgaben. Die genauen hierbei verarbeiteten Daten sind abhängig vom entsprechenden Mitglieds- oder sonstigen Vertragsverhältnis. Im Regelfall handelt es sich um Bestands- und Kontaktdaten (Name, Adresse, Telefonnummer, E-Mail-Adresse), Zahlungsdaten (Bankverbindung, Rechnungen) und weitere Vertragsdaten (Laufzeit, Vertragsgegenstand). - -Wir verarbeiten diese Daten, solange sie für die entsprechenden satzungsgemässen Zwecke notwendig sind. Dies umfasst auch etwaige Gewährleistungs- und Haftungspflichten. Nach Wegfall dieser Zwecke vernichten wir die Daten mit Ausnahme von solchen, für die gesetzliche Aufbewahrungspflichten bestehen. - -- Verarbeitete Daten: Vertragsdaten (z.B. Gegenstand des Vertrags), Kontaktdaten (z.B. E-Mail-Adresse), Zahlungsdaten, Bestandsdaten (z.B. Name, Anschrift) -- Betroffene Personen: Nutzer, Mitglieder, Vertrags- und Geschäftspartner -- Verarbeitungszwecke: Gewährleistung vertraglicher Leistungen/Pflichten, Kommunikation und Kontaktanfragen, Verwaltung -- Rechtsgrundlagen: Vertragliche Ansprüche (Art. 6 Abs. 1 S. 1 lit. b DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 lit. f DSGVO) / berechtigtes Interesse (gemäss Art. 6 und 8 DSG neu CH) - -### Cookies - -Sollten wir zum Betrieb dieser Webseite sogenannte Cookies – kleine Textdateien zum Einsatz bringen, werden diese auf Ihrem Gerät gespeichert und sollen beispielsweise die Funktionalität der Webseite gewährleisten oder eine Analyse der Webseiten-Nutzung ermöglichen. Hierbei werden in diesem Fall personenbezogene Daten verarbeitet. Details zu einzelnen Cookies, wie die jeweilige Rechtsgrundlage (bspw. Einwilligung oder berechtigtes Interesse), die Speicherdauer, oder Widerrufs- und Widerspruchmöglichkeiten, sind dann im Cookie-Management nachfolgend im Detail aufgeführt. Bezüglich der Nutzung von Cookies haben Betroffene grundsätzlich ein Widerspruchsrecht beziehungsweise die Möglichkeit, diese in den Einstellungen des Browsers zu deaktivieren. Wir weisen jedoch darauf hin, dass dadurch unter Umständen keine vollständige Funktionalität der Webseite mehr gewährleistet werden kann. - -Sollten wir Cookies nutzen erfolgt dies entweder auf der Rechtsgrundlage Ihrer Einwilligung, oder mit berechtigtem Interesse, beispielsweise zur Verbesserung unserer Webseitenfunktionen, oder zur Erfüllung vertraglicher Pflichten, wenn ein Cookie z.B. zum Vertragsschluss notwendig ist. Cookies werden unterschiedlich lang gespeichert. Einige Cookies sind nur temporär und werden spätestens dann gelöscht, wenn Sie Ihren Browser bzw. Ihre App schliessen. Andere Cookies werden permanent auf Ihrem Endgerät gespeichert. Sie können die dauerhaft auf Ihrem Gerät gespeicherten Cookies jederzeit eigenständig löschen. Alternativ entnehmen Sie bitte dem Cookie-Management-Tool, wann Cookies automatisch gelöscht werden. - -Die Auswahl von Cookies für Analyse / Statistik oder Werbung kann jederzeit von Ihnen über die Cookie-Einstellungen angepasst werden. - -Opt-In und Opt-Out - -Beim erstmaligen Aufrufen dieser Webseite können Sie grundsätzlich dem Einsatz von Cookies zustimmen, oder benutzerdefiniert in die Nutzung unterschiedlicher Cookies einwilligen oder sie verweigern. - -Wenn Sie der Nutzung von einwilligungspflichtigen Cookies zustimmen, speichern wir Ihre Einwilligungserklärung, um diese bei Ihrem nächsten Webseiten-Besuch nicht erneut einholen zu müssen, zu den Speicherfristen verweisen wir auf unser Cookie-Einwilligungs-Management. Neben der Erklärung kann auch Ihre IP-Adresse, der von Ihnen verwendete Browser und das Modell des von Ihnen verwendeten Endgeräts gespeichert. Sie können Ihre Einwilligungserklärung(en) jederzeit widerrufen. - -Sollten Cookies zum Einsatz kommen, erfolgt die Speicherung von Cookies in Ihrem genutzten Endgerät sowie der Zugriff auf die gespeicherten Cookies auf Grundlage dessen, dass diese für die Bereitstellung der Website entweder unbedingt erforderlich sind oder mit Ihrer Einwilligung auf Grundlage von klaren und umfassenden Informationen erfolgen. Die Einwilligung zu einwilligungspflichtigen Cookies ist jederzeit widerrufbar. Die Datenverarbeitung beruht auf der Grundlage der E-Privacy-Richtlinie 2002/58/EG der Europäischen Union. Die Umsetzung in nationales Recht in Deutschland erfolgt in § 25 Abs. 1 und 2 TTDSG. In Österreich erfolgt die Umsetzung in nationales Recht in § 165 Abs. 3 TKG 2021 AT. - -Sollten Cookies zum Einsatz kommen, informieren wir Sie hiermit darüber, dass durch diese Cookies Daten auf Ihren Endgeräten nach Art. 45c lit. b FMG CH bearbeitet werden. Die Bearbeitung dient dem oben beschriebenen Zweck. Sie können die Bearbeitung von einwilligungspflichtigen Cookies jederzeit ablehnen. - -- Verarbeitete Daten: IP-Adresse, Einwilligungserklärung, Browser, verwendetes Endgerät -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Gewährleistung vertraglicher Leistungen/Pflichten, funktionierenden Onlineangebot, effektiven und zielgerichteten Werbemassnahmen -- Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 lit. a) DSGVO), berechtigte Interessen (Art. 6 Abs. 1 lit. f) DSGVO), Erfüllung vertraglicher Pflichten (Art. 6 Abs. 1 lit. b) DSGVO) / berechtigte Interessen an einem funktionierenden Onlineangebot und effektiven und zielgerichteten Werbemassnahmen (Art. 6 und 8 DSG neu CH), Einwilligung (Art. 31 Abs. 1 DSG neu CH) - -### Plugins und eingebettete Funktionen - -In unsere Onlineplattform integrieren wir Funktionen und Inhalte von externen Anbietern, nachfolgend "Drittanbieter" genannt. Dabei handelt es sich beispielsweise um Grafiken, Videos oder interaktive Karten, die als "Inhalte" bezeichnet werden. - -Für die Darstellung dieser Inhalte oder Funktionen ist die Verarbeitung der IP-Adresse der Nutzer durch die Drittanbieter erforderlich. Die Übertragung dieser Inhalte an die Browser der Nutzer ist ohne die Verwendung der IP-Adresse nicht möglich. Wir bemühen uns, nur Inhalte von solchen Anbietern zu integrieren, die die IP-Adresse ausschliesslich für die Zustellung der Inhalte nutzen. Die Drittanbieter können auch "Pixel-Tags" (unsichtbare Grafiken oder "Web Beacons") für statistische oder Marketingzwecke einsetzen. Durch diese "Pixel-Tags" können Informationen wie der Besucherverkehr auf unseren Seiten ausgewertet werden. - -Die dabei erfassten pseudonymen Informationen können in Cookies auf dem Gerät der Nutzer gespeichert werden. Diese Cookies enthalten technische Informationen über den Browser, das Betriebssystem, verweisende Webseiten, Besuchszeiten und andere Angaben zur Nutzung unserer Plattform. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Nutzungsdaten (z.B. Zugriffszeiten), Inhaltsdaten, Kontaktdaten, Bestandsdaten (z.B. Namen, Anschrift), Standortdaten; Event-Daten (z.B. via Facebook Pixel, die von uns an Facebook übertragen werden können, diese werden aufgrund der Zielgruppenbildung verarbeitet und beinhalten keine eigentlichen Inhalte, keine Kontaktinformationen, keine Login-Informationen), die Eventdaten werden durch Facebook nach einer Speicherdauer von maximal 2 Jahren gelöscht -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Gewährleistung vertraglicher Leistungen/Pflichten, Bereitstellung der Online-Präsenz, Erstellung von Nutzerprofilen, Sammeln von Feedback, Marketingmassnahmen -- Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO), Berechtigte Interessen (Art. 6 Abs. 1 lit. f DSGVO) / berechtigtes Interesse in effektiven und zielgerichteten Werbemassnahmen (gemäss Art. 6 und 8 DSG neu CH), Einwilligung (Art. 31 Abs. 1 DSG neu CH) - -### Webanalyse - -Die Webanalyse als Teilbereich der Digital Analytics umfasst verschiedene Methoden zur Sammlung und Analyse von Daten über Online-Präsenzen von Unternehmen. Diese Daten werden vom Webseitenbetreiber genutzt, um das Erlebnis für den Kunden zu optimieren. Weiterhin können auch Testverfahren eingesetzt werden, um unterschiedliche Versionen des Onlineangebots prüfen zu können. - -Zu diesen Zwecken können wir Nutzungsprofile erstellen, die pseudonymisierte Daten über Nutzungsvorgänge enthalten. Die Informationen werden im Endgerät oder Browser gespeichert und von dort abgerufen. Zu den erfassten Daten gehören unter anderem besuchte Webseiten, genutzte Funktionen sowie technische Details (z.B. der genutzte Browser). Falls Nutzer in die Erhebung ihrer Standortdaten durch uns oder die von uns genutzten Dienstanbieter eingewilligt haben, können diese Daten erhoben werden. - -IP-Adressen der Nutzer werden ebenfalls gespeichert, jedoch verwenden wir ein Verfahren namens IP-Masking. Dadurch wird die IP-Adresse pseudonymisiert, um die Nutzeridentität zu schützen. Generell speichern wir bei der Webanalyse, A/B-Tests und Optimierungsprozessen keine personenbezogenen Daten (wie E-Mail-Adressen oder Namen), sondern ausschliesslich pseudonymisierte Daten. Weder die Anbieter noch wir kennen daher die Identität der Nutzer. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Nutzungsdaten (z.B. Zugriffszeiten) -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Generierung von Nutzerprofilen, Reichweitenmessung (z.B. Ermittlung der Besuchsfrequenz einer Website) -- Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) berechtigte Interesse (Art. 6 Abs. 1 lit. f) DSGVO) / berechtigtes Interesse in effektiven und zielgerichteten Werbemassnahmen (gemäss Art. 6 und 8 DSG neu CH), Einwilligung (Art. 31 Abs. 1 DSG neu CH) -- Sicherheitsmassnahmen: IP-Masking -- Garantien: Auftragsdatenverarbeitungsvertrag und soweit Datenübertragung in Drittstaaten erfolgt die Anwendung von EU-Standardvertragsklauseln sowie ggf. zusätzlich die Zertifizierung des Hosters / Anbieters nach EU-US Data Privacy Framework DPF - -### Social Media Präsenzen - -Wir verfügen über Onlinepräsenzen in sozialen Netzwerken. In diesem Zusammenhang verarbeiten wir Daten der jeweiligen Nutzer zu Informationszwecken und zur Kommunikation mit diesen. Die Datenverarbeitung kann dabei in Drittstaaten erfolgen, wodurch unter Umständen die Durchsetzung von Betroffenenrechten erschwert wird. Einzelheiten können Sie dem jeweiligen Abschnitt in dieser Datenschutzerklärung entnehmen sowie den Datenschutzerklärungen der verwendeten sozialen Netzwerke. - -Die Datenverarbeitung im sozialen Netzwerk durch den jeweiligen Betreiber erfolgt primär zur Auswertung von Nutzerdaten und zur Werbeschaltung. Aus den gesammelten Informationen können Cluster gebildet werden, um den Nutzern interessengerechte Anzeigen zu schalten. Um dieses Usertracking zu ermöglichen, werden z.B. Cookies (kleine Textdateien) auf den Endgeräten der Nutzer gespeichert, welche dazu dienen, die Daten zuzuordnen und aufzunehmen. Die Datensammlung findet auch vom verwendeten Endgerät unabhängig nach dem Log-in im jeweiligen sozialen Netzwerk statt. - -Spezifische Angaben zu den Formen der Datenverarbeitung der sozialen Netzwerke und den jeweiligen Widerspruchsoptionen finden Sie in den einzelnen Datenschutzerklärungen der Unternehmen und in unseren Klauseln. Auch die Geltendmachung von Rechten der Betroffenen ist direkt beim Betreiber am wirksamsten. Sie können sich hierzu jedoch auch an uns werden. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Inhaltsdaten, Kontaktdaten (Name, E-Mail-Adresse) -- Betroffene Personen: Nutzer -- Verarbeitungszwecke: Sammeln von Feedback, Kommunikation, Marketingmassnahmen -- Rechtsgrundlagen: Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f DSGVO) / berechtigtes Interesse in effektiven und zielgerichteten Werbemassnahmen (gemäss Art. 6 und 8 DSG neu CH) - -### Werbliche Kommunikation - -Wir verarbeiten Ihre Kontaktdaten zu Zwecken der werblichen Kommunikation, soweit Sie uns hierzu Ihre Einwilligung erteilt erhaben. Sie können diese Einwilligung jederzeit widerrufen. In diesem Fall werden die Daten gelöscht und Sie nicht mehr zu Werbezwecken von uns kontaktiert. - -Auf Grundlage unseres berechtigten Interesses können die Daten zum Nachweis der Erfüllung der rechtlichen Anforderungen von uns auch nach Widerruf Ihrer Einwilligung gespeichert werden. Diese Speicherung dient ausschliesslich der Abwehr möglicher Ansprüche. Die Daten werden in diesem Fall gelöscht, sobald sie zu diesem Zweck nicht mehr benötigt werden. Dies ist der Fall, sobald die jeweils geltenden Verjährungsfristen abgelaufen sind. In der Regel werden die Daten von Betroffenen aus der EU nach drei Jahren gelöscht. Bei Betroffenen aus der Schweiz werden die Daten in der Regel nach einem Jahr gelöscht. Darüber hinaus verweisen wir auf 4. (Speicherdauer und Löschung von personenbezogenen Daten) dieser Datenschutzerklärung. - -Die Verarbeitung dieser Daten dient ausschliesslich der Abwehr möglicher Ansprüche. Sie können jederzeit einen Löschungsantrag stellen. In diesem Fall löschen wir die gespeicherten Daten vorzeitig, soweit Sie zugleich bestätigen, dass für die erfolgte werbliche Kommunikation eine Einwilligung vorlag. - -- Verarbeitete Daten: Kontaktdaten (z.B. E-Mail-Adresse), Bestandsdaten (z.B. Name, Anschrift) -- Betroffene Personen: Kommunikationspartner -- Verarbeitungszwecke: Direktmarketing -- Rechtsgrundlagen: Einwilligung (Art. 6 Abs. 1 S. 1 lit. a DSGVO), berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f DSGVO) / berechtigtes Interesse in effektiven und zielgerichteten Werbemassnahmen (gemäss Art. 6 und 8 DSG neu CH), Einwilligung (Art. 31 Abs. 1 DSG neu CH) - -### Kontaktaufnahme per Telefon, E-Mail und/oder Briefpost - -Nehmen Sie per Telefon, E-Mail und/oder Briefpost Kontakt mit uns auf, werden die von Ihnen in diesem Rahmen angegebenen personenbezogenen Daten von uns verarbeitet und gespeichert, um eine Auswertung der Kommunikation zu ermöglichen. Die erhobenen Daten beschränken sich dabei auf: - -- Vor- und Nachname -- Rufnummer / E-Mail-Adresse / Briefpostadresse -- Inhalt der Nachricht bzw. sonstige freiwillig übermittelte Daten - -Bei der Kontaktaufnahme über ein Kontaktformular oder unsere Präsenz in sozialen Medien kann es zu einer weiterreichenden Datenerhebung kommen. Zu den zusätzlich erhobenen Daten zählen dabei: - -- IP-Adresse -- Besuchte Webseiten -- Zugriffszeitpunkt - -Die von uns in diesem Zusammenhang erhobenen personenbezogenen Daten werden nicht an Dritte weitergegeben, sofern dies nicht zur ordnungsgemässen Bearbeitung der Angelegenheit aufgrund berechtigter Interessen erforderlich ist. Personenbezogene Daten können dann an die betroffenen Kunden, freie Mitarbeiter, Kooperationspartner und Behörden übermittelt werden. Rechtsgrundlage der Datenverarbeitung sind berechtigte Interessen. Im Falle einer Kontaktaufnahme, die auf einen Vertragsschluss abzielt, ist Rechtsgrundlage der Verarbeitung. - -- Verarbeitete Daten: Kommunikations- und Verfahrensdaten (z.B. IP-Adressen), Inhaltsdaten, Kontaktdaten (z.B. E-Mail-Adresse) -- Betroffene Personen: Kommunikationspartner -- Verarbeitungszwecke: Sammeln von Feedback, Bereitstellung einer optimalen Onlinepräsenz, Kommunikation und Kontaktanfragen -- Rechtsgrundlagen: Vertragliche Ansprüche (Art. 6 Abs. 1 S. 1 lit. b DSGVO), berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f DSGVO) / berechtigtes Interesse in effektiven und zielgerichteten Werbemassnahmen (gemäss Art. 6 und 8 DSG neu CH) -- Garantien: Soweit Datenübertragung in Drittstaaten erfolgt, besteht die Anwendung von EU-Standardvertragsklauseln sowie ggf. zusätzlich die Zertifizierung Anbieters nach EU-US Data Privacy Framework DPF. Nach Art. 45 DSGVO sind alle EU-Mitgliedstaaten ein sicheres Datenexport-Land für personenbezogene Daten sowie aktuell (letzter Abruf im Juni 2023) folgende Drittländer: Andorra, Argentinien, Kanada, Färöer, Guernsey, Israel, Isle of Man, Jersey, Neuseeland, Schweiz, Uruguay, Japan, das Vereinigte Königreich und Südkorea sind von der europäischen Kommission als datenschutzkonform eingestuft worden, sodass dorthin der Datenexport von personenbezogenen Daten aus der EU erlaubt ist. Bei einer Verarbeitung von personenbezogenen Daten aus der Schweiz in der EU/des ERW oder dem Vereinigten Königreich (UK) wird lauem Bundesrat der Schweiz aktuell (letzter Abruf im Juni 2023) angemessener Datenschutz im Sinne von Art. 16 Abs. 1 DSG neu CH gewährleistet, sodass in diese Länder ein Datenexport von personenbezogenen Daten aus der Schweiz gestattet ist. - -Hinsichtlich unserer Telefonnummern verweisen wir zudem auf die Datenschutzerklärung des Telefonanbieters netvoip AG, Alpenstrasse 1, CH-8803 Rüschlikon: -https://netvoip.ch/datenschutz/ - -## 2.2 Spezielle Datenverarbeitung / Datenbearbeitung auf „openscript.ch“ - -### OpenStreetMaps - -Diese Webseite verwendet den interaktiven (Land-)Karten-Dienst „OpenStreetMaps“ („OSM“) der Firma OpenStreetMap Foundation, St John’s Innovation Centre, Cowley Road, Cambridge, CB4 0WS, United Kingdom . Dies dient dazu, geographische Daten visuell darzustellen und Ihnen so einen Standort anzuzeigen und eine mögliche Anfahrt zu erleichtern. - -Beim Aufrufen der Webseite, bzw. derjenigen Unterseite, in welche die von OSM dargestellte Karte eingebunden ist, werden Informationen über die Nutzung der Webseite – insbesondere auch die IP-Adresse sowie Browserinformationen – an einen Server OSM, übermittelt und dort erfasst. - -Die Datenübermittlung in das Vereinigte Königreich erfolgt auf Grundlage eines Angemessenheitsbeschlusses nach Art. 45 DSGVO der EU-Kommission. - -Die Verarbeitung der Daten erfolgt nach Art. 6 Abs. 1 lit. f) DSGVO. Das erforderliche berechtigte Interesse besteht in der bedarfsgerechten Gestaltung von Webseiten und gegebenenfalls der Marktforschung. Wenn eine entsprechende Einwilligung abgefragt wurde, ist die Rechtsgrundlage diese jederzeit widerrufbare Einwilligung gemäss Art. 6 Abs. 1 lit. a) DSGVO. - -Das erforderliche berechtigte Interesse besteht in der bedarfsgerechten Gestaltung von Webseiten, die Grundsätze gem. Art. 6 und 8 DSG neu CH werden eingehalten. Falls Sie Ihre Einwilligung erteilen und unter den Schutzbereich des DSG neu CH fallen, ist die Bekanntgabe der Daten in die USA ausserdem gemäss Art. 17 Abs. 1 lit. a DSG neu CH Art. 31 Abs. 1 DSG i.V.m. der DSV neu CH rechtmässig. - -Bei einer Verarbeitung von personenbezogenen Daten aus der Schweiz im Vereinigten Königreich wird laut dem Bundesrat der Schweiz angemessener Datenschutz im Sinne von Art. 16 Abs. 1 DSG neu CH gewährleistet. - -Weitere Informationen zum Datenschutz durch OSM und den Nutzungsbedingungen finden Sie unter: https://wiki.osmfoundation.org/wiki/Privacy_Policy. - -## 3. Betroffenenrechte - -### Zustehende Rechte als betroffene Person gemäss DSGVO - -Ihnen als betroffene Person stehen gemäss DSGVO die folgenden Rechte zu: - -#### Recht auf Information zur Datenverarbeitung und Betroffenenrechten - -Sie haben das Recht, von uns eine Bestätigung darüber zu erhalten, ob wir Sie betreffende personenbezogene Daten verarbeiten. Ist dies der Fall, stehen Ihnen weiterhin die folgenden Rechte zu. Sie haben das Recht, von uns Informationen zu ihren Rechten nach Art. 13-22, 34 DSGVO zur Verfügung bestellt zu bekommen. - -#### Recht erteilte Einwilligungen zu widerrufen - -Sie haben das Recht, erteilte Einwilligungen in die Verarbeitung personenbezogener Daten jederzeit mit Wirkung für die Zukunft gegenüber dem Verantwortlichen zu widerrufen (Art. 7 Abs. 3, Art. 8 DSGVO), ohne dass Ihnen daraus Nachteile entstehen. Die Verarbeitung der ursprünglich von der Einwilligung umfassten Daten dürfen dann von uns nicht mehr verarbeitet werden. Die Rechtmässigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeiten bleibt unberührt. - -#### Recht auf Auskunft - -Sie haben gemäss Art. 15 DSGVO das Recht, Auskunft über die bei uns gespeicherten personenbezogenen Daten über sie zu verlangen. Sie haben dabei Anspruch auf die folgenden Informationen: - -1. Verarbeitungszwecke -1. Kategorien personenbezogener Daten, die verarbeitet werden -1. Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen. Bei Drittländern und internationalen Organisationen haben Sie zudem das Rech, über die geeigneten Garantien gemäss Art. 46 DSGVO unterrichtet zu werden. -1. falls möglich die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls dies nicht möglich ist, die Kriterien für die Festlegung dieser Dauer -1. Bestehen eines Rechts auf Berichtigung oder Löschung der Sie betreffenden personenbezogenen Daten oder auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung -1. Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde -1. wenn die personenbezogenen Daten nicht bei Ihnen erhoben werden, alle verfügbaren Informationen über die Herkunft der Daten -1. das Bestehen einer automatisierten Entscheidungsfindung einschliesslich Profiling gemäss Art. 22 Abs. 1 und 4 DSGVO und - zumindest in diesen Fällen - aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für Sie - -#### Recht auf Berichtigung bzw. Vervollständigung - -Sie haben gemäss Art. 16 DSGVO das Recht, von uns die Berichtigung sie betreffender unrichtiger und die Vervollständigung unvollständiger personenbezogener Daten zu verlangen. Wir sind verpflichtet, dem unverzüglich Folge zu leisten. - -#### Recht auf Löschung (Vergessenwerden) oder Vernichtung - -Sie haben gemäss Art. 17 DSGVO das Recht, die unverzügliche Löschung von betreffenden personenbezogenen Daten verlangen zu können. - -Wir sind verpflichtet, personenbezogene Daten zu löschen, wenn einer der in Art. 17 Abs. 1 aufgezählten Gründe zutrifft. Dies gilt nicht für solche personenbezogene Daten, die einer gesetzlichen Aufbewahrungs- und Sicherfrist unterliegen, die wir beachten müssen, und für die folgenden, in Art. 17 Abs. 3 DSGVO geregelten Ausnahmen: - -1. zur Ausübung des Rechts auf freie Meinungsäusserung und Information -1. zur Erfüllung einer rechtlichen Verpflichtung, die die Verarbeitung nach dem Recht der Union oder der Mitgliedstaaten, dem der Verantwortliche unterliegt, erfordert, oder zur Wahrnehmung einer Aufgabe, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, die dem Verantwortlichen übertragen wurde -1. aus Gründen des öffentlichen Interesses im Bereich der öffentlichen Gesundheit gemäss Art. 9 Abs. 2 Buchstaben h und i sowie Artikel 9 Absatz 3 -1. für im öffentlichen Interesse liegende Archivzwecke, wissenschaftliche oder historische Forschungszwecke oder für statistische Zwecke gemäss Art. 89 Abs. 1, soweit das in Abs. 1 genannte Recht voraussichtlich die Verwirklichung der Ziele dieser Verarbeitung unmöglich macht oder ernsthaft beeinträchtigt -1. zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen - -#### Recht auf Einschränkung der Verarbeitung - -Sie haben das Recht, von uns die Einschränkung der Verarbeitung zu verlangen, wenn eine der Voraussetzungen des Art. 18 Abs. 1 DSGVO gegeben ist. - -#### Recht auf Mitteilung - -Sie haben das Recht, von uns Auskunft zu verlangen, welchen Empfängern mitgeteilt wurde, dass Sie betreffende personenbezogene Daten gelöscht, berichtigt oder eingeschränkt wurden. - -#### Recht auf Datenherausgabe oder -übertragung - -Sie haben gemäss Art. 20 DSGVO das Recht, die sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten und das Recht, diese Daten einem anderen Verantwortlichen ohne Behinderung unsererseits zu übermitteln. - -#### Recht auf Widerspruch - -Sie haben gem. Art. 21 DSGVO das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung sie betreffender personenbezogener Daten, die aufgrund berechtigter Interessen (Art. 6 Abs. 1 lit. f DSGVO) erfolgt, Widerspruch einzulegen. Wir dürfen die personenbezogenen dann nicht mehr verarbeiten, es sei denn, wir können zwingende Gründe nachweisen, die die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. - -#### Recht auf Beschwerde bei einer Aufsichtsbehörde - -Sie haben gemäss Art. 77 DSGVO das Recht, sich bei einer Aufsichtsbehörde zu beschweren. Die zuständige Aufsichtsbehörde ist der Landesbeauftragte des Datenschutzes und der Informationsfreiheit des Bundesland, in dem unser Unternehmen seinen Sitz hat. Eine Auflistung der Datenschutzbehörden finden Sie unter: https://www.bfdi.bund.de/DE/Service/Anschriften/anschriften_table.html - -### Zustehende Rechte als betroffene Person gemäss DSG neu CH - -Ihnen als betroffene Person stehen gemäss DSG neu CH die folgenden Rechte zu: - -#### Recht auf Information zur Datenverarbeitung und Betroffenenrechten - -Sie haben gemäss Art. 25 Abs. 1 DSG neu CH das Recht, von uns eine Bestätigung darüber zu erhalten, ob wir Sie betreffende personenbezogene Daten verarbeiten. - -#### Recht auf Auskunft - -Sie haben nach Art. 25 DSG neu CH Anspruch auf folgende Informationen, wenn Sie Ihren Sitz oder Ihren Aufenthalt in der Schweiz haben: - -1. Identität und Kontaktdaten des Verantwortlichen -1. bearbeiteten Personendaten -1. Bearbeitungszweck -1. Aufbewahrungsdauer der Personendaten oder Kriterien zur Festlegung der Dauer -1. Angaben über Herkunft der Personendaten, soweit nicht von der betroffenen Person beschafft -1. Vorliegen einer automatisierten Einzelentscheidung, sowie die Logik, auf der die Entscheidung beruht -1. gegebenenfalls die Empfängerinnen und Empfänger, denen Personendaten bekanntgegeben werden, sowie die Informationen nach Art. 19 Abs. 4 - -#### Recht auf Berichtigung bzw. Vervollständigung - -Sie haben gemäss Art. 32 Abs. 4 DSG neu CH das Recht, von uns die Berichtigung sie betreffender unrichtiger und die Vervollständigung unvollständiger personenbezogener Daten zu verlangen. Wir sind verpflichtet, dem unverzüglich Folge zu leisten. - -#### Recht auf Löschung (Vergessenwerden) oder Vernichtung - -Sie haben gemäss Art. 32 Abs. 2 lit. c) DSG neu CH das Recht, die unverzügliche Löschung von betreffenden personenbezogenen Daten verlangen zu können. Weiterhin besteht gemäss Art. 32 Abs. 2 lit. c) DSG neu CH das Recht auf Vernichtung von Personendaten. - -#### Recht auf Mitteilung - -Sie haben gemäss Art. 32 Abs. 4 DSG neu CH das Recht, von uns Auskunft zu verlangen, welchen Empfängern mitgeteilt wurde, dass Sie betreffende personenbezogene Daten gelöscht, berichtigt oder eingeschränkt wurden. - -#### Recht auf Datenherausgabe oder -übertragung - -Sie haben gemäss Art. 28 DSG neu CH das Recht, die sie betreffenden personenbezogenen Daten, die Sie uns bereitgestellt haben, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten und das Recht, diese Daten einem anderen Verantwortlichen ohne Behinderung unsererseits zu übermitteln. - -#### Recht auf Widerspruch - -Sie haben gemäss Art. 30 Abs. 2 lit. b) DSG neu CH das Recht, aus Gründen, die sich aus Ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung sie betreffender personenbezogener Daten, die aufgrund berechtigter Interessen erfolgt, Widerspruch einzulegen. Wir dürfen die personenbezogenen dann nicht mehr verarbeiten, es sei denn, wir können zwingende Gründe nachweisen, die die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. - -#### Recht auf Beschwerde - -Sie haben das Recht, ihre datenschutzrechtlichen Ansprüche auf dem Rechtsweg durchzusetzen oder Beschwerde bei einer zuständigen Datenschutz-Aufsichtsbehörde zu erheben. Die zuständige Schweizer Datenschutz-Aufsichtsbehörde für private Verantwortliche und Bundesorgane ist der Eidgenössische Datenschutz- und Öffentlichkeitsbeauftragte (EDÖB). - -## 4. Speicherdauer und Löschung von personenbezogenen Daten - -Sofern in dieser Datenschutzerklärung nicht ausdrücklich bezeichnet, löschen wir Ihre verarbeiteten personenbezogenen Daten, wenn der Grund der Verarbeitung weggefallen ist. Davon unberührt bleiben in allen Fällen gesetzliche Aufbewahrungs- und Speicherfristen (z.B. in Deutschland § 14b UStG, § 257 Abs. 1 Nr. 2 und 3 HGB, § 147 AO oder in Österreich § 1478 ff. ABGB) (z.B. in der Schweiz Art. 60 OR) In diesen und weiteren Fällen erfolgen Speicherdauer und Löschung nach den gesetzlichen Vorgaben. - -## 5. Änderungen dieser Datenschutzerklärung - -Wir behalten uns vor, diese Datenschutzerklärung anzupassen und zu ändern, damit sie jeweils den aktuellen rechtlichen Anforderungen sowie unseren Leistungen entspricht. Die neue Datenschutzerklärung gilt dann ab Ihrem nächsten Besuch unserer Website. - -## 6. Grundsatz der Datensparsamkeit und SSL-Verschlüsselung - -Die Verarbeitung Ihrer personenbezogenen Daten erfolgt nur, wenn dies erforderlich ist, um Ihnen eine funktionierende Website zur Verfügung stellen zu können, auf der alle unsere Inhalte und Leistungen technisch richtig präsentiert werden. Sonstige Verarbeitungsvorgänge erfolgen regelmässig nur aufgrund von Ihnen erteilter Einwilligung gemäss Art. 6 Abs. 1 lit. a) DSGVO / Art. 31 Abs. 1 DSG neu CH, sofern die Datenverarbeitung nicht durch andere gesetzliche Vorschriften gestattet ist. - -Aus Sicherheitsgründen und zum Schutz bei der Übertragung personenbezogener Daten nutzen wir eine SSL-Verschlüsselung. - -Wir treffen ausserdem geeignete technische und organisatorische Massnahmen (TOMs), um ein angemessenes Schutzniveau zu gewährleisten. Hierbei werden der Stand der Technik, Implementierungskosten, Art, Umfang, Umstände und Zwecke der Verarbeitung sowie die unterschiedliche Eintrittswahrscheinlichkeit und Schwere der mit der Verarbeitung verbundenen Risiken für die Rechte und Freiheiten natürlicher Personen berücksichtigt. - -## 7. Daten Dritter - -Falls Sie uns neben Sie betreffender personenbezogener Daten auch Daten anderer Personen mitgeteilt haben, informieren Sie diese Personen bitte mithilfe dieser Datenschutzerklärung über die Verarbeitung ihrer personenbezogener Daten. - -## 8. Personenbezogene Datenübermittlung und Drittlandtransfers - -Teilweise arbeiten wir bei der Verarbeitung personenbezogener Daten mit Dritten zusammen, beispielsweise mit Dienstleistungsunternehmen im Rahmen von eingebetteten Inhalten wie Videos oder bei Statistikanalysen. Dabei können personenbezogene Daten weitergegeben werden. Diese Dritten stehen in einem Auftragsverarbeitungsverhältnis oder als gemeinsame Verantwortliche neben uns. In jeglichem Fall sorgen wir mit entsprechenden Vereinbarungen dafür, dass der gesetzlich vorgeschriebene und von uns gewährleistete Schutz Ihrer personenbezogenen Daten vollumfänglich eingehalten wird. Diese Vereinbarungen schliessen insbesondere Verträge (Auftragsverarbeitungsverträge , Standardvertragsklauseln, etc.) ein. - -Einige unserer Vertragspartner sitzen in Drittländern, sodass ein Datentransfer auch ins Ausland vorkommen kann. - -Falls wir personenbezogene Daten in Drittländern ausserhalb der EU bzw. des EWR verarbeiten, wird die gesetzesmässige Verarbeitung durch eine oder mehrere der folgenden Methoden sichergestellt: - -Übermittlung in ein Drittland mit anerkanntem Datenschutzniveau (Art. 45 DSGVO): Die EU-Kommission darf festlegen, ob ein Drittland ein für die Voraussetzungen der DSGVO ausreichendes Datenschutzkonzept hat, wodurch eine Übermittlung in ein solches Drittland DSGVO-konform stattfinden kann. Details dazu können Sie unter https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection_de (zuletzt aufgerufen am 12.08.2023) nachlesen. Die aktuelle Liste adäquater Länder der EU-Kommission ist unter https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_de (zuletzt aufgerufen am 12.08.2023) einsehbar. -Übermittlung vorbehaltlich geeigneter Garantien (Art. 46 DSGVO): Diese Garantien umfassen unter anderem eine Verpflichtung zum am 10.07.2023 in Kraft getretenen EU-US Data Privacy Framework (DPF) und die Standardvertragsklauseln (SCCs) der EU-Kommission. Eine Liste der Unternehmen, die sich zur Einhaltung des DPF verpflichten, wird unter https://www.dataprivacyframework.gov (zuletzt aufgerufen am 13.08.2023) geführt. Die SCCs der EU-Kommission finden Sie unter https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en (zuletzt aufgerufen am 13.08.2023). -Vorliegen einer Bedingung (Art. 49 DSGVO): Beispielsweise das Vorliegen Ihrer ausdrücklichen Einwilligung, die Notwendigkeit zur Erfüllung eines Vertrags oder eine gesetzliche Verpflichtung. -Weitere Grundlagen aus Art. 44-49 DSGVO: Die hier aufgeführte Liste dient der Nachvollziehbarkeit und Transparenz und ist nicht abschliessend. Welche Grundlage für eine rechtmässige Übermittlung in ein Drittland im Detail vorliegt, wird nachfolgend in dieser Datenschutzerklärung aufgeführt. - -Für eine Bekanntgabe von Personendaten in Drittländer ausserhalb der Schweiz hat der Bundesrat eine Liste an Staaten mit angemessenem Datenschutzniveau veröffentlicht. Diese kann unter https://www.fedlex.admin.ch/eli/cc/2022/568/de#annex_1/lvl_u1 (zuletzt aufgerufen am 13.08.2023) eingesehen werden. Falls Personendaten von uns in ein Drittland ohne angemessenes Datenschutzniveau bekanntgegeben werden, dann nur unter Einhaltung der Garantien gemäss Art. 16 DSG neu CH, insbesondere der Verwendung von vom EDÖB anerkannten Standarddatenschutzklauseln. Weitere Informationen dazu vom EDÖB selbst können Sie hier nachlesen: https://www.edoeb.admin.ch/edoeb/de/home/datenschutz/arbeit_wirtschaft/datenuebermittlung_ausland.html (zuletzt aufgerufen am 13.08.2023) - -Alternativ kann eine Bekanntgabe in Drittländer mit Ihrer ausdrücklichen Einwilligung, zur Abwicklung eines Vertrags oder beispielsweise zur Wahrung überwiegenden öffentlichen Interesses stattfinden (Art. 17 DSG neu CH). Die vereinzelten von uns getroffenen Massnahmen für die Gewährleistung einer Bekanntgabe in Drittländer nach den Regeln des DSG neu CH finden Sie nachfolgend in den einzelnen Abschnitten. - -## 9. Kontaktmöglichkeit bei Datenschutzfragen - -Bei Fragen und Anmerkungen zu dieser Datenschutzerklärung bitten wir Sie, sich unter hi@openscript.ch per E-Mail bei uns zu melden. - -Diese Datenschutzerklärung wurde generiert mit www.DatenBuddy.de es gelten die Kunden-AGB der u-create.it UG (haftungsbeschränkt). Der Generator wurde erstellt in Zusammenarbeit mit AID24 Rechtsanwaltskanzlei - RA Christoph Scholze und AV-Vertrag.org. diff --git a/content/data/pages/data-protection.en.mdx b/content/data/pages/data-protection.en.mdx deleted file mode 100644 index f7ae24cc..00000000 --- a/content/data/pages/data-protection.en.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Data protection -description: Data protection declaration of openscript Ltd. website. -type: content ---- - -# Data protection declaration - -Please consult our data protection declaration in German [here](/datenschutz). diff --git a/content/data/pages/imprint.de.mdx b/content/data/pages/imprint.de.mdx deleted file mode 100644 index e62786ec..00000000 --- a/content/data/pages/imprint.de.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Impressum -description: Alle Angaben zum Eigentümer dieser Seite, sowie die Haftungserklärung und Hinweise zu den erhobenen Daten. -type: content ---- - -# Impressum - -## Eigentümer - -Unterhalb sind die Angaben zur Identität des Eigentümers nach [UWG Artikel 3](http://www.admin.ch/opc/de/classified-compilation/19860391/index.html#a3) zu finden. - -openscript GmbH\ -Europa-Strasse 30\ -8152 Glattbrugg - -## Haftungserklärung - -Haftungsansprüche gegenüber dem Eigentümer und den Autoren von [openscript.ch](https://openscript.ch), die sich auf Schäden welcher Art auch immer beziehen, welche durch die Nutzung oder Nichtnutzung der angebotenen Informationen und Datensätzen bzw. durch die Nutzung fehlerhafter oder unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen! - -Die platzierten Angebote sind alle unverbindlich. Der Eigentümer behält sich das Recht vor, Teile der Seite oder das gesamte Angebot ohne Ankündigung zu ändern, zu ergänzen oder zu löschen. - -Verweise zu Inhalte Dritter liegen ausserhalb des Verantwortungsbereichs. Die Verantwortung wird in jedem Fall abgelehnt. diff --git a/content/data/pages/imprint.en.mdx b/content/data/pages/imprint.en.mdx deleted file mode 100644 index ecfce07d..00000000 --- a/content/data/pages/imprint.en.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Imprint -description: All information about the owner of this site, as well as the liability statement and notes about the data collected. -type: content ---- - -# Imprint - -## Owner - -The identity of the owner, according to [UWG Art. 3](http://www.admin.ch/opc/de/classified-compilation/19860391/index.html#a3) is stated below. - -openscript GmbH\ -Europa-Strasse 30\ -8152 Glattbrugg - -## Limitation of liability - -All liability of the owner and the other authors for direct, indirect or secondary damage suffered as a result of access to the elements of openscript.ch or to use of that site or as a consequence of impossibility of access to or use thereof or links to other websites, is hereby declined. - -All offers are without obligation. The owner reserves the right to change or delete, parts or the whole offer, at any time. - -The [openscript.ch](https://openscript.ch) website contains links to content maintained by third parties, which are outside our area of responsibility. Any responsibility is declined. diff --git a/content/data/sections/cooperation/us.de.md b/content/data/sections/cooperation/us.de.md deleted file mode 100644 index d3441b53..00000000 --- a/content/data/sections/cooperation/us.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Wir ---- - -Nur gemeinsam können wir grossartige Software programmieren, ob als externer Partner oder Kollege. Wir freuen uns darauf Sie kennenzulernen. diff --git a/content/data/sections/cooperation/us.en.md b/content/data/sections/cooperation/us.en.md deleted file mode 100644 index 1dc22b82..00000000 --- a/content/data/sections/cooperation/us.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Us ---- - -Only together we can build great software, is it as partner or colleague. diff --git a/content/data/sections/cooperation/you.de.md b/content/data/sections/cooperation/you.de.md deleted file mode 100644 index b8a264e1..00000000 --- a/content/data/sections/cooperation/you.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Sie ---- - -Sie haben ein spannendes Softwareprojekt und suchen einen nachhaltigen Partner für die Realisierung? diff --git a/content/data/sections/cooperation/you.en.md b/content/data/sections/cooperation/you.en.md deleted file mode 100644 index 4f588bc7..00000000 --- a/content/data/sections/cooperation/you.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: You ---- - -You have an adventurous software project ahead and you need a reliable partner? diff --git a/content/data/sections/events/aaron-joins-company.de.md b/content/data/sections/events/aaron-joins-company.de.md deleted file mode 100644 index 6d39830b..00000000 --- a/content/data/sections/events/aaron-joins-company.de.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Willkommen Aaron! -date: 2021-09-01 ---- - -Als dritter und erster offizieller Mitarbeiter tritt Aaron der openscript bei. - -
- -![Aarons Avatar](./aaron-stampa.svg) - -
diff --git a/content/data/sections/events/aaron-joins-company.en.md b/content/data/sections/events/aaron-joins-company.en.md deleted file mode 100644 index e19f9cc2..00000000 --- a/content/data/sections/events/aaron-joins-company.en.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Welcome Aaron! -date: 2021-09-01 ---- - -Aaron joins openscript as its third and first official employee. - -
- -![Aarons avatar](./aaron-stampa.svg) - -
diff --git a/content/data/sections/events/aaron-stampa.svg b/content/data/sections/events/aaron-stampa.svg deleted file mode 100644 index 0ef844dd..00000000 --- a/content/data/sections/events/aaron-stampa.svg +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/data/sections/events/company-retreat.de.md b/content/data/sections/events/company-retreat.de.md deleted file mode 100644 index c7fa0556..00000000 --- a/content/data/sections/events/company-retreat.de.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Firmen Retreat -date: 2023-01-20 ---- - -Um sich als Firma entwickeln zu können, ist es manchmal notwendig auch ausserhalb der regulären Arbeitsumgebung zusammen zu sitzen und Zeit zu verbringen. - -Also haben wir uns ein einfaches Pfadiheimn in der nähe von Winterthur gemietet und haben gemeinsam feuer gemacht, gekocht, gegessen und gespielt. - -Vor allem haben wir aber Themen rund um openscript besprochen und wie wir uns die Zukunft der Firma vorstellen. - -![Firmen Retreat](./company-retreat.jpg 'Firmen Retreat') diff --git a/content/data/sections/events/company-retreat.en.md b/content/data/sections/events/company-retreat.en.md deleted file mode 100644 index 4c267cf9..00000000 --- a/content/data/sections/events/company-retreat.en.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Company retreat -date: 2023-01-20 ---- - -In order to develop as a company, it is sometimes necessary to sit together and spend time outside the regular working environment. - -So we rented a simple scout hostel near Winterthur and built a fire, cooked, ate and played together. - -But most importantly, we discussed topics around openscript and how we envision the future of the company. - -![Company retreat](./company-retreat.jpg 'Company retreat') diff --git a/content/data/sections/events/company-retreat.jpg b/content/data/sections/events/company-retreat.jpg deleted file mode 100644 index 872ce992..00000000 Binary files a/content/data/sections/events/company-retreat.jpg and /dev/null differ diff --git a/content/data/sections/events/foundation.de.md b/content/data/sections/events/foundation.de.md deleted file mode 100644 index ff94aa98..00000000 --- a/content/data/sections/events/foundation.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Gründung -date: 2020-01-28 ---- - -Die Gründung der openscript GmbH! diff --git a/content/data/sections/events/foundation.en.md b/content/data/sections/events/foundation.en.md deleted file mode 100644 index 9ef73749..00000000 --- a/content/data/sections/events/foundation.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Foundation -date: 2020-01-28 ---- - -The foundation of openscript GmbH! diff --git a/content/data/sections/events/micael-joins-company.de.md b/content/data/sections/events/micael-joins-company.de.md deleted file mode 100644 index e8e75dd1..00000000 --- a/content/data/sections/events/micael-joins-company.de.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Willkommen Micael! -date: 2022-12-12 ---- - -Um sich für das Bachelor Studium an der ZHAW vorzubereiten, ist Micael bei uns als Praktikant mit eingestiegen. -Wir hoffen, dass er uns auch während seines Studiums, welches im Sommer 2023 beginnt, noch weiter begleiten wird. - -
- -![Micaels Avatar](./micael-staeubli.svg) - -
diff --git a/content/data/sections/events/micael-joins-company.en.md b/content/data/sections/events/micael-joins-company.en.md deleted file mode 100644 index 6da55af5..00000000 --- a/content/data/sections/events/micael-joins-company.en.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Welcome Micael! -date: 2022-12-12 ---- - -In order to prepare for his bachelor studies at the ZHAW, Micael joined us as an intern. -We hope that he will continue to accompany us during his studies, which will begin in the summer of 2023. - -
- -![Micaels avatar](./micael-staeubli.svg) - -
diff --git a/content/data/sections/events/micael-staeubli.svg b/content/data/sections/events/micael-staeubli.svg deleted file mode 100644 index df795160..00000000 --- a/content/data/sections/events/micael-staeubli.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/data/sections/events/new-office.de.md b/content/data/sections/events/new-office.de.md deleted file mode 100644 index 2a81056c..00000000 --- a/content/data/sections/events/new-office.de.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Zügeln ins neue Office! -date: 2021-12-11 ---- - -Wir zügeln in unser erstes richtiges Office. - -In Glattbrugg haben wir ein schönes fast 70m2 grosses Büro gefunden. Darin können wir uns nun neu ausleben und mit der Firma richtig durchstarten. - -An Ideen, wie wir das Office anrichten fehlt es uns nicht. Schon viele kleine Gadgets und Spielereien sind geplant. diff --git a/content/data/sections/events/new-office.en.md b/content/data/sections/events/new-office.en.md deleted file mode 100644 index d851b7cd..00000000 --- a/content/data/sections/events/new-office.en.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Moving to new Office! -date: 2021-12-11 ---- - -We are moving into our first real office. - -In Glattbrugg we found a nice office of almost 70m2. We can now settle down in it and really get started with the company. - -There is no lack of ideas how to arrange the office. Many small gadgets and gimmicks are already planned. diff --git a/content/data/sections/events/visiting-bern.de.md b/content/data/sections/events/visiting-bern.de.md deleted file mode 100644 index e5699ea9..00000000 --- a/content/data/sections/events/visiting-bern.de.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Firmenausflug nach Bern -date: 2021-10-14 ---- - -Als unser erster gemeinsamer Firmenausflug sind wir mit dem Zug nach Bern gereist. - -Dort waren wir zu Besuch bei Haslerrail, einer unserer vertrauten Kunden. - -Im Anschluss haben wir noch einen Abstecher Richtung Bundeshaus gemacht und dort ein paar Team Fotos geschossen. diff --git a/content/data/sections/events/visiting-bern.en.md b/content/data/sections/events/visiting-bern.en.md deleted file mode 100644 index 15d67a5c..00000000 --- a/content/data/sections/events/visiting-bern.en.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Firmenausflug nach Bern -date: 2021-10-14 ---- - -As our first company outing together, we traveled by train to Bern. - -There we visited Haslerrail, one of our trusted customers. - -Afterwards, we made a detour to the Federal Palace and took some team photos there. diff --git a/content/data/sections/exchange/what-we-work-with.de.md b/content/data/sections/exchange/what-we-work-with.de.md deleted file mode 100644 index 650b8ae3..00000000 --- a/content/data/sections/exchange/what-we-work-with.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Womit wir arbeiten ---- - -Wir scheuen uns nicht davor, neue Technologien und Mittel einzusetzen, um das perfekt passende Produkt für Sie zu entwickeln. -Am liebsten verwenden wir moderne, innovative Web-Technologien, von denen wir uns versprechen, sie nachhaltig und über längere Zeit einsetzen zu können. diff --git a/content/data/sections/exchange/what-we-work-with.en.md b/content/data/sections/exchange/what-we-work-with.en.md deleted file mode 100644 index b0dd6935..00000000 --- a/content/data/sections/exchange/what-we-work-with.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What we work with ---- - -We are not afraid to use new technologies and means to develop the perfectly fitting product for you. -We prefer to use modern, innovative web technologies, which we promise to be able to use sustainably over time. diff --git a/content/data/sections/portraits/aaron-stampa.de.md b/content/data/sections/portraits/aaron-stampa.de.md deleted file mode 100644 index e8e8b88b..00000000 --- a/content/data/sections/portraits/aaron-stampa.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Aaron Stampa -avatar: aaron-stampa.svg ---- diff --git a/content/data/sections/portraits/aaron-stampa.en.md b/content/data/sections/portraits/aaron-stampa.en.md deleted file mode 100644 index e8e8b88b..00000000 --- a/content/data/sections/portraits/aaron-stampa.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Aaron Stampa -avatar: aaron-stampa.svg ---- diff --git a/content/data/sections/portraits/aaron-stampa.svg b/content/data/sections/portraits/aaron-stampa.svg deleted file mode 100644 index 0ef844dd..00000000 --- a/content/data/sections/portraits/aaron-stampa.svg +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/data/sections/portraits/diego-steiner.de.md b/content/data/sections/portraits/diego-steiner.de.md deleted file mode 100644 index e246168b..00000000 --- a/content/data/sections/portraits/diego-steiner.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Diego Steiner -avatar: diego-steiner.svg ---- diff --git a/content/data/sections/portraits/diego-steiner.en.md b/content/data/sections/portraits/diego-steiner.en.md deleted file mode 100644 index e246168b..00000000 --- a/content/data/sections/portraits/diego-steiner.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Diego Steiner -avatar: diego-steiner.svg ---- diff --git a/content/data/sections/portraits/micael-staeubli.de.md b/content/data/sections/portraits/micael-staeubli.de.md deleted file mode 100644 index 755a1d00..00000000 --- a/content/data/sections/portraits/micael-staeubli.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Micael Stäubli -avatar: micael-staeubli.svg ---- diff --git a/content/data/sections/portraits/micael-staeubli.en.md b/content/data/sections/portraits/micael-staeubli.en.md deleted file mode 100644 index 755a1d00..00000000 --- a/content/data/sections/portraits/micael-staeubli.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Micael Stäubli -avatar: micael-staeubli.svg ---- diff --git a/content/data/sections/portraits/micael-staeubli.svg b/content/data/sections/portraits/micael-staeubli.svg deleted file mode 100644 index df795160..00000000 --- a/content/data/sections/portraits/micael-staeubli.svg +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/data/sections/portraits/robin-buehler.de.md b/content/data/sections/portraits/robin-buehler.de.md deleted file mode 100644 index 6b885bbf..00000000 --- a/content/data/sections/portraits/robin-buehler.de.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Robin Bühler -avatar: robin-buehler.svg ---- diff --git a/content/data/sections/portraits/robin-buehler.en.md b/content/data/sections/portraits/robin-buehler.en.md deleted file mode 100644 index 6b885bbf..00000000 --- a/content/data/sections/portraits/robin-buehler.en.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -name: Robin Bühler -avatar: robin-buehler.svg ---- diff --git a/content/data/sections/questions/best-editor.de.md b/content/data/sections/questions/best-editor.de.md deleted file mode 100644 index 360e1d3a..00000000 --- a/content/data/sections/questions/best-editor.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was ist der beste Editor und welches Plugin darf nicht fehlen? -answeredBy: Diego Steiner ---- - -Ich arbeite am effektivsten mit Visual Studio Code mit dem [Vim-Erweiterung](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim). diff --git a/content/data/sections/questions/best-editor.en.md b/content/data/sections/questions/best-editor.en.md deleted file mode 100644 index c8ea46b7..00000000 --- a/content/data/sections/questions/best-editor.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What is the editor and which plugin must not be missing -answeredBy: Diego Steiner ---- - -I work best with Visual Studio Code and the [Vim extension](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim). diff --git a/content/data/sections/questions/best-javascript-framework.de.md b/content/data/sections/questions/best-javascript-framework.de.md deleted file mode 100644 index c62e40fa..00000000 --- a/content/data/sections/questions/best-javascript-framework.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was ist zurzeit das beste Javascript Framework? -answeredBy: Robin Bühler ---- - -Mir gefällt aktuell [next.js](https://nextjs.org/) sehr gut, allerdings nutzen wir [Gatsby](https://www.gatsbyjs.com/) als Grundlage für diese Webseite, weil es für diesen Zweck besser passt. Meiner Meinung nach muss die Frage je nach Vorhaben unterschiedlich beantwortet werden. diff --git a/content/data/sections/questions/best-javascript-framework.en.md b/content/data/sections/questions/best-javascript-framework.en.md deleted file mode 100644 index 8e4f12c4..00000000 --- a/content/data/sections/questions/best-javascript-framework.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What is currently the best Javascript framework? -answeredBy: Robin Bühler ---- - -I currently like [next.js](https://nextjs.org/) very much, however we use [Gatsby](https://www.gatsbyjs.com/) as the basis for this website because it fits better for this purpose. In my opinion, the question has to be answered differently depending on the project or use-case. diff --git a/content/data/sections/questions/best-operating-system.de.md b/content/data/sections/questions/best-operating-system.de.md deleted file mode 100644 index 3b3d1e38..00000000 --- a/content/data/sections/questions/best-operating-system.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was ist das beste Betriebssystem? -answeredBy: Robin Bühler ---- - -Ich mag auf Linux basierte Betriebssysteme sehr, insbesondere [Arch Linux](https://archlinux.org/), weil diese Systeme es einem ermöglichen alles anzusehen und zu verändern, wie es einem gefällt. diff --git a/content/data/sections/questions/best-operating-system.en.md b/content/data/sections/questions/best-operating-system.en.md deleted file mode 100644 index 1b269510..00000000 --- a/content/data/sections/questions/best-operating-system.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What is the best operating system? -answeredBy: Robin Bühler ---- - -I really like Linux based operating systems, especially [Arch Linux](https://archlinux.org/), because of the freedom to look into everything. diff --git a/content/data/sections/questions/best-programming-language.de.md b/content/data/sections/questions/best-programming-language.de.md deleted file mode 100644 index 07e0de09..00000000 --- a/content/data/sections/questions/best-programming-language.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was ist die beste Programmiersprache? -answeredBy: Aaron Stampa ---- - -Modernes JavaScript oder TypeScript gefällt mir sehr gut. diff --git a/content/data/sections/questions/best-programming-language.en.md b/content/data/sections/questions/best-programming-language.en.md deleted file mode 100644 index d080288d..00000000 --- a/content/data/sections/questions/best-programming-language.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What is the best programming language? -answeredBy: Aaron Stampa ---- - -Modern JavaScript or TypeScript suits me well, but I like programming languages in general. diff --git a/content/data/sections/questions/blockchain-vs-artifical-intelligence.de.md b/content/data/sections/questions/blockchain-vs-artifical-intelligence.de.md deleted file mode 100644 index 2745110c..00000000 --- a/content/data/sections/questions/blockchain-vs-artifical-intelligence.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Welches Thema ist wichtiger in naher Zukunft, Blockchain oder Künstliche Intelligenz? -answeredBy: Diego Steiner ---- - -Beide Themen sind sicher von grosser Relevanz. In naher Zukunft sehe ein grosses Potential in Smart Contracts, welche auf der Blockchain basieren. diff --git a/content/data/sections/questions/blockchain-vs-artifical-intelligence.en.md b/content/data/sections/questions/blockchain-vs-artifical-intelligence.en.md deleted file mode 100644 index 3f89ba6c..00000000 --- a/content/data/sections/questions/blockchain-vs-artifical-intelligence.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Which topic is more important in the near future, Blockchain or artificial intelligence? -answeredBy: Diego Steiner ---- - -Both topics are and will be relevant. For the near future I see a lot of potential in smart contracts, which are based on the blockchain. diff --git a/content/data/sections/questions/company-values.de.md b/content/data/sections/questions/company-values.de.md deleted file mode 100644 index fe3237d1..00000000 --- a/content/data/sections/questions/company-values.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Welche Werte sind wichtig für das funktionieren einer Firma? -answeredBy: Robin Bühler ---- - -Offenheit, Ehrlichkeit, sowie ein gesundes Mass für die Einschätzung der eigenen Fähig- und Möglichkeiten. diff --git a/content/data/sections/questions/company-values.en.md b/content/data/sections/questions/company-values.en.md deleted file mode 100644 index e66752bf..00000000 --- a/content/data/sections/questions/company-values.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Which values are important for the functioning of a company? -answeredBy: Robin Bühler ---- - -Openness, honesty, as well as a good assessment of one's own abilities and possibilities. diff --git a/content/data/sections/questions/debugging-vs-testing.de.md b/content/data/sections/questions/debugging-vs-testing.de.md deleted file mode 100644 index f7caa1bb..00000000 --- a/content/data/sections/questions/debugging-vs-testing.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Welche Aufgabe ist spannender, Debuggen oder automatisierte Tests schreiben? -answeredBy: Aaron Stampa ---- - -Mit dem schreiben von automatisierten Tests bin ich noch nicht so richtig warm geworden, jedoch empfinde ich es als sehr wichtig. Debuggen macht mir deutlich mehr Spass. diff --git a/content/data/sections/questions/debugging-vs-testing.en.md b/content/data/sections/questions/debugging-vs-testing.en.md deleted file mode 100644 index 551d72c8..00000000 --- a/content/data/sections/questions/debugging-vs-testing.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Which task is more exciting, debugging or writing automated tests? -answeredBy: Aaron Stampa ---- - -So far I didn't really get used to writing automated tests, but I think they are very important. Debugging is a lot of fun for me, though. diff --git a/content/data/sections/questions/gadget-at-workplace.de.md b/content/data/sections/questions/gadget-at-workplace.de.md deleted file mode 100644 index 8f872984..00000000 --- a/content/data/sections/questions/gadget-at-workplace.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Welches Gadget braucht jeder Softwareentwickler am Arbeitsplatz? -answeredBy: Aaron Stampa ---- - -Da ich ein nicht so Gadget affiner Mensch bin, empfinde ich ein höhenverstellbarer Schreibtisch als wertvolles mittel an jedem Arbeitsplatz. diff --git a/content/data/sections/questions/gadget-at-workplace.en.md b/content/data/sections/questions/gadget-at-workplace.en.md deleted file mode 100644 index fe9153c2..00000000 --- a/content/data/sections/questions/gadget-at-workplace.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What gadget does every software developer need at work? -answeredBy: Aaron Stampa ---- - -As I'm not a very gadget affine person, my answer is a height adjustable desk or standing desk for my workplaces. diff --git a/content/data/sections/questions/most-important-gem.de.md b/content/data/sections/questions/most-important-gem.de.md deleted file mode 100644 index aeebb69d..00000000 --- a/content/data/sections/questions/most-important-gem.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was ist dein Lieblings Ruby Gem? -answeredBy: Diego Steiner ---- - -Es gibt sehr viele gute Gems, die von Freiwilligen in der Open Source Community entwickelt und gepflegt werden. [Rails](https://github.com/rails/rails) ist sicher das Gem, welches ich in fast jedem Projekt einsetze. Mir gefallen aber auch [Rubocop](https://github.com/rubocop/rubocop) und [Statesman](https://github.com/gocardless/statesman). diff --git a/content/data/sections/questions/most-important-gem.en.md b/content/data/sections/questions/most-important-gem.en.md deleted file mode 100644 index 281520f2..00000000 --- a/content/data/sections/questions/most-important-gem.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What is your favorite ruby gem? -answeredBy: Diego Steiner ---- - -There are many great gems out there that are developed and maintained by the open source community. [Rails](https://github.com/rails/rails) is the gem that I find myself using in almost every project, but I also really like [Rubocop](https://github.com/rubocop/rubocop) and [Statesman](https://github.com/gocardless/statesman). diff --git a/content/data/sections/questions/openscript-difference.de.md b/content/data/sections/questions/openscript-difference.de.md deleted file mode 100644 index 9b346ad4..00000000 --- a/content/data/sections/questions/openscript-difference.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was macht die openscript GmbH einzigartig? -answeredBy: Robin Bühler ---- - -Meiner Meinung nach die holokratische Organisation bestehend aus Freunden die aus Freude an der Arbeit interessante Projekte verfolgen. diff --git a/content/data/sections/questions/openscript-difference.en.md b/content/data/sections/questions/openscript-difference.en.md deleted file mode 100644 index c9c2593c..00000000 --- a/content/data/sections/questions/openscript-difference.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What makes openscript GmbH unique? -answeredBy: Robin Bühler ---- - -In my opinion, the holocratic organization consisting of friends who pursue interesting projects for the joy of work. diff --git a/content/data/sections/questions/profession-fun.de.md b/content/data/sections/questions/profession-fun.de.md deleted file mode 100644 index 7da5c67d..00000000 --- a/content/data/sections/questions/profession-fun.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was macht dir an deiner Arbeit am meisten Freude? -answeredBy: Aaron Stampa ---- - -An meiner Arbeit macht es mir am meisten Spass, elegante Lösungen für komplexe Probleme zu erarbeiten. diff --git a/content/data/sections/questions/profession-fun.en.md b/content/data/sections/questions/profession-fun.en.md deleted file mode 100644 index ed21a32b..00000000 --- a/content/data/sections/questions/profession-fun.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What do you enjoy most about your work? -answeredBy: Aaron Stampa ---- - -What I enjoy most about my work is coming up with elegant solutions to complex problems. diff --git a/content/data/sections/questions/team-spirit.de.md b/content/data/sections/questions/team-spirit.de.md deleted file mode 100644 index 3880414c..00000000 --- a/content/data/sections/questions/team-spirit.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Was braucht es, um einen guten Teamgeist aufzubauen? -answeredBy: Diego Steiner ---- - -Dafür braucht es zunächst mal ein tolles Team aus Personen, die sich gegenseitig respektieren und sich selbst in die Gemeinschaft einbringen wollen. Auf diesem Fundament entsteht ein guter Teamgeist, wenn man ein gemeinsames Ziel vor Augen hat. diff --git a/content/data/sections/questions/team-spirit.en.md b/content/data/sections/questions/team-spirit.en.md deleted file mode 100644 index 59f9fc74..00000000 --- a/content/data/sections/questions/team-spirit.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: What does it take to build a strong team spirit? -answeredBy: Diego Steiner ---- - -For a strong team spirit, the most important part is a great team of people that respect each other and want to contribute to the community. A team spirit can thrive on this foundation if you have a common goal everybody can work towards. diff --git a/content/data/sections/references/companies/astra.md b/content/data/sections/references/companies/astra.md deleted file mode 100644 index ba561017..00000000 --- a/content/data/sections/references/companies/astra.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./astra.svg -link: https://www.astra.admin.ch ---- - -Bundesamt für Strassen ASTRA diff --git a/content/data/sections/references/companies/haslerrail.md b/content/data/sections/references/companies/haslerrail.md deleted file mode 100644 index ae9189cc..00000000 --- a/content/data/sections/references/companies/haslerrail.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./haslerrail.svg -link: https://www.haslerrail.com/ ---- - -HaslerRail AG diff --git a/content/data/sections/references/companies/hydrowatt.md b/content/data/sections/references/companies/hydrowatt.md deleted file mode 100644 index 9b3fefe4..00000000 --- a/content/data/sections/references/companies/hydrowatt.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./hydrowatt.svg -link: http://hydrowatt.com/ ---- - -Hydrowatt AG diff --git a/content/data/sections/references/companies/schalthalle.md b/content/data/sections/references/companies/schalthalle.md deleted file mode 100644 index 6cdb90dc..00000000 --- a/content/data/sections/references/companies/schalthalle.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./schalthalle.png -link: https://www.schalthalle.ch/ ---- - -Verein Schalthalle diff --git a/content/data/sections/references/companies/schalthalle.png b/content/data/sections/references/companies/schalthalle.png deleted file mode 100644 index 1c8f62a8..00000000 Binary files a/content/data/sections/references/companies/schalthalle.png and /dev/null differ diff --git a/content/data/sections/references/companies/sto.md b/content/data/sections/references/companies/sto.md deleted file mode 100644 index cb48510d..00000000 --- a/content/data/sections/references/companies/sto.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./sto.svg -link: https://sto-immobilien.ch ---- - -STO Immobilien GmbH diff --git a/content/data/sections/references/companies/wagner.md b/content/data/sections/references/companies/wagner.md deleted file mode 100644 index c3fbb8cb..00000000 --- a/content/data/sections/references/companies/wagner.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./wagner.svg -link: https://wagner-rohbau.ch ---- - -Wagner Unternehmungen AG diff --git a/content/data/sections/references/companies/wiegand.md b/content/data/sections/references/companies/wiegand.md deleted file mode 100644 index 983b769d..00000000 --- a/content/data/sections/references/companies/wiegand.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./wiegand.png -link: https://www.wiegand.ch ---- - -Wiegand AG diff --git a/content/data/sections/references/companies/yaver.md b/content/data/sections/references/companies/yaver.md deleted file mode 100644 index 2c1a5f5f..00000000 --- a/content/data/sections/references/companies/yaver.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./yaver.svg -link: https://www.yaver.ch/ ---- - -Yaver diff --git a/content/data/sections/references/companies/zli.md b/content/data/sections/references/companies/zli.md deleted file mode 100644 index 167cdca7..00000000 --- a/content/data/sections/references/companies/zli.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -logo: ./zli.svg -link: https://www.zli.ch/ ---- - -Zürcher Lehrbetriebsverband ICT diff --git a/content/data/sections/references/software/certification.de.md b/content/data/sections/references/software/certification.de.md deleted file mode 100644 index aecfb36e..00000000 --- a/content/data/sections/references/software/certification.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Unbeaufsichtigtes Online-Zertifizierungstool für eine internationale Organisation -icon: ./certification.svg ---- - -Mit diesem Tool können Sie Ihren Zertifizierungsprozess organisieren. Es ermöglicht Personen periodisch zur Zertifizierung einzuladen, es führt den Zertifizierungsprozess durch und übergibt Ihnen nach erfolgreicher Zertifizierung schön formatierte PDF-Dokumente. diff --git a/content/data/sections/references/software/certification.en.md b/content/data/sections/references/software/certification.en.md deleted file mode 100644 index f03fa252..00000000 --- a/content/data/sections/references/software/certification.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Unattended online certification tool for an international organization -icon: ./certification.svg ---- - -With this tool you can organize your certification process. It lets you invite people periodically to get certified, runs the certification process and hands you nicely designed PDF documents upon successful certification. diff --git a/content/data/sections/references/software/timelet.de.md b/content/data/sections/references/software/timelet.de.md deleted file mode 100644 index 2f5d7486..00000000 --- a/content/data/sections/references/software/timelet.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Minimales Open-Source Zeiterfassungstool -icon: ./timelet.svg ---- - -Dieses Produkt ist ein minimalistisches, einfach zu bedienendes Open-Source-Tool zur effizienten Zeiterfassung. Da es völlig kostenlos ist, bietet es jedem die Möglichkeit, sein Zeitmanagement professionell zu gestalten. diff --git a/content/data/sections/references/software/timelet.en.md b/content/data/sections/references/software/timelet.en.md deleted file mode 100644 index 8f6360b2..00000000 --- a/content/data/sections/references/software/timelet.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Minimal opensource time tracking tool -icon: ./timelet.svg ---- - -This product is a minimalist, easy-to-use, opensource tool to track time efficiently. By it being completely free to use it gives everyone the change to handle their time management professionally. diff --git a/content/data/sections/references/software/vialibera.de.md b/content/data/sections/references/software/vialibera.de.md deleted file mode 100644 index 1a58a11c..00000000 --- a/content/data/sections/references/software/vialibera.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Mobiles Protokollmanagement-Tool für eine Regierungsorganisation -icon: ./vialibera.svg ---- - -Es handelt sich um eine progressive Webanwendung, die offlinefähig ist. Nachdem das Gerät, auf dem die Anwendung läuft, wieder online ist, werden die Daten synchronisiert. Es hilft dabei, den Strassenzustand zu protokollieren und daraus Statistiken zu erstellen. diff --git a/content/data/sections/references/software/vialibera.en.md b/content/data/sections/references/software/vialibera.en.md deleted file mode 100644 index 874e88a9..00000000 --- a/content/data/sections/references/software/vialibera.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Mobile protocol management tool for a government organization -icon: ./vialibera.svg ---- - -It's a progressive web application, which has offline capabilities. After the device which runs the application comes back online the data is synchronized. It helps you to log street condition and makes statistics out of it. diff --git a/content/data/sections/strengths/services/consulting.de.md b/content/data/sections/strengths/services/consulting.de.md deleted file mode 100755 index 7dc283d9..00000000 --- a/content/data/sections/strengths/services/consulting.de.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Beraten -sprite: consulting -order: 3 ---- - -Gerne sind wir Ihr Berater, um sich in der Welt der Bits und Bytes zurecht zu finden. diff --git a/content/data/sections/strengths/services/consulting.en.md b/content/data/sections/strengths/services/consulting.en.md deleted file mode 100755 index 7a306d9c..00000000 --- a/content/data/sections/strengths/services/consulting.en.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Consulting -sprite: consulting -order: 3 ---- - -We are happy to be your advisor to find your way in the world of bits and bytes. diff --git a/content/data/sections/strengths/services/education.de.md b/content/data/sections/strengths/services/education.de.md deleted file mode 100755 index 4fb897af..00000000 --- a/content/data/sections/strengths/services/education.de.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Schulung -sprite: education -order: 2 ---- - -Wir lieben es, unser Wissen zu teilen und zu unterrichten. diff --git a/content/data/sections/strengths/services/education.en.md b/content/data/sections/strengths/services/education.en.md deleted file mode 100755 index d5cd0579..00000000 --- a/content/data/sections/strengths/services/education.en.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Education -sprite: education -order: 2 ---- - -We love to share our knowledge and teach. diff --git a/content/data/sections/strengths/services/software-development.de.md b/content/data/sections/strengths/services/software-development.de.md deleted file mode 100755 index 80fa5d77..00000000 --- a/content/data/sections/strengths/services/software-development.de.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Software-Entwicklung -sprite: software-development -skills: [../skills/iam.de.md, '../skills/web-applications.de.md', '../skills/apis.de.md', '../skills/calendar.de.md'] -order: 1 ---- - -Im kleinen Team lieben wir es, spannende Softwarelösungen aller Art zu entwickeln. diff --git a/content/data/sections/strengths/services/software-development.en.md b/content/data/sections/strengths/services/software-development.en.md deleted file mode 100755 index c4b0f6b7..00000000 --- a/content/data/sections/strengths/services/software-development.en.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Software development -sprite: software-development -skills: [../skills/iam.en.md, '../skills/web-applications.en.md', '../skills/apis.en.md', '../skills/calendar.en.md'] -order: 1 ---- - -In a small team we love to develop exciting software solutions of all kinds. diff --git a/content/data/sections/strengths/skills/apis.de.md b/content/data/sections/strengths/skills/apis.de.md deleted file mode 100755 index 7c40a45d..00000000 --- a/content/data/sections/strengths/skills/apis.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Schnittstellen -icon: ./apis.svg -link: /present/strengths#apis ---- diff --git a/content/data/sections/strengths/skills/apis.en.md b/content/data/sections/strengths/skills/apis.en.md deleted file mode 100755 index 94d93690..00000000 --- a/content/data/sections/strengths/skills/apis.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Interfaces -icon: ./apis.svg -link: /present/strengths#apis ---- diff --git a/content/data/sections/strengths/skills/apis.svg b/content/data/sections/strengths/skills/apis.svg deleted file mode 100644 index 75c8f7d9..00000000 --- a/content/data/sections/strengths/skills/apis.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/content/data/sections/strengths/skills/calendar.de.md b/content/data/sections/strengths/skills/calendar.de.md deleted file mode 100755 index a719c440..00000000 --- a/content/data/sections/strengths/skills/calendar.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Kalender-Funktionalität -icon: ./calendar.svg -link: /present/strengths#calendar ---- diff --git a/content/data/sections/strengths/skills/calendar.en.md b/content/data/sections/strengths/skills/calendar.en.md deleted file mode 100755 index 3001d88b..00000000 --- a/content/data/sections/strengths/skills/calendar.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Calendar functionality -icon: ./calendar.svg -link: /present/strengths#calendar ---- diff --git a/content/data/sections/strengths/skills/calendar.svg b/content/data/sections/strengths/skills/calendar.svg deleted file mode 100644 index 179d66e6..00000000 --- a/content/data/sections/strengths/skills/calendar.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/content/data/sections/strengths/skills/iam.de.md b/content/data/sections/strengths/skills/iam.de.md deleted file mode 100755 index fc69a2e5..00000000 --- a/content/data/sections/strengths/skills/iam.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Benutzer und Zugriff -icon: ./iam.svg -link: /present/strengths#iam ---- diff --git a/content/data/sections/strengths/skills/iam.en.md b/content/data/sections/strengths/skills/iam.en.md deleted file mode 100755 index 637e63e8..00000000 --- a/content/data/sections/strengths/skills/iam.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Users and access -icon: ./iam.svg -link: /present/strengths#iam ---- diff --git a/content/data/sections/strengths/skills/iam.svg b/content/data/sections/strengths/skills/iam.svg deleted file mode 100644 index 9631a365..00000000 --- a/content/data/sections/strengths/skills/iam.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/content/data/sections/strengths/skills/web-applications.de.md b/content/data/sections/strengths/skills/web-applications.de.md deleted file mode 100755 index 28b6cdf1..00000000 --- a/content/data/sections/strengths/skills/web-applications.de.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Web-Applikationen -icon: ./web-applications.svg -link: /present/strengths#web-applications ---- diff --git a/content/data/sections/strengths/skills/web-applications.en.md b/content/data/sections/strengths/skills/web-applications.en.md deleted file mode 100755 index e033ad36..00000000 --- a/content/data/sections/strengths/skills/web-applications.en.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Web applications -icon: ./web-applications.svg -link: /present/strengths#web-applications ---- diff --git a/content/data/sections/strengths/skills/web-applications.svg b/content/data/sections/strengths/skills/web-applications.svg deleted file mode 100644 index e532563e..00000000 --- a/content/data/sections/strengths/skills/web-applications.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/data/sections/summaries/team.de.md b/content/data/sections/summaries/team.de.md deleted file mode 100644 index 0c0dce93..00000000 --- a/content/data/sections/summaries/team.de.md +++ /dev/null @@ -1 +0,0 @@ -Lernen Sie das Team hinter unserem Unternehmen kennen - eine Gruppe von engagierten und qualifizierten Fachleuten, die mit Leidenschaft massgeschneiderte Softwarelösungen entwickeln, die auf die spezifischen Bedürfnisse unserer Kunden zugeschnitten sind. Neben unserer Expertise in der Softwareentwicklung engagieren wir uns auch für die Förderung der Berufsbildung in der Schweiz. Wir sind ein aufgeschlossenes, ganzheitliches und vertrauenswürdiges Team und freuen uns darauf, bald mit Ihnen gemeinsam in die Welt der Bits und Bytes einzutauchen. diff --git a/content/data/sections/summaries/team.en.md b/content/data/sections/summaries/team.en.md deleted file mode 100644 index ee7377e6..00000000 --- a/content/data/sections/summaries/team.en.md +++ /dev/null @@ -1 +0,0 @@ -Meet the team behind our company - a group of dedicated and skilled professionals who are passionate about creating custom software solutions that are tailored to the specific needs of our clients. We take great pride in our work and are committed to delivering the highest quality products and services. In addition to our software development expertise, we are also committed to advancing vocational education in Switzerland. We believe that providing apprenticeship opportunities and modern educational content to students is an important way to ensure that the next generation of software developers is well-equipped to meet the demands of the industry. As a team, we are open-minded, holacratic, and trustworthy, and we look forward to the opportunity to work together and embark on an adventure in the world of bits and bytes with you soon. diff --git a/content/data/sections/values/adaptability.de.md b/content/data/sections/values/adaptability.de.md deleted file mode 100644 index c3620126..00000000 --- a/content/data/sections/values/adaptability.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Anpassungsfähig -link: /adaptability ---- - -Wir verfolgen pragmatische Ansätze und gehen manchmal auch unkonventionelle Wege. diff --git a/content/data/sections/values/adaptability.en.md b/content/data/sections/values/adaptability.en.md deleted file mode 100644 index 33aaa49c..00000000 --- a/content/data/sections/values/adaptability.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Adaptability -link: /adaptability ---- - -We take pragmatic approaches and sometimes go unconventional. diff --git a/content/data/sections/values/companionship.de.md b/content/data/sections/values/companionship.de.md deleted file mode 100644 index c2d58cfb..00000000 --- a/content/data/sections/values/companionship.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Kameradschaftlich -link: /companionship ---- - -Wir gehen Abenteuer kameradschaftlich an. diff --git a/content/data/sections/values/companionship.en.md b/content/data/sections/values/companionship.en.md deleted file mode 100644 index c723a2f7..00000000 --- a/content/data/sections/values/companionship.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Companionship -link: /companionship ---- - -We approach projects like friends. diff --git a/content/data/sections/values/sustainability.de.md b/content/data/sections/values/sustainability.de.md deleted file mode 100644 index 2ba5ce49..00000000 --- a/content/data/sections/values/sustainability.de.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Nachhaltig -link: /sustainability ---- - -Wir suchen in der Zusammenarbeit und in Projekten die Nachhaltigkeit. diff --git a/content/data/sections/values/sustainability.en.md b/content/data/sections/values/sustainability.en.md deleted file mode 100644 index f70ff71d..00000000 --- a/content/data/sections/values/sustainability.en.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Sustainability -link: /sustainability ---- - -We look for sustainability in cooperation and projects. diff --git a/content/i18n/de-CH.json b/content/i18n/de-CH.json deleted file mode 100644 index cbac3e9e..00000000 --- a/content/i18n/de-CH.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "action.learnMore": "Mehr erfahren", - "action.next": "Nächste", - "action.previous": "Vorherige", - "language": "Deutsch", - "menu.backToTheFuture": "Die Vergangenheit können wir nicht ändern, aber die Zukunft.", - "menu.collaboration": "Zusammenarbeit", - "menu.data-protection": "Datenschutz", - "menu.formation": "Entstehung", - "menu.future": "Zukunft", - "menu.imprint": "Impressum", - "menu.participation": "Mitarbeit", - "menu.past": "Vergangenheit", - "menu.present": "Gegenwart", - "menu.references": "Referenzen", - "menu.services": "Dienstleistungen", - "menu.strengths": "Stärken", - "menu.team": "Team", - "menu.toTheFuture": "In die Zukunft", - "menu.toThePast": "In die Vergangenheit", - "menu.toThePresent": "In die Gegenwart", - "menu.togetherAhead": "Trete in Kontakt, um gemeinsam die Zukunft zu gestalten.", - "menu.values": "Werte", - "page.404.html.meta.description": "Leider wurde die gesuchte Seite nicht gefunden.", - "page.404.html.meta.title": "Seite nicht gefunden", - "page.404.meta.description": "Leider wurde die gesuchte Seite nicht gefunden.", - "page.404.meta.title": "Seite nicht gefunden", - "page.future.collaboration.meta.description": "Ein spannendes Projekt, welches du mit uns besprechen möchtest?", - "page.future.collaboration.meta.title": "Zusammenarbeit", - "page.future.meta.description": "Über die Möglichkeit mit uns spannende Informatikprojekte oder Schulungen umzusetzen, kann hier mehr in Erfahrung gebracht werden.", - "page.future.meta.title": "Zukunft", - "page.future.participation.meta.description": "Bei uns gibt es keine normalen Jobs.", - "page.future.participation.meta.title": "Mitarbeit", - "page.future.services.meta.description": "Was wir tun, erfährst du hier.", - "page.future.services.meta.title": "Dienstleistungen", - "page.index.meta.description": "Gefährten für Abenteuer in der Welt von Bits und Bytes.", - "page.index.meta.title": "Companions for your next software project?", - "page.not-found.action": "Zur Startseite", - "page.not-found.content": "Leider konnte die angeforderte Seite nicht gefunden werden.", - "page.not-found.meta.title": "Seite nicht gefunden", - "page.past.formation.meta.description": "Unser Werdegang ist auf dieser Seite beschreiben.", - "page.past.formation.meta.title": "Entstehung und Ereignisse", - "page.past.meta.description": "Erfahre mehr über unsere Entstehungsgeschichte und umgesetzten Projekte.", - "page.past.meta.title": "Unsere Vergangenheit", - "page.past.references.meta.description": "Erfahre mehr mit zu den Projekten, welche wir auf die Beine gestellt haben oder noch daran arbeiten.", - "page.past.references.meta.title": "Referenzen", - "page.present.meta.description": "Erfahre mehr darüber wer wir sind und was wir tun.", - "page.present.meta.title": "Was wir gegenwärtig tun", - "page.present.strengths.meta.description": "Die Stärken und Fähigkeiten, welche uns aus machen.", - "page.present.strengths.meta.title": "Stärken", - "page.present.team.meta.description": "Alles darüber, wer wir sind.", - "page.present.team.meta.title": "Team", - "page.present.team.section.impressions": "Impressionen", - "page.present.team.section.portraits": "Porträts", - "page.present.values.meta.description": "Wir orientieren uns nach wenigen fixen Werten, welche hier beschrieben sind.", - "page.present.values.meta.title": "Mehr über unsere Werte", - "site.meta.title": "openscript GmbH" -} diff --git a/content/i18n/en-US.json b/content/i18n/en-US.json deleted file mode 100644 index d1d3ad50..00000000 --- a/content/i18n/en-US.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "action.learnMore": "Learn more", - "action.next": "Next", - "action.previous": "Previous", - "language": "English", - "menu.backToTheFuture": "We cannot change the history, but we can change the future.", - "menu.collaboration": "Collaboration", - "menu.data-protection": "Data protection", - "menu.formation": "Formation", - "menu.future": "Future", - "menu.imprint": "Imprint", - "menu.participation": "Participation", - "menu.past": "Past", - "menu.present": "Present", - "menu.references": "References", - "menu.services": "Services", - "menu.strengths": "Strengths", - "menu.team": "Team", - "menu.toTheFuture": "To the future", - "menu.toThePast": "To the past", - "menu.toThePresent": "To the present", - "menu.togetherAhead": "Get in touch, to shape the future together.", - "menu.values": "Values", - "page.404.html.meta.description": "Unfortunately, the page you were looking for was not found.", - "page.404.html.meta.title": "Page not found", - "page.404.meta.description": "Unfortunately, the page you were looking for was not found.", - "page.404.meta.title": "Page not found", - "page.future.collaboration.meta.description": "An exciting project that you would like to discuss with us?", - "page.future.collaboration.meta.title": "Collaboration", - "page.future.meta.description": "Here you can find out more about the possibility of implementing exciting IT projects or training courses with us.", - "page.future.meta.title": "future", - "page.future.participation.meta.description": "We don't have normal jobs.", - "page.future.participation.meta.title": "Participation", - "page.future.services.meta.description": "You can find out what we do here.", - "page.future.services.meta.title": "Services", - "page.index.meta.description": "Companions for adventures in the world of bits and bytes.", - "page.index.meta.title": "Home", - "page.not-found.action": "To the home page", - "page.not-found.content": "Unfortunately the requested page couldn't be found.", - "page.not-found.meta.title": "Page not found", - "page.past.formation.meta.description": "Our career is described on this page.", - "page.past.formation.meta.title": "Genesis and events", - "page.past.meta.description": "Find out more about our history and implemented projects.", - "page.past.meta.title": "Our past", - "page.past.references.meta.description": "Find out more about the projects we have set up or are still working on.", - "page.past.references.meta.title": "References", - "page.present.meta.description": "Find out more about who we are and what we do.", - "page.present.meta.title": "What we are currently doing", - "page.present.strengths.meta.description": "The strengths and skills that make us special.", - "page.present.strengths.meta.title": "Strengths", - "page.present.team.meta.description": "Everything about who we are.", - "page.present.team.meta.title": "Team", - "page.present.team.section.impressions": "Impressions", - "page.present.team.section.portraits": "Portraits", - "page.present.values.meta.description": "We are guided by a few fixed values, which are described here.", - "page.present.values.meta.title": "More about our values", - "site.meta.title": "openscript Ltd." -} diff --git a/content/images/consulting.svg b/content/images/consulting.svg deleted file mode 100644 index b1c9db36..00000000 --- a/content/images/consulting.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/education.svg b/content/images/education.svg deleted file mode 100644 index 44f0ff46..00000000 --- a/content/images/education.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-css.svg b/content/images/logo-css.svg deleted file mode 100644 index e98b09ba..00000000 --- a/content/images/logo-css.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-docker.svg b/content/images/logo-docker.svg deleted file mode 100644 index 083ea146..00000000 --- a/content/images/logo-docker.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/content/images/logo-gatsby.svg b/content/images/logo-gatsby.svg deleted file mode 100644 index 550cd407..00000000 --- a/content/images/logo-gatsby.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-gitea.svg b/content/images/logo-gitea.svg deleted file mode 100644 index 841efa78..00000000 --- a/content/images/logo-gitea.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-graphql.svg b/content/images/logo-graphql.svg deleted file mode 100644 index 779f61da..00000000 --- a/content/images/logo-graphql.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/content/images/logo-html.svg b/content/images/logo-html.svg deleted file mode 100644 index c5e01554..00000000 --- a/content/images/logo-html.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-k0s.svg b/content/images/logo-k0s.svg deleted file mode 100644 index 509d59bf..00000000 --- a/content/images/logo-k0s.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/content/images/logo-nestjs.svg b/content/images/logo-nestjs.svg deleted file mode 100644 index 74d86948..00000000 --- a/content/images/logo-nestjs.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/content/images/logo-postgres.svg b/content/images/logo-postgres.svg deleted file mode 100644 index b78dd2ff..00000000 --- a/content/images/logo-postgres.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/content/images/logo-rails.svg b/content/images/logo-rails.svg deleted file mode 100644 index 1a3dacea..00000000 --- a/content/images/logo-rails.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/content/images/logo-react.svg b/content/images/logo-react.svg deleted file mode 100644 index f0de40ba..00000000 --- a/content/images/logo-react.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/content/images/logo-ruby.svg b/content/images/logo-ruby.svg deleted file mode 100644 index 7cf7ed43..00000000 --- a/content/images/logo-ruby.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/logo-supabase.svg b/content/images/logo-supabase.svg deleted file mode 100644 index f863d55b..00000000 --- a/content/images/logo-supabase.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/content/images/logo-ts.svg b/content/images/logo-ts.svg deleted file mode 100644 index db75a1a8..00000000 --- a/content/images/logo-ts.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/content/images/logo-vscode.svg b/content/images/logo-vscode.svg deleted file mode 100644 index cb9eef45..00000000 --- a/content/images/logo-vscode.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/content/images/single-color-divider.svg b/content/images/single-color-divider.svg deleted file mode 100644 index 94957f53..00000000 --- a/content/images/single-color-divider.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/content/images/software-development.svg b/content/images/software-development.svg deleted file mode 100644 index d30317c2..00000000 --- a/content/images/software-development.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/content/images/sprite.json b/content/images/sprite.json deleted file mode 100644 index bc336eb3..00000000 --- a/content/images/sprite.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "arrow": { - "width": "9.387", - "height": "10" - }, - "brand": { - "width": "52.089", - "height": "35.334" - }, - "consulting": { - "width": "711", - "height": "655" - }, - "cooperation": { - "width": "279.47", - "height": "271.35" - }, - "education": { - "width": "788", - "height": "640" - }, - "github": { - "width": "66.234", - "height": "64.4" - }, - "illustration": { - "width": "2000", - "height": "668.01" - }, - "linkedin": { - "width": "63.928", - "height": "63.848" - }, - "logo-css": { - "width": "1753.6", - "height": "2000" - }, - "logo-docker": { - "width": "335", - "height": "233" - }, - "logo-gatsby": { - "width": "20", - "height": "20" - }, - "logo-gitea": { - "width": "65", - "height": "40" - }, - "logo-graphql": { - "width": "89", - "height": "99" - }, - "logo-html": { - "width": "865", - "height": "981" - }, - "logo-k0s": { - "width": "480", - "height": "482" - }, - "logo-nestjs": { - "width": "256", - "height": "255" - }, - "logo-postgres": { - "width": "488", - "height": "506" - }, - "logo-rails": { - "width": "924", - "height": "325" - }, - "logo-react": { - "width": "23", - "height": "21" - }, - "logo-ruby": { - "width": "752", - "height": "746" - }, - "logo-supabase": { - "width": "126", - "height": "130" - }, - "logo-ts": { - "width": "512", - "height": "512" - }, - "logo-vscode": { - "width": "21", - "height": "20" - }, - "single-color-divider": { - "width": "1600", - "height": "40" - }, - "software-development": { - "width": "128", - "height": "67" - }, - "two-color-divider": { - "width": "1600", - "height": "46" - } -} diff --git a/content/images/two-color-divider.svg b/content/images/two-color-divider.svg deleted file mode 100644 index 02e4db32..00000000 --- a/content/images/two-color-divider.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/eslint.config.ts b/eslint.config.ts new file mode 100644 index 00000000..2e38e85f --- /dev/null +++ b/eslint.config.ts @@ -0,0 +1,66 @@ +import js from "@eslint/js"; +import typescriptParser from "@typescript-eslint/parser"; +import astroEslintParser from "astro-eslint-parser"; +import eslintPluginAstro from "eslint-plugin-astro"; +import globals from "globals"; +import tseslint from "typescript-eslint"; +import prettier from "eslint-config-prettier"; +import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; + +export default [ + js.configs.recommended, + ...eslintPluginAstro.configs["flat/recommended"], + ...tseslint.configs.recommended, + eslintPluginPrettierRecommended, + prettier, + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + }, + { + files: ["**/*.astro"], + languageOptions: { + parser: astroEslintParser, + parserOptions: { + parser: tseslint.parser, + extraFileExtensions: [".astro"], + }, + }, + }, + { + files: ["**/*.{js,jsx,astro}"], + rules: { + "no-mixed-spaces-and-tabs": ["error", "smart-tabs"], + }, + }, + { + files: ["**/*.{ts,tsx}", "**/*.astro/*.js"], + languageOptions: { + parser: typescriptParser, + }, + rules: { + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + }, + ], + "@typescript-eslint/no-non-null-assertion": "off", + }, + }, + { + files: ["**/*.astro/*.ts"], + rules: { + "prettier/prettier": "off", + }, + }, + { + ignores: ["dist", "node_modules", ".github", "types.generated.d.ts", ".astro"], + }, +]; diff --git a/gatsby-browser.ts b/gatsby-browser.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/gatsby-config.ts b/gatsby-config.ts deleted file mode 100644 index 7100675b..00000000 --- a/gatsby-config.ts +++ /dev/null @@ -1,143 +0,0 @@ -import path from 'path'; -import { GatsbyConfig } from 'gatsby'; -import deCHMessages from './content/i18n/de-CH.json'; -import enUSMessages from './content/i18n/en-US.json'; -import packageJson from './package.json'; - -require('dotenv').config({ - path: `.env.${process.env.NODE_ENV}`, -}); - -const siteUrl = process.env.SITE_URL || `https://example.com`; - -const remarkPlugins = [ - 'gatsby-remark-copy-linked-files', - { - resolve: 'gatsby-remark-images', - options: { - maxWidth: 1140, - quality: 90, - linkImagesToOriginal: false, - }, - }, - 'gatsby-remark-autolink-headers', -]; - -const configuration: GatsbyConfig = { - pathPrefix: process.env.PATH_PREFIX || '/', - flags: { - // DEV_SSR: true, // enables server side rendering in development - }, - siteMetadata: { - title: `openscript GmbH`, - description: `Companions for adventures in the world of bits and bytes.`, - author: `openscript GmbH`, - phone: `+41 44 520 54 67`, - email: `hi@openscript.ch`, - address: ``, - siteUrl, - version: packageJson.version, - project: packageJson.name, - }, - graphqlTypegen: { - typesOutputPath: 'graphql-types.ts', - documentSearchPaths: [`./gatsby-node.ts`, `./plugins/**/gatsby-node.ts`, `./src/**/*.ts?(x)`], - generateOnBuild: true, - }, - plugins: [ - // Sources - { - resolve: `gatsby-source-filesystem`, - options: { - name: `data`, - path: path.resolve(`content/data`), - }, - }, - - // Transformers - `gatsby-transformer-sharp`, - - // Plugins - `gatsby-plugin-image`, - `gatsby-plugin-catch-links`, - { - resolve: 'gatsby-plugin-mdx', - options: { - extensions: [`.mdx`], - gatsbyRemarkPlugins: remarkPlugins, - }, - }, - { - resolve: 'gatsby-transformer-remark', - options: { - plugins: remarkPlugins, - }, - }, - { - resolve: `gatsby-plugin-emotion`, - options: { - // Accepts the following options, all of which are defined by `@emotion/babel-plugin` plugin. - // The values for each key in this example are the defaults the plugin uses. - sourceMap: true, - autoLabel: 'dev-only', - labelFormat: `[local]`, - cssPropOptimization: true, - }, - }, - `gatsby-plugin-sharp`, - { - resolve: `gatsby-plugin-manifest`, - options: { - name: `gatsby-starter-default`, - short_name: `starter`, - start_url: `/`, - background_color: `#663399`, - theme_color: `#663399`, - display: `minimal-ui`, - icon: `content/images/icon.png`, // This path is relative to the root of the site. - }, - }, - // this (optional) plugin enables Progressive Web App + Offline functionality - // To learn more, visit: https://gatsby.dev/offline - // `gatsby-plugin-offline`, - - { - resolve: `gatsby-plugin-i18n-l10n`, - options: { - defaultLocale: `de-CH`, - siteUrl, - locales: [ - { - locale: `en-US`, - prefix: `en`, - slugs: {}, - messages: enUSMessages, - }, - { - locale: `de-CH`, - prefix: `de`, - slugs: { - '/past': '/vergangenheit', - '/past/formation': '/vergangenheit/entstehung', - '/past/references': '/vergangenheit/referenzen', - '/present': '/gegenwart', - '/present/strengths': '/gegenwart/staerken', - '/present/values': '/gegenwart/werte', - '/present/team': '/gegenwart/team', - '/future': '/zukunft', - '/future/services': '/zukunft/dienstleistungen', - '/future/collaboration': '/zukunft/zusammenarbeit', - '/future/participation': '/zukunft/mitarbeit', - '/imprint': '/impressum', - '/data-protection': '/datenschutz', - }, - messages: deCHMessages, - }, - ], - pathBlacklist: ['/pages'], - }, - }, - ], -}; - -export default configuration; diff --git a/gatsby-node.ts b/gatsby-node.ts deleted file mode 100644 index f4d40637..00000000 --- a/gatsby-node.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { GatsbyNode } from 'gatsby'; -import { CreateGenericPages } from './src/gatsby/createPages/createGenericPages'; -import { customizeSitePageContext } from './src/gatsby/createSchemaCustomization/customizeSitePageContext'; -import { generatePageMetaData } from './src/gatsby/onCreatePage/generatePageMetaData'; - -export const createPages: GatsbyNode['createPages'] = async args => { - await CreateGenericPages(args); -}; - -export const createSchemaCustomization: GatsbyNode['createSchemaCustomization'] = async args => { - customizeSitePageContext(args); -}; - -export const onCreatePage: GatsbyNode, Queries.SitePageContext>['onCreatePage'] = async args => { - await generatePageMetaData(args); -}; diff --git a/gatsby-ssr.ts b/gatsby-ssr.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/graphql-types.ts b/graphql-types.ts deleted file mode 100644 index f96a8a71..00000000 --- a/graphql-types.ts +++ /dev/null @@ -1,3347 +0,0 @@ -/* eslint-disable */ - -/* prettier-ignore */ - -/* THIS FILE IS AUTOGENERATED. CHANGES WILL BE LOST ON SUBSEQUENT RUNS. */ - -declare namespace Queries { - -type Maybe = T | null; -type InputMaybe = T | null; -type Exact = { [K in keyof T]: T[K] }; -type MakeOptional = Omit & { [SubKey in K]?: Maybe }; -type MakeMaybe = Omit & { [SubKey in K]: Maybe }; -/** All built-in and custom scalars, mapped to their actual values */ -type Scalars = { - /** The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. */ - ID: string; - /** The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. */ - String: string; - /** The `Boolean` scalar type represents `true` or `false`. */ - Boolean: boolean; - /** The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. */ - Int: number; - /** The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). */ - Float: number; - /** A date string, such as 2007-12-03, compliant with the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */ - Date: string; - GatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData; - /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */ - JSON: Record; -}; - -type AVIFOptions = { - readonly lossless: InputMaybe; - readonly quality: InputMaybe; - readonly speed: InputMaybe; -}; - -type BlurredOptions = { - /** Force the output format for the low-res preview. Default is to use the same format as the input. You should rarely need to change this */ - readonly toFormat: InputMaybe; - /** Width of the generated low-res preview. Default is 20px */ - readonly width: InputMaybe; -}; - -type BooleanQueryOperatorInput = { - readonly eq: InputMaybe; - readonly in: InputMaybe>>; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; -}; - -type DateQueryOperatorInput = { - readonly eq: InputMaybe; - readonly gt: InputMaybe; - readonly gte: InputMaybe; - readonly in: InputMaybe>>; - readonly lt: InputMaybe; - readonly lte: InputMaybe; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; -}; - -type Directory = Node & { - readonly absolutePath: Scalars['String']; - readonly accessTime: Scalars['Date']; - readonly atime: Scalars['Date']; - readonly atimeMs: Scalars['Float']; - readonly base: Scalars['String']; - readonly birthTime: Scalars['Date']; - /** @deprecated Use `birthTime` instead */ - readonly birthtime: Maybe; - /** @deprecated Use `birthTime` instead */ - readonly birthtimeMs: Maybe; - readonly changeTime: Scalars['Date']; - readonly children: ReadonlyArray; - readonly ctime: Scalars['Date']; - readonly ctimeMs: Scalars['Float']; - readonly dev: Scalars['Int']; - readonly dir: Scalars['String']; - readonly ext: Scalars['String']; - readonly extension: Scalars['String']; - readonly gid: Scalars['Int']; - readonly id: Scalars['ID']; - readonly ino: Scalars['Float']; - readonly internal: Internal; - readonly mode: Scalars['Int']; - readonly modifiedTime: Scalars['Date']; - readonly mtime: Scalars['Date']; - readonly mtimeMs: Scalars['Float']; - readonly name: Scalars['String']; - readonly nlink: Scalars['Int']; - readonly parent: Maybe; - readonly prettySize: Scalars['String']; - readonly rdev: Scalars['Int']; - readonly relativeDirectory: Scalars['String']; - readonly relativePath: Scalars['String']; - readonly root: Scalars['String']; - readonly size: Scalars['Int']; - readonly sourceInstanceName: Scalars['String']; - readonly uid: Scalars['Int']; -}; - - -type Directory_accessTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_atimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_birthTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_changeTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_ctimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_modifiedTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type Directory_mtimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - -type DirectoryConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type DirectoryConnection_distinctArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryConnection_groupArgs = { - field: DirectoryFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type DirectoryConnection_maxArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryConnection_minArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryConnection_sumArgs = { - field: DirectoryFieldSelector; -}; - -type DirectoryEdge = { - readonly next: Maybe; - readonly node: Directory; - readonly previous: Maybe; -}; - -type DirectoryFieldSelector = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly changeTime: InputMaybe; - readonly children: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type DirectoryFilterInput = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly changeTime: InputMaybe; - readonly children: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type DirectoryGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type DirectoryGroupConnection_distinctArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryGroupConnection_groupArgs = { - field: DirectoryFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type DirectoryGroupConnection_maxArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryGroupConnection_minArgs = { - field: DirectoryFieldSelector; -}; - - -type DirectoryGroupConnection_sumArgs = { - field: DirectoryFieldSelector; -}; - -type DirectorySortInput = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly changeTime: InputMaybe; - readonly children: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type DuotoneGradient = { - readonly highlight: Scalars['String']; - readonly opacity: InputMaybe; - readonly shadow: Scalars['String']; -}; - -type FieldSelectorEnum = - | 'SELECT'; - -type File = Node & { - readonly absolutePath: Scalars['String']; - readonly accessTime: Scalars['Date']; - readonly atime: Scalars['Date']; - readonly atimeMs: Scalars['Float']; - readonly base: Scalars['String']; - readonly birthTime: Scalars['Date']; - /** @deprecated Use `birthTime` instead */ - readonly birthtime: Maybe; - /** @deprecated Use `birthTime` instead */ - readonly birthtimeMs: Maybe; - readonly blksize: Maybe; - readonly blocks: Maybe; - readonly changeTime: Scalars['Date']; - /** Returns the first child node of type ImageSharp or null if there are no children of given type on this node */ - readonly childImageSharp: Maybe; - /** Returns the first child node of type MarkdownRemark or null if there are no children of given type on this node */ - readonly childMarkdownRemark: Maybe; - /** Returns the first child node of type Mdx or null if there are no children of given type on this node */ - readonly childMdx: Maybe; - readonly children: ReadonlyArray; - /** Returns all children nodes filtered by type ImageSharp */ - readonly childrenImageSharp: Maybe>>; - /** Returns all children nodes filtered by type MarkdownRemark */ - readonly childrenMarkdownRemark: Maybe>>; - /** Returns all children nodes filtered by type Mdx */ - readonly childrenMdx: Maybe>>; - readonly ctime: Scalars['Date']; - readonly ctimeMs: Scalars['Float']; - readonly dev: Scalars['Int']; - readonly dir: Scalars['String']; - readonly ext: Scalars['String']; - readonly extension: Scalars['String']; - readonly gid: Scalars['Int']; - readonly id: Scalars['ID']; - readonly ino: Scalars['Float']; - readonly internal: Internal; - readonly mode: Scalars['Int']; - readonly modifiedTime: Scalars['Date']; - readonly mtime: Scalars['Date']; - readonly mtimeMs: Scalars['Float']; - readonly name: Scalars['String']; - readonly nlink: Scalars['Int']; - readonly parent: Maybe; - readonly prettySize: Scalars['String']; - /** Copy file to static directory and return public url to it */ - readonly publicURL: Maybe; - readonly rdev: Scalars['Int']; - readonly relativeDirectory: Scalars['String']; - readonly relativePath: Scalars['String']; - readonly root: Scalars['String']; - readonly size: Scalars['Int']; - readonly sourceInstanceName: Scalars['String']; - readonly uid: Scalars['Int']; -}; - - -type File_accessTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_atimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_birthTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_changeTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_ctimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_modifiedTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - - -type File_mtimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - -type FileConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type FileConnection_distinctArgs = { - field: FileFieldSelector; -}; - - -type FileConnection_groupArgs = { - field: FileFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type FileConnection_maxArgs = { - field: FileFieldSelector; -}; - - -type FileConnection_minArgs = { - field: FileFieldSelector; -}; - - -type FileConnection_sumArgs = { - field: FileFieldSelector; -}; - -type FileEdge = { - readonly next: Maybe; - readonly node: File; - readonly previous: Maybe; -}; - -type FileFieldSelector = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly blksize: InputMaybe; - readonly blocks: InputMaybe; - readonly changeTime: InputMaybe; - readonly childImageSharp: InputMaybe; - readonly childMarkdownRemark: InputMaybe; - readonly childMdx: InputMaybe; - readonly children: InputMaybe; - readonly childrenImageSharp: InputMaybe; - readonly childrenMarkdownRemark: InputMaybe; - readonly childrenMdx: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly publicURL: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type FileFilterInput = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly blksize: InputMaybe; - readonly blocks: InputMaybe; - readonly changeTime: InputMaybe; - readonly childImageSharp: InputMaybe; - readonly childMarkdownRemark: InputMaybe; - readonly childMdx: InputMaybe; - readonly children: InputMaybe; - readonly childrenImageSharp: InputMaybe; - readonly childrenMarkdownRemark: InputMaybe; - readonly childrenMdx: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly publicURL: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type FileFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type FileGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type FileGroupConnection_distinctArgs = { - field: FileFieldSelector; -}; - - -type FileGroupConnection_groupArgs = { - field: FileFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type FileGroupConnection_maxArgs = { - field: FileFieldSelector; -}; - - -type FileGroupConnection_minArgs = { - field: FileFieldSelector; -}; - - -type FileGroupConnection_sumArgs = { - field: FileFieldSelector; -}; - -type FileSortInput = { - readonly absolutePath: InputMaybe; - readonly accessTime: InputMaybe; - readonly atime: InputMaybe; - readonly atimeMs: InputMaybe; - readonly base: InputMaybe; - readonly birthTime: InputMaybe; - readonly birthtime: InputMaybe; - readonly birthtimeMs: InputMaybe; - readonly blksize: InputMaybe; - readonly blocks: InputMaybe; - readonly changeTime: InputMaybe; - readonly childImageSharp: InputMaybe; - readonly childMarkdownRemark: InputMaybe; - readonly childMdx: InputMaybe; - readonly children: InputMaybe; - readonly childrenImageSharp: InputMaybe; - readonly childrenMarkdownRemark: InputMaybe; - readonly childrenMdx: InputMaybe; - readonly ctime: InputMaybe; - readonly ctimeMs: InputMaybe; - readonly dev: InputMaybe; - readonly dir: InputMaybe; - readonly ext: InputMaybe; - readonly extension: InputMaybe; - readonly gid: InputMaybe; - readonly id: InputMaybe; - readonly ino: InputMaybe; - readonly internal: InputMaybe; - readonly mode: InputMaybe; - readonly modifiedTime: InputMaybe; - readonly mtime: InputMaybe; - readonly mtimeMs: InputMaybe; - readonly name: InputMaybe; - readonly nlink: InputMaybe; - readonly parent: InputMaybe; - readonly prettySize: InputMaybe; - readonly publicURL: InputMaybe; - readonly rdev: InputMaybe; - readonly relativeDirectory: InputMaybe; - readonly relativePath: InputMaybe; - readonly root: InputMaybe; - readonly size: InputMaybe; - readonly sourceInstanceName: InputMaybe; - readonly uid: InputMaybe; -}; - -type FloatQueryOperatorInput = { - readonly eq: InputMaybe; - readonly gt: InputMaybe; - readonly gte: InputMaybe; - readonly in: InputMaybe>>; - readonly lt: InputMaybe; - readonly lte: InputMaybe; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; -}; - -type GatsbyImageDataQueryOperatorInput = { - readonly eq: InputMaybe; - readonly in: InputMaybe>>; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; -}; - -type GatsbyImageFormat = - | 'auto' - | 'avif' - | 'jpg' - | '' - | 'png' - | 'webp'; - -type GatsbyImageLayout = - | 'constrained' - | 'fixed' - | 'fullWidth'; - -type GatsbyImagePlaceholder = - | 'blurred' - | 'dominantColor' - | 'none' - | 'tracedSVG'; - -type ImageCropFocus = - | 17 - | 0 - | 2 - | 16 - | 1 - | 5 - | 8 - | 3 - | 6 - | 7 - | 4; - -type ImageFit = - | 'contain' - | 'cover' - | 'fill' - | 'inside' - | 'outside'; - -type ImageFormat = - | '' - | 'avif' - | 'jpg' - | '' - | 'png' - | 'webp'; - -type ImageLayout = - | 'constrained' - | 'fixed' - | 'fullWidth'; - -type ImagePlaceholder = - | 'blurred' - | 'dominantColor' - | 'none' - | 'tracedSVG'; - -type ImageSharp = Node & { - readonly children: ReadonlyArray; - readonly fixed: Maybe; - readonly fluid: Maybe; - readonly gatsbyImageData: Scalars['GatsbyImageData']; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly original: Maybe; - readonly parent: Maybe; - readonly resize: Maybe; -}; - - -type ImageSharp_fixedArgs = { - background?: InputMaybe; - base64Width: InputMaybe; - cropFocus?: InputMaybe; - duotone: InputMaybe; - fit?: InputMaybe; - grayscale?: InputMaybe; - height: InputMaybe; - jpegProgressive?: InputMaybe; - jpegQuality: InputMaybe; - pngCompressionSpeed?: InputMaybe; - pngQuality: InputMaybe; - quality: InputMaybe; - rotate?: InputMaybe; - toFormat?: InputMaybe; - toFormatBase64?: InputMaybe; - traceSVG: InputMaybe; - trim?: InputMaybe; - webpQuality: InputMaybe; - width: InputMaybe; -}; - - -type ImageSharp_fluidArgs = { - background?: InputMaybe; - base64Width: InputMaybe; - cropFocus?: InputMaybe; - duotone: InputMaybe; - fit?: InputMaybe; - grayscale?: InputMaybe; - jpegProgressive?: InputMaybe; - jpegQuality: InputMaybe; - maxHeight: InputMaybe; - maxWidth: InputMaybe; - pngCompressionSpeed?: InputMaybe; - pngQuality: InputMaybe; - quality: InputMaybe; - rotate?: InputMaybe; - sizes?: InputMaybe; - srcSetBreakpoints?: InputMaybe>>; - toFormat?: InputMaybe; - toFormatBase64?: InputMaybe; - traceSVG: InputMaybe; - trim?: InputMaybe; - webpQuality: InputMaybe; -}; - - -type ImageSharp_gatsbyImageDataArgs = { - aspectRatio: InputMaybe; - avifOptions: InputMaybe; - backgroundColor: InputMaybe; - blurredOptions: InputMaybe; - breakpoints: InputMaybe>>; - formats: InputMaybe>>; - height: InputMaybe; - jpgOptions: InputMaybe; - layout?: InputMaybe; - outputPixelDensities: InputMaybe>>; - placeholder: InputMaybe; - pngOptions: InputMaybe; - quality: InputMaybe; - sizes: InputMaybe; - tracedSVGOptions: InputMaybe; - transformOptions: InputMaybe; - webpOptions: InputMaybe; - width: InputMaybe; -}; - - -type ImageSharp_resizeArgs = { - background?: InputMaybe; - base64?: InputMaybe; - cropFocus?: InputMaybe; - duotone: InputMaybe; - fit?: InputMaybe; - grayscale?: InputMaybe; - height: InputMaybe; - jpegProgressive?: InputMaybe; - jpegQuality: InputMaybe; - pngCompressionLevel?: InputMaybe; - pngCompressionSpeed?: InputMaybe; - pngQuality: InputMaybe; - quality: InputMaybe; - rotate?: InputMaybe; - toFormat?: InputMaybe; - traceSVG: InputMaybe; - trim?: InputMaybe; - webpQuality: InputMaybe; - width: InputMaybe; -}; - -type ImageSharpConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type ImageSharpConnection_distinctArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpConnection_groupArgs = { - field: ImageSharpFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type ImageSharpConnection_maxArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpConnection_minArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpConnection_sumArgs = { - field: ImageSharpFieldSelector; -}; - -type ImageSharpEdge = { - readonly next: Maybe; - readonly node: ImageSharp; - readonly previous: Maybe; -}; - -type ImageSharpFieldSelector = { - readonly children: InputMaybe; - readonly fixed: InputMaybe; - readonly fluid: InputMaybe; - readonly gatsbyImageData: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly original: InputMaybe; - readonly parent: InputMaybe; - readonly resize: InputMaybe; -}; - -type ImageSharpFilterInput = { - readonly children: InputMaybe; - readonly fixed: InputMaybe; - readonly fluid: InputMaybe; - readonly gatsbyImageData: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly original: InputMaybe; - readonly parent: InputMaybe; - readonly resize: InputMaybe; -}; - -type ImageSharpFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type ImageSharpFixed = { - readonly aspectRatio: Maybe; - readonly base64: Maybe; - readonly height: Scalars['Float']; - readonly originalName: Maybe; - readonly src: Scalars['String']; - readonly srcSet: Scalars['String']; - readonly srcSetWebp: Maybe; - readonly srcWebp: Maybe; - readonly tracedSVG: Maybe; - readonly width: Scalars['Float']; -}; - -type ImageSharpFixedFieldSelector = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpFixedFilterInput = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpFixedSortInput = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpFluid = { - readonly aspectRatio: Scalars['Float']; - readonly base64: Maybe; - readonly originalImg: Maybe; - readonly originalName: Maybe; - readonly presentationHeight: Scalars['Int']; - readonly presentationWidth: Scalars['Int']; - readonly sizes: Scalars['String']; - readonly src: Scalars['String']; - readonly srcSet: Scalars['String']; - readonly srcSetWebp: Maybe; - readonly srcWebp: Maybe; - readonly tracedSVG: Maybe; -}; - -type ImageSharpFluidFieldSelector = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly originalImg: InputMaybe; - readonly originalName: InputMaybe; - readonly presentationHeight: InputMaybe; - readonly presentationWidth: InputMaybe; - readonly sizes: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; -}; - -type ImageSharpFluidFilterInput = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly originalImg: InputMaybe; - readonly originalName: InputMaybe; - readonly presentationHeight: InputMaybe; - readonly presentationWidth: InputMaybe; - readonly sizes: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; -}; - -type ImageSharpFluidSortInput = { - readonly aspectRatio: InputMaybe; - readonly base64: InputMaybe; - readonly originalImg: InputMaybe; - readonly originalName: InputMaybe; - readonly presentationHeight: InputMaybe; - readonly presentationWidth: InputMaybe; - readonly sizes: InputMaybe; - readonly src: InputMaybe; - readonly srcSet: InputMaybe; - readonly srcSetWebp: InputMaybe; - readonly srcWebp: InputMaybe; - readonly tracedSVG: InputMaybe; -}; - -type ImageSharpGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type ImageSharpGroupConnection_distinctArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpGroupConnection_groupArgs = { - field: ImageSharpFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type ImageSharpGroupConnection_maxArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpGroupConnection_minArgs = { - field: ImageSharpFieldSelector; -}; - - -type ImageSharpGroupConnection_sumArgs = { - field: ImageSharpFieldSelector; -}; - -type ImageSharpOriginal = { - readonly height: Maybe; - readonly src: Maybe; - readonly width: Maybe; -}; - -type ImageSharpOriginalFieldSelector = { - readonly height: InputMaybe; - readonly src: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpOriginalFilterInput = { - readonly height: InputMaybe; - readonly src: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpOriginalSortInput = { - readonly height: InputMaybe; - readonly src: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpResize = { - readonly aspectRatio: Maybe; - readonly height: Maybe; - readonly originalName: Maybe; - readonly src: Maybe; - readonly tracedSVG: Maybe; - readonly width: Maybe; -}; - -type ImageSharpResizeFieldSelector = { - readonly aspectRatio: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpResizeFilterInput = { - readonly aspectRatio: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpResizeSortInput = { - readonly aspectRatio: InputMaybe; - readonly height: InputMaybe; - readonly originalName: InputMaybe; - readonly src: InputMaybe; - readonly tracedSVG: InputMaybe; - readonly width: InputMaybe; -}; - -type ImageSharpSortInput = { - readonly children: InputMaybe; - readonly fixed: InputMaybe; - readonly fluid: InputMaybe; - readonly gatsbyImageData: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly original: InputMaybe; - readonly parent: InputMaybe; - readonly resize: InputMaybe; -}; - -type IntQueryOperatorInput = { - readonly eq: InputMaybe; - readonly gt: InputMaybe; - readonly gte: InputMaybe; - readonly in: InputMaybe>>; - readonly lt: InputMaybe; - readonly lte: InputMaybe; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; -}; - -type Internal = { - readonly content: Maybe; - readonly contentDigest: Scalars['String']; - readonly contentFilePath: Maybe; - readonly description: Maybe; - readonly fieldOwners: Maybe>>; - readonly ignoreType: Maybe; - readonly mediaType: Maybe; - readonly owner: Scalars['String']; - readonly type: Scalars['String']; -}; - -type InternalFieldSelector = { - readonly content: InputMaybe; - readonly contentDigest: InputMaybe; - readonly contentFilePath: InputMaybe; - readonly description: InputMaybe; - readonly fieldOwners: InputMaybe; - readonly ignoreType: InputMaybe; - readonly mediaType: InputMaybe; - readonly owner: InputMaybe; - readonly type: InputMaybe; -}; - -type InternalFilterInput = { - readonly content: InputMaybe; - readonly contentDigest: InputMaybe; - readonly contentFilePath: InputMaybe; - readonly description: InputMaybe; - readonly fieldOwners: InputMaybe; - readonly ignoreType: InputMaybe; - readonly mediaType: InputMaybe; - readonly owner: InputMaybe; - readonly type: InputMaybe; -}; - -type InternalSortInput = { - readonly content: InputMaybe; - readonly contentDigest: InputMaybe; - readonly contentFilePath: InputMaybe; - readonly description: InputMaybe; - readonly fieldOwners: InputMaybe; - readonly ignoreType: InputMaybe; - readonly mediaType: InputMaybe; - readonly owner: InputMaybe; - readonly type: InputMaybe; -}; - -type JPGOptions = { - readonly progressive: InputMaybe; - readonly quality: InputMaybe; -}; - -type JSONQueryOperatorInput = { - readonly eq: InputMaybe; - readonly glob: InputMaybe; - readonly in: InputMaybe>>; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; - readonly regex: InputMaybe; -}; - -type MarkdownExcerptFormats = - | 'HTML' - | 'MARKDOWN' - | 'PLAIN'; - -type MarkdownHeading = { - readonly depth: Maybe; - readonly id: Maybe; - readonly value: Maybe; -}; - -type MarkdownHeadingFieldSelector = { - readonly depth: InputMaybe; - readonly id: InputMaybe; - readonly value: InputMaybe; -}; - -type MarkdownHeadingFilterInput = { - readonly depth: InputMaybe; - readonly id: InputMaybe; - readonly value: InputMaybe; -}; - -type MarkdownHeadingFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type MarkdownHeadingLevels = - | 'h1' - | 'h2' - | 'h3' - | 'h4' - | 'h5' - | 'h6'; - -type MarkdownHeadingSortInput = { - readonly depth: InputMaybe; - readonly id: InputMaybe; - readonly value: InputMaybe; -}; - -type MarkdownRemark = Node & { - readonly children: ReadonlyArray; - readonly excerpt: Maybe; - readonly excerptAst: Maybe; - readonly fields: Maybe; - readonly fileAbsolutePath: Maybe; - readonly frontmatter: Maybe; - readonly headings: Maybe>>; - readonly html: Maybe; - readonly htmlAst: Maybe; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly parent: Maybe; - readonly rawMarkdownBody: Maybe; - readonly tableOfContents: Maybe; - readonly timeToRead: Maybe; - readonly wordCount: Maybe; -}; - - -type MarkdownRemark_excerptArgs = { - format?: InputMaybe; - pruneLength?: InputMaybe; - truncate?: InputMaybe; -}; - - -type MarkdownRemark_excerptAstArgs = { - pruneLength?: InputMaybe; - truncate?: InputMaybe; -}; - - -type MarkdownRemark_headingsArgs = { - depth: InputMaybe; -}; - - -type MarkdownRemark_tableOfContentsArgs = { - absolute?: InputMaybe; - heading: InputMaybe; - maxDepth: InputMaybe; - pathToSlugField?: InputMaybe; -}; - -type MarkdownRemarkConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type MarkdownRemarkConnection_distinctArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkConnection_groupArgs = { - field: MarkdownRemarkFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type MarkdownRemarkConnection_maxArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkConnection_minArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkConnection_sumArgs = { - field: MarkdownRemarkFieldSelector; -}; - -type MarkdownRemarkEdge = { - readonly next: Maybe; - readonly node: MarkdownRemark; - readonly previous: Maybe; -}; - -type MarkdownRemarkFieldSelector = { - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly excerptAst: InputMaybe; - readonly fields: InputMaybe; - readonly fileAbsolutePath: InputMaybe; - readonly frontmatter: InputMaybe; - readonly headings: InputMaybe; - readonly html: InputMaybe; - readonly htmlAst: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly rawMarkdownBody: InputMaybe; - readonly tableOfContents: InputMaybe; - readonly timeToRead: InputMaybe; - readonly wordCount: InputMaybe; -}; - -type MarkdownRemarkFields = { - readonly filename: Maybe; - readonly kind: Maybe; - readonly locale: Maybe; - readonly path: Maybe; - readonly pathPrefix: Maybe; - readonly slug: Maybe; - readonly translations: Maybe>>; -}; - -type MarkdownRemarkFieldsFieldSelector = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MarkdownRemarkFieldsFilterInput = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MarkdownRemarkFieldsSortInput = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MarkdownRemarkFieldsTranslations = { - readonly locale: Maybe; - readonly path: Maybe; -}; - -type MarkdownRemarkFieldsTranslationsFieldSelector = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MarkdownRemarkFieldsTranslationsFilterInput = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MarkdownRemarkFieldsTranslationsFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type MarkdownRemarkFieldsTranslationsSortInput = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MarkdownRemarkFilterInput = { - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly excerptAst: InputMaybe; - readonly fields: InputMaybe; - readonly fileAbsolutePath: InputMaybe; - readonly frontmatter: InputMaybe; - readonly headings: InputMaybe; - readonly html: InputMaybe; - readonly htmlAst: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly rawMarkdownBody: InputMaybe; - readonly tableOfContents: InputMaybe; - readonly timeToRead: InputMaybe; - readonly wordCount: InputMaybe; -}; - -type MarkdownRemarkFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type MarkdownRemarkFrontmatter = { - readonly answeredBy: Maybe; - readonly avatar: Maybe; - readonly date: Maybe; - readonly icon: Maybe; - readonly image: Maybe; - readonly link: Maybe; - readonly logo: Maybe; - readonly name: Maybe; - readonly order: Maybe; - readonly skills: Maybe>>; - readonly sprite: Maybe; - readonly title: Maybe; -}; - - -type MarkdownRemarkFrontmatter_dateArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - -type MarkdownRemarkFrontmatterFieldSelector = { - readonly answeredBy: InputMaybe; - readonly avatar: InputMaybe; - readonly date: InputMaybe; - readonly icon: InputMaybe; - readonly image: InputMaybe; - readonly link: InputMaybe; - readonly logo: InputMaybe; - readonly name: InputMaybe; - readonly order: InputMaybe; - readonly skills: InputMaybe; - readonly sprite: InputMaybe; - readonly title: InputMaybe; -}; - -type MarkdownRemarkFrontmatterFilterInput = { - readonly answeredBy: InputMaybe; - readonly avatar: InputMaybe; - readonly date: InputMaybe; - readonly icon: InputMaybe; - readonly image: InputMaybe; - readonly link: InputMaybe; - readonly logo: InputMaybe; - readonly name: InputMaybe; - readonly order: InputMaybe; - readonly skills: InputMaybe; - readonly sprite: InputMaybe; - readonly title: InputMaybe; -}; - -type MarkdownRemarkFrontmatterSortInput = { - readonly answeredBy: InputMaybe; - readonly avatar: InputMaybe; - readonly date: InputMaybe; - readonly icon: InputMaybe; - readonly image: InputMaybe; - readonly link: InputMaybe; - readonly logo: InputMaybe; - readonly name: InputMaybe; - readonly order: InputMaybe; - readonly skills: InputMaybe; - readonly sprite: InputMaybe; - readonly title: InputMaybe; -}; - -type MarkdownRemarkGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type MarkdownRemarkGroupConnection_distinctArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkGroupConnection_groupArgs = { - field: MarkdownRemarkFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type MarkdownRemarkGroupConnection_maxArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkGroupConnection_minArgs = { - field: MarkdownRemarkFieldSelector; -}; - - -type MarkdownRemarkGroupConnection_sumArgs = { - field: MarkdownRemarkFieldSelector; -}; - -type MarkdownRemarkSortInput = { - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly excerptAst: InputMaybe; - readonly fields: InputMaybe; - readonly fileAbsolutePath: InputMaybe; - readonly frontmatter: InputMaybe; - readonly headings: InputMaybe; - readonly html: InputMaybe; - readonly htmlAst: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly rawMarkdownBody: InputMaybe; - readonly tableOfContents: InputMaybe; - readonly timeToRead: InputMaybe; - readonly wordCount: InputMaybe; -}; - -type MarkdownWordCount = { - readonly paragraphs: Maybe; - readonly sentences: Maybe; - readonly words: Maybe; -}; - -type MarkdownWordCountFieldSelector = { - readonly paragraphs: InputMaybe; - readonly sentences: InputMaybe; - readonly words: InputMaybe; -}; - -type MarkdownWordCountFilterInput = { - readonly paragraphs: InputMaybe; - readonly sentences: InputMaybe; - readonly words: InputMaybe; -}; - -type MarkdownWordCountSortInput = { - readonly paragraphs: InputMaybe; - readonly sentences: InputMaybe; - readonly words: InputMaybe; -}; - -type Mdx = Node & { - readonly body: Maybe; - readonly children: ReadonlyArray; - readonly excerpt: Maybe; - readonly fields: Maybe; - readonly frontmatter: Maybe; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly parent: Maybe; - readonly tableOfContents: Maybe; -}; - - -type Mdx_excerptArgs = { - pruneLength?: InputMaybe; -}; - - -type Mdx_tableOfContentsArgs = { - maxDepth: InputMaybe; -}; - -type MdxConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type MdxConnection_distinctArgs = { - field: MdxFieldSelector; -}; - - -type MdxConnection_groupArgs = { - field: MdxFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type MdxConnection_maxArgs = { - field: MdxFieldSelector; -}; - - -type MdxConnection_minArgs = { - field: MdxFieldSelector; -}; - - -type MdxConnection_sumArgs = { - field: MdxFieldSelector; -}; - -type MdxEdge = { - readonly next: Maybe; - readonly node: Mdx; - readonly previous: Maybe; -}; - -type MdxFieldSelector = { - readonly body: InputMaybe; - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly fields: InputMaybe; - readonly frontmatter: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly tableOfContents: InputMaybe; -}; - -type MdxFields = { - readonly filename: Maybe; - readonly kind: Maybe; - readonly locale: Maybe; - readonly path: Maybe; - readonly pathPrefix: Maybe; - readonly slug: Maybe; - readonly translations: Maybe>>; -}; - -type MdxFieldsFieldSelector = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MdxFieldsFilterInput = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MdxFieldsSortInput = { - readonly filename: InputMaybe; - readonly kind: InputMaybe; - readonly locale: InputMaybe; - readonly path: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly slug: InputMaybe; - readonly translations: InputMaybe; -}; - -type MdxFieldsTranslations = { - readonly locale: Maybe; - readonly path: Maybe; -}; - -type MdxFieldsTranslationsFieldSelector = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MdxFieldsTranslationsFilterInput = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MdxFieldsTranslationsFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type MdxFieldsTranslationsSortInput = { - readonly locale: InputMaybe; - readonly path: InputMaybe; -}; - -type MdxFilterInput = { - readonly body: InputMaybe; - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly fields: InputMaybe; - readonly frontmatter: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly tableOfContents: InputMaybe; -}; - -type MdxFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type MdxFrontmatter = { - readonly description: Maybe; - readonly title: Maybe; - readonly type: Maybe; -}; - -type MdxFrontmatterFieldSelector = { - readonly description: InputMaybe; - readonly title: InputMaybe; - readonly type: InputMaybe; -}; - -type MdxFrontmatterFilterInput = { - readonly description: InputMaybe; - readonly title: InputMaybe; - readonly type: InputMaybe; -}; - -type MdxFrontmatterSortInput = { - readonly description: InputMaybe; - readonly title: InputMaybe; - readonly type: InputMaybe; -}; - -type MdxGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type MdxGroupConnection_distinctArgs = { - field: MdxFieldSelector; -}; - - -type MdxGroupConnection_groupArgs = { - field: MdxFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type MdxGroupConnection_maxArgs = { - field: MdxFieldSelector; -}; - - -type MdxGroupConnection_minArgs = { - field: MdxFieldSelector; -}; - - -type MdxGroupConnection_sumArgs = { - field: MdxFieldSelector; -}; - -type MdxSortInput = { - readonly body: InputMaybe; - readonly children: InputMaybe; - readonly excerpt: InputMaybe; - readonly fields: InputMaybe; - readonly frontmatter: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; - readonly tableOfContents: InputMaybe; -}; - -/** Node Interface */ -type Node = { - readonly children: ReadonlyArray; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly parent: Maybe; -}; - -type NodeFieldSelector = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type NodeFilterInput = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type NodeFilterListInput = { - readonly elemMatch: InputMaybe; -}; - -type NodeSortInput = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type PNGOptions = { - readonly compressionSpeed: InputMaybe; - readonly quality: InputMaybe; -}; - -type PageInfo = { - readonly currentPage: Scalars['Int']; - readonly hasNextPage: Scalars['Boolean']; - readonly hasPreviousPage: Scalars['Boolean']; - readonly itemCount: Scalars['Int']; - readonly pageCount: Scalars['Int']; - readonly perPage: Maybe; - readonly totalCount: Scalars['Int']; -}; - -type Potrace = { - readonly alphaMax: InputMaybe; - readonly background: InputMaybe; - readonly blackOnWhite: InputMaybe; - readonly color: InputMaybe; - readonly optCurve: InputMaybe; - readonly optTolerance: InputMaybe; - readonly threshold: InputMaybe; - readonly turdSize: InputMaybe; - readonly turnPolicy: InputMaybe; -}; - -type PotraceTurnPolicy = - | 'black' - | 'left' - | 'majority' - | 'minority' - | 'right' - | 'white'; - -type Query = { - readonly allDirectory: DirectoryConnection; - readonly allFile: FileConnection; - readonly allImageSharp: ImageSharpConnection; - readonly allMarkdownRemark: MarkdownRemarkConnection; - readonly allMdx: MdxConnection; - readonly allSite: SiteConnection; - readonly allSiteBuildMetadata: SiteBuildMetadataConnection; - readonly allSiteFunction: SiteFunctionConnection; - readonly allSitePage: SitePageConnection; - readonly allSitePlugin: SitePluginConnection; - readonly allTranslation: TranslationConnection; - readonly directory: Maybe; - readonly file: Maybe; - readonly imageSharp: Maybe; - readonly markdownRemark: Maybe; - readonly mdx: Maybe; - readonly site: Maybe; - readonly siteBuildMetadata: Maybe; - readonly siteFunction: Maybe; - readonly sitePage: Maybe; - readonly sitePlugin: Maybe; - readonly translation: Maybe; -}; - - -type Query_allDirectoryArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allFileArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allImageSharpArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allMarkdownRemarkArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allMdxArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allSiteArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allSiteBuildMetadataArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allSiteFunctionArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allSitePageArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allSitePluginArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_allTranslationArgs = { - filter: InputMaybe; - limit: InputMaybe; - skip: InputMaybe; - sort: InputMaybe>>; -}; - - -type Query_directoryArgs = { - absolutePath: InputMaybe; - accessTime: InputMaybe; - atime: InputMaybe; - atimeMs: InputMaybe; - base: InputMaybe; - birthTime: InputMaybe; - birthtime: InputMaybe; - birthtimeMs: InputMaybe; - changeTime: InputMaybe; - children: InputMaybe; - ctime: InputMaybe; - ctimeMs: InputMaybe; - dev: InputMaybe; - dir: InputMaybe; - ext: InputMaybe; - extension: InputMaybe; - gid: InputMaybe; - id: InputMaybe; - ino: InputMaybe; - internal: InputMaybe; - mode: InputMaybe; - modifiedTime: InputMaybe; - mtime: InputMaybe; - mtimeMs: InputMaybe; - name: InputMaybe; - nlink: InputMaybe; - parent: InputMaybe; - prettySize: InputMaybe; - rdev: InputMaybe; - relativeDirectory: InputMaybe; - relativePath: InputMaybe; - root: InputMaybe; - size: InputMaybe; - sourceInstanceName: InputMaybe; - uid: InputMaybe; -}; - - -type Query_fileArgs = { - absolutePath: InputMaybe; - accessTime: InputMaybe; - atime: InputMaybe; - atimeMs: InputMaybe; - base: InputMaybe; - birthTime: InputMaybe; - birthtime: InputMaybe; - birthtimeMs: InputMaybe; - blksize: InputMaybe; - blocks: InputMaybe; - changeTime: InputMaybe; - childImageSharp: InputMaybe; - childMarkdownRemark: InputMaybe; - childMdx: InputMaybe; - children: InputMaybe; - childrenImageSharp: InputMaybe; - childrenMarkdownRemark: InputMaybe; - childrenMdx: InputMaybe; - ctime: InputMaybe; - ctimeMs: InputMaybe; - dev: InputMaybe; - dir: InputMaybe; - ext: InputMaybe; - extension: InputMaybe; - gid: InputMaybe; - id: InputMaybe; - ino: InputMaybe; - internal: InputMaybe; - mode: InputMaybe; - modifiedTime: InputMaybe; - mtime: InputMaybe; - mtimeMs: InputMaybe; - name: InputMaybe; - nlink: InputMaybe; - parent: InputMaybe; - prettySize: InputMaybe; - publicURL: InputMaybe; - rdev: InputMaybe; - relativeDirectory: InputMaybe; - relativePath: InputMaybe; - root: InputMaybe; - size: InputMaybe; - sourceInstanceName: InputMaybe; - uid: InputMaybe; -}; - - -type Query_imageSharpArgs = { - children: InputMaybe; - fixed: InputMaybe; - fluid: InputMaybe; - gatsbyImageData: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - original: InputMaybe; - parent: InputMaybe; - resize: InputMaybe; -}; - - -type Query_markdownRemarkArgs = { - children: InputMaybe; - excerpt: InputMaybe; - excerptAst: InputMaybe; - fields: InputMaybe; - fileAbsolutePath: InputMaybe; - frontmatter: InputMaybe; - headings: InputMaybe; - html: InputMaybe; - htmlAst: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - parent: InputMaybe; - rawMarkdownBody: InputMaybe; - tableOfContents: InputMaybe; - timeToRead: InputMaybe; - wordCount: InputMaybe; -}; - - -type Query_mdxArgs = { - body: InputMaybe; - children: InputMaybe; - excerpt: InputMaybe; - fields: InputMaybe; - frontmatter: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - parent: InputMaybe; - tableOfContents: InputMaybe; -}; - - -type Query_siteArgs = { - buildTime: InputMaybe; - children: InputMaybe; - graphqlTypegen: InputMaybe; - host: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - jsxRuntime: InputMaybe; - parent: InputMaybe; - pathPrefix: InputMaybe; - polyfill: InputMaybe; - port: InputMaybe; - siteMetadata: InputMaybe; - trailingSlash: InputMaybe; -}; - - -type Query_siteBuildMetadataArgs = { - buildTime: InputMaybe; - children: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - parent: InputMaybe; -}; - - -type Query_siteFunctionArgs = { - absoluteCompiledFilePath: InputMaybe; - children: InputMaybe; - functionRoute: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - matchPath: InputMaybe; - originalAbsoluteFilePath: InputMaybe; - originalRelativeFilePath: InputMaybe; - parent: InputMaybe; - pluginName: InputMaybe; - relativeCompiledFilePath: InputMaybe; -}; - - -type Query_sitePageArgs = { - children: InputMaybe; - component: InputMaybe; - componentChunkName: InputMaybe; - context: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - internalComponentName: InputMaybe; - matchPath: InputMaybe; - pageContext: InputMaybe; - parent: InputMaybe; - path: InputMaybe; - pluginCreator: InputMaybe; -}; - - -type Query_sitePluginArgs = { - browserAPIs: InputMaybe; - children: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - name: InputMaybe; - nodeAPIs: InputMaybe; - packageJson: InputMaybe; - parent: InputMaybe; - pluginFilepath: InputMaybe; - pluginOptions: InputMaybe; - resolve: InputMaybe; - ssrAPIs: InputMaybe; - version: InputMaybe; -}; - - -type Query_translationArgs = { - children: InputMaybe; - id: InputMaybe; - internal: InputMaybe; - key: InputMaybe; - locale: InputMaybe; - message: InputMaybe; - parent: InputMaybe; -}; - -type Site = Node & { - readonly buildTime: Maybe; - readonly children: ReadonlyArray; - readonly graphqlTypegen: Maybe; - readonly host: Maybe; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly jsxRuntime: Maybe; - readonly parent: Maybe; - readonly pathPrefix: Maybe; - readonly polyfill: Maybe; - readonly port: Maybe; - readonly siteMetadata: Maybe; - readonly trailingSlash: Maybe; -}; - - -type Site_buildTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - -type SiteBuildMetadata = Node & { - readonly buildTime: Maybe; - readonly children: ReadonlyArray; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly parent: Maybe; -}; - - -type SiteBuildMetadata_buildTimeArgs = { - difference: InputMaybe; - formatString: InputMaybe; - fromNow: InputMaybe; - locale: InputMaybe; -}; - -type SiteBuildMetadataConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteBuildMetadataConnection_distinctArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataConnection_groupArgs = { - field: SiteBuildMetadataFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteBuildMetadataConnection_maxArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataConnection_minArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataConnection_sumArgs = { - field: SiteBuildMetadataFieldSelector; -}; - -type SiteBuildMetadataEdge = { - readonly next: Maybe; - readonly node: SiteBuildMetadata; - readonly previous: Maybe; -}; - -type SiteBuildMetadataFieldSelector = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type SiteBuildMetadataFilterInput = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type SiteBuildMetadataGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteBuildMetadataGroupConnection_distinctArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataGroupConnection_groupArgs = { - field: SiteBuildMetadataFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteBuildMetadataGroupConnection_maxArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataGroupConnection_minArgs = { - field: SiteBuildMetadataFieldSelector; -}; - - -type SiteBuildMetadataGroupConnection_sumArgs = { - field: SiteBuildMetadataFieldSelector; -}; - -type SiteBuildMetadataSortInput = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly parent: InputMaybe; -}; - -type SiteConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteConnection_distinctArgs = { - field: SiteFieldSelector; -}; - - -type SiteConnection_groupArgs = { - field: SiteFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteConnection_maxArgs = { - field: SiteFieldSelector; -}; - - -type SiteConnection_minArgs = { - field: SiteFieldSelector; -}; - - -type SiteConnection_sumArgs = { - field: SiteFieldSelector; -}; - -type SiteEdge = { - readonly next: Maybe; - readonly node: Site; - readonly previous: Maybe; -}; - -type SiteFieldSelector = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly graphqlTypegen: InputMaybe; - readonly host: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly jsxRuntime: InputMaybe; - readonly parent: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly polyfill: InputMaybe; - readonly port: InputMaybe; - readonly siteMetadata: InputMaybe; - readonly trailingSlash: InputMaybe; -}; - -type SiteFilterInput = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly graphqlTypegen: InputMaybe; - readonly host: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly jsxRuntime: InputMaybe; - readonly parent: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly polyfill: InputMaybe; - readonly port: InputMaybe; - readonly siteMetadata: InputMaybe; - readonly trailingSlash: InputMaybe; -}; - -type SiteFunction = Node & { - readonly absoluteCompiledFilePath: Scalars['String']; - readonly children: ReadonlyArray; - readonly functionRoute: Scalars['String']; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly matchPath: Maybe; - readonly originalAbsoluteFilePath: Scalars['String']; - readonly originalRelativeFilePath: Scalars['String']; - readonly parent: Maybe; - readonly pluginName: Scalars['String']; - readonly relativeCompiledFilePath: Scalars['String']; -}; - -type SiteFunctionConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteFunctionConnection_distinctArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionConnection_groupArgs = { - field: SiteFunctionFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteFunctionConnection_maxArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionConnection_minArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionConnection_sumArgs = { - field: SiteFunctionFieldSelector; -}; - -type SiteFunctionEdge = { - readonly next: Maybe; - readonly node: SiteFunction; - readonly previous: Maybe; -}; - -type SiteFunctionFieldSelector = { - readonly absoluteCompiledFilePath: InputMaybe; - readonly children: InputMaybe; - readonly functionRoute: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly matchPath: InputMaybe; - readonly originalAbsoluteFilePath: InputMaybe; - readonly originalRelativeFilePath: InputMaybe; - readonly parent: InputMaybe; - readonly pluginName: InputMaybe; - readonly relativeCompiledFilePath: InputMaybe; -}; - -type SiteFunctionFilterInput = { - readonly absoluteCompiledFilePath: InputMaybe; - readonly children: InputMaybe; - readonly functionRoute: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly matchPath: InputMaybe; - readonly originalAbsoluteFilePath: InputMaybe; - readonly originalRelativeFilePath: InputMaybe; - readonly parent: InputMaybe; - readonly pluginName: InputMaybe; - readonly relativeCompiledFilePath: InputMaybe; -}; - -type SiteFunctionGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteFunctionGroupConnection_distinctArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionGroupConnection_groupArgs = { - field: SiteFunctionFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteFunctionGroupConnection_maxArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionGroupConnection_minArgs = { - field: SiteFunctionFieldSelector; -}; - - -type SiteFunctionGroupConnection_sumArgs = { - field: SiteFunctionFieldSelector; -}; - -type SiteFunctionSortInput = { - readonly absoluteCompiledFilePath: InputMaybe; - readonly children: InputMaybe; - readonly functionRoute: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly matchPath: InputMaybe; - readonly originalAbsoluteFilePath: InputMaybe; - readonly originalRelativeFilePath: InputMaybe; - readonly parent: InputMaybe; - readonly pluginName: InputMaybe; - readonly relativeCompiledFilePath: InputMaybe; -}; - -type SiteGraphqlTypegen = { - readonly documentSearchPaths: Maybe>>; - readonly generateOnBuild: Maybe; - readonly typesOutputPath: Maybe; -}; - -type SiteGraphqlTypegenFieldSelector = { - readonly documentSearchPaths: InputMaybe; - readonly generateOnBuild: InputMaybe; - readonly typesOutputPath: InputMaybe; -}; - -type SiteGraphqlTypegenFilterInput = { - readonly documentSearchPaths: InputMaybe; - readonly generateOnBuild: InputMaybe; - readonly typesOutputPath: InputMaybe; -}; - -type SiteGraphqlTypegenSortInput = { - readonly documentSearchPaths: InputMaybe; - readonly generateOnBuild: InputMaybe; - readonly typesOutputPath: InputMaybe; -}; - -type SiteGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SiteGroupConnection_distinctArgs = { - field: SiteFieldSelector; -}; - - -type SiteGroupConnection_groupArgs = { - field: SiteFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SiteGroupConnection_maxArgs = { - field: SiteFieldSelector; -}; - - -type SiteGroupConnection_minArgs = { - field: SiteFieldSelector; -}; - - -type SiteGroupConnection_sumArgs = { - field: SiteFieldSelector; -}; - -type SitePage = Node & { - readonly children: ReadonlyArray; - readonly component: Scalars['String']; - readonly componentChunkName: Scalars['String']; - readonly context: Maybe; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly internalComponentName: Scalars['String']; - readonly matchPath: Maybe; - readonly pageContext: Maybe; - readonly parent: Maybe; - readonly path: Scalars['String']; - readonly pluginCreator: Maybe; -}; - -type SitePageConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SitePageConnection_distinctArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageConnection_groupArgs = { - field: SitePageFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SitePageConnection_maxArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageConnection_minArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageConnection_sumArgs = { - field: SitePageFieldSelector; -}; - -type SitePageContext = { - readonly locale: Maybe; - readonly localePagesId: Maybe; - readonly metaData: SitePageContextMetaData; - readonly prefix: Maybe; -}; - -type SitePageContextFieldSelector = { - readonly locale: InputMaybe; - readonly localePagesId: InputMaybe; - readonly metaData: InputMaybe; - readonly prefix: InputMaybe; -}; - -type SitePageContextFilterInput = { - readonly locale: InputMaybe; - readonly localePagesId: InputMaybe; - readonly metaData: InputMaybe; - readonly prefix: InputMaybe; -}; - -type SitePageContextMetaData = { - readonly description: Scalars['String']; - readonly title: Scalars['String']; -}; - -type SitePageContextMetaDataFieldSelector = { - readonly description: InputMaybe; - readonly title: InputMaybe; -}; - -type SitePageContextMetaDataFilterInput = { - readonly description: InputMaybe; - readonly title: InputMaybe; -}; - -type SitePageContextMetaDataSortInput = { - readonly description: InputMaybe; - readonly title: InputMaybe; -}; - -type SitePageContextSortInput = { - readonly locale: InputMaybe; - readonly localePagesId: InputMaybe; - readonly metaData: InputMaybe; - readonly prefix: InputMaybe; -}; - -type SitePageEdge = { - readonly next: Maybe; - readonly node: SitePage; - readonly previous: Maybe; -}; - -type SitePageFieldSelector = { - readonly children: InputMaybe; - readonly component: InputMaybe; - readonly componentChunkName: InputMaybe; - readonly context: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly internalComponentName: InputMaybe; - readonly matchPath: InputMaybe; - readonly pageContext: InputMaybe; - readonly parent: InputMaybe; - readonly path: InputMaybe; - readonly pluginCreator: InputMaybe; -}; - -type SitePageFilterInput = { - readonly children: InputMaybe; - readonly component: InputMaybe; - readonly componentChunkName: InputMaybe; - readonly context: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly internalComponentName: InputMaybe; - readonly matchPath: InputMaybe; - readonly pageContext: InputMaybe; - readonly parent: InputMaybe; - readonly path: InputMaybe; - readonly pluginCreator: InputMaybe; -}; - -type SitePageGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SitePageGroupConnection_distinctArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageGroupConnection_groupArgs = { - field: SitePageFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SitePageGroupConnection_maxArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageGroupConnection_minArgs = { - field: SitePageFieldSelector; -}; - - -type SitePageGroupConnection_sumArgs = { - field: SitePageFieldSelector; -}; - -type SitePageSortInput = { - readonly children: InputMaybe; - readonly component: InputMaybe; - readonly componentChunkName: InputMaybe; - readonly context: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly internalComponentName: InputMaybe; - readonly matchPath: InputMaybe; - readonly pageContext: InputMaybe; - readonly parent: InputMaybe; - readonly path: InputMaybe; - readonly pluginCreator: InputMaybe; -}; - -type SitePlugin = Node & { - readonly browserAPIs: Maybe>>; - readonly children: ReadonlyArray; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly name: Maybe; - readonly nodeAPIs: Maybe>>; - readonly packageJson: Maybe; - readonly parent: Maybe; - readonly pluginFilepath: Maybe; - readonly pluginOptions: Maybe; - readonly resolve: Maybe; - readonly ssrAPIs: Maybe>>; - readonly version: Maybe; -}; - -type SitePluginConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SitePluginConnection_distinctArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginConnection_groupArgs = { - field: SitePluginFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SitePluginConnection_maxArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginConnection_minArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginConnection_sumArgs = { - field: SitePluginFieldSelector; -}; - -type SitePluginEdge = { - readonly next: Maybe; - readonly node: SitePlugin; - readonly previous: Maybe; -}; - -type SitePluginFieldSelector = { - readonly browserAPIs: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly name: InputMaybe; - readonly nodeAPIs: InputMaybe; - readonly packageJson: InputMaybe; - readonly parent: InputMaybe; - readonly pluginFilepath: InputMaybe; - readonly pluginOptions: InputMaybe; - readonly resolve: InputMaybe; - readonly ssrAPIs: InputMaybe; - readonly version: InputMaybe; -}; - -type SitePluginFilterInput = { - readonly browserAPIs: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly name: InputMaybe; - readonly nodeAPIs: InputMaybe; - readonly packageJson: InputMaybe; - readonly parent: InputMaybe; - readonly pluginFilepath: InputMaybe; - readonly pluginOptions: InputMaybe; - readonly resolve: InputMaybe; - readonly ssrAPIs: InputMaybe; - readonly version: InputMaybe; -}; - -type SitePluginGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type SitePluginGroupConnection_distinctArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginGroupConnection_groupArgs = { - field: SitePluginFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type SitePluginGroupConnection_maxArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginGroupConnection_minArgs = { - field: SitePluginFieldSelector; -}; - - -type SitePluginGroupConnection_sumArgs = { - field: SitePluginFieldSelector; -}; - -type SitePluginSortInput = { - readonly browserAPIs: InputMaybe; - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly name: InputMaybe; - readonly nodeAPIs: InputMaybe; - readonly packageJson: InputMaybe; - readonly parent: InputMaybe; - readonly pluginFilepath: InputMaybe; - readonly pluginOptions: InputMaybe; - readonly resolve: InputMaybe; - readonly ssrAPIs: InputMaybe; - readonly version: InputMaybe; -}; - -type SiteSiteMetadata = { - readonly address: Maybe; - readonly author: Maybe; - readonly description: Maybe; - readonly email: Maybe; - readonly phone: Maybe; - readonly project: Maybe; - readonly siteUrl: Maybe; - readonly title: Maybe; - readonly version: Maybe; -}; - -type SiteSiteMetadataFieldSelector = { - readonly address: InputMaybe; - readonly author: InputMaybe; - readonly description: InputMaybe; - readonly email: InputMaybe; - readonly phone: InputMaybe; - readonly project: InputMaybe; - readonly siteUrl: InputMaybe; - readonly title: InputMaybe; - readonly version: InputMaybe; -}; - -type SiteSiteMetadataFilterInput = { - readonly address: InputMaybe; - readonly author: InputMaybe; - readonly description: InputMaybe; - readonly email: InputMaybe; - readonly phone: InputMaybe; - readonly project: InputMaybe; - readonly siteUrl: InputMaybe; - readonly title: InputMaybe; - readonly version: InputMaybe; -}; - -type SiteSiteMetadataSortInput = { - readonly address: InputMaybe; - readonly author: InputMaybe; - readonly description: InputMaybe; - readonly email: InputMaybe; - readonly phone: InputMaybe; - readonly project: InputMaybe; - readonly siteUrl: InputMaybe; - readonly title: InputMaybe; - readonly version: InputMaybe; -}; - -type SiteSortInput = { - readonly buildTime: InputMaybe; - readonly children: InputMaybe; - readonly graphqlTypegen: InputMaybe; - readonly host: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly jsxRuntime: InputMaybe; - readonly parent: InputMaybe; - readonly pathPrefix: InputMaybe; - readonly polyfill: InputMaybe; - readonly port: InputMaybe; - readonly siteMetadata: InputMaybe; - readonly trailingSlash: InputMaybe; -}; - -type SortOrderEnum = - | 'ASC' - | 'DESC'; - -type StringQueryOperatorInput = { - readonly eq: InputMaybe; - readonly glob: InputMaybe; - readonly in: InputMaybe>>; - readonly ne: InputMaybe; - readonly nin: InputMaybe>>; - readonly regex: InputMaybe; -}; - -type TransformOptions = { - readonly cropFocus: InputMaybe; - readonly duotone: InputMaybe; - readonly fit: InputMaybe; - readonly grayscale: InputMaybe; - readonly rotate: InputMaybe; - readonly trim: InputMaybe; -}; - -type Translation = Node & { - readonly children: ReadonlyArray; - readonly id: Scalars['ID']; - readonly internal: Internal; - readonly key: Maybe; - readonly locale: Maybe; - readonly message: Maybe; - readonly parent: Maybe; -}; - -type TranslationConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type TranslationConnection_distinctArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationConnection_groupArgs = { - field: TranslationFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type TranslationConnection_maxArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationConnection_minArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationConnection_sumArgs = { - field: TranslationFieldSelector; -}; - -type TranslationEdge = { - readonly next: Maybe; - readonly node: Translation; - readonly previous: Maybe; -}; - -type TranslationFieldSelector = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly key: InputMaybe; - readonly locale: InputMaybe; - readonly message: InputMaybe; - readonly parent: InputMaybe; -}; - -type TranslationFilterInput = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly key: InputMaybe; - readonly locale: InputMaybe; - readonly message: InputMaybe; - readonly parent: InputMaybe; -}; - -type TranslationGroupConnection = { - readonly distinct: ReadonlyArray; - readonly edges: ReadonlyArray; - readonly field: Scalars['String']; - readonly fieldValue: Maybe; - readonly group: ReadonlyArray; - readonly max: Maybe; - readonly min: Maybe; - readonly nodes: ReadonlyArray; - readonly pageInfo: PageInfo; - readonly sum: Maybe; - readonly totalCount: Scalars['Int']; -}; - - -type TranslationGroupConnection_distinctArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationGroupConnection_groupArgs = { - field: TranslationFieldSelector; - limit: InputMaybe; - skip: InputMaybe; -}; - - -type TranslationGroupConnection_maxArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationGroupConnection_minArgs = { - field: TranslationFieldSelector; -}; - - -type TranslationGroupConnection_sumArgs = { - field: TranslationFieldSelector; -}; - -type TranslationSortInput = { - readonly children: InputMaybe; - readonly id: InputMaybe; - readonly internal: InputMaybe; - readonly key: InputMaybe; - readonly locale: InputMaybe; - readonly message: InputMaybe; - readonly parent: InputMaybe; -}; - -type WebPOptions = { - readonly quality: InputMaybe; -}; - -type DefaultLayoutQueryVariables = Exact<{ [key: string]: never; }>; - - -type DefaultLayoutQuery = { readonly site: { readonly siteMetadata: { readonly author: string | null, readonly description: string | null, readonly phone: string | null, readonly email: string | null, readonly address: string | null, readonly siteUrl: string | null, readonly title: string | null, readonly version: string | null, readonly project: string | null } | null } | null }; - -type FormationPageQueryVariables = Exact<{ - locale: InputMaybe; -}>; - - -type FormationPageQuery = { readonly allMarkdownRemark: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly title: string | null, readonly date: string | null } | null }> } }; - -type GatsbyImageSharpFixedFragment = { readonly base64: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; - -type GatsbyImageSharpFixed_noBase64Fragment = { readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; - -type GatsbyImageSharpFixed_tracedSVGFragment = { readonly tracedSVG: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string }; - -type GatsbyImageSharpFixed_withWebpFragment = { readonly base64: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; - -type GatsbyImageSharpFixed_withWebp_noBase64Fragment = { readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; - -type GatsbyImageSharpFixed_withWebp_tracedSVGFragment = { readonly tracedSVG: string | null, readonly width: number, readonly height: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null }; - -type GatsbyImageSharpFluidFragment = { readonly base64: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; - -type GatsbyImageSharpFluid_noBase64Fragment = { readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; - -type GatsbyImageSharpFluid_tracedSVGFragment = { readonly tracedSVG: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly sizes: string }; - -type GatsbyImageSharpFluid_withWebpFragment = { readonly base64: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; - -type GatsbyImageSharpFluid_withWebp_noBase64Fragment = { readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; - -type GatsbyImageSharpFluid_withWebp_tracedSVGFragment = { readonly tracedSVG: string | null, readonly aspectRatio: number, readonly src: string, readonly srcSet: string, readonly srcWebp: string | null, readonly srcSetWebp: string | null, readonly sizes: string }; - -type GatsbyImageSharpFluidLimitPresentationSizeFragment = { readonly maxHeight: number, readonly maxWidth: number }; - -type GenericPagesQueryVariables = Exact<{ - id: Scalars['String']; -}>; - - -type GenericPagesQuery = { readonly mdx: { readonly id: string, readonly frontmatter: { readonly type: string | null } | null } | null }; - -type IndexPageQueryVariables = Exact<{ - locale: InputMaybe; -}>; - - -type IndexPageQuery = { readonly values: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly link: string | null, readonly title: string | null } | null }> }, readonly cooperationYou: { readonly html: string | null, readonly frontmatter: { readonly title: string | null } | null } | null, readonly cooperationUs: { readonly html: string | null, readonly frontmatter: { readonly title: string | null } | null } | null, readonly exchange: { readonly html: string | null, readonly frontmatter: { readonly title: string | null } | null } | null, readonly strengths: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly title: string | null, readonly order: number | null, readonly sprite: string | null, readonly skills: ReadonlyArray<{ readonly childMarkdownRemark: { readonly html: string | null, readonly frontmatter: { readonly title: string | null, readonly link: string | null, readonly icon: { readonly publicURL: string | null } | null } | null } | null } | null> | null } | null }> }, readonly questions: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly answeredBy: string | null, readonly title: string | null } | null }> }, readonly softwareReferences: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly title: string | null, readonly icon: { readonly publicURL: string | null } | null } | null }> }, readonly companyReferences: { readonly nodes: ReadonlyArray<{ readonly html: string | null, readonly frontmatter: { readonly title: string | null, readonly link: string | null, readonly logo: { readonly publicURL: string | null } | null } | null }> } }; - -type TeamPageQueryVariables = Exact<{ - locale: InputMaybe; -}>; - - -type TeamPageQuery = { readonly summary: { readonly html: string | null } | null, readonly portraits: { readonly nodes: ReadonlyArray<{ readonly fields: { readonly kind: string | null } | null, readonly frontmatter: { readonly name: string | null, readonly avatar: { readonly publicURL: string | null } | null } | null }> }, readonly impressions: { readonly nodes: ReadonlyArray<{ readonly frontmatter: { readonly title: string | null, readonly image: { readonly childImageSharp: { readonly gatsbyImageData: import('gatsby-plugin-image').IGatsbyImageData } | null } | null } | null }> } }; - -type AllGenericPagesQueryVariables = Exact<{ [key: string]: never; }>; - - -type AllGenericPagesQuery = { readonly allMdx: { readonly edges: ReadonlyArray<{ readonly node: { readonly id: string, readonly frontmatter: { readonly description: string | null, readonly title: string | null } | null, readonly fields: { readonly path: string | null, readonly translations: ReadonlyArray<{ readonly locale: string | null, readonly path: string | null } | null> | null } | null, readonly internal: { readonly contentFilePath: string | null } } }> } }; - - -} diff --git a/jest-preprocess.js b/jest-preprocess.js deleted file mode 100644 index 3d943e37..00000000 --- a/jest-preprocess.js +++ /dev/null @@ -1,4 +0,0 @@ -const babelOptions = { - presets: ['babel-preset-gatsby', '@babel/preset-typescript', ['@babel/preset-react', { runtime: 'automatic' }]], -}; -module.exports = require('babel-jest').default.createTransformer(babelOptions); diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index a45ab149..00000000 --- a/jest.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - transform: { - '^.+\\.[jt]sx?$': '/jest-preprocess.js', - }, - moduleNameMapper: { - '.+\\.(css|styl|less|sass|scss)$': `identity-obj-proxy`, - '.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': `/__mocks__/file-mock.js`, - }, - testPathIgnorePatterns: [`node_modules`, `\\.cache`, `.*/public`, `.*/dist`], - transformIgnorePatterns: [`node_modules/(?!(gatsby|gatsby-script|gatsby-link)/)`], - globals: { - __PATH_PREFIX__: ``, - }, - testEnvironment: 'jsdom', - testEnvironmentOptions: { - url: `http://localhost`, - }, - setupFiles: [`/loadershim.js`], - setupFilesAfterEnv: ['/setup-test-env.js'], - collectCoverage: true, - collectCoverageFrom: [`src/**/*.{ts,tsx}`], -}; diff --git a/loadershim.js b/loadershim.js deleted file mode 100644 index 530bd30b..00000000 --- a/loadershim.js +++ /dev/null @@ -1,3 +0,0 @@ -global.___loader = { - enqueue: jest.fn(), -}; diff --git a/package.json b/package.json index a5d26bc3..c2a775c6 100644 --- a/package.json +++ b/package.json @@ -1,100 +1,87 @@ { - "name": "openscript.ch", - "homepage": "https://github.com/openscript-ch/openscript.ch", + "name": "openscript-ch-website", "private": true, - "description": "openscript GmbHs website", - "version": "0.2.0", - "author": "openscript", - "dependencies": { - "@emotion/react": "11.11.3", - "@emotion/styled": "11.11.0", - "@mdx-js/mdx": "3.0.0", - "@mdx-js/react": "3.0.0", - "embla-carousel-autoplay": "^8.0.0-rc17", - "embla-carousel-react": "^8.0.0-rc17", - "gatsby": "5.13.1", - "gatsby-plugin-catch-links": "5.13.0", - "gatsby-plugin-emotion": "8.13.0", - "gatsby-plugin-i18n-l10n": "5.5.0", - "gatsby-plugin-image": "3.13.0", - "gatsby-plugin-manifest": "5.13.0", - "gatsby-plugin-mdx": "5.13.0", - "gatsby-plugin-offline": "6.13.0", - "gatsby-plugin-sharp": "5.13.0", - "gatsby-remark-autolink-headers": "6.13.0", - "gatsby-remark-copy-linked-files": "6.13.0", - "gatsby-remark-images": "7.13.0", - "gatsby-source-filesystem": "5.13.0", - "gatsby-transformer-remark": "^6.13.0", - "gatsby-transformer-sharp": "5.13.0", - "interweave": "^13.0.0", - "polished": "^4.2.2", - "react": "18.2.0", - "react-alternating-timeline": "^2.1.4", - "react-dom": "18.2.0", - "react-intl": "6.5.5", - "react-use": "^17.4.0", - "type-fest": "^4.9.0" - }, - "devDependencies": { - "@babel/core": "7.23.7", - "@babel/eslint-parser": "7.23.3", - "@babel/preset-typescript": "^7.22.5", - "@testing-library/jest-dom": "^6.1.6", - "@testing-library/react": "^14.0.0", - "@types/jest": "^29.5.11", - "@types/mdx": "^2.0.5", - "@types/node": "20.10.6", - "@types/react": "18.2.46", - "@types/react-dom": "18.2.18", - "@typescript-eslint/eslint-plugin": "6.16.0", - "@typescript-eslint/parser": "6.16.0", - "babel-jest": "^29.6.1", - "babel-preset-gatsby": "^3.13.0", - "eslint": "8.56.0", - "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-typescript": "17.1.0", - "eslint-config-prettier": "9.1.0", - "eslint-plugin-import": "2.29.1", - "eslint-plugin-jsx-a11y": "6.8.0", - "eslint-plugin-mdx": "^3.1.1", - "eslint-plugin-prettier": "5.1.2", - "eslint-plugin-react": "7.33.2", - "eslint-plugin-react-hooks": "4.6.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^29.6.1", - "jest-environment-jsdom": "^29.6.1", - "prettier": "3.1.1", - "svg-sprite": "^2.0.2", - "ts-node": "10.9.2", - "typescript": "5.3.3" - }, - "keywords": [ - "gatsby" - ], + "description": "Our organizations website.", + "type": "module", + "version": "1.0.0", "license": "0BSD", + "author": "openscript Ltd.", + "homepage": "https://github.com/openscript-ch/openscript.ch", + "bugs": { + "url": "https://github.com/openscript-ch/openscript.ch/issues" + }, + "repository": "github:openscript-ch/openscript.ch", + "packageManager": "pnpm@10.18.0", "scripts": { - "build": "gatsby build", - "build:sprite": "svg-sprite -S --Ss sprite.svg --stack-dest . --Sx --stack-example-template content/images/sprite.json.mustache --stack-example-dest ../content/images/sprite.json -l verbose -D static content/images/*.svg", - "build:with-prefix": "gatsby build --prefix-paths", - "check:format": "eslint . --max-warnings 0", - "check:types": "tsc --noEmit", - "check:watch-types": "tsc --noEmit --watch", - "dev:test": "jest --watch", - "develop": "gatsby develop", - "format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,md}\"", - "start": "yarn run develop", - "serve": "gatsby serve", - "clean": "gatsby clean", - "test": "jest", - "prestart": "yarn run build:sprite", - "prebuild": "yarn run build:sprite" + "predev": "pnpm build:sprite", + "prebuild": "pnpm build:sprite", + "dev": "astro dev --host", + "build": "astro check && astro build", + "build:sprite": "svg-sprite -S --Ss sprite.svg --stack-dest . --Sx --stack-example-template res/sprite/sprite.json.mustache --stack-example-dest ../res/sprite/sprite.json -l verbose -D public res/sprite/*.svg", + "preview": "astro preview --host", + "astro": "astro", + "test": "vitest", + "coverage": "vitest --coverage", + "check": "eslint . --max-warnings 0", + "format": "prettier . --write", + "version": "changeset version", + "release": "changeset publish", + "tag": "changeset tag" + }, + "dependencies": { + "@astrojs/check": "^0.9.4", + "@astrojs/mdx": "^4.3.6", + "@astrojs/rss": "^4.0.12", + "@astrojs/sitemap": "^3.6.0", + "@fontsource/fira-mono": "^5.2.7", + "@fontsource/pt-sans": "^5.2.8", + "@nanostores/i18n": "^1.2.2", + "astro": "^5.14.1", + "astro-loader-i18n": "^0.8.1", + "astro-nanostores-i18n": "^0.1.6", + "embla-carousel": "^8.6.0", + "embla-carousel-autoplay": "^8.6.0", + "embla-carousel-class-names": "^8.6.0", + "limax": "^4.2.1", + "pagefind": "^1.4.0", + "rehype-autolink-headings": "^7.1.0", + "rehype-slug": "^6.0.0", + "sharp": "^0.34.4", + "simple-git": "^3.28.0", + "svg-sprite": "^2.0.4", + "vfile": "^6.0.3" }, - "repository": { - "type": "git", - "url": "https://github.com/gatsbyjs/gatsby-starter-default" + "devDependencies": { + "@changesets/cli": "^2.29.7", + "@eslint/js": "^9.37.0", + "@openscript/unplugin-favicons": "^1.1.8", + "@types/mdast": "^4.0.4", + "@types/node": "^24.7.0", + "@typescript-eslint/parser": "^8.45.0", + "@vitest/coverage-v8": "3.2.4", + "astro-eslint-parser": "^1.2.2", + "eslint": "^9.37.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-astro": "^1.3.1", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-prettier": "^5.5.4", + "favicons": "^7.2.0", + "globals": "^16.4.0", + "jiti": "^2.6.1", + "prettier": "^3.6.2", + "prettier-plugin-astro": "^0.14.1", + "sirv": "^3.0.2", + "typescript": "^5.9.3", + "typescript-eslint": "^8.45.0", + "vitest": "3.2.4" }, - "bugs": { - "url": "https://github.com/gatsbyjs/gatsby/issues" + "pnpm": { + "overrides": { + "vite": "6.3.5" + }, + "onlyBuiltDependencies": [ + "esbuild", + "sharp" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..1a8e415d --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9316 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + vite: 6.3.5 + +importers: + + .: + dependencies: + '@astrojs/check': + specifier: ^0.9.4 + version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3) + '@astrojs/mdx': + specifier: ^4.3.6 + version: 4.3.6(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1)) + '@astrojs/rss': + specifier: ^4.0.12 + version: 4.0.12 + '@astrojs/sitemap': + specifier: ^3.6.0 + version: 3.6.0 + '@fontsource/fira-mono': + specifier: ^5.2.7 + version: 5.2.7 + '@fontsource/pt-sans': + specifier: ^5.2.8 + version: 5.2.8 + '@nanostores/i18n': + specifier: ^1.2.2 + version: 1.2.2(nanostores@1.0.1) + astro: + specifier: ^5.14.1 + version: 5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1) + astro-loader-i18n: + specifier: ^0.8.1 + version: 0.8.1(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1)) + astro-nanostores-i18n: + specifier: ^0.1.6 + version: 0.1.6(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1))(nanostores@1.0.1) + embla-carousel: + specifier: ^8.6.0 + version: 8.6.0 + embla-carousel-autoplay: + specifier: ^8.6.0 + version: 8.6.0(embla-carousel@8.6.0) + embla-carousel-class-names: + specifier: ^8.6.0 + version: 8.6.0(embla-carousel@8.6.0) + limax: + specifier: ^4.2.1 + version: 4.2.1 + pagefind: + specifier: ^1.4.0 + version: 1.4.0 + rehype-autolink-headings: + specifier: ^7.1.0 + version: 7.1.0 + rehype-slug: + specifier: ^6.0.0 + version: 6.0.0 + sharp: + specifier: ^0.34.4 + version: 0.34.4 + simple-git: + specifier: ^3.28.0 + version: 3.28.0 + svg-sprite: + specifier: ^2.0.4 + version: 2.0.4 + vfile: + specifier: ^6.0.3 + version: 6.0.3 + devDependencies: + '@changesets/cli': + specifier: ^2.29.7 + version: 2.29.7(@types/node@24.7.0) + '@eslint/js': + specifier: ^9.37.0 + version: 9.37.0 + '@openscript/unplugin-favicons': + specifier: ^1.1.8 + version: 1.1.8(@types/node@24.7.0)(esbuild@0.25.10)(favicons@7.2.0)(rollup@4.52.4)(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1))(yaml@2.8.1) + '@types/mdast': + specifier: ^4.0.4 + version: 4.0.4 + '@types/node': + specifier: ^24.7.0 + version: 24.7.0 + '@typescript-eslint/parser': + specifier: ^8.45.0 + version: 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@vitest/coverage-v8': + specifier: 3.2.4 + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1)) + astro-eslint-parser: + specifier: ^1.2.2 + version: 1.2.2 + eslint: + specifier: ^9.37.0 + version: 9.37.0(jiti@2.6.1) + eslint-config-prettier: + specifier: ^10.1.8 + version: 10.1.8(eslint@9.37.0(jiti@2.6.1)) + eslint-plugin-astro: + specifier: ^1.3.1 + version: 1.3.1(eslint@9.37.0(jiti@2.6.1)) + eslint-plugin-jsx-a11y: + specifier: ^6.10.2 + version: 6.10.2(eslint@9.37.0(jiti@2.6.1)) + eslint-plugin-prettier: + specifier: ^5.5.4 + version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.1)))(eslint@9.37.0(jiti@2.6.1))(prettier@3.6.2) + favicons: + specifier: ^7.2.0 + version: 7.2.0 + globals: + specifier: ^16.4.0 + version: 16.4.0 + jiti: + specifier: ^2.6.1 + version: 2.6.1 + prettier: + specifier: ^3.6.2 + version: 3.6.2 + prettier-plugin-astro: + specifier: ^0.14.1 + version: 0.14.1 + sirv: + specifier: ^3.0.2 + version: 3.0.2 + typescript: + specifier: ^5.9.3 + version: 5.9.3 + typescript-eslint: + specifier: ^8.45.0 + version: 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + vitest: + specifier: 3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@astrojs/check@0.9.4': + resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + '@astrojs/compiler@2.13.0': + resolution: {integrity: sha512-mqVORhUJViA28fwHYaWmsXSzLO9osbdZ5ImUfxBarqsYdMlPbqAqGJCxsNzvppp1BEzc1mJNjOVvQqeDN8Vspw==} + + '@astrojs/internal-helpers@0.7.3': + resolution: {integrity: sha512-6Pl0bQEIChuW5wqN7jdKrzWfCscW2rG/Cz+fzt4PhSQX2ivBpnhXgFUCs0M3DCYvjYHnPVG2W36X5rmFjZ62sw==} + + '@astrojs/language-server@2.15.4': + resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@6.3.7': + resolution: {integrity: sha512-KXGdq6/BC18doBCYXp08alHlWChH0hdD2B1qv9wIyOHbvwI5K6I7FhSta8dq1hBQNdun8YkKPR013D/Hm8xd0g==} + + '@astrojs/mdx@4.3.6': + resolution: {integrity: sha512-jH04tYgaqLfq3To42+z1oEcXrXUzo3BxZ4fTkb+7BEmOJkQ9/c3iIixFEC+x0GgE8lJb4SuEDGldpAv7+1yY8A==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + peerDependencies: + astro: ^5.0.0 + + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/rss@4.0.12': + resolution: {integrity: sha512-O5yyxHuDVb6DQ6VLOrbUVFSm+NpObulPxjs6XT9q3tC+RoKbN4HXMZLpv0LvXd1qdAjzVgJ1NFD+zKHJNDXikw==} + + '@astrojs/sitemap@3.6.0': + resolution: {integrity: sha512-4aHkvcOZBWJigRmMIAJwRQXBS+ayoP5z40OklTXYXhUDhwusz+DyDl+nSshY6y9DvkVEavwNcFO8FD81iGhXjg==} + + '@astrojs/telemetry@3.3.0': + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/yaml2ts@0.2.2': + resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} + + '@capsizecss/unpack@2.4.0': + resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} + + '@changesets/apply-release-plan@7.0.13': + resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==} + + '@changesets/assemble-release-plan@6.0.9': + resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} + + '@changesets/changelog-git@0.2.1': + resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + + '@changesets/cli@2.29.7': + resolution: {integrity: sha512-R7RqWoaksyyKXbKXBTbT4REdy22yH81mcFK6sWtqSanxUCbUi9Uf+6aqxZtDQouIqPdem2W56CdxXgsxdq7FLQ==} + hasBin: true + + '@changesets/config@3.1.1': + resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.3': + resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} + + '@changesets/get-release-plan@4.0.13': + resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.4': + resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + + '@changesets/parse@0.4.1': + resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + + '@changesets/pre@2.0.2': + resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + + '@changesets/read@0.6.5': + resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + + '@changesets/should-skip-package@0.1.2': + resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.1.0': + resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + + '@changesets/write@0.4.0': + resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + + '@colors/colors@1.6.0': + resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} + engines: {node: '>=0.1.90'} + + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + + '@esbuild/aix-ppc64@0.25.10': + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.10': + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.10': + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.10': + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.10': + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.10': + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.10': + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.10': + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.10': + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.10': + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.10': + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.10': + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.10': + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.10': + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.10': + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.10': + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.10': + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.10': + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.10': + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.10': + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.10': + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.10': + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.10': + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.10': + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.10': + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.10': + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.21.0': + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.4.0': + resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.16.0': + resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.37.0': + resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.0': + resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fontsource/fira-mono@5.2.7': + resolution: {integrity: sha512-wYrAn6i3nH6luqQBZxtWUpl4UTUvs9AEbEeZxksPMwIqyjRRaxHTNW3c2VfM50gabS2IS7pT8lVWS2USB4ukYA==} + + '@fontsource/pt-sans@5.2.8': + resolution: {integrity: sha512-b8nBGHMVwfe21IWqERlMrzIs+L/Vm3QNGbnET3H1vfclAScWExbN17N/z/dJcyPgvrcenbJDv1H3f5hTAEbcVQ==} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-arm64@0.34.4': + resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.4': + resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.3': + resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.3': + resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm64@1.2.3': + resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.2.3': + resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.2.3': + resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.2.3': + resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.2.3': + resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm64@0.34.4': + resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-arm@0.34.4': + resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-ppc64@0.34.4': + resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-s390x@0.34.4': + resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-x64@0.34.4': + resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.34.4': + resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.34.4': + resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-wasm32@0.34.4': + resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.4': + resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-ia32@0.34.4': + resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@img/sharp-win32-x64@0.34.4': + resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.13': + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + engines: {node: '>=18'} + + '@inquirer/type@3.0.8': + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@kwsites/file-exists@1.1.1': + resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + + '@kwsites/promise-deferred@1.1.1': + resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@mdx-js/mdx@3.1.1': + resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + + '@nanostores/i18n@1.2.2': + resolution: {integrity: sha512-5LLxl95+ZI46MrM/Kn7YjORKsD7+Xy2tgjZ7/oDT/BGPEiaBM9lK89/afeK+BqaQL0Xd9Xaa5MPuuVSyWAo+/w==} + engines: {node: ^20.0.0 || >=22.0.0} + peerDependencies: + nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^1.0.0 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/fs@4.0.0': + resolution: {integrity: sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@openscript/unplugin-favicons@1.1.8': + resolution: {integrity: sha512-AEKKZawbSCJ7JsgRVRrlnPWh80sBMfTViKqmD76L6sAKTy9ZjyVSc8Nt0jdY2nXLPl7rBeDEHhVkWUXSA3I+Cg==} + engines: {node: '>=22.0.0'} + peerDependencies: + '@nuxt/kit': ^3 || ^4.0.0 + '@nuxt/schema': ^3 || ^4.0.0 + '@rspack/cli': ^1.3.15 + '@sveltejs/kit': '*' + esbuild: ^0.25.5 + favicons: ^7.2.0 + rollup: ^3.0.0 || ^4.0.0 + vite: 6.3.5 + webpack: ^4 || ^5 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@nuxt/schema': + optional: true + '@rspack/cli': + optional: true + '@sveltejs/kit': + optional: true + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@pagefind/darwin-arm64@1.4.0': + resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.4.0': + resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==} + cpu: [x64] + os: [darwin] + + '@pagefind/freebsd-x64@1.4.0': + resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==} + cpu: [x64] + os: [freebsd] + + '@pagefind/linux-arm64@1.4.0': + resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.4.0': + resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.4.0': + resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==} + cpu: [x64] + os: [win32] + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@resvg/resvg-js-android-arm-eabi@2.6.2': + resolution: {integrity: sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@resvg/resvg-js-android-arm64@2.6.2': + resolution: {integrity: sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@resvg/resvg-js-darwin-arm64@2.6.2': + resolution: {integrity: sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@resvg/resvg-js-darwin-x64@2.6.2': + resolution: {integrity: sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + resolution: {integrity: sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + resolution: {integrity: sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + resolution: {integrity: sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + resolution: {integrity: sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@resvg/resvg-js@2.6.2': + resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} + engines: {node: '>= 10'} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.52.4': + resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.52.4': + resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.52.4': + resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.52.4': + resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.52.4': + resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.52.4': + resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.52.4': + resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.52.4': + resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.52.4': + resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.52.4': + resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.52.4': + resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.52.4': + resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.52.4': + resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.52.4': + resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.52.4': + resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.52.4': + resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openharmony-arm64@4.52.4': + resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.52.4': + resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.52.4': + resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.52.4': + resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.52.4': + resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} + cpu: [x64] + os: [win32] + + '@shikijs/core@3.13.0': + resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} + + '@shikijs/engine-javascript@3.13.0': + resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} + + '@shikijs/engine-oniguruma@3.13.0': + resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} + + '@shikijs/langs@3.13.0': + resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} + + '@shikijs/themes@3.13.0': + resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} + + '@shikijs/types@3.13.0': + resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + + '@so-ric/colorspace@1.1.6': + resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==} + + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/fontkit@2.0.8': + resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@24.7.0': + resolution: {integrity: sha512-IbKooQVqUBrlzWTi79E8Fw78l8k1RNtlDDNWsFZs7XonuQSJ8oNYfEeclhprUldXISRMLzBpILuKgPlIxm+/Yw==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/triple-beam@1.3.5': + resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@typescript-eslint/eslint-plugin@8.45.0': + resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.45.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.45.0': + resolution: {integrity: sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/project-service@8.45.0': + resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/scope-manager@8.45.0': + resolution: {integrity: sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.45.0': + resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/type-utils@8.45.0': + resolution: {integrity: sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/types@8.45.0': + resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.45.0': + resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/utils@8.45.0': + resolution: {integrity: sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/visitor-keys@8.45.0': + resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@visulima/find-cache-dir@1.0.35': + resolution: {integrity: sha512-z686U0T/l+ZizdxLmvIxdS1YiP60bhsz3+U6hLxHgMhaHABgfsXnJUvExwovxg/us473CTtxA/eAImdNAruTAg==} + engines: {node: '>=18.0.0 <=23.x'} + + '@visulima/fs@3.1.9': + resolution: {integrity: sha512-0D9iREfekQmjAgOq+L3CU9TgpeunIwQ4BISq0vxEZuv2CjOLqqHGlkgFRlEgh2pBrHO3azF0OUGbPoK/1QmCUQ==} + engines: {node: '>=18.0.0 <=23.x'} + os: [darwin, linux, win32] + peerDependencies: + yaml: ^2.7.0 + peerDependenciesMeta: + yaml: + optional: true + + '@visulima/package@3.6.1': + resolution: {integrity: sha512-dl36K1Y1clZbk0ouomnZbUxAE+ELAi2WgQeqSyxCRgY+HesbXgZBKDsJ811l3WWXJsaTv5m4oopfGzTJI34sUg==} + engines: {node: '>=18.0.0 <=23.x'} + os: [darwin, linux, win32] + + '@visulima/path@1.4.0': + resolution: {integrity: sha512-lhtA4woh4KsXWyn3BJ/qYE/HSt+agsHeSGb7j3UeHpRyf3R4ErObR25snvt+Rc4Xlqb1T68U38wjqZ2YpmUGNw==} + engines: {node: '>=18.0.0 <=23.x'} + os: [darwin, linux, win32] + + '@vitest/coverage-v8@3.2.4': + resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} + peerDependencies: + '@vitest/browser': 3.2.4 + vitest: 3.2.4 + peerDependenciesMeta: + '@vitest/browser': + optional: true + + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + peerDependencies: + msw: ^2.4.9 + vite: 6.3.5 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + + '@volar/kit@2.4.23': + resolution: {integrity: sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.4.23': + resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} + + '@volar/language-server@2.4.23': + resolution: {integrity: sha512-k0iO+tybMGMMyrNdWOxgFkP0XJTdbH0w+WZlM54RzJU3WZSjHEupwL30klpM7ep4FO6qyQa03h+VcGHD4Q8gEg==} + + '@volar/language-service@2.4.23': + resolution: {integrity: sha512-h5mU9DZ/6u3LCB9xomJtorNG6awBNnk9VuCioGsp6UtFiM8amvS5FcsaC3dabdL9zO0z+Gq9vIEMb/5u9K6jGQ==} + + '@volar/source-map@2.4.23': + resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} + + '@volar/typescript@2.4.23': + resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} + + '@vscode/emmet-helper@2.11.0': + resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + '@xmldom/xmldom@0.8.11': + resolution: {integrity: sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==} + engines: {node: '>=10.0.0'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} + + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + ast-v8-to-istanbul@0.3.5: + resolution: {integrity: sha512-9SdXjNheSiE8bALAQCQQuT6fgQaoxJh7IRYrRGZ8/9nv8WhJeC1aXAwN8TbaOssGOukUvyvnkgD9+Yuykvl1aA==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + astro-eslint-parser@1.2.2: + resolution: {integrity: sha512-JepyLROIad6f44uyqMF6HKE2QbunNzp3mYKRcPoDGt0QkxXmH222FAFC64WTyQu2Kg8NNEXHTN/sWuUId9sSxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + astro-integration-kit@0.19.0: + resolution: {integrity: sha512-ftDrem91kJZoenhpJJfRtB29D/bmNglEp2oOXqF1uL5yODZauGIy3tDgIbec0UEMp6tNuky4tfWseUXpej5Dng==} + peerDependencies: + astro: ^4.14.0 || ^5.0.0 + + astro-loader-i18n@0.8.1: + resolution: {integrity: sha512-zsY9g6Bg89OhoR0aBjdEu7P9rf/rbnTtNLtkgPaZJbTjDi/mO69Wn8CFYrGXAE0nEkfW7KDb+WKWSFvoL2kKxQ==} + peerDependencies: + astro: ^5.5.0 + + astro-nanostores-i18n@0.1.6: + resolution: {integrity: sha512-89GmOrCKqkLCnnRd4Ky17RmUIhn2PBSLV4ogatR1VB4B8oMHREfidSesREHbgSGO+ZmP3I5BqPdUjZWrpnSHxQ==} + hasBin: true + peerDependencies: + '@nanostores/i18n': ^1.2.0 + astro: ^5.5.0 + nanostores: ^1.0.1 + + astro@5.14.1: + resolution: {integrity: sha512-gPa8NY7/lP8j8g81iy8UwANF3+aukKRWS68IlthZQNgykpg80ne6lbHOp6FErYycxQ1TUhgEfkXVDQZAoJx8Bg==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + astrojs-compiler-sync@1.1.1: + resolution: {integrity: sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ==} + engines: {node: ^18.18.0 || >=20.9.0} + peerDependencies: + '@astrojs/compiler': '>=0.27.0' + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + author-regex@1.0.0: + resolution: {integrity: sha512-KbWgR8wOYRAPekEmMXrYYdc7BRyhn2Ftk7KWfMUnQ43hFdojWEFRxhhRUm3/OFEdPa1r0KAvTTg9YQK57xTe0g==} + engines: {node: '>=0.8'} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + engines: {node: '>=4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + blob-to-buffer@1.2.9: + resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brotli@1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cacache@20.0.1: + resolution: {integrity: sha512-+7LYcYGBYoNqTp1Rv7Ny1YjUo5E0/ftkQtraH3vkfAGgVHc+ouWdC8okAwQgQR7EVIdW6JTzTmhKFwzb+4okAQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + chardet@2.1.0: + resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + ci-info@4.3.1: + resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + engines: {node: '>=8'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-buffer@1.0.0: + resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} + engines: {node: '>= 0.10'} + + clone-stats@1.0.0: + resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} + + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + + cloneable-readable@1.1.3: + resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-convert@3.1.2: + resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==} + engines: {node: '>=14.6'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-name@2.0.2: + resolution: {integrity: sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==} + engines: {node: '>=12.20'} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-string@2.1.2: + resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} + engines: {node: '>=18'} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + color@5.0.2: + resolution: {integrity: sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==} + engines: {node: '>=18'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-selector-parser@1.4.1: + resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.3.2: + resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dfa@1.2.0: + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + embla-carousel-autoplay@8.6.0: + resolution: {integrity: sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==} + peerDependencies: + embla-carousel: 8.6.0 + + embla-carousel-class-names@8.6.0: + resolution: {integrity: sha512-l1hm1+7GxQ+zwdU2sea/LhD946on7XO2qk3Xq2XWSwBaWfdgchXdK567yzLtYSHn4sWYdiX+x4nnaj+saKnJkw==} + peerDependencies: + embla-carousel: 8.6.0 + + embla-carousel@8.6.0: + resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==} + + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@10.5.0: + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enabled@2.0.0: + resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.25.10: + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.6.5: + resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-astro@1.3.1: + resolution: {integrity: sha512-2XaLCMQm8htW1UvJvy1Zcmg8l0ziskitiUfJTn/w1Mk7r4Mxj0fZeNpN6UTNrm64XBIXSa5h8UCGrg8mdu47+g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.57.0' + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-prettier@5.5.4: + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.37.0: + resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + expect-type@1.2.2: + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fast-xml-parser@5.3.0: + resolution: {integrity: sha512-gkWGshjYcQCF+6qtlrqBqELqNqnt4CxruY6UVAWWnqb3DQ6qaNFEIKqzYep1XzHLM/QtrHVCxyPOtTk4LTQ7Aw==} + hasBin: true + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + favicons@7.2.0: + resolution: {integrity: sha512-k/2rVBRIRzOeom3wI9jBPaSEvoTSQEW4iM0EveBmBBKFxO8mSyyRWtDlfC3VnEfu0avmjrMzy8/ZFPSe6F71Hw==} + engines: {node: '>=14.0.0'} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + + fn.name@1.1.0: + resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} + + fontace@0.3.1: + resolution: {integrity: sha512-9f5g4feWT1jWT8+SbL85aLIRLIXUaDygaM2xPXRmzPYxrOMNok79Lr3FGJoKVNKibE0WCunNiEVG2mwuE+2qEg==} + + fontkit@2.0.4: + resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.3: + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + h3@1.15.4: + resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + + hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + + hepburn@1.2.2: + resolution: {integrity: sha512-DeykBc4XmfAWsnN+Y1Svi9uaQnnz21Q/ARuGWvIBxP1iUFeMIWL41DfVkgTh7tU23LFIbmIBO2Bk17BTPu0kVA==} + engines: {node: '>=4'} + + hosted-git-info@9.0.0: + resolution: {integrity: sha512-gEf705MZLrDPkbbhi8PnoO4ZwYgKoNL+ISZ3AjZMht2r3N5tuTwncyDi6Fv2/qDnMmZxgs0yI8WDOyR8q3G+SQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + human-id@4.1.1: + resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + hasBin: true + + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.1.1: + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + kuler@2.0.0: + resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + limax@4.2.1: + resolution: {integrity: sha512-7YeQ8dV9XIjYIjBSFUSOfoxQFAtG2ckD0FGKYCuRaPJKc3IKXZwqsSLD5PnlPklp4y5ncPWhiL142ijAtHGNgw==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.deburr@4.1.0: + resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==} + + lodash.escape@4.0.1: + resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + logform@2.7.0: + resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} + engines: {node: '>= 12.0.0'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.2.2: + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} + engines: {node: 20 || >=22} + + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanostores@1.0.1: + resolution: {integrity: sha512-kNZ9xnoJYKg/AfxjrVL4SS0fKX++4awQReGqWnwTRHxeHGZ1FJFVgTqr/eMrNQdp0Tz7M7tG/TDaX8QfHDwVCw==} + engines: {node: ^20.0.0 || >=22.0.0} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-mock-http@1.0.3: + resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + + normalize-package-data@8.0.0: + resolution: {integrity: sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==} + engines: {node: ^20.17.0 || >=22.9.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + one-time@1.0.0: + resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==} + + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@7.0.3: + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} + engines: {node: '>=18'} + + p-queue@8.1.1: + resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.11: + resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + + package-manager-detector@1.4.0: + resolution: {integrity: sha512-rRZ+pR1Usc+ND9M2NkmCvE/LYJS+8ORVV9X0KuNSY/gFsp7RBHJM/ADh9LYq4Vvfq6QkKrW6/weuh8SMEtN5gw==} + + pagefind@1.4.0: + resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==} + hasBin: true + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-author@2.0.0: + resolution: {integrity: sha512-yx5DfvkN8JsHL2xk2Os9oTia467qnvRgey4ahSm2X8epehBLx/gWLcy5KI+Y36ful5DzGbCS6RazqZGgy1gHNw==} + engines: {node: '>=0.10.0'} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinyin-pro@3.27.0: + resolution: {integrity: sha512-Osdgjwe7Rm17N2paDMM47yW+jUIUH3+0RGo8QP39ZTLpTaJVDK0T58hOLaMQJbcMmAebVuK2ePunTEVEx1clNQ==} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier-plugin-astro@0.14.1: + resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} + engines: {node: ^14.15.0 || >=16.0.0} + + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} + hasBin: true + + prettysize@2.0.0: + resolution: {integrity: sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg==} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.1: + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + rehype-autolink-headings@7.1.0: + resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + + remark-mdx@3.1.1: + resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + replace-ext@1.0.1: + resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} + engines: {node: '>= 0.10'} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + restructure@3.0.2: + resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.52.4: + resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + s.color@0.0.15: + resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass-formatter@0.7.9: + resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + sharp@0.34.4: + resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@3.13.0: + resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-git@3.28.0: + resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + smol-toml@1.4.2: + resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} + engines: {node: '>= 18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spawndamnit@3.0.1: + resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.22: + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssri@12.0.0: + resolution: {integrity: sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + + strnum@2.1.1: + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + + suf-log@2.5.3: + resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + svg-sprite@2.0.4: + resolution: {integrity: sha512-kjDoATgr4k6tdtfQczpkbuFW6RE7tPUPe/rbRd1n2NV92kdwaXEZMIxJqAZfMGOMfU/Kp1u89SUYsfHCbAvVHg==} + engines: {node: '>=12'} + hasBin: true + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + synckit@0.11.11: + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} + + text-hex@1.0.0: + resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + triple-beam@1.4.1: + resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} + engines: {node: '>= 14.0.0'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.6: + resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} + + typescript-eslint@8.45.0: + resolution: {integrity: sha512-qzDmZw/Z5beNLUrXfd0HIW6MzIaAV5WNDxmMs9/3ojGOpYavofgNAAD/nC6tGV2PczIi0iw8vot2eAe/sBn7zg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <6.0.0' + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + undici-types@7.14.0: + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + + unicode-properties@1.4.1: + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unifont@0.5.2: + resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} + + unique-filename@4.0.0: + resolution: {integrity: sha512-XSnEewXmQ+veP7xX2dS5Q4yZAvO40cBN2MWkJ7D/6sW4Dg6wYBNwM1Vrnz1FhH5AdeLIlUXRI9e28z1YZi71NQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + unique-slug@5.0.0: + resolution: {integrity: sha512-9OdaqO5kwqR+1kVgHAhsp5vPNU0hnxRa26rBFNfNgM7M6pNtgzeBn3s/xbyCQL3dcjzOatcef6UUHpB/6MaETg==} + engines: {node: ^18.17.0 || >=20.5.0} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unplugin@2.3.10: + resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} + engines: {node: '>=18.12.0'} + + unstorage@1.17.1: + resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/functions': ^2.2.12 || ^3.0.0 + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/functions': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vinyl@2.2.1: + resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} + engines: {node: '>= 0.10'} + + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.1: + resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} + peerDependencies: + vite: 6.3.5 + peerDependenciesMeta: + vite: + optional: true + + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + volar-service-css@0.0.62: + resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.62: + resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.62: + resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.62: + resolution: {integrity: sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.62: + resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.62: + resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.62: + resolution: {integrity: sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.8: + resolution: {integrity: sha512-dBk/9ullEjIMbfSYAohGpDOisOVU1x2MQHOeU12ohGJQI7+r0PCimBwaa/pWpxl/vH4f7ibrBfxIZY3anGmHKQ==} + + vscode-html-languageservice@5.5.2: + resolution: {integrity: sha512-QpaUhCjvb7U/qThOzo4V6grwsRE62Jk/vf8BRJZoABlMw3oplLB5uovrvcrLO9vYhkeMiSjyqLnCxbfHzzZqmw==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + winston-transport@4.9.0: + resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} + engines: {node: '>= 12.0.0'} + + winston@3.18.3: + resolution: {integrity: sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==} + engines: {node: '>= 12.0.0'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xpath@0.0.34: + resolution: {integrity: sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==} + engines: {node: '>=0.6.0'} + + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.2.1: + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + engines: {node: '>=12.20'} + + yocto-spinner@0.2.3: + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} + engines: {node: '>=18.19'} + + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zod-to-json-schema@3.24.6: + resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} + peerDependencies: + zod: ^3.24.1 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@astrojs/check@0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)': + dependencies: + '@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3) + chokidar: 4.0.3 + kleur: 4.1.5 + typescript: 5.9.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + + '@astrojs/compiler@2.13.0': {} + + '@astrojs/internal-helpers@0.7.3': {} + + '@astrojs/language-server@2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)': + dependencies: + '@astrojs/compiler': 2.13.0 + '@astrojs/yaml2ts': 0.2.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@volar/kit': 2.4.23(typescript@5.9.3) + '@volar/language-core': 2.4.23 + '@volar/language-server': 2.4.23 + '@volar/language-service': 2.4.23 + fast-glob: 3.3.3 + muggle-string: 0.4.1 + volar-service-css: 0.0.62(@volar/language-service@2.4.23) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.23) + volar-service-html: 0.0.62(@volar/language-service@2.4.23) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.23) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.23) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.23) + vscode-html-languageservice: 5.5.2 + vscode-uri: 3.1.0 + optionalDependencies: + prettier: 3.6.2 + prettier-plugin-astro: 0.14.1 + transitivePeerDependencies: + - typescript + + '@astrojs/markdown-remark@6.3.7': + dependencies: + '@astrojs/internal-helpers': 0.7.3 + '@astrojs/prism': 3.3.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.2.0 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.13.0 + smol-toml: 1.4.2 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@4.3.6(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1))': + dependencies: + '@astrojs/markdown-remark': 6.3.7 + '@mdx-js/mdx': 3.1.1 + acorn: 8.15.0 + astro: 5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1) + es-module-lexer: 1.7.0 + estree-util-visit: 2.0.0 + hast-util-to-html: 9.0.5 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.1 + remark-smartypants: 3.0.2 + source-map: 0.7.6 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.3.0': + dependencies: + prismjs: 1.30.0 + + '@astrojs/rss@4.0.12': + dependencies: + fast-xml-parser: 5.3.0 + kleur: 4.1.5 + + '@astrojs/sitemap@3.6.0': + dependencies: + sitemap: 8.0.0 + stream-replace-string: 2.0.0 + zod: 3.25.76 + + '@astrojs/telemetry@3.3.0': + dependencies: + ci-info: 4.3.1 + debug: 4.4.3 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@astrojs/yaml2ts@0.2.2': + dependencies: + yaml: 2.8.1 + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/parser@7.28.4': + dependencies: + '@babel/types': 7.28.4 + + '@babel/runtime@7.28.4': {} + + '@babel/types@7.28.4': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bcoe/v8-coverage@1.0.2': {} + + '@capsizecss/unpack@2.4.0': + dependencies: + blob-to-buffer: 1.2.9 + cross-fetch: 3.2.0 + fontkit: 2.0.4 + transitivePeerDependencies: + - encoding + + '@changesets/apply-release-plan@7.0.13': + dependencies: + '@changesets/config': 3.1.1 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.4 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.7.2 + + '@changesets/assemble-release-plan@6.0.9': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.7.2 + + '@changesets/changelog-git@0.2.1': + dependencies: + '@changesets/types': 6.1.0 + + '@changesets/cli@2.29.7(@types/node@24.7.0)': + dependencies: + '@changesets/apply-release-plan': 7.0.13 + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/changelog-git': 0.2.1 + '@changesets/config': 3.1.1 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/get-release-plan': 4.0.13 + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/should-skip-package': 0.1.2 + '@changesets/types': 6.1.0 + '@changesets/write': 0.4.0 + '@inquirer/external-editor': 1.0.2(@types/node@24.7.0) + '@manypkg/get-packages': 1.1.3 + ansi-colors: 4.1.3 + ci-info: 3.9.0 + enquirer: 2.4.1 + fs-extra: 7.0.1 + mri: 1.2.0 + p-limit: 2.3.0 + package-manager-detector: 0.2.11 + picocolors: 1.1.1 + resolve-from: 5.0.0 + semver: 7.7.2 + spawndamnit: 3.0.1 + term-size: 2.2.1 + transitivePeerDependencies: + - '@types/node' + + '@changesets/config@3.1.1': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.3 + '@changesets/logger': 0.1.1 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.8 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.3': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + picocolors: 1.1.1 + semver: 7.7.2 + + '@changesets/get-release-plan@4.0.13': + dependencies: + '@changesets/assemble-release-plan': 6.0.9 + '@changesets/config': 3.1.1 + '@changesets/pre': 2.0.2 + '@changesets/read': 0.6.5 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.4': + dependencies: + '@changesets/errors': 0.2.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.8 + spawndamnit: 3.0.1 + + '@changesets/logger@0.1.1': + dependencies: + picocolors: 1.1.1 + + '@changesets/parse@0.4.1': + dependencies: + '@changesets/types': 6.1.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.5': + dependencies: + '@changesets/git': 3.0.4 + '@changesets/logger': 0.1.1 + '@changesets/parse': 0.4.1 + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + p-filter: 2.1.0 + picocolors: 1.1.1 + + '@changesets/should-skip-package@0.1.2': + dependencies: + '@changesets/types': 6.1.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.1.0': {} + + '@changesets/write@0.4.0': + dependencies: + '@changesets/types': 6.1.0 + fs-extra: 7.0.1 + human-id: 4.1.1 + prettier: 2.8.8 + + '@colors/colors@1.6.0': {} + + '@dabh/diagnostics@2.0.8': + dependencies: + '@so-ric/colorspace': 1.1.6 + enabled: 2.0.0 + kuler: 2.0.0 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.5.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@esbuild/aix-ppc64@0.25.10': + optional: true + + '@esbuild/android-arm64@0.25.10': + optional: true + + '@esbuild/android-arm@0.25.10': + optional: true + + '@esbuild/android-x64@0.25.10': + optional: true + + '@esbuild/darwin-arm64@0.25.10': + optional: true + + '@esbuild/darwin-x64@0.25.10': + optional: true + + '@esbuild/freebsd-arm64@0.25.10': + optional: true + + '@esbuild/freebsd-x64@0.25.10': + optional: true + + '@esbuild/linux-arm64@0.25.10': + optional: true + + '@esbuild/linux-arm@0.25.10': + optional: true + + '@esbuild/linux-ia32@0.25.10': + optional: true + + '@esbuild/linux-loong64@0.25.10': + optional: true + + '@esbuild/linux-mips64el@0.25.10': + optional: true + + '@esbuild/linux-ppc64@0.25.10': + optional: true + + '@esbuild/linux-riscv64@0.25.10': + optional: true + + '@esbuild/linux-s390x@0.25.10': + optional: true + + '@esbuild/linux-x64@0.25.10': + optional: true + + '@esbuild/netbsd-arm64@0.25.10': + optional: true + + '@esbuild/netbsd-x64@0.25.10': + optional: true + + '@esbuild/openbsd-arm64@0.25.10': + optional: true + + '@esbuild/openbsd-x64@0.25.10': + optional: true + + '@esbuild/openharmony-arm64@0.25.10': + optional: true + + '@esbuild/sunos-x64@0.25.10': + optional: true + + '@esbuild/win32-arm64@0.25.10': + optional: true + + '@esbuild/win32-ia32@0.25.10': + optional: true + + '@esbuild/win32-x64@0.25.10': + optional: true + + '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': + dependencies: + eslint: 9.37.0(jiti@2.6.1) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.21.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.4.0': + dependencies: + '@eslint/core': 0.16.0 + + '@eslint/core@0.16.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.37.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.4.0': + dependencies: + '@eslint/core': 0.16.0 + levn: 0.4.1 + + '@fontsource/fira-mono@5.2.7': {} + + '@fontsource/pt-sans@5.2.8': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@img/colour@1.0.0': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.3 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.3 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.3': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.2.3': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.2.3': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-arm@1.2.3': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.2.3': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-s390x@1.2.3': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.2.3': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.2.3': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.3 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-arm@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.3 + optional: true + + '@img/sharp-linux-ppc64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.3 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-s390x@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.3 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.3 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.4': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.5.0 + optional: true + + '@img/sharp-wasm32@0.34.4': + dependencies: + '@emnapi/runtime': 1.5.0 + optional: true + + '@img/sharp-win32-arm64@0.34.4': + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-ia32@0.34.4': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.34.4': + optional: true + + '@inquirer/ansi@1.0.0': {} + + '@inquirer/confirm@5.1.18(@types/node@24.7.0)': + dependencies: + '@inquirer/core': 10.2.2(@types/node@24.7.0) + '@inquirer/type': 3.0.8(@types/node@24.7.0) + optionalDependencies: + '@types/node': 24.7.0 + + '@inquirer/core@10.2.2(@types/node@24.7.0)': + dependencies: + '@inquirer/ansi': 1.0.0 + '@inquirer/figures': 1.0.13 + '@inquirer/type': 3.0.8(@types/node@24.7.0) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.7.0 + + '@inquirer/external-editor@1.0.2(@types/node@24.7.0)': + dependencies: + chardet: 2.1.0 + iconv-lite: 0.7.0 + optionalDependencies: + '@types/node': 24.7.0 + + '@inquirer/figures@1.0.13': {} + + '@inquirer/type@3.0.8(@types/node@24.7.0)': + optionalDependencies: + '@types/node': 24.7.0 + + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@kwsites/file-exists@1.1.1': + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@kwsites/promise-deferred@1.1.1': {} + + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.28.4 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.28.4 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + + '@mdx-js/mdx@3.1.1': + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + acorn: 8.15.0 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.1(acorn@8.15.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.6 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@nanostores/i18n@1.2.2(nanostores@1.0.1)': + dependencies: + nanostores: 1.0.1 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@npmcli/fs@4.0.0': + dependencies: + semver: 7.7.2 + + '@openscript/unplugin-favicons@1.1.8(@types/node@24.7.0)(esbuild@0.25.10)(favicons@7.2.0)(rollup@4.52.4)(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1))(yaml@2.8.1)': + dependencies: + '@visulima/find-cache-dir': 1.0.35(yaml@2.8.1) + '@visulima/package': 3.6.1(@types/node@24.7.0)(yaml@2.8.1) + cacache: 20.0.1 + consola: 3.4.2 + fast-json-stable-stringify: 2.1.0 + favicons: 7.2.0 + magic-string: 0.30.19 + mime: 4.1.0 + mlly: 1.8.0 + parse-author: 2.0.0 + parse5: 8.0.0 + ssri: 12.0.0 + unplugin: 2.3.10 + optionalDependencies: + esbuild: 0.25.10 + rollup: 4.52.4 + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - yaml + + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.4.0': + optional: true + + '@pagefind/darwin-x64@1.4.0': + optional: true + + '@pagefind/freebsd-x64@1.4.0': + optional: true + + '@pagefind/linux-arm64@1.4.0': + optional: true + + '@pagefind/linux-x64@1.4.0': + optional: true + + '@pagefind/windows-x64@1.4.0': + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.9': {} + + '@polka/url@1.0.0-next.29': {} + + '@resvg/resvg-js-android-arm-eabi@2.6.2': + optional: true + + '@resvg/resvg-js-android-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-x64@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js@2.6.2': + optionalDependencies: + '@resvg/resvg-js-android-arm-eabi': 2.6.2 + '@resvg/resvg-js-android-arm64': 2.6.2 + '@resvg/resvg-js-darwin-arm64': 2.6.2 + '@resvg/resvg-js-darwin-x64': 2.6.2 + '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.2 + '@resvg/resvg-js-linux-arm64-gnu': 2.6.2 + '@resvg/resvg-js-linux-arm64-musl': 2.6.2 + '@resvg/resvg-js-linux-x64-gnu': 2.6.2 + '@resvg/resvg-js-linux-x64-musl': 2.6.2 + '@resvg/resvg-js-win32-arm64-msvc': 2.6.2 + '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 + '@resvg/resvg-js-win32-x64-msvc': 2.6.2 + + '@rollup/pluginutils@5.3.0(rollup@4.52.4)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.52.4 + + '@rollup/rollup-android-arm-eabi@4.52.4': + optional: true + + '@rollup/rollup-android-arm64@4.52.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.52.4': + optional: true + + '@rollup/rollup-darwin-x64@4.52.4': + optional: true + + '@rollup/rollup-freebsd-arm64@4.52.4': + optional: true + + '@rollup/rollup-freebsd-x64@4.52.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.52.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.52.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.52.4': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.52.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.52.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.52.4': + optional: true + + '@rollup/rollup-openharmony-arm64@4.52.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.52.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.52.4': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.52.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.52.4': + optional: true + + '@shikijs/core@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + + '@shikijs/engine-oniguruma@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + + '@shikijs/themes@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + + '@shikijs/types@3.13.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + + '@so-ric/colorspace@1.1.6': + dependencies: + color: 5.0.2 + text-hex: 1.0.0 + + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + + '@trysound/sax@0.2.0': {} + + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/deep-eql@4.0.2': {} + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.8 + + '@types/estree@1.0.8': {} + + '@types/fontkit@2.0.8': + dependencies: + '@types/node': 24.7.0 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@2.1.0': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node@12.20.55': {} + + '@types/node@17.0.45': {} + + '@types/node@24.7.0': + dependencies: + undici-types: 7.14.0 + + '@types/sax@1.2.7': + dependencies: + '@types/node': 24.7.0 + + '@types/triple-beam@1.3.5': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/type-utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 + eslint: 9.37.0(jiti@2.6.1) + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.45.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) + '@typescript-eslint/types': 8.45.0 + debug: 4.4.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.45.0': + dependencies: + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 + + '@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + + '@typescript-eslint/type-utils@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + debug: 4.4.3 + eslint: 9.37.0(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.45.0': {} + + '@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.45.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3) + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/visitor-keys': 8.45.0 + debug: 4.4.3 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.45.0': + dependencies: + '@typescript-eslint/types': 8.45.0 + eslint-visitor-keys: 4.2.1 + + '@ungap/structured-clone@1.3.0': {} + + '@visulima/find-cache-dir@1.0.35(yaml@2.8.1)': + dependencies: + '@visulima/fs': 3.1.9(yaml@2.8.1) + '@visulima/path': 1.4.0 + transitivePeerDependencies: + - yaml + + '@visulima/fs@3.1.9(yaml@2.8.1)': + dependencies: + '@visulima/path': 1.4.0 + optionalDependencies: + yaml: 2.8.1 + + '@visulima/package@3.6.1(@types/node@24.7.0)(yaml@2.8.1)': + dependencies: + '@inquirer/confirm': 5.1.18(@types/node@24.7.0) + '@visulima/fs': 3.1.9(yaml@2.8.1) + '@visulima/path': 1.4.0 + normalize-package-data: 8.0.0 + transitivePeerDependencies: + - '@types/node' + - yaml + + '@visulima/path@1.4.0': {} + + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + ast-v8-to-istanbul: 0.3.5 + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.0 + magic-string: 0.30.19 + magicast: 0.3.5 + std-env: 3.9.0 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.19 + optionalDependencies: + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.4': + dependencies: + '@vitest/utils': 3.2.4 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + magic-string: 0.30.19 + pathe: 2.0.3 + + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + + '@volar/kit@2.4.23(typescript@5.9.3)': + dependencies: + '@volar/language-service': 2.4.23 + '@volar/typescript': 2.4.23 + typesafe-path: 0.2.2 + typescript: 5.9.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/language-core@2.4.23': + dependencies: + '@volar/source-map': 2.4.23 + + '@volar/language-server@2.4.23': + dependencies: + '@volar/language-core': 2.4.23 + '@volar/language-service': 2.4.23 + '@volar/typescript': 2.4.23 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/language-service@2.4.23': + dependencies: + '@volar/language-core': 2.4.23 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + + '@volar/source-map@2.4.23': {} + + '@volar/typescript@2.4.23': + dependencies: + '@volar/language-core': 2.4.23 + path-browserify: 1.0.1 + vscode-uri: 3.1.0 + + '@vscode/emmet-helper@2.11.0': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + '@vscode/l10n@0.0.18': {} + + '@xmldom/xmldom@0.8.11': {} + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-colors@4.1.3: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array-iterate@2.0.1: {} + + array-union@2.1.0: {} + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + assertion-error@2.0.1: {} + + ast-types-flow@0.0.8: {} + + ast-v8-to-istanbul@0.3.5: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 9.0.1 + + astring@1.9.0: {} + + astro-eslint-parser@1.2.2: + dependencies: + '@astrojs/compiler': 2.13.0 + '@typescript-eslint/scope-manager': 8.45.0 + '@typescript-eslint/types': 8.45.0 + astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.13.0) + debug: 4.4.3 + entities: 6.0.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + astro-integration-kit@0.19.0(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1)): + dependencies: + astro: 5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1) + pathe: 1.1.2 + + astro-loader-i18n@0.8.1(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1)): + dependencies: + astro: 5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1) + + astro-nanostores-i18n@0.1.6(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1))(nanostores@1.0.1): + dependencies: + '@astrojs/compiler': 2.13.0 + '@nanostores/i18n': 1.2.2(nanostores@1.0.1) + astro: 5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1) + astro-integration-kit: 0.19.0(astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1)) + fast-glob: 3.3.3 + nanostores: 1.0.1 + typescript: 5.9.3 + + astro@5.14.1(@types/node@24.7.0)(jiti@2.6.1)(rollup@4.52.4)(typescript@5.9.3)(yaml@2.8.1): + dependencies: + '@astrojs/compiler': 2.13.0 + '@astrojs/internal-helpers': 0.7.3 + '@astrojs/markdown-remark': 6.3.7 + '@astrojs/telemetry': 3.3.0 + '@capsizecss/unpack': 2.4.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.3.0(rollup@4.52.4) + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.3.1 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 1.0.2 + cssesc: 3.0.0 + debug: 4.4.3 + deterministic-object-hash: 2.0.2 + devalue: 5.3.2 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.7.0 + esbuild: 0.25.10 + estree-walker: 3.0.3 + flattie: 1.1.1 + fontace: 0.3.1 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.2.0 + import-meta-resolve: 4.2.0 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.19 + magicast: 0.3.5 + mrmime: 2.0.1 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.1.1 + package-manager-detector: 1.4.0 + picomatch: 4.0.3 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.7.2 + shiki: 3.13.0 + smol-toml: 1.4.2 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tsconfck: 3.1.6(typescript@5.9.3) + ultrahtml: 1.6.0 + unifont: 0.5.2 + unist-util-visit: 5.0.0 + unstorage: 1.17.1 + vfile: 6.0.3 + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + vitefu: 1.1.1(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1)) + xxhash-wasm: 1.1.0 + yargs-parser: 21.1.1 + yocto-spinner: 0.2.3 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) + optionalDependencies: + sharp: 0.34.4 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - encoding + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - yaml + + astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.13.0): + dependencies: + '@astrojs/compiler': 2.13.0 + synckit: 0.11.11 + + async-function@1.0.0: {} + + async@3.2.6: {} + + author-regex@1.0.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.10.3: {} + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + base-64@1.0.0: {} + + base64-js@1.5.1: {} + + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + + blob-to-buffer@1.2.9: {} + + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brotli@1.3.3: + dependencies: + base64-js: 1.5.1 + + cac@6.7.14: {} + + cacache@20.0.1: + dependencies: + '@npmcli/fs': 4.0.0 + fs-minipass: 3.0.3 + glob: 11.0.3 + lru-cache: 11.2.2 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 7.0.3 + ssri: 12.0.0 + unique-filename: 4.0.0 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@8.0.0: {} + + ccount@2.0.1: {} + + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.6.2: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chardet@2.1.0: {} + + check-error@2.1.1: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + ci-info@3.9.0: {} + + ci-info@4.3.1: {} + + cli-boxes@3.0.0: {} + + cli-width@4.1.0: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-buffer@1.0.0: {} + + clone-stats@1.0.0: {} + + clone@2.1.2: {} + + cloneable-readable@1.1.3: + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.8 + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-convert@3.1.2: + dependencies: + color-name: 2.0.2 + + color-name@1.1.4: {} + + color-name@2.0.2: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + + color-string@2.1.2: + dependencies: + color-name: 2.0.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + color@5.0.2: + dependencies: + color-convert: 3.1.2 + color-string: 2.1.2 + + comma-separated-tokens@2.0.3: {} + + commander@7.2.0: {} + + common-ancestor-path@1.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.4.2: {} + + cookie-es@1.2.2: {} + + cookie@1.0.2: {} + + core-util-is@1.0.3: {} + + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + + css-select@4.3.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.2.2 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + + css-selector-parser@1.4.1: {} + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + css-what@6.2.2: {} + + cssesc@3.0.0: {} + + csso@4.2.0: + dependencies: + css-tree: 1.1.3 + + cssom@0.5.0: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.2.0: + dependencies: + character-entities: 2.0.2 + + deep-eql@5.0.2: {} + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + dequal@2.0.3: {} + + destr@2.0.5: {} + + detect-indent@6.1.0: {} + + detect-libc@2.1.2: {} + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.3.2: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + dfa@1.2.0: {} + + diff@5.2.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + domelementtype@2.3.0: {} + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + dset@3.1.4: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + eastasianwidth@0.2.0: {} + + embla-carousel-autoplay@8.6.0(embla-carousel@8.6.0): + dependencies: + embla-carousel: 8.6.0 + + embla-carousel-class-names@8.6.0(embla-carousel@8.6.0): + dependencies: + embla-carousel: 8.6.0 + + embla-carousel@8.6.0: {} + + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.5.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enabled@2.0.0: {} + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + entities@2.2.0: {} + + entities@6.0.1: {} + + es-abstract@1.24.0: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.15.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.3 + + esbuild@0.25.10: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.10 + '@esbuild/android-arm': 0.25.10 + '@esbuild/android-arm64': 0.25.10 + '@esbuild/android-x64': 0.25.10 + '@esbuild/darwin-arm64': 0.25.10 + '@esbuild/darwin-x64': 0.25.10 + '@esbuild/freebsd-arm64': 0.25.10 + '@esbuild/freebsd-x64': 0.25.10 + '@esbuild/linux-arm': 0.25.10 + '@esbuild/linux-arm64': 0.25.10 + '@esbuild/linux-ia32': 0.25.10 + '@esbuild/linux-loong64': 0.25.10 + '@esbuild/linux-mips64el': 0.25.10 + '@esbuild/linux-ppc64': 0.25.10 + '@esbuild/linux-riscv64': 0.25.10 + '@esbuild/linux-s390x': 0.25.10 + '@esbuild/linux-x64': 0.25.10 + '@esbuild/netbsd-arm64': 0.25.10 + '@esbuild/netbsd-x64': 0.25.10 + '@esbuild/openbsd-arm64': 0.25.10 + '@esbuild/openbsd-x64': 0.25.10 + '@esbuild/openharmony-arm64': 0.25.10 + '@esbuild/sunos-x64': 0.25.10 + '@esbuild/win32-arm64': 0.25.10 + '@esbuild/win32-ia32': 0.25.10 + '@esbuild/win32-x64': 0.25.10 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.6.5(eslint@9.37.0(jiti@2.6.1)): + dependencies: + eslint: 9.37.0(jiti@2.6.1) + semver: 7.7.2 + + eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.1)): + dependencies: + eslint: 9.37.0(jiti@2.6.1) + + eslint-plugin-astro@1.3.1(eslint@9.37.0(jiti@2.6.1)): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@jridgewell/sourcemap-codec': 1.5.5 + '@typescript-eslint/types': 8.45.0 + astro-eslint-parser: 1.2.2 + eslint: 9.37.0(jiti@2.6.1) + eslint-compat-utils: 0.6.5(eslint@9.37.0(jiti@2.6.1)) + globals: 15.15.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@9.37.0(jiti@2.6.1)): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.9 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.3 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 9.37.0(jiti@2.6.1) + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.1)))(eslint@9.37.0(jiti@2.6.1))(prettier@3.6.2): + dependencies: + eslint: 9.37.0(jiti@2.6.1) + prettier: 3.6.2 + prettier-linter-helpers: 1.0.0 + synckit: 0.11.11 + optionalDependencies: + eslint-config-prettier: 10.1.8(eslint@9.37.0(jiti@2.6.1)) + + eslint-scope@8.4.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.1: {} + + eslint@9.37.0(jiti@2.6.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.21.0 + '@eslint/config-helpers': 0.4.0 + '@eslint/core': 0.16.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.37.0 + '@eslint/plugin-kit': 0.4.0 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.6.1 + transitivePeerDependencies: + - supports-color + + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.8 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.6 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + expect-type@1.2.2: {} + + extend@3.0.2: {} + + extendable-error@0.1.7: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.1.0: {} + + fast-xml-parser@5.3.0: + dependencies: + strnum: 2.1.1 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + favicons@7.2.0: + dependencies: + escape-html: 1.0.3 + sharp: 0.33.5 + xml2js: 0.6.2 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fecha@4.2.3: {} + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + flattie@1.1.1: {} + + fn.name@1.1.0: {} + + fontace@0.3.1: + dependencies: + '@types/fontkit': 2.0.8 + fontkit: 2.0.4 + + fontkit@2.0.4: + dependencies: + '@swc/helpers': 0.5.17 + brotli: 1.3.3 + clone: 2.1.2 + dfa: 1.2.0 + fast-deep-equal: 3.1.3 + restructure: 3.0.2 + tiny-inflate: 1.0.3 + unicode-properties: 1.4.1 + unicode-trie: 2.0.0 + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.4.0: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + github-slugger@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.3: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.1.1 + minimatch: 10.0.3 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@14.0.0: {} + + globals@15.15.0: {} + + globals@16.4.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + h3@1.15.4: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.3 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-heading-rank@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.8 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.17 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.17 + unist-util-position: 5.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + + hepburn@1.2.2: {} + + hosted-git-info@9.0.0: + dependencies: + lru-cache: 11.2.2 + + html-escaper@2.0.2: {} + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + http-cache-semantics@4.2.0: {} + + human-id@4.1.1: {} + + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.2.0: {} + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + inline-style-parser@0.2.4: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + iron-webcrypto@1.2.1: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.3.4: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-decimal@2.0.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-map@2.0.3: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.19 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-windows@1.0.2: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.1.1: + dependencies: + '@isaacs/cliui': 8.0.2 + + jiti@2.6.1: {} + + js-tokens@9.0.1: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kleur@3.0.3: {} + + kleur@4.1.5: {} + + kuler@2.0.0: {} + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + limax@4.2.1: + dependencies: + hepburn: 1.2.2 + lodash.deburr: 4.1.0 + pinyin-pro: 3.27.0 + speakingurl: 14.0.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.deburr@4.1.0: {} + + lodash.escape@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.startcase@4.4.0: {} + + lodash@4.17.21: {} + + logform@2.7.0: + dependencies: + '@colors/colors': 1.6.0 + '@types/triple-beam': 1.3.5 + fecha: 4.2.3 + ms: 2.1.3 + safe-stable-stringify: 2.5.0 + triple-beam: 1.4.1 + + longest-streak@3.1.0: {} + + loupe@3.2.1: {} + + lru-cache@10.4.3: {} + + lru-cache@11.2.2: {} + + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + source-map-js: 1.2.1 + + make-dir@4.0.0: + dependencies: + semver: 7.7.2 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.4: {} + + math-intrinsics@1.1.0: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.3 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.14: {} + + mdn-data@2.12.2: {} + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.8 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.3 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.2.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.8 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.3 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.2.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime@4.1.0: {} + + minimatch@10.0.3: + dependencies: + '@isaacs/brace-expansion': 5.0.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@7.1.2: {} + + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + mri@1.2.0: {} + + mrmime@2.0.1: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + mustache@4.2.0: {} + + mute-stream@2.0.0: {} + + nanoid@3.3.11: {} + + nanostores@1.0.1: {} + + natural-compare@1.4.0: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-fetch-native@1.6.7: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-mock-http@1.0.3: {} + + normalize-package-data@8.0.0: + dependencies: + hosted-git-info: 9.0.0 + semver: 7.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + ofetch@1.4.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.1 + + ohash@2.0.11: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + one-time@1.0.0: + dependencies: + fn.name: 1.1.0 + + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + outdent@0.5.0: {} + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@6.2.0: + dependencies: + yocto-queue: 1.2.1 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@2.1.0: {} + + p-map@7.0.3: {} + + p-queue@8.1.1: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.4 + + p-timeout@6.1.4: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.11: + dependencies: + quansync: 0.2.11 + + package-manager-detector@1.4.0: {} + + pagefind@1.4.0: + optionalDependencies: + '@pagefind/darwin-arm64': 1.4.0 + '@pagefind/darwin-x64': 1.4.0 + '@pagefind/freebsd-x64': 1.4.0 + '@pagefind/linux-arm64': 1.4.0 + '@pagefind/linux-x64': 1.4.0 + '@pagefind/windows-x64': 1.4.0 + + pako@0.2.9: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-author@2.0.0: + dependencies: + author-regex: 1.0.0 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.2.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5@7.3.0: + dependencies: + entities: 6.0.1 + + parse5@8.0.0: + dependencies: + entities: 6.0.1 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.2.2 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + pathval@2.0.1: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pify@4.0.1: {} + + pinyin-pro@3.27.0: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + possible-typed-array-names@1.1.0: {} + + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-astro@0.14.1: + dependencies: + '@astrojs/compiler': 2.13.0 + prettier: 3.6.2 + sass-formatter: 0.7.9 + + prettier@2.8.7: + optional: true + + prettier@2.8.8: {} + + prettier@3.6.2: {} + + prettysize@2.0.0: {} + + prismjs@1.30.0: {} + + process-nextick-args@2.0.1: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@6.5.0: {} + + property-information@7.1.0: {} + + punycode@2.3.1: {} + + quansync@0.2.11: {} + + queue-microtask@1.2.3: {} + + radix3@1.1.2: {} + + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@4.1.2: {} + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.1(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.8 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.8 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + rehype-autolink-headings@7.1.0: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.0 + hast-util-heading-rank: 3.0.0 + hast-util-is-element: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + rehype-slug@6.0.0: + dependencies: + '@types/hast': 3.0.4 + github-slugger: 2.0.0 + hast-util-heading-rank: 3.0.0 + hast-util-to-string: 3.0.1 + unist-util-visit: 5.0.0 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-gfm@4.0.1: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remove-trailing-separator@1.1.0: {} + + replace-ext@1.0.1: {} + + request-light@0.5.8: {} + + request-light@0.7.0: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + restructure@3.0.2: {} + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + reusify@1.1.0: {} + + rollup@4.52.4: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.52.4 + '@rollup/rollup-android-arm64': 4.52.4 + '@rollup/rollup-darwin-arm64': 4.52.4 + '@rollup/rollup-darwin-x64': 4.52.4 + '@rollup/rollup-freebsd-arm64': 4.52.4 + '@rollup/rollup-freebsd-x64': 4.52.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 + '@rollup/rollup-linux-arm-musleabihf': 4.52.4 + '@rollup/rollup-linux-arm64-gnu': 4.52.4 + '@rollup/rollup-linux-arm64-musl': 4.52.4 + '@rollup/rollup-linux-loong64-gnu': 4.52.4 + '@rollup/rollup-linux-ppc64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-gnu': 4.52.4 + '@rollup/rollup-linux-riscv64-musl': 4.52.4 + '@rollup/rollup-linux-s390x-gnu': 4.52.4 + '@rollup/rollup-linux-x64-gnu': 4.52.4 + '@rollup/rollup-linux-x64-musl': 4.52.4 + '@rollup/rollup-openharmony-arm64': 4.52.4 + '@rollup/rollup-win32-arm64-msvc': 4.52.4 + '@rollup/rollup-win32-ia32-msvc': 4.52.4 + '@rollup/rollup-win32-x64-gnu': 4.52.4 + '@rollup/rollup-win32-x64-msvc': 4.52.4 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + s.color@0.0.15: {} + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-stable-stringify@2.5.0: {} + + safer-buffer@2.1.2: {} + + sass-formatter@0.7.9: + dependencies: + suf-log: 2.5.3 + + sax@1.4.1: {} + + semver@7.7.2: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.1.2 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + + sharp@0.34.4: + dependencies: + '@img/colour': 1.0.0 + detect-libc: 2.1.2 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.4 + '@img/sharp-darwin-x64': 0.34.4 + '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-linux-arm': 0.34.4 + '@img/sharp-linux-arm64': 0.34.4 + '@img/sharp-linux-ppc64': 0.34.4 + '@img/sharp-linux-s390x': 0.34.4 + '@img/sharp-linux-x64': 0.34.4 + '@img/sharp-linuxmusl-arm64': 0.34.4 + '@img/sharp-linuxmusl-x64': 0.34.4 + '@img/sharp-wasm32': 0.34.4 + '@img/sharp-win32-arm64': 0.34.4 + '@img/sharp-win32-ia32': 0.34.4 + '@img/sharp-win32-x64': 0.34.4 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@3.13.0: + dependencies: + '@shikijs/core': 3.13.0 + '@shikijs/engine-javascript': 3.13.0 + '@shikijs/engine-oniguruma': 3.13.0 + '@shikijs/langs': 3.13.0 + '@shikijs/themes': 3.13.0 + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + + simple-git@3.28.0: + dependencies: + '@kwsites/file-exists': 1.1.1 + '@kwsites/promise-deferred': 1.1.1 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + sitemap@8.0.0: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + + slash@3.0.0: {} + + smol-toml@1.4.2: {} + + source-map-js@1.2.1: {} + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + space-separated-tokens@2.0.2: {} + + spawndamnit@3.0.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.22 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + + spdx-license-ids@3.0.22: {} + + speakingurl@14.0.1: {} + + sprintf-js@1.0.3: {} + + ssri@12.0.0: + dependencies: + minipass: 7.1.2 + + stable@0.1.8: {} + + stack-trace@0.0.10: {} + + stackback@0.0.2: {} + + std-env@3.9.0: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + stream-replace-string@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.5.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.2: + dependencies: + ansi-regex: 6.2.2 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + + strnum@2.1.1: {} + + style-to-js@1.1.17: + dependencies: + style-to-object: 1.0.9 + + style-to-object@1.0.9: + dependencies: + inline-style-parser: 0.2.4 + + suf-log@2.5.3: + dependencies: + s.color: 0.0.15 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + svg-sprite@2.0.4: + dependencies: + '@resvg/resvg-js': 2.6.2 + '@xmldom/xmldom': 0.8.11 + async: 3.2.6 + css-selector-parser: 1.4.1 + csso: 4.2.0 + cssom: 0.5.0 + glob: 7.2.3 + js-yaml: 4.1.0 + lodash.escape: 4.0.1 + lodash.merge: 4.6.2 + mustache: 4.2.0 + prettysize: 2.0.0 + svgo: 2.8.0 + vinyl: 2.2.1 + winston: 3.18.3 + xpath: 0.0.34 + yargs: 17.7.2 + + svgo@2.8.0: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.1.1 + stable: 0.1.8 + + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + + term-size@2.2.1: {} + + test-exclude@7.0.1: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.5 + minimatch: 9.0.5 + + text-hex@1.0.0: {} + + tiny-inflate@1.0.3: {} + + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.4: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + totalist@3.0.1: {} + + tr46@0.0.3: {} + + trim-lines@3.0.1: {} + + triple-beam@1.4.1: {} + + trough@2.2.0: {} + + ts-api-utils@2.1.0(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + tsconfck@3.1.6(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@4.41.0: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.6: + dependencies: + semver: 7.7.2 + + typescript-eslint@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.45.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.37.0(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + typescript@5.9.3: {} + + ufo@1.6.1: {} + + ultrahtml@1.6.0: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + uncrypto@0.1.3: {} + + undici-types@7.14.0: {} + + unicode-properties@1.4.1: + dependencies: + base64-js: 1.5.1 + unicode-trie: 2.0.0 + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unifont@0.5.2: + dependencies: + css-tree: 3.1.0 + ofetch: 1.4.1 + ohash: 2.0.11 + + unique-filename@4.0.0: + dependencies: + unique-slug: 5.0.0 + + unique-slug@5.0.0: + dependencies: + imurmurhash: 0.1.4 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@0.1.2: {} + + unplugin@2.3.10: + dependencies: + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + + unstorage@1.17.1: + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.4 + lru-cache: 10.4.3 + node-fetch-native: 1.6.7 + ofetch: 1.4.1 + ufo: 1.6.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + + vinyl@2.2.1: + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + + vite-node@3.2.4(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1): + dependencies: + esbuild: 0.25.10 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.52.4 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.7.0 + fsevents: 2.3.3 + jiti: 2.6.1 + yaml: 2.8.1 + + vitefu@1.1.1(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1)): + optionalDependencies: + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1): + dependencies: + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.2.2 + magic-string: 0.30.19 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.9.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 6.3.5(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.7.0)(jiti@2.6.1)(yaml@2.8.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 24.7.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + volar-service-css@0.0.62(@volar/language-service@2.4.23): + dependencies: + vscode-css-languageservice: 6.3.8 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + volar-service-emmet@0.0.62(@volar/language-service@2.4.23): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.11.0 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + volar-service-html@0.0.62(@volar/language-service@2.4.23): + dependencies: + vscode-html-languageservice: 5.5.2 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + volar-service-prettier@0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2): + dependencies: + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + prettier: 3.6.2 + + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.23): + dependencies: + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + volar-service-typescript@0.0.62(@volar/language-service@2.4.23): + dependencies: + path-browserify: 1.0.1 + semver: 7.7.2 + typescript-auto-import-cache: 0.3.6 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.1.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + volar-service-yaml@0.0.62(@volar/language-service@2.4.23): + dependencies: + vscode-uri: 3.1.0 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.23 + + vscode-css-languageservice@6.3.8: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + vscode-html-languageservice@5.5.2: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.1.0 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@3.1.0: {} + + web-namespaces@2.0.1: {} + + webidl-conversions@3.0.1: {} + + webpack-virtual-modules@0.6.2: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-pm-runs@1.1.0: {} + + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + winston-transport@4.9.0: + dependencies: + logform: 2.7.0 + readable-stream: 3.6.2 + triple-beam: 1.4.1 + + winston@3.18.3: + dependencies: + '@colors/colors': 1.6.0 + '@dabh/diagnostics': 2.0.8 + async: 3.2.6 + is-stream: 2.0.1 + logform: 2.7.0 + one-time: 1.0.0 + readable-stream: 3.6.2 + safe-stable-stringify: 2.5.0 + stack-trace: 0.0.10 + triple-beam: 1.4.1 + winston-transport: 4.9.0 + + word-wrap@1.2.5: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 + + wrappy@1.0.2: {} + + xml2js@0.6.2: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + xpath@0.0.34: {} + + xxhash-wasm@1.1.0: {} + + y18n@5.0.8: {} + + yallist@4.0.0: {} + + yaml-language-server@1.15.0: + dependencies: + ajv: 8.17.1 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.1.0 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + + yaml@2.2.2: {} + + yaml@2.8.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + yocto-queue@1.2.1: {} + + yocto-spinner@0.2.3: + dependencies: + yoctocolors: 2.1.2 + + yoctocolors-cjs@2.1.3: {} + + yoctocolors@2.1.2: {} + + zod-to-json-schema@3.24.6(zod@3.25.76): + dependencies: + zod: 3.25.76 + + zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): + dependencies: + typescript: 5.9.3 + zod: 3.25.76 + + zod@3.25.76: {} + + zwitch@2.0.4: {} diff --git a/prettier.config.mjs b/prettier.config.mjs new file mode 100644 index 00000000..a24e41c2 --- /dev/null +++ b/prettier.config.mjs @@ -0,0 +1,15 @@ +/** @type {import("prettier").Config} */ +export default { + printWidth: 120, + useTabs: false, + semi: true, + plugins: ["prettier-plugin-astro"], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 00000000..43f4c9e6 Binary files /dev/null and b/public/favicon.ico differ diff --git a/src/fonts/2MASSJ1808-Heavy.ttf b/public/fonts/2MASSJ1808-Heavy.ttf similarity index 100% rename from src/fonts/2MASSJ1808-Heavy.ttf rename to public/fonts/2MASSJ1808-Heavy.ttf diff --git a/src/fonts/2MASSJ1808-Heavy.woff b/public/fonts/2MASSJ1808-Heavy.woff similarity index 100% rename from src/fonts/2MASSJ1808-Heavy.woff rename to public/fonts/2MASSJ1808-Heavy.woff diff --git a/src/fonts/2MASSJ1808-Heavy.woff2 b/public/fonts/2MASSJ1808-Heavy.woff2 similarity index 100% rename from src/fonts/2MASSJ1808-Heavy.woff2 rename to public/fonts/2MASSJ1808-Heavy.woff2 diff --git a/src/fonts/2MASSJ1808-Normal.ttf b/public/fonts/2MASSJ1808-Normal.ttf similarity index 100% rename from src/fonts/2MASSJ1808-Normal.ttf rename to public/fonts/2MASSJ1808-Normal.ttf diff --git a/src/fonts/2MASSJ1808-Normal.woff b/public/fonts/2MASSJ1808-Normal.woff similarity index 100% rename from src/fonts/2MASSJ1808-Normal.woff rename to public/fonts/2MASSJ1808-Normal.woff diff --git a/src/fonts/2MASSJ1808-Normal.woff2 b/public/fonts/2MASSJ1808-Normal.woff2 similarity index 100% rename from src/fonts/2MASSJ1808-Normal.woff2 rename to public/fonts/2MASSJ1808-Normal.woff2 diff --git a/renovate.json b/renovate.json index 962306aa..58bc1b14 100644 --- a/renovate.json +++ b/renovate.json @@ -1,22 +1,13 @@ { - "extends": [ - "config:base" - ], + "extends": ["config:base"], "packageRules": [ { - "matchPackagePatterns": [ - "*" - ], - "matchUpdateTypes": [ - "minor", - "patch" - ], + "matchPackagePatterns": ["*"], + "matchUpdateTypes": ["minor", "patch"], "groupName": "all non-major dependencies", "groupSlug": "all-minor-patch", "automerge": true, - "labels": [ - "dependencies" - ] + "labels": ["dependencies"] } ] } diff --git a/res/collaboration.jpg b/res/collaboration.jpg new file mode 100644 index 00000000..54d3ef32 Binary files /dev/null and b/res/collaboration.jpg differ diff --git a/res/dogli.svg b/res/dogli.svg new file mode 100644 index 00000000..42529e11 --- /dev/null +++ b/res/dogli.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/images/icon.png b/res/icon.png similarity index 100% rename from content/images/icon.png rename to res/icon.png diff --git a/res/sprite/api.svg b/res/sprite/api.svg new file mode 100644 index 00000000..c019a4df --- /dev/null +++ b/res/sprite/api.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/architecture.svg b/res/sprite/architecture.svg new file mode 100644 index 00000000..7820a21e --- /dev/null +++ b/res/sprite/architecture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/images/arrow.svg b/res/sprite/arrow.svg similarity index 100% rename from content/images/arrow.svg rename to res/sprite/arrow.svg diff --git a/content/images/brand.svg b/res/sprite/brand.svg similarity index 100% rename from content/images/brand.svg rename to res/sprite/brand.svg diff --git a/res/sprite/calendar.svg b/res/sprite/calendar.svg new file mode 100644 index 00000000..0c22f190 --- /dev/null +++ b/res/sprite/calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/consulting.svg b/res/sprite/consulting.svg new file mode 100644 index 00000000..e41e5f2c --- /dev/null +++ b/res/sprite/consulting.svg @@ -0,0 +1 @@ + diff --git a/content/images/cooperation.svg b/res/sprite/cooperation.svg similarity index 100% rename from content/images/cooperation.svg rename to res/sprite/cooperation.svg diff --git a/res/sprite/course.svg b/res/sprite/course.svg new file mode 100644 index 00000000..e8648037 --- /dev/null +++ b/res/sprite/course.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/education.svg b/res/sprite/education.svg new file mode 100644 index 00000000..9372d5fe --- /dev/null +++ b/res/sprite/education.svg @@ -0,0 +1 @@ + diff --git a/content/images/github.svg b/res/sprite/github.svg similarity index 100% rename from content/images/github.svg rename to res/sprite/github.svg diff --git a/res/sprite/iam.svg b/res/sprite/iam.svg new file mode 100644 index 00000000..2a3f551a --- /dev/null +++ b/res/sprite/iam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/images/illustration.svg b/res/sprite/illustration.svg similarity index 100% rename from content/images/illustration.svg rename to res/sprite/illustration.svg diff --git a/content/images/linkedin.svg b/res/sprite/linkedin.svg similarity index 100% rename from content/images/linkedin.svg rename to res/sprite/linkedin.svg diff --git a/res/sprite/logo-astro.svg b/res/sprite/logo-astro.svg new file mode 100644 index 00000000..48fefac6 --- /dev/null +++ b/res/sprite/logo-astro.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-css.svg b/res/sprite/logo-css.svg new file mode 100644 index 00000000..a145f6fe --- /dev/null +++ b/res/sprite/logo-css.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-docker.svg b/res/sprite/logo-docker.svg new file mode 100644 index 00000000..41257baf --- /dev/null +++ b/res/sprite/logo-docker.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-forgejo.svg b/res/sprite/logo-forgejo.svg new file mode 100644 index 00000000..e4703a1f --- /dev/null +++ b/res/sprite/logo-forgejo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-graphql.svg b/res/sprite/logo-graphql.svg new file mode 100644 index 00000000..53a96c12 --- /dev/null +++ b/res/sprite/logo-graphql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-html5.svg b/res/sprite/logo-html5.svg new file mode 100644 index 00000000..4dc79636 --- /dev/null +++ b/res/sprite/logo-html5.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-kubernetes.svg b/res/sprite/logo-kubernetes.svg new file mode 100644 index 00000000..6eba8721 --- /dev/null +++ b/res/sprite/logo-kubernetes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-mantine.svg b/res/sprite/logo-mantine.svg new file mode 100644 index 00000000..2b9c7f59 --- /dev/null +++ b/res/sprite/logo-mantine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-nestjs.svg b/res/sprite/logo-nestjs.svg new file mode 100644 index 00000000..2e48e7fd --- /dev/null +++ b/res/sprite/logo-nestjs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-php.svg b/res/sprite/logo-php.svg new file mode 100644 index 00000000..f9a99ae6 --- /dev/null +++ b/res/sprite/logo-php.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-postgresql.svg b/res/sprite/logo-postgresql.svg new file mode 100644 index 00000000..40a12d05 --- /dev/null +++ b/res/sprite/logo-postgresql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-react.svg b/res/sprite/logo-react.svg new file mode 100644 index 00000000..35873740 --- /dev/null +++ b/res/sprite/logo-react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-ruby.svg b/res/sprite/logo-ruby.svg new file mode 100644 index 00000000..a30b7c1d --- /dev/null +++ b/res/sprite/logo-ruby.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-rubyonrails.svg b/res/sprite/logo-rubyonrails.svg new file mode 100644 index 00000000..77e7da55 --- /dev/null +++ b/res/sprite/logo-rubyonrails.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-supabase.svg b/res/sprite/logo-supabase.svg new file mode 100644 index 00000000..9d65d294 --- /dev/null +++ b/res/sprite/logo-supabase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/logo-typescript.svg b/res/sprite/logo-typescript.svg new file mode 100644 index 00000000..5345602d --- /dev/null +++ b/res/sprite/logo-typescript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/mobile.svg b/res/sprite/mobile.svg new file mode 100644 index 00000000..b5a9f187 --- /dev/null +++ b/res/sprite/mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/presentation.svg b/res/sprite/presentation.svg new file mode 100644 index 00000000..447ea8b8 --- /dev/null +++ b/res/sprite/presentation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/review.svg b/res/sprite/review.svg new file mode 100644 index 00000000..aee296f1 --- /dev/null +++ b/res/sprite/review.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/server.svg b/res/sprite/server.svg new file mode 100644 index 00000000..aa2d788b --- /dev/null +++ b/res/sprite/server.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/software-development.svg b/res/sprite/software-development.svg new file mode 100644 index 00000000..dc1197e3 --- /dev/null +++ b/res/sprite/software-development.svg @@ -0,0 +1 @@ + diff --git a/res/sprite/sprite.json b/res/sprite/sprite.json new file mode 100644 index 00000000..d8468266 --- /dev/null +++ b/res/sprite/sprite.json @@ -0,0 +1,150 @@ +{ + "api": { + "width": "24", + "height": "24" + }, + "architecture": { + "width": "24", + "height": "24" + }, + "arrow": { + "width": "9.387", + "height": "10" + }, + "brand": { + "width": "52.089", + "height": "35.334" + }, + "calendar": { + "width": "24", + "height": "24" + }, + "consulting": { + "width": "24", + "height": "24" + }, + "cooperation": { + "width": "279.47", + "height": "271.35" + }, + "course": { + "width": "24", + "height": "24" + }, + "education": { + "width": "24", + "height": "24" + }, + "github": { + "width": "66.234", + "height": "64.4" + }, + "iam": { + "width": "24", + "height": "24" + }, + "illustration": { + "width": "2000", + "height": "668.01" + }, + "linkedin": { + "width": "63.928", + "height": "63.848" + }, + "logo-astro": { + "width": "24", + "height": "24" + }, + "logo-css": { + "width": "24", + "height": "24" + }, + "logo-docker": { + "width": "24", + "height": "24" + }, + "logo-forgejo": { + "width": "24", + "height": "24" + }, + "logo-graphql": { + "width": "24", + "height": "24" + }, + "logo-html5": { + "width": "24", + "height": "24" + }, + "logo-kubernetes": { + "width": "24", + "height": "24" + }, + "logo-mantine": { + "width": "24", + "height": "24" + }, + "logo-nestjs": { + "width": "24", + "height": "24" + }, + "logo-php": { + "width": "24", + "height": "24" + }, + "logo-postgresql": { + "width": "24", + "height": "24" + }, + "logo-react": { + "width": "24", + "height": "24" + }, + "logo-ruby": { + "width": "24", + "height": "24" + }, + "logo-rubyonrails": { + "width": "24", + "height": "24" + }, + "logo-supabase": { + "width": "24", + "height": "24" + }, + "logo-typescript": { + "width": "24", + "height": "24" + }, + "mobile": { + "width": "24", + "height": "24" + }, + "presentation": { + "width": "24", + "height": "24" + }, + "review": { + "width": "24", + "height": "24" + }, + "server": { + "width": "24", + "height": "24" + }, + "software-development": { + "width": "24", + "height": "24" + }, + "strategy": { + "width": "24", + "height": "24" + }, + "web": { + "width": "24", + "height": "24" + }, + "workshop": { + "width": "24", + "height": "24" + } +} diff --git a/content/images/sprite.json.mustache b/res/sprite/sprite.json.mustache similarity index 100% rename from content/images/sprite.json.mustache rename to res/sprite/sprite.json.mustache diff --git a/res/sprite/strategy.svg b/res/sprite/strategy.svg new file mode 100644 index 00000000..91c7f437 --- /dev/null +++ b/res/sprite/strategy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/web.svg b/res/sprite/web.svg new file mode 100644 index 00000000..17686e0d --- /dev/null +++ b/res/sprite/web.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/sprite/workshop.svg b/res/sprite/workshop.svg new file mode 100644 index 00000000..e3a2ab08 --- /dev/null +++ b/res/sprite/workshop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/res/values.mp4 b/res/values.mp4 new file mode 100644 index 00000000..43ebb219 Binary files /dev/null and b/res/values.mp4 differ diff --git a/setup-test-env.js b/setup-test-env.js deleted file mode 100644 index df6631ee..00000000 --- a/setup-test-env.js +++ /dev/null @@ -1 +0,0 @@ -import "@testing-library/jest-dom" diff --git a/src/components/Arrow.tsx b/src/components/Arrow.tsx deleted file mode 100644 index f3e808e0..00000000 --- a/src/components/Arrow.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { css, Theme } from '@emotion/react'; -import { Sprite } from './Sprite'; - -type ArrowProps = { - rotation?: number; -}; - -export function Arrow({ rotation = 0 }: ArrowProps) { - return ( - css` - fill: ${theme.secondaryColor}; - transform: rotate(${`${rotation}deg`}); - `} - /> - ); -} diff --git a/src/components/BackgroundIcon.astro b/src/components/BackgroundIcon.astro new file mode 100644 index 00000000..74494faa --- /dev/null +++ b/src/components/BackgroundIcon.astro @@ -0,0 +1,33 @@ +--- +import type { ImageMetadata } from "astro"; + +type Props = { + image: ImageMetadata; + dominantColor: string; + otherColor: string; +}; + +const { image, dominantColor, otherColor } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/BackgroundImage.astro b/src/components/BackgroundImage.astro new file mode 100644 index 00000000..8db808aa --- /dev/null +++ b/src/components/BackgroundImage.astro @@ -0,0 +1,23 @@ +--- +import type { ImageMetadata } from "astro"; + +type Props = { + image: ImageMetadata; +}; + +const { image } = Astro.props; +--- + +
+ + diff --git a/src/components/BackgroundVideo.astro b/src/components/BackgroundVideo.astro new file mode 100644 index 00000000..7657ee5c --- /dev/null +++ b/src/components/BackgroundVideo.astro @@ -0,0 +1,33 @@ +--- +type Props = { + videoSrc: string; + videoType?: "mp4" | "webm" | "ogg"; +}; + +const { videoSrc, videoType = "mp4" } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/Burger.astro b/src/components/Burger.astro new file mode 100644 index 00000000..3ba0c92b --- /dev/null +++ b/src/components/Burger.astro @@ -0,0 +1,87 @@ +--- + +--- + + + + + + diff --git a/src/components/BurgerButton.tsx b/src/components/BurgerButton.tsx deleted file mode 100644 index ea4866d7..00000000 --- a/src/components/BurgerButton.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import { css, Theme } from '@emotion/react'; - -const burgerButtonStyles = (theme: Theme) => css` - width: 2.5rem; - position: relative; - height: 2rem; - width: 3rem; - z-index: 30; - display: none; - - @media screen and (max-width: ${theme.breakpoints.small}) { - display: block; - } - - div, - &::after, - &::before { - width: 100%; - height: 0.3rem; - border-radius: 0.1rem; - background-color: ${theme.backgroundColor}; - transition: - top 0.05s 0.1s, - bottom 0.05s 0.1s, - transform 0.1s; - content: ''; - display: block; - position: absolute; - left: 0; - } - - &:hover { - div, - &::after, - &::before { - background-color: ${theme.secondaryColor}; - } - } - - div { - top: 50%; - transform: translateY(-50%); - } - - &::before { - top: 0; - } - - &::after { - bottom: 0; - } - - &.open { - div { - display: none; - } - - &::before, - &::after { - top: 40%; - bottom: 40%; - background-color: ${theme.secondaryColor}; - // reverse transition - transition: - transform 0.1s 0.05s, - top 0.05s, - bottom 0.05s; - } - - &::before { - transform: rotate(-45deg); - } - &::after { - transform: rotate(45deg); - } - } -`; - -type BurgerButtonProps = { - isOpen: boolean; - onClick: () => void; -}; - -export function BurgerButton({ isOpen, onClick }: BurgerButtonProps) { - return ( - - ); -} diff --git a/src/components/Button.astro b/src/components/Button.astro new file mode 100644 index 00000000..618abef3 --- /dev/null +++ b/src/components/Button.astro @@ -0,0 +1,31 @@ +--- +import Sprite from "./Sprite.astro"; + +type Props = { + href: string; + withArrow?: boolean; +}; + +const { href, withArrow } = Astro.props; +--- + + + + {withArrow && } + + + diff --git a/src/components/Carousel.astro b/src/components/Carousel.astro new file mode 100644 index 00000000..211ac257 --- /dev/null +++ b/src/components/Carousel.astro @@ -0,0 +1,142 @@ +--- +import Sprite from "./Sprite.astro"; +--- + + + + + + diff --git a/src/components/DividedSection.tsx b/src/components/DividedSection.tsx deleted file mode 100644 index aa458a60..00000000 --- a/src/components/DividedSection.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Fragment, PropsWithChildren } from 'react'; -import { SingleColorDivider } from './SingleColorDivider'; - -type Props = PropsWithChildren<{ - upperColor: string; - lowerColor: string; - flipVertically?: boolean; - flipHorizontally?: boolean; - className?: string; -}>; - -export function DividedSection({ children, flipVertically, flipHorizontally, upperColor, lowerColor, className }: Props) { - return ( - -
{children}
- -
- ); -} diff --git a/src/components/Divider.astro b/src/components/Divider.astro new file mode 100644 index 00000000..ca39b60e --- /dev/null +++ b/src/components/Divider.astro @@ -0,0 +1,50 @@ +--- +type Props = { + flipVertical?: boolean; + flipHorizontal?: boolean; + fixAntialiasingBottom?: boolean; + fixAntialiasingTop?: boolean; + kind?: "multi" | "single"; + firstSegmentColor?: string; + secondSegmentColor?: string; + height?: string; +}; + +const { + flipVertical = false, + flipHorizontal = false, + fixAntialiasingTop = false, + fixAntialiasingBottom = false, + kind = "single", + firstSegmentColor = "", + secondSegmentColor = "", + height = "", +} = Astro.props; + +const style = `transform: scaleX(${flipHorizontal ? -1 : 1}) scaleY(${flipVertical ? -1 : 1})${fixAntialiasingTop ? "; margin-block-start: -1.1px;" : ""}${fixAntialiasingBottom ? "; margin-block-end: -1.1px;" : ""}`; +--- + +{ + kind === "single" ? ( + + + + ) : null +} +{ + kind === "multi" ? ( + + + + + ) : null +} + + diff --git a/src/components/ForwardBackwardSections.tsx b/src/components/ForwardBackwardSections.tsx deleted file mode 100644 index ae2d4a7d..00000000 --- a/src/components/ForwardBackwardSections.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { css, Theme, useTheme } from '@emotion/react'; -import { Fragment, PropsWithChildren } from 'react'; -import { LocalizedLink } from 'gatsby-plugin-i18n-l10n'; -import { DividedSection } from './DividedSection'; -import { Arrow } from './Arrow'; - -const forwardAndBackwardSectionStyle = (theme: Theme) => css` - display: flex; - justify-content: center; - padding-top: var(${theme.variables.gutter}); - padding-bottom: var(${theme.variables.gutter}); - - a { - display: flex; - flex-direction: column; - } - - svg { - margin: 1rem; - height: 2rem; - width: auto; - } -`; - -type ForwardBackwardSectionProps = { - message: string; - path: string; -}; - -function ForwardSection({ message, path }: ForwardBackwardSectionProps) { - const theme = useTheme(); - return ( - - - - {message} - - - ); -} - -function BackwardSection({ message, path }: ForwardBackwardSectionProps) { - return ( -
- - {message} - - -
- ); -} - -type Props = PropsWithChildren<{ - forward: ForwardBackwardSectionProps; - backward: ForwardBackwardSectionProps; -}>; - -export function ForwardBackwardSections({ children, forward, backward }: Props) { - return ( - - - {children} - - - ); -} diff --git a/src/components/LanguageSwitcher.astro b/src/components/LanguageSwitcher.astro new file mode 100644 index 00000000..0ed78968 --- /dev/null +++ b/src/components/LanguageSwitcher.astro @@ -0,0 +1,26 @@ +--- +import { getNameFromLocale } from "../utils/i18n"; + +type Props = { + locale: string; + translations?: Record; +}; + +const { translations, locale: currentLocale } = Astro.props; +--- + + diff --git a/src/components/Link.astro b/src/components/Link.astro new file mode 100644 index 00000000..60f9775f --- /dev/null +++ b/src/components/Link.astro @@ -0,0 +1,43 @@ +--- +// inspired by https://gist.github.com/jacobdalamb/6951a5bc07c9937f2f3991614b3685bc + +import type { HTMLAttributes } from "astro/types"; + +type Props = HTMLAttributes<"a"> & { + href: string | { pathname: string; query?: Record }; +}; +const { href: rawHref, ...attrs } = Astro.props as Props; +const href = (() => { + if (typeof rawHref === "string") { + return rawHref; + } + const { pathname, query } = rawHref; + const searchParams = new URLSearchParams(query); + return `${pathname}?${searchParams.toString()}`; +})(); +const { pathname } = Astro.url; +function isActiveLink(url: string) { + return pathname.startsWith(url) || url === "." || url === "./"; +} +function isExternalLink(url: string) { + return URL.canParse(url); +} +const isExternal = isExternalLink(href); +const isActive = isActiveLink(href); +let relAttribute = {}; +let targetAttribute = {}; +if (isExternal) { + relAttribute = { rel: "external noreferrer" }; + // rel 'nooppener' is implicit with target '_blank' - https://www.stefanjudis.com/today-i-learned/target-blank-implies-rel-noopener/ + targetAttribute = { target: "_blank" }; +} +--- + + + diff --git a/src/components/Navigation.astro b/src/components/Navigation.astro new file mode 100644 index 00000000..da19c17e --- /dev/null +++ b/src/components/Navigation.astro @@ -0,0 +1,45 @@ +--- +import { Image } from "astro:assets"; +import Link from "./Link.astro"; +import type { ImageMetadata } from "astro"; + +type Props = { + iconSize?: number; + items: Array<{ + path: string; + title: string; + icon?: ImageMetadata; + children?: Array; + }>; +}; + +const { iconSize = 16, items } = Astro.props; +--- + + + +
    + { + items.map((item) => ( +
  • + + {item.icon ? {`${item.title} : null} + {item.title} + {Array.isArray(item.children) ? : null} + + {item.children ? ( + + + + ) : null} +
  • + )) + } +
diff --git a/src/components/SingleColorDivider.tsx b/src/components/SingleColorDivider.tsx deleted file mode 100644 index c0f80e77..00000000 --- a/src/components/SingleColorDivider.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { css } from '@emotion/react'; -import { Sprite } from './Sprite'; - -type SingleColorDividerProps = { - upperColor: string; - lowerColor: string; - flipVertically?: boolean; - flipHorizontally?: boolean; -}; - -export function SingleColorDivider({ flipVertically, flipHorizontally, upperColor, lowerColor }: SingleColorDividerProps) { - return ( - - ); -} diff --git a/src/components/Sprite.astro b/src/components/Sprite.astro new file mode 100644 index 00000000..b167cce3 --- /dev/null +++ b/src/components/Sprite.astro @@ -0,0 +1,21 @@ +--- +import SpriteData from "../../res/sprite/sprite.json"; + +type Props = { + name: keyof typeof SpriteData; + class?: string; + viewBox?: string; +}; + +const dimensions = SpriteData[Astro.props.name]; +const { class: className, viewBox, name: spriteName } = Astro.props; +--- + + + + diff --git a/src/components/Sprite.test.tsx b/src/components/Sprite.test.tsx deleted file mode 100644 index 313c263f..00000000 --- a/src/components/Sprite.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { render } from '@testing-library/react'; -import { Sprite } from './Sprite'; - -describe('', () => { - it('should match snapshot', () => { - const { asFragment } = render(); - expect(asFragment()).toMatchSnapshot(); - }); -}); diff --git a/src/components/Sprite.tsx b/src/components/Sprite.tsx deleted file mode 100644 index 6d3cb3a1..00000000 --- a/src/components/Sprite.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import SpriteData from '../../content/images/sprite.json'; - -export type SpriteProps = { - name: keyof typeof SpriteData; - className?: string; - viewBox?: string; -}; - -export function Sprite({ name, className, viewBox }: SpriteProps) { - const dimensions = SpriteData[name]; - - return ( - - - - ); -} diff --git a/src/components/SummaryParagraph.tsx b/src/components/SummaryParagraph.tsx deleted file mode 100644 index 2d18acd8..00000000 --- a/src/components/SummaryParagraph.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { css } from '@emotion/react'; -import { PropsWithChildren } from 'react'; - -const summaryParagraphStyle = css` - font-size: 1.3em; - margin: 0 auto; - line-height: 1.66; -`; - -type SummaryParagraphProps = PropsWithChildren<{}>; - -export function SummaryParagraph({ children }: SummaryParagraphProps) { - return

{children}

; -} diff --git a/src/components/Tabs.astro b/src/components/Tabs.astro new file mode 100644 index 00000000..8450b398 --- /dev/null +++ b/src/components/Tabs.astro @@ -0,0 +1,112 @@ +--- +/** + * Tabs Component + * + * @description A fully accessible tabs component that follows WAI-ARIA guidelines + */ + +type Props = { + /** + * Additional classes to apply to the tabs container + */ + class?: string; + /** + * HTML attributes to spread on the tabs container + */ + [key: string]: string | number | boolean | undefined; +}; + +const { class: className, ...rest } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/TabsList.astro b/src/components/TabsList.astro new file mode 100644 index 00000000..62d3aaff --- /dev/null +++ b/src/components/TabsList.astro @@ -0,0 +1,40 @@ +--- +/** + * TabsList Component + * + * @description A list of tabs within a Tabs component + */ + +type Props = { + /** + * Additional classes to apply to the tabs list container + */ + class?: string; + /** + * HTML attributes to spread on the tabs list + */ + [key: string]: string | number | boolean | undefined; +}; + +const { class: className, ...rest } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/TabsPanel.astro b/src/components/TabsPanel.astro new file mode 100644 index 00000000..1d45b860 --- /dev/null +++ b/src/components/TabsPanel.astro @@ -0,0 +1,65 @@ +--- +/** + * TabsPanel Component + * + * @description A panel within a Tabs component + */ + +type Props = { + /** + * Additional classes to apply to the panel + */ + class?: string; + /** + * Unique identifier for the panel + */ + id: string; + /** + * ID of the tab that labels this panel + */ + labelledby: string; + /** + * Whether this panel is currently selected + * @default false + */ + selected?: boolean; + /** + * HTML attributes to spread on the panel + */ + [key: string]: string | number | boolean | undefined; +}; + +const { class: className, id, labelledby, selected = false, ...rest } = Astro.props; +--- + +
+ +
+ + diff --git a/src/components/TabsTab.astro b/src/components/TabsTab.astro new file mode 100644 index 00000000..fb678ce1 --- /dev/null +++ b/src/components/TabsTab.astro @@ -0,0 +1,78 @@ +--- +/** + * TabsTab Component + * + * @description A tab within a Tabs component + */ + +type Props = { + /** + * Additional classes to apply to the tab + */ + class?: string; + /** + * Unique identifier for the tab + */ + id: string; + /** + * ID of the panel this tab controls + */ + controls: string; + /** + * Whether this tab is currently selected + * @default false + */ + selected?: boolean; + /** + * HTML attributes to spread on the tab + */ + [key: string]: string | number | boolean | undefined; +}; + +const { class: className, id, controls, selected = false, ...rest } = Astro.props; +--- + + + + diff --git a/src/components/TwoColorDivider.tsx b/src/components/TwoColorDivider.tsx deleted file mode 100644 index e3e5b0aa..00000000 --- a/src/components/TwoColorDivider.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { css, Theme } from '@emotion/react'; -import { lighten } from 'polished'; -import { Sprite } from './Sprite'; - -type TwoColorDividerProps = { - flipVertical?: boolean; -}; - -export function TwoColorDivider({ flipVertical }: TwoColorDividerProps) { - return ( - css` - width: 100%; - height: auto; - z-index: 10; - margin-bottom: -1px; // fix subpixel rendering gaps - ${flipVertical && - css` - transform: scaleY(-1); - `} - - use { - --upper-segment: ${theme.primaryColor}; - --lower-segment: ${lighten(theme.brighterSibling, theme.primaryColor)}; - } - `} - /> - ); -} diff --git a/src/components/__snapshots__/Sprite.test.tsx.snap b/src/components/__snapshots__/Sprite.test.tsx.snap deleted file mode 100644 index 09cacd60..00000000 --- a/src/components/__snapshots__/Sprite.test.tsx.snap +++ /dev/null @@ -1,15 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` should match snapshot 1`] = ` - - - - - -`; diff --git a/.env.example b/src/components/_global.css similarity index 100% rename from .env.example rename to src/components/_global.css diff --git a/src/content.config.ts b/src/content.config.ts new file mode 100644 index 00000000..bb3e53f9 --- /dev/null +++ b/src/content.config.ts @@ -0,0 +1,138 @@ +import { + extendI18nLoaderSchema, + i18nContentLoader, + i18nFileLoader, + i18nLoader, + localized as localizedSchema, +} from "astro-loader-i18n"; +import { defineCollection, z, type ImageFunction } from "astro:content"; +import { localeSlugs } from "./site.config"; +import { glob, file } from "astro/loaders"; + +const localized = (schema: T) => localizedSchema(schema, localeSlugs); + +const Category: z.ZodType = z.object({ + name: z.string(), + subcategories: z.lazy(() => z.array(Category)), +}); + +const createNavigationItem = (image: ImageFunction) => { + const Item = z.object({ + title: z.string(), + path: z.string().url().or(z.string()), + icon: image().optional(), + }); + + return z.object({ + ...Item.shape, + children: z.array(Item).optional(), + }); +}; + +const navigationCollection = defineCollection({ + loader: i18nContentLoader({ pattern: "**/[^_]*.yaml", base: "./src/content/navigation" }), + schema: ({ image }) => + extendI18nLoaderSchema( + z.object({ + items: localized(z.array(createNavigationItem(image))), + }), + ), +}); + +const pagesCollection = defineCollection({ + loader: i18nLoader({ pattern: "**/[^_]*.{md,mdx}", base: "./src/content/pages" }), + schema: extendI18nLoaderSchema( + z.object({ + path: z.string(), + title: z.string(), + template: z.enum(["article"]).optional().default("article"), + }), + ), +}); + +const sectionsCollection = defineCollection({ + loader: glob({ pattern: "**/[^_]*.{md,mdx}", base: "./src/content/sections" }), + schema: z.object({}), +}); + +const referenceCompaniesCollection = defineCollection({ + loader: file("./src/content/references/companies/index.yaml"), + schema: ({ image }) => + z.object({ + id: z.string(), + companyName: z.string(), + logo: image(), + url: z.string().url().optional(), + archived: z.boolean().optional().default(false), + }), +}); + +const referenceProjectsCollection = defineCollection({ + loader: i18nLoader({ pattern: "**/[^_]*.{md,mdx}", base: "./src/content/references/projects" }), + schema: ({ image }) => + extendI18nLoaderSchema( + z.object({ + softwareName: z.string(), + title: z.string(), + summary: z.string(), + logo: image(), + path: z.string().url().optional(), + }), + ), +}); + +const questionsCollection = defineCollection({ + loader: i18nContentLoader({ pattern: "**/[^_]*.yaml", base: "./src/content/questions" }), + schema: extendI18nLoaderSchema( + z.object({ + author: z.string(), + items: localized( + z.array( + z.object({ + question: z.string(), + answer: z.string(), + }), + ), + ), + }), + ), +}); + +const teamCollection = defineCollection({ + loader: i18nFileLoader("./src/content/team/index.yaml"), + schema: ({ image }) => + extendI18nLoaderSchema( + z.object({ + id: z.string(), + name: z.string(), + avatar: image(), + role: localized(z.string()), + }), + ), +}); + +const galleriesCollection = defineCollection({ + loader: i18nContentLoader({ pattern: "**/[^_]*.yaml", base: "./src/content/galleries" }), + schema: ({ image }) => + extendI18nLoaderSchema( + z.object({ + items: z.array( + z.object({ + photo: image(), + label: localized(z.string()), + }), + ), + }), + ), +}); + +export const collections = { + navigation: navigationCollection, + pages: pagesCollection, + sections: sectionsCollection, + referenceCompanies: referenceCompaniesCollection, + referenceProjects: referenceProjectsCollection, + questions: questionsCollection, + team: teamCollection, + galleries: galleriesCollection, +}; diff --git a/src/content/galleries/team.yaml b/src/content/galleries/team.yaml new file mode 100644 index 00000000..2f059464 --- /dev/null +++ b/src/content/galleries/team.yaml @@ -0,0 +1,17 @@ +items: + - photo: ./team/diego-at-work.jpg + label: + de: Diego improvisiert beim Arbeiten + en: Diego improvising while working + - photo: ./team/diego-presents.jpeg + label: + de: Diego präsentiert beim RailsHöck + en: Diego presenting at RailsHöck + - photo: ./team/our-lab.jpg + label: + de: Unser Labor + en: Our lab + - photo: ./team/retraite-2024.jpg + label: + de: Team-Retreat 2024 + en: Team retreat 2024 diff --git a/content/data/galleries/team/20211019_diego_at_work.jpg b/src/content/galleries/team/diego-at-work.jpg similarity index 100% rename from content/data/galleries/team/20211019_diego_at_work.jpg rename to src/content/galleries/team/diego-at-work.jpg diff --git a/src/content/galleries/team/diego-presents.jpeg b/src/content/galleries/team/diego-presents.jpeg new file mode 100644 index 00000000..7b19d757 Binary files /dev/null and b/src/content/galleries/team/diego-presents.jpeg differ diff --git a/src/content/galleries/team/our-lab.jpg b/src/content/galleries/team/our-lab.jpg new file mode 100644 index 00000000..7ff1f788 Binary files /dev/null and b/src/content/galleries/team/our-lab.jpg differ diff --git a/src/content/galleries/team/retraite-2024.jpg b/src/content/galleries/team/retraite-2024.jpg new file mode 100644 index 00000000..ed1e2535 Binary files /dev/null and b/src/content/galleries/team/retraite-2024.jpg differ diff --git a/src/content/navigation/footer.yaml b/src/content/navigation/footer.yaml new file mode 100644 index 00000000..e93eafcd --- /dev/null +++ b/src/content/navigation/footer.yaml @@ -0,0 +1,11 @@ +items: + de: + - path: pages://de/imprint + title: Impressum + - path: pages://de/privacy + title: Datenschutz + en: + - path: pages://en/imprint + title: Imprint + - path: pages://en/privacy + title: Privacy Policy diff --git a/src/content/navigation/main.yaml b/src/content/navigation/main.yaml new file mode 100644 index 00000000..9eae15b2 --- /dev/null +++ b/src/content/navigation/main.yaml @@ -0,0 +1,53 @@ +items: + de: + - path: pages://de/past + title: Vergangenheit + children: + - path: pages://de/past/references + title: Referenzen + - path: pages://de/past/formation + title: Entstehung + - path: pages://de/present + title: Gegenwart + children: + - path: pages://de/present/strengths + title: Stärken + - path: pages://de/present/values + title: Werte + - path: pages://de/present/team + title: Team + - path: pages://de/future + title: Zukunft + children: + - path: pages://de/future/collaboration + title: Zusammenarbeit + - path: pages://de/future/services + title: Dienstleistungen + - path: pages://de/future/jobs + title: Jobs + en: + - path: pages://en/past + title: Past + children: + - path: pages://en/past/references + title: References + - path: pages://en/past/formation + title: Formation + - path: pages://en/present + title: Present + children: + - path: pages://en/present/strengths + title: Strengths + - path: pages://en/present/values + title: Values + - path: pages://en/present/team + title: Team + - path: pages://en/future + title: Future + children: + - path: pages://en/future/collaboration + title: Collaboration + - path: pages://en/future/services + title: Services + - path: pages://en/future/jobs + title: Jobs diff --git a/src/content/pages/de/future.mdx b/src/content/pages/de/future.mdx new file mode 100644 index 00000000..a376de39 --- /dev/null +++ b/src/content/pages/de/future.mdx @@ -0,0 +1,4 @@ +--- +path: zukunft +title: Zukunft +--- diff --git a/src/content/pages/de/future/collaboration.mdx b/src/content/pages/de/future/collaboration.mdx new file mode 100644 index 00000000..1c156cf1 --- /dev/null +++ b/src/content/pages/de/future/collaboration.mdx @@ -0,0 +1,4 @@ +--- +path: zusammenarbeit +title: Zusammenarbeit +--- diff --git a/src/content/pages/de/future/jobs.mdx b/src/content/pages/de/future/jobs.mdx new file mode 100644 index 00000000..b62d1fd8 --- /dev/null +++ b/src/content/pages/de/future/jobs.mdx @@ -0,0 +1,4 @@ +--- +path: jobs +title: Jobs +--- diff --git a/src/content/pages/de/future/services.mdx b/src/content/pages/de/future/services.mdx new file mode 100644 index 00000000..0eeded4a --- /dev/null +++ b/src/content/pages/de/future/services.mdx @@ -0,0 +1,4 @@ +--- +path: dienstleistungen +title: Dienstleistungen +--- diff --git a/src/content/pages/de/imprint.mdx b/src/content/pages/de/imprint.mdx new file mode 100644 index 00000000..339e3ccb --- /dev/null +++ b/src/content/pages/de/imprint.mdx @@ -0,0 +1,32 @@ +--- +path: impressum +title: Impressum +--- + +import Address from "../../../layouts/groups/Address.astro"; +import Phone from "../../../layouts/groups/Phone.astro"; +import Email from "../../../layouts/groups/Email.astro"; + +
+ +Nachfolgend sind die Angaben zur Identität der Eigentümerschaft dieser Webseite zu finden: + +
+
+ +
+ + +## Haftungserklärung + +Haftungsansprüche gegenüber der Eigentümerschaft dieser Webseite, die sich auf Schäden welcher Art auch immer beziehen, die durch die Nutzung oder Nichtnutzung der angebotenen Informationen und Datensätzen bzw. durch die Nutzung fehlerhafter oder unvollständiger Informationen verursacht wurden, sind grundsätzlich ausgeschlossen. + +Die platzierten Angebote sind alle unverbindlich. Die Eigentümerschaft behält sich das Recht vor, Teile der Seite oder das gesamte Angebot ohne Ankündigung zu ändern, zu ergänzen oder zu löschen. + +Verweise zu Inhalte Dritter liegen ausserhalb des Verantwortungsbereichs. Die Verantwortung wird in jedem Fall abgelehnt. + +## Urheberrechtserklärung + +Die Urheber- und alle anderen Rechte an Inhalten, Bildern, Fotos oder anderen Dateien auf dieser Website, gehören ausschliesslich der oberhalb genannten Eigentümerschaft. Für die Reproduktion jeglicher Elemente ist die schriftliche Zustimmung der Eigentümerschaft als Urheberrechtsträgers im Voraus einzuholen. + +
diff --git a/src/content/pages/de/past.mdx b/src/content/pages/de/past.mdx new file mode 100644 index 00000000..d9de0d4e --- /dev/null +++ b/src/content/pages/de/past.mdx @@ -0,0 +1,4 @@ +--- +path: vergangenheit +title: Vergangenheit +--- diff --git a/src/content/pages/de/past/formation.mdx b/src/content/pages/de/past/formation.mdx new file mode 100644 index 00000000..c071ac02 --- /dev/null +++ b/src/content/pages/de/past/formation.mdx @@ -0,0 +1,4 @@ +--- +path: entstehung +title: Entstehung +--- diff --git a/src/content/pages/de/past/references.mdx b/src/content/pages/de/past/references.mdx new file mode 100644 index 00000000..9d7673da --- /dev/null +++ b/src/content/pages/de/past/references.mdx @@ -0,0 +1,4 @@ +--- +path: referenzen +title: Referenzen +--- diff --git a/src/content/pages/de/present.mdx b/src/content/pages/de/present.mdx new file mode 100644 index 00000000..71670b7f --- /dev/null +++ b/src/content/pages/de/present.mdx @@ -0,0 +1,4 @@ +--- +path: gegenwart +title: Gegenwart +--- diff --git a/src/content/pages/de/present/strengths.mdx b/src/content/pages/de/present/strengths.mdx new file mode 100644 index 00000000..7418f873 --- /dev/null +++ b/src/content/pages/de/present/strengths.mdx @@ -0,0 +1,4 @@ +--- +path: staerken +title: Stärken +--- diff --git a/src/content/pages/de/present/team.mdx b/src/content/pages/de/present/team.mdx new file mode 100644 index 00000000..b0bfc05a --- /dev/null +++ b/src/content/pages/de/present/team.mdx @@ -0,0 +1,24 @@ +--- +path: team +title: Team +--- + +import Divider from "../../../../components/Divider.astro"; +import TeamSection from "../../../../layouts/sections/TeamSection.astro"; +import ImpressionsSection from "../../../../layouts/sections/ImpressionsSection.astro"; + +
+ Lernen Sie das Team hinter unserem Unternehmen kennen - eine Gruppe von engagierten und qualifizierten Fachleuten, die mit Leidenschaft massgeschneiderte Softwarelösungen entwickeln, die auf die spezifischen Bedürfnisse unserer Kunden zugeschnitten sind. Neben unserer Expertise in der Softwareentwicklung engagieren wir uns auch für die Förderung der Berufsbildung in der Schweiz. Wir sind ein aufgeschlossenes, ganzheitliches und vertrauenswürdiges Team und freuen uns darauf, bald mit Ihnen gemeinsam in die Welt der Bits und Bytes einzutauchen. +
+ + + + +

Porträts

+
+ + + + +

Impressionen

+
diff --git a/src/content/pages/de/present/values.mdx b/src/content/pages/de/present/values.mdx new file mode 100644 index 00000000..70542d08 --- /dev/null +++ b/src/content/pages/de/present/values.mdx @@ -0,0 +1,4 @@ +--- +path: werte +title: Werte +--- diff --git a/src/content/pages/de/privacy.mdx b/src/content/pages/de/privacy.mdx new file mode 100644 index 00000000..55a16423 --- /dev/null +++ b/src/content/pages/de/privacy.mdx @@ -0,0 +1,173 @@ +--- +path: datenschutz +title: Datenschutzerklärung +--- + +import Address from "../../../layouts/groups/Address.astro"; +import Email from "../../../layouts/groups/Email.astro"; + +
+ +Verantwortliche Stelle im Sinne der Datenschutzgesetze, insbesondere der EU-Datenschutzgrundverordnung (DSGVO), ist: + +
\ +E-Mail: \ +Webseite: https://openscript.ch + +## Allgemeiner Hinweis + +Gestützt auf Artikel 13 der schweizerischen Bundesverfassung und den datenschutzrechtlichen Bestimmungen des Bundes (Datenschutzgesetz, DSG) hat jede Person Anspruch auf Schutz ihrer Privatsphäre sowie auf Schutz vor Missbrauch ihrer persönlichen Daten. Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung. + +In Zusammenarbeit mit unseren Hosting-Providern bemühen wir uns, die Datenbanken so gut wie möglich vor fremden Zugriffen, Verlusten, Missbrauch oder vor Fälschung zu schützen. + +Wir weisen darauf hin, dass die Datenübertragung im Internet (z. B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. + +Durch die Nutzung dieser Website erklären Sie sich mit der Erhebung, Verarbeitung und Nutzung von Daten gemäss der nachfolgenden Beschreibung einverstanden. Diese Website kann grundsätzlich ohne Registrierung besucht werden. Dabei werden Daten wie beispielsweise aufgerufene Seiten bzw. Namen der abgerufenen Datei, Datum und Uhrzeit zu statistischen Zwecken auf dem Server gespeichert, ohne dass diese Daten unmittelbar auf Ihre Person bezogen werden. Personenbezogene Daten, insbesondere Name, Adresse oder E-Mail-Adresse werden soweit möglich auf freiwilliger Basis erhoben. Ohne Ihre Einwilligung erfolgt keine Weitergabe der Daten an Dritte. + +## Bearbeitung von Personendaten + +Personendaten sind alle Angaben, die sich auf eine bestimmte oder bestimmbare Person beziehen. Eine betroffene Person ist eine Person, über die Personendaten bearbeitet werden. Bearbeiten umfasst jeden Umgang mit Personendaten, unabhängig von den angewandten Mitteln und Verfahren, insbesondere das Aufbewahren, Bekanntgeben, Beschaffen, Löschen, Speichern, Verändern, Vernichten und Verwenden von Personendaten. + +Wir bearbeiten Personendaten im Einklang mit dem schweizerischen Datenschutzrecht. Im Übrigen bearbeiten wir - soweit und sofern die EU-DSGVO anwendbar ist – Personendaten gemäss folgenden Rechtsgrundlagen im Zusammenhang mit Art. 6 Abs. 1 DSGVO: + +- Einwilligung (Art. 6 Abs. 1 S. 1 lit. a. DSGVO) - Die betroffene Person hat ihre Einwilligung in die Verarbeitung der sie betreffenden personenbezogenen Daten für einen spezifischen Zweck oder mehrere bestimmte Zwecke gegeben. +- Vertragserfüllung und vorvertragliche Anfragen (Art. 6 Abs. 1 S. 1 lit. b. DSGVO) - Die Verarbeitung ist für die Erfüllung eines Vertrags, dessen Vertragspartei die betroffene Person ist, oder zur Durchführung vorvertraglicher Massnahmen erforderlich, die auf Anfrage der betroffenen Person erfolgen. +- Rechtliche Verpflichtung (Art. 6 Abs. 1 S. 1 lit. c. DSGVO) - Die Verarbeitung ist zur Erfüllung einer rechtlichen Verpflichtung erforderlich, der der Verantwortliche unterliegt. +- Schutz lebenswichtiger Interessen (Art. 6 Abs. 1 S. 1 lit. d. DSGVO) - Die Verarbeitung ist erforderlich, um lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person zu schützen. +- Berechtigte Interessen (Art. 6 Abs. 1 S. 1 lit. f. DSGVO) - Die Verarbeitung ist zur Wahrung der berechtigten Interessen des Verantwortlichen oder eines Dritten erforderlich, sofern nicht die Interessen oder Grundrechte und Grundfreiheiten der betroffenen Person, die den Schutz personenbezogener Daten erfordern, überwiegen. +- Bewerbungsverfahren als vorvertragliches bzw. vertragliches Verhältnis (Art. 9 Abs. 2 lit. b DSGVO) - Soweit im Rahmen des Bewerbungsverfahrens besondere Kategorien von personenbezogenen Daten im Sinne des Art. 9 Abs. 1 DSGVO (z.B. Gesundheitsdaten, wie Schwerbehinderteneigenschaft oder ethnische Herkunft) bei Bewerbern angefragt werden, damit der Verantwortliche oder die betroffene Person die ihm bzw. ihr aus dem Arbeitsrecht und dem Recht der sozialen Sicherheit und des Sozialschutzes erwachsenden Rechte ausüben und seinen bzw. ihren diesbezüglichen Pflichten nachkommen kann, erfolgt deren Verarbeitung nach Art. 9 Abs. 2 lit. b. DSGVO, im Fall des Schutzes lebenswichtiger Interessen der Bewerber oder anderer Personen gem. Art. 9 Abs. 2 lit. c. DSGVO oder für Zwecke der Gesundheitsvorsorge oder der Arbeitsmedizin, für die Beurteilung der Arbeitsfähigkeit des Beschäftigten, für die medizinische Diagnostik, die Versorgung oder Behandlung im Gesundheits- oder Sozialbereich oder für die Verwaltung von Systemen und Diensten im Gesundheits- oder Sozialbereich gem. Art. 9 Abs. 2 lit. h. DSGVO. Im Fall einer auf freiwilliger Einwilligung beruhenden Mitteilung von besonderen Kategorien von Daten, erfolgt deren Verarbeitung auf Grundlage von Art. 9 Abs. 2 lit. a. DSGVO. + +Wir bearbeiten Personendaten für jene Dauer, die für den jeweiligen Zweck oder die jeweiligen Zwecke erforderlich ist. Bei länger dauernden Aufbewahrungspflichten aufgrund von gesetzlichen und sonstigen Pflichten, denen wir unterliegen, schränken wir die Bearbeitung entsprechend ein. + +## Sicherheitsmassnahmen + +Wir treffen nach Massgabe der gesetzlichen Vorgaben unter Berücksichtigung des Stands der Technik, der Implementierungskosten und der Art, des Umfangs, der Umstände und der Zwecke der Verarbeitung sowie der unterschiedlichen Eintrittswahrscheinlichkeiten und des Ausmasses der Bedrohung der Rechte und Freiheiten natürlicher Personen geeignete technische und organisatorische Massnahmen, um ein dem Risiko angemessenes Schutzniveau zu gewährleisten. + +Zu den Massnahmen gehören insbesondere die Sicherung der Vertraulichkeit, Integrität und Verfügbarkeit von Daten durch Kontrolle des physischen und elektronischen Zugangs zu den Daten als auch des sie betreffenden Zugriffs, der Eingabe, der Weitergabe, der Sicherung der Verfügbarkeit und ihrer Trennung. Des Weiteren haben wir Verfahren eingerichtet, die eine Wahrnehmung von Betroffenenrechten, die Löschung von Daten und Reaktionen auf die Gefährdung der Daten gewährleisten. Ferner berücksichtigen wir den Schutz personenbezogener Daten bereits bei der Entwicklung bzw. Auswahl von Hardware, Software sowie Verfahren entsprechend dem Prinzip des Datenschutzes, durch Technikgestaltung und durch datenschutzfreundliche Voreinstellungen. + +## Übermittlung von personenbezogenen Daten + +Im Rahmen unserer Verarbeitung von personenbezogenen Daten kommt es vor, dass die Daten an andere Stellen, Unternehmen, rechtlich selbstständige Organisationseinheiten oder Personen übermittelt oder sie ihnen gegenüber offengelegt werden. Zu den Empfängern dieser Daten können z.B. mit IT-Aufgaben beauftragte Dienstleister oder Anbieter von Diensten und Inhalten, die in eine Webseite eingebunden werden, gehören. In solchen Fall beachten wir die gesetzlichen Vorgaben und schliessen insbesondere entsprechende Verträge bzw. Vereinbarungen, die dem Schutz Ihrer Daten dienen, mit den Empfängern Ihrer Daten ab. + +## Datenverarbeitung in Drittländern + +Sofern wir Daten in einem Drittland (d.h., ausserhalb der Europäischen Union (EU), des Europäischen Wirtschaftsraums (EWR)) verarbeiten oder die Verarbeitung im Rahmen der Inanspruchnahme von Diensten Dritter oder der Offenlegung bzw. Übermittlung von Daten an andere Personen, Stellen oder Unternehmen stattfindet, erfolgt dies nur im Einklang mit den gesetzlichen Vorgaben. + +Vorbehaltlich ausdrücklicher Einwilligung oder vertraglich oder gesetzlich erforderlicher Übermittlung, verarbeiten wir die Daten nur in Drittländern mit einem anerkannten Datenschutzniveau, vertraglicher Verpflichtung durch sogenannte Standardschutzklauseln der EU-Kommission, beim Vorliegen von Zertifizierungen oder verbindlichen internen Datenschutzvorschriften (Art. 44 bis 49 DSGVO, Informationsseite der EU-Kommission: https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection_de). + +## Datenschutzerklärung für Cookies + +Diese Webseite verwendet keine Cookies. + +## Datenschutzerklärung für SSL-/TLS-Verschlüsselung + +Diese Website nutzt aus Gründen der Sicherheit und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel der Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL-/TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von "http://" auf "https://" wechselt und an dem Schloss-Symbol in Ihrer Browserzeile. + +Wenn die SSL bzw. TLS Verschlüsselung aktiviert ist, können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden. + +## Datenschutzerklärung für Server-Log-Files + +Der Provider dieser Website erhebt und speichert automatisch Informationen in so genannten Server-Log Files, die Ihr Browser automatisch an uns übermittelt. Dies sind: + +- Browsertyp und Browserversion +- verwendetes Betriebssystem +- Referrer URL +- Hostname des zugreifenden Rechners +- Uhrzeit der Serveranfrage + +Diese Daten sind nicht bestimmten Personen zuordenbar. Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Wir behalten uns vor, diese Daten nachträglich zuprüfen, wenn uns konkrete Anhaltspunkte für eine rechtswidrige Nutzung bekannt werden. + +## Rechte betroffener Personen + +### Recht auf Bestätigung + +Jede betroffene Person hat das Recht, vom Betreiber der Website eine Bestätigung darüber zu verlangen, ob betroffene Personen betreffende, personenbezogene Daten verarbeitet werden. Möchten Sie dieses Bestätigungsrecht in Anspruch nehmen, können Sie sich hierzu jederzeit an den Datenschutzbeauftragten wenden. + +### Recht auf Auskunft + +Jede von der Verarbeitung betroffene Person mit personenbezogenen Daten hat das Recht, jederzeit vom Betreiber dieser Website unentgeltliche Auskunft über die zu seiner Person gespeicherten personenbezogenen Daten und eine Kopie dieser Auskunft zu erhalten. Ferner kann gegebenenfalls über folgende Informationen Auskunft gegeben werden: + +- die Verarbeitungszwecke +- die Kategorien personenbezogener Daten, die verarbeitet werden +- die Empfänger, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden +- falls möglich, die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls dies nicht möglich ist, die Kriterien für die Festlegung dieser Dauer +- das Bestehen eines Rechts auf Berichtigung oder Löschung der sie betreffenden personenbezogenen Daten oder auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung +- das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde +- wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden: Alle verfügbaren Informationen über die Herkunft der Daten + +Ferner steht der betroffenen Person ein Auskunftsrecht darüber zu, ob personenbezogene Daten an ein Drittland oder an eine internationale Organisation übermittelt wurden. Sofern dies der Fall ist, so steht der betroffenen Person im übrigen das Recht zu, Auskunft über die geeigneten Garantien im Zusammenhang mit der übermittlung zu erhalten. + +Möchten Sie dieses Auskunftsrecht in Anspruch nehmen, können Sie sich hierzu jederzeit an unseren Datenschutzbeauftragten wenden. + +### Recht auf Berichtigung + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, die unverzügliche Berichtigung sie betreffender unrichtiger personenbezogener Daten zu verlangen. Ferner steht der betroffenen Person das Recht zu, unter Berücksichtigung der Zwecke der Verarbeitung, die Vervollständigung unvollständiger personenbezogener Daten - auch mittels einer ergänzenden Erklärung - zu verlangen. + +Möchten Sie dieses Berichtigungsrecht in Anspruch nehmen, können Sie sich hierzu jederzeit an unseren Datenschutzbeauftragten wenden. + +### Recht auf Löschung (Recht auf Vergessen werden) + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, von dem Verantwortlichen dieser Website zu verlangen, dass die sie betreffenden personenbezogenen Daten unverzüglich gelöscht werden, sofern einer der folgenden Gründe zutrifft und soweit die Verarbeitung nicht erforderlich ist: + +- Die personenbezogenen Daten wurden für solche Zwecke erhoben oder auf sonstige Weise verarbeitet, für welche sie nicht mehr notwendig sind +- Die betroffene Person widerruft ihre Einwilligung, auf die sich die Verarbeitung stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung +- Die betroffene Person legt aus Gründen, die sich aus ihrer besonderen Situation ergeben, Widerspruch gegen die Verarbeitung ein und es liegen keine vorrangigen berechtigten Gründe für die Verarbeitung vor, oder die betroffene Person legt im Falle von Direktwerbung und damit verbundenem Profiling Widerspruch gegen die Verarbeitung ein +- Die personenbezogenen Daten wurden unrechtmässig verarbeitet +- Die Löschung der personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem der Verantwortliche unterliegt +- Die personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft, die einem Kind direkt gemacht wurden, erhoben + +Sofern einer der oben genannten Gründe zutrifft und Sie die Löschung von personenbezogenen Daten, die beimBetreiber dieser Website gespeichert sind, veranlassen möchten, können Sie sich hierzu jederzeit an unseren Datenschutzbeauftragten wenden. Der Datenschutzbeauftragte dieser Website wird veranlassen, dass dem Löschverlangen unverzüglich nachgekommen wird. + +### Recht auf Einschränkung der Verarbeitung + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, von dem Verantwortlichen dieser Website die Einschränkung der Verarbeitung zu verlangen, wenn eine der folgenden Voraussetzungen gegeben ist: + +- Die Richtigkeit der personenbezogenen Daten wird von der betroffenen Person bestritten, und zwar für eine Dauer, die es dem Verantwortlichen ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen +- Die Verarbeitung ist unrechtmässig, die betroffene Person lehnt die Löschung der personenbezogenen Daten ab und verlangt stattdessen die Einschränkung der Nutzung der personenbezogenen Daten +- Der Verantwortliche benötigt die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger, die betroffene Person benötigt sie jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen +- Die betroffene Person hat aus Gründen, die sich aus ihrer besonderen Situation ergeben, Widerspruch gegen die Verarbeitung eingelegt und es steht noch nicht fest, ob die berechtigten Gründe des Verantwortlichen gegenüber denen der betroffenen Person überwiegen + +Sofern eine der oben genannten Voraussetzungen gegeben ist Sie die Einschränkung von personenbezogenen Daten, die beim Betreiber dieser Website gespeichert sind, verlangen möchten, können Sie sich hierzu jederzeit an unseren Datenschutzbeauftragten wenden. Der Datenschutzbeauftragte dieser Website wird die Einschränkung der Verarbeitung veranlassen. + +### Recht auf Datenübertragbarkeit + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, die sie betreffenden personenbezogenen Daten in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten. Sie hat ausserdem das Recht, dass diese Daten bei Vorliegen der gesetzlichen Voraussetzungen einem anderen Verantwortlichen übermittelt werden. + +Ferner hat die betroffene Person das Recht, zu erwirken, dass die personenbezogenen Daten direkt von einem Verantwortlichen an einen anderen Verantwortlichen übermittelt werden, soweit dies technisch machbar ist und sofern hiervon nicht die Rechte und Freiheiten anderer Personen beeinträchtigt werden. + +Zur Geltendmachung des Rechts auf Datenübertragbarkeit können Sie sich jederzeit an den vom Betreiber dieser Website bestellten Datenschutzbeauftragten wenden. + +### Recht auf Widerspruch + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung sie betreffender personenbezogener Daten, Widerspruch einzulegen. + +Der Betreiber dieser Website verarbeitet die personenbezogenen Daten im Falle des Widerspruchs nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die den Interessen, Rechten und Freiheiten der betroffenen Person überwiegen, oder wenn die Verarbeitung der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen dient. + +Zur Ausübung des Rechts auf Widerspruch können Sie sich direkt an den Datenschutzbeauftragten dieser Website wenden. + +### Recht auf Widerruf einer datenschutzrechtlichen Einwilligung + +Jede von der Verarbeitung personenbezogener Daten betroffene Person hat das Recht, eine abgegebene Einwilligung zur Verarbeitung personenbezogener Daten jederzeit zu widerrufen. + +Möchten Sie Ihr Recht auf Widerruf einer Einwilligung geltend machen, können Sie sich hierzu jederzeit an unseren Datenschutzbeauftragten wenden. + +## Kostenpflichtige Leistungen + +Zur Erbringung kostenpflichtiger Leistungen werden von uns zusätzliche Daten erfragt, wie z.B. Zahlungsangaben, um Ihre Bestellung resp. Ihren Auftrag ausführen zu können. Wir speichern diese Daten in unseren Systemen, bis die gesetzlichen Aufbewahrungsfristen abgelaufen sind. + +## Hinweis zur Datenweitergabe in die USA + +Auf unserer Website sind unter anderem Tools von Unternehmen mit Sitz in den USA eingebunden. Wenn diese Tools aktiv sind, können Ihre personenbezogenen Daten an die US-Server der jeweiligen Unternehmen weitergegeben werden. Wir weisen darauf hin, dass die USA kein sicherer Drittstaat im Sinne des EU-Datenschutzrechts sind. US-Unternehmen sind dazu verpflichtet, personenbezogene Daten an Sicherheitsbehörden herauszugeben, ohne dass Sie als Betroffener hiergegen gerichtlich vorgehen könnten. Es kann daher nicht ausgeschlossen werden, dass US-Behörden (z.B. Geheimdienste) Ihre auf US-Servern befindlichen Daten zu überwachungszwecken verarbeiten, auswerten und dauerhaft speichern. Wir haben auf diese Verarbeitungstätigkeiten keinen Einfluss. + +## Änderungen + +Wir können diese Datenschutzerklärung jederzeit ohne Vorankündigung anpassen. Es gilt die jeweils aktuelle, auf unserer Website publizierte Fassung. Soweit die Datenschutzerklärung Teil einer Vereinbarung mit Ihnen ist, werden wir Sie im Falle einer Aktualisierung über die Änderung per E-Mail oder auf andere geeignete Weise informieren. + + +## Fragen an den Datenschutzbeauftragten + +Wenn Sie Fragen zum Datenschutz haben, schreiben Sie uns bitte eine E-Mail oder wenden Sie sich direkt an die für den Datenschutz zu Beginn der Datenschutzerklärung aufgeführten, verantwortlichen Person in unserer Organisation. + +Quelle: [SwissAnwalt](https://www.swissanwalt.ch) + +
diff --git a/src/content/pages/en/future.mdx b/src/content/pages/en/future.mdx new file mode 100644 index 00000000..21d79607 --- /dev/null +++ b/src/content/pages/en/future.mdx @@ -0,0 +1,4 @@ +--- +path: future +title: Future +--- diff --git a/src/content/pages/en/future/collaboration.mdx b/src/content/pages/en/future/collaboration.mdx new file mode 100644 index 00000000..743d9f78 --- /dev/null +++ b/src/content/pages/en/future/collaboration.mdx @@ -0,0 +1,4 @@ +--- +path: collaboration +title: Collaboration +--- diff --git a/src/content/pages/en/future/jobs.mdx b/src/content/pages/en/future/jobs.mdx new file mode 100644 index 00000000..fa71f718 --- /dev/null +++ b/src/content/pages/en/future/jobs.mdx @@ -0,0 +1,4 @@ +--- +path: Jobs +title: Jobs +--- diff --git a/src/content/pages/en/future/services.mdx b/src/content/pages/en/future/services.mdx new file mode 100644 index 00000000..8fef532e --- /dev/null +++ b/src/content/pages/en/future/services.mdx @@ -0,0 +1,4 @@ +--- +path: services +title: Services +--- diff --git a/src/content/pages/en/imprint.mdx b/src/content/pages/en/imprint.mdx new file mode 100644 index 00000000..f94b64a7 --- /dev/null +++ b/src/content/pages/en/imprint.mdx @@ -0,0 +1,32 @@ +--- +path: imprint +title: Imprint +--- + +import Address from "../../../layouts/groups/Address.astro"; +import Phone from "../../../layouts/groups/Phone.astro"; +import Email from "../../../layouts/groups/Email.astro"; + +
+ +The following contains the information about the ownership of this website: + +
+
+ +
+ + +## Limitation of liability + +All liability of the owner and the other authors for direct, indirect or secondary damage suffered as a result of access to the elements of this website or to use of that site or as a consequence of impossibility of access to or use thereof or links to other websites, is hereby declined. + +All offers are without obligation. The owner reserves the right to change or delete, parts or the whole offer, at any time. + +The website contains links to content maintained by third parties, which are outside our area of responsibility. Any responsibility is declined. + +## Copyright Statement + +The copyright and all other rights to content, images, photos, or other files on this website belong exclusively to the owner stated above. Written consent from the owner as the copyright holder must be obtained in advance for the reproduction of any elements. + +
diff --git a/src/content/pages/en/past.mdx b/src/content/pages/en/past.mdx new file mode 100644 index 00000000..567ad147 --- /dev/null +++ b/src/content/pages/en/past.mdx @@ -0,0 +1,4 @@ +--- +path: past +title: Past +--- diff --git a/src/content/pages/en/past/formation.mdx b/src/content/pages/en/past/formation.mdx new file mode 100644 index 00000000..734a1ce2 --- /dev/null +++ b/src/content/pages/en/past/formation.mdx @@ -0,0 +1,4 @@ +--- +path: formation +title: Formation +--- diff --git a/src/content/pages/en/past/references.mdx b/src/content/pages/en/past/references.mdx new file mode 100644 index 00000000..4ae6d730 --- /dev/null +++ b/src/content/pages/en/past/references.mdx @@ -0,0 +1,4 @@ +--- +path: references +title: References +--- diff --git a/src/content/pages/en/present.mdx b/src/content/pages/en/present.mdx new file mode 100644 index 00000000..6eccac40 --- /dev/null +++ b/src/content/pages/en/present.mdx @@ -0,0 +1,4 @@ +--- +path: present +title: Present +--- diff --git a/src/content/pages/en/present/strengths.mdx b/src/content/pages/en/present/strengths.mdx new file mode 100644 index 00000000..deacaaf5 --- /dev/null +++ b/src/content/pages/en/present/strengths.mdx @@ -0,0 +1,4 @@ +--- +path: strengths +title: Strengths +--- diff --git a/src/content/pages/en/present/team.mdx b/src/content/pages/en/present/team.mdx new file mode 100644 index 00000000..2974d075 --- /dev/null +++ b/src/content/pages/en/present/team.mdx @@ -0,0 +1,24 @@ +--- +path: team +title: Team +--- + +import Divider from "../../../../components/Divider.astro"; +import TeamSection from "../../../../layouts/sections/TeamSection.astro"; +import ImpressionsSection from "../../../../layouts/sections/ImpressionsSection.astro"; + +
+ Meet the team behind our company - a group of dedicated and skilled professionals who are passionate about creating custom software solutions that are tailored to the specific needs of our clients. We take great pride in our work and are committed to delivering the highest quality products and services. In addition to our software development expertise, we are also committed to advancing vocational education in Switzerland. We believe that providing apprenticeship opportunities and modern educational content to students is an important way to ensure that the next generation of software developers is well-equipped to meet the demands of the industry. As a team, we are open-minded, holacratic, and trustworthy, and we look forward to the opportunity to work together and embark on an adventure in the world of bits and bytes with you soon. +
+ + + + +

Portraits

+
+ + + + +

Impressionen

+
diff --git a/src/content/pages/en/present/values.mdx b/src/content/pages/en/present/values.mdx new file mode 100644 index 00000000..19e752f0 --- /dev/null +++ b/src/content/pages/en/present/values.mdx @@ -0,0 +1,4 @@ +--- +path: values +title: Values +--- diff --git a/src/content/pages/en/privacy.mdx b/src/content/pages/en/privacy.mdx new file mode 100644 index 00000000..96a752fc --- /dev/null +++ b/src/content/pages/en/privacy.mdx @@ -0,0 +1,170 @@ +--- +path: privacy +title: Privacy Policy +--- + +import Address from "../../../layouts/groups/Address.astro"; +import Email from "../../../layouts/groups/Email.astro"; + +
+ +Responsible entity within the meaning of data protection laws, in particular the EU General Data Protection Regulation (GDPR), is: + +
\ +Email: \ +Website: https://openscript.ch + +## General Information + +Based on Article 13 of the Swiss Federal Constitution and the data protection provisions of the Federal Government (Data Protection Act, DPA), every person is entitled to the protection of their privacy as well as protection against misuse of their personal data. The operators of these pages take the protection of your personal data very seriously. We treat your personal data confidentially and in accordance with the statutory data protection regulations and this privacy policy. + +In cooperation with our hosting providers, we strive to protect the databases as well as possible against unauthorized access, loss, misuse, or falsification. + +We point out that data transmission on the Internet (e.g., when communicating by email) can have security gaps. Complete protection of data from access by third parties is not possible. + +By using this website, you agree to the collection, processing, and use of data as described below. This website can generally be visited without registration. Data such as pages accessed or the name of the file accessed, date, and time are stored on the server for statistical purposes, without these data being directly related to you personally. Personal data, in particular name, address, or email address, are collected on a voluntary basis wherever possible. Without your consent, the data will not be passed on to third parties. + +## Processing of Personal Data + +Personal data is any information relating to an identified or identifiable person. A data subject is a person whose personal data is processed. Processing includes any handling of personal data, regardless of the means and procedures used, in particular the storage, disclosure, procurement, deletion, saving, modification, destruction, and use of personal data. + +We process personal data in accordance with Swiss data protection law. In addition, we process personal data - insofar and as far as the EU GDPR is applicable - according to the following legal bases in connection with Art. 6 para. 1 GDPR: + +- Consent (Art. 6 para. 1 sentence 1 lit. a. GDPR) - The data subject has given their consent to the processing of their personal data for one or more specific purposes. +- Contract performance and pre-contractual inquiries (Art. 6 para. 1 sentence 1 lit. b. GDPR) - Processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract. +- Legal obligation (Art. 6 para. 1 sentence 1 lit. c. GDPR) - Processing is necessary for compliance with a legal obligation to which the controller is subject. +- Protection of vital interests (Art. 6 para. 1 sentence 1 lit. d. GDPR) - Processing is necessary in order to protect the vital interests of the data subject or of another natural person. +- Legitimate interests (Art. 6 para. 1 sentence 1 lit. f. GDPR) - Processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party, except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data. +- Application procedure as a pre-contractual or contractual relationship (Art. 9 para. 2 lit. b GDPR) - If, in the context of the application procedure, special categories of personal data within the meaning of Art. 9 para. 1 GDPR (e.g., health data, such as information about a severe disability or ethnic origin) are requested from applicants so that the controller or the data subject can exercise the rights arising from employment law and the law of social security and social protection and fulfill their respective obligations, their processing is carried out in accordance with Art. 9 para. 2 lit. b GDPR, in the case of protection of vital interests of the applicants or other persons according to Art. 9 para. 2 lit. c GDPR or for purposes of preventive or occupational medicine, for the assessment of the employee's working capacity, for medical diagnosis, for the provision of health or social care or treatment or the management of health or social care systems and services according to Art. 9 para. 2 lit. h GDPR. In the case of voluntary disclosure of special categories of data, their processing is based on Art. 9 para. 2 lit. a GDPR. + +We process personal data for as long as is necessary for the respective purpose or purposes. In the case of longer retention obligations due to legal and other obligations to which we are subject, we restrict processing accordingly. + +## Security Measures + +We take appropriate technical and organizational measures in accordance with legal requirements, taking into account the state of the art, implementation costs, the nature, scope, circumstances, and purposes of processing, as well as the varying likelihood and severity of the risk to the rights and freedoms of natural persons, to ensure a level of security appropriate to the risk. + +Measures include, in particular, securing the confidentiality, integrity, and availability of data by controlling physical and electronic access to the data as well as access, input, disclosure, securing availability, and separation of the data. Furthermore, we have established procedures to ensure the exercise of data subject rights, deletion of data, and responses to data threats. We also take the protection of personal data into account as early as the development or selection of hardware, software, and procedures, in accordance with the principle of data protection by design and by default. + +## Transfer of Personal Data + +In the course of processing personal data, it may happen that the data is transferred to other entities, companies, legally independent organizational units, or persons, or disclosed to them. Recipients of this data may include, for example, service providers tasked with IT duties or providers of services and content that are integrated into a website. In such cases, we comply with legal requirements and, in particular, conclude appropriate contracts or agreements that serve to protect your data with the recipients of your data. + +## Data Processing in Third Countries + +If we process data in a third country (i.e., outside the European Union (EU), the European Economic Area (EEA)), or if processing takes place in the context of using third-party services or disclosure or transfer of data to other persons, entities, or companies, this is only done in accordance with legal requirements. + +Subject to express consent or contractually or legally required transfer, we process the data only in third countries with a recognized level of data protection, contractual obligation through so-called standard protection clauses of the EU Commission, in the presence of certifications, or binding internal data protection regulations (Art. 44 to 49 GDPR, EU Commission information page: https://ec.europa.eu/info/law/law-topic/data-protection/international-dimension-data-protection_en). + +## Privacy Policy for Cookies + +This website does not use cookies. + +## Privacy Policy for SSL/TLS Encryption + +For security reasons and to protect the transmission of confidential content, such as inquiries you send to us as the site operator, this website uses SSL/TLS encryption. You can recognize an encrypted connection by the fact that the address line of the browser changes from "http://" to "https://" and by the lock symbol in your browser line. + +When SSL or TLS encryption is activated, the data you transmit to us cannot be read by third parties. + +## Privacy Policy for Server Log Files + +The provider of this website automatically collects and stores information in so-called server log files, which your browser automatically transmits to us. These are: + +- Browser type and version +- Operating system used +- Referrer URL +- Host name of the accessing computer +- Time of the server request + +These data cannot be assigned to specific persons. This data is not merged with other data sources. We reserve the right to check this data retrospectively if we become aware of specific indications of unlawful use. + +## Rights of Data Subjects + +### Right to Confirmation + +Every data subject has the right to request confirmation from the operator of the website as to whether personal data concerning them is being processed. If you wish to exercise this right of confirmation, you can contact the data protection officer at any time. + +### Right to Information + +Every person affected by the processing of personal data has the right to obtain, at any time and free of charge, information from the operator of this website about the personal data stored about them and a copy of this information. Furthermore, information may be provided about the following: + +- the purposes of processing +- the categories of personal data being processed +- the recipients to whom the personal data have been or will be disclosed +- if possible, the planned duration for which the personal data will be stored, or, if not possible, the criteria for determining this duration +- the existence of a right to rectification or erasure of personal data concerning them or to restriction of processing by the controller or a right to object to such processing +- the existence of a right to lodge a complaint with a supervisory authority +- if the personal data are not collected from the data subject: all available information about the origin of the data + +Furthermore, the data subject has the right to know whether personal data have been transferred to a third country or to an international organization. If this is the case, the data subject also has the right to be informed of the appropriate safeguards relating to the transfer. + +If you wish to exercise this right to information, you can contact our data protection officer at any time. + +### Right to Rectification + +Every person affected by the processing of personal data has the right to request the immediate rectification of inaccurate personal data concerning them. Furthermore, the data subject has the right, taking into account the purposes of the processing, to request the completion of incomplete personal data - also by means of a supplementary statement. + +If you wish to exercise this right to rectification, you can contact our data protection officer at any time. + +### Right to Erasure (Right to be Forgotten) + +Every person affected by the processing of personal data has the right to request from the controller of this website the immediate erasure of personal data concerning them, provided that one of the following reasons applies and insofar as the processing is not necessary: + +- The personal data were collected or otherwise processed for purposes for which they are no longer necessary +- The data subject withdraws their consent on which the processing was based, and there is no other legal ground for the processing +- The data subject objects to the processing for reasons arising from their particular situation, and there are no overriding legitimate grounds for the processing, or the data subject objects to the processing in the case of direct marketing and related profiling +- The personal data have been unlawfully processed +- The erasure of personal data is necessary to fulfill a legal obligation under Union law or the law of the Member States to which the controller is subject +- The personal data have been collected in relation to information society services offered directly to a child + +If one of the above reasons applies and you wish to arrange for the deletion of personal data stored by the operator of this website, you can contact our data protection officer at any time. The data protection officer of this website will ensure that the deletion request is complied with immediately. + +### Right to Restriction of Processing + +Every person affected by the processing of personal data has the right to request from the controller of this website the restriction of processing if one of the following conditions is met: + +- The accuracy of the personal data is contested by the data subject, for a period enabling the controller to verify the accuracy of the personal data +- The processing is unlawful, the data subject opposes the erasure of the personal data and requests instead the restriction of their use +- The controller no longer needs the personal data for the purposes of processing, but the data subject requires them for the establishment, exercise, or defense of legal claims +- The data subject has objected to processing pending the verification whether the legitimate grounds of the controller override those of the data subject + +If one of the above conditions is met and you wish to request the restriction of personal data stored by the operator of this website, you can contact our data protection officer at any time. The data protection officer of this website will arrange the restriction of processing. + +### Right to Data Portability + +Every person affected by the processing of personal data has the right to receive the personal data concerning them in a structured, commonly used, and machine-readable format. They also have the right to have this data transmitted to another controller, where technically feasible and provided that this does not adversely affect the rights and freedoms of others. + +To exercise the right to data portability, you can contact the data protection officer appointed by the operator of this website at any time. + +### Right to Object + +Every person affected by the processing of personal data has the right to object at any time, for reasons arising from their particular situation, to the processing of personal data concerning them. + +The operator of this website will no longer process the personal data in the event of an objection, unless we can demonstrate compelling legitimate grounds for the processing which override the interests, rights, and freedoms of the data subject, or if the processing serves the establishment, exercise, or defense of legal claims. + +To exercise the right to object, you can contact the data protection officer of this website directly. + +### Right to Withdraw Consent + +Every person affected by the processing of personal data has the right to withdraw consent to the processing of personal data at any time. + +If you wish to exercise your right to withdraw consent, you can contact our data protection officer at any time. + +## Paid Services + +To provide paid services, we request additional data, such as payment details, in order to process your order or assignment. We store this data in our systems until the statutory retention periods have expired. + +## Notice on Data Transfer to the USA + +Our website includes tools from companies based in the USA. If these tools are active, your personal data may be transferred to the US servers of the respective companies. We point out that the USA is not a safe third country in the sense of EU data protection law. US companies are obliged to hand over personal data to security authorities without you as the data subject being able to take legal action against this. It cannot therefore be ruled out that US authorities (e.g., intelligence services) process, evaluate, and permanently store your data located on US servers for monitoring purposes. We have no influence on these processing activities. + +## Changes + +We may amend this privacy policy at any time without prior notice. The current version published on our website applies. If the privacy policy is part of an agreement with you, we will inform you of the change by email or other appropriate means in the event of an update. + +## Questions to the Data Protection Officer + +If you have any questions about data protection, please send us an email or contact the person responsible for data protection listed at the beginning of this privacy policy directly in our organization. + +Source: [SwissAnwalt](https://www.swissanwalt.ch) + +
diff --git a/src/content/questions/diego.yaml b/src/content/questions/diego.yaml new file mode 100644 index 00000000..d5986e1b --- /dev/null +++ b/src/content/questions/diego.yaml @@ -0,0 +1,13 @@ +author: Diego Steiner +items: + de: + - question: Was ist der beste Editor und welches Erweiterung darf nicht fehlen? + answer: Ich arbeite am effektivsten mit Visual Studio Code mit der Vim-Erweiterung. + - question: Was braucht es, um einen guten Teamgeist aufzubauen? + answer: Dafür braucht es zunächst mal ein tolles Team aus Personen, die sich gegenseitig respektieren und sich selbst in die Gemeinschaft einbringen wollen. Auf diesem Fundament entsteht ein guter Teamgeist, wenn man ein gemeinsames Ziel vor Augen hat. + + en: + - question: What is the best editor and which extension is a must-have? + answer: I work most effectively with Visual Studio Code with the Vim extension. + - question: What does it take to build a good team spirit? + answer: First of all, it takes a great team of people who respect each other and want to contribute to the community. On this foundation, a good team spirit arises when you have a common goal in mind. diff --git a/src/content/questions/leonardo.yaml b/src/content/questions/leonardo.yaml new file mode 100644 index 00000000..7345794c --- /dev/null +++ b/src/content/questions/leonardo.yaml @@ -0,0 +1,12 @@ +author: Leonardo Olivo +items: + de: + - question: Was ist die beste Programmiersprache? + answer: Keine Antwort. + - question: Ein Gadget, das an deinem Arbeitsplatz nicht fehlen darf? + answer: Keine Antwort. + en: + - question: What is the best programming language? + answer: No answer. + - question: A gadget that must not be missing at your workplace? + answer: No answer. diff --git a/src/content/questions/robin.yaml b/src/content/questions/robin.yaml new file mode 100644 index 00000000..e74a36e8 --- /dev/null +++ b/src/content/questions/robin.yaml @@ -0,0 +1,16 @@ +author: Robin Bühler +items: + de: + - question: Was ist zurzeit das beste Javascript Framework? + answer: Je nach vorhaben unterschiedlich! Mir gefällt Astro für die Entwicklung von statischen Webseiten sehr gut. Fürs Beschreiben von UI-Komponenten ist meiner Meinung nach React schwer zu schlagen. + - question: Welches ist das beste Betriebssystem? + answer: Ich mag auf Linux basierte Betriebssysteme sehr, insbesondere Arch Linux, weil diese Systeme es einem ermöglichen alles anzusehen und zu verändern, wie es einem gefällt. + - question: Welche Werte sind wichtig für das funktionieren einer Firma? + answer: Offenheit, Ehrlichkeit, ein gesundes Mass für die Einschätzung der eigenen Fähig- und Möglichkeiten, sowie das stete Lernen aus Fehlern und suchen nach Verbesserungen. + en: + - question: What is currently the best Javascript framework? + answer: It depends on the project! I really like Astro for developing static websites. For describing UI components, in my opinion, React is hard to beat. + - question: What is the best operating system? + answer: I really like Linux-based operating systems, especially Arch Linux, because these systems allow you to view and modify everything as you like. + - question: Which values are important for a company to function? + answer: Openness, honesty, a healthy sense of one's own abilities and possibilities, as well as constantly learning from mistakes and seeking improvements. diff --git a/content/data/sections/references/companies/astra.svg b/src/content/references/companies/astra.svg similarity index 100% rename from content/data/sections/references/companies/astra.svg rename to src/content/references/companies/astra.svg diff --git a/src/content/references/companies/dogli.svg b/src/content/references/companies/dogli.svg new file mode 100644 index 00000000..42529e11 --- /dev/null +++ b/src/content/references/companies/dogli.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/data/sections/references/companies/haslerrail.svg b/src/content/references/companies/haslerrail.svg similarity index 100% rename from content/data/sections/references/companies/haslerrail.svg rename to src/content/references/companies/haslerrail.svg diff --git a/content/data/sections/references/companies/hydrowatt.svg b/src/content/references/companies/hydrowatt.svg similarity index 100% rename from content/data/sections/references/companies/hydrowatt.svg rename to src/content/references/companies/hydrowatt.svg diff --git a/src/content/references/companies/index.yaml b/src/content/references/companies/index.yaml new file mode 100644 index 00000000..1633596f --- /dev/null +++ b/src/content/references/companies/index.yaml @@ -0,0 +1,47 @@ +- id: astra + companyName: Bundesamt für Strassen ASTRA + logo: ./astra.svg + url: https://www.astra.admin.ch +- id: dogli + companyName: DOGLi GmbH + logo: ./dogli.svg + url: https://dogli.app +- id: haslerrail + companyName: HaslerRail AG + logo: ./haslerrail.svg + url: https://www.haslerrail.com +- id: hydrowatt + companyName: Hydrowatt AG + logo: ./hydrowatt.svg + url: https://www.hydrowatt.com +- id: schalthalle + companyName: Verein Schalthalle + logo: ./schalthalle.svg + url: https://www.schalthalle.ch +- id: sto + companyName: STO Innenausbau AG + logo: ./sto.svg + url: https://sto-innenausbau.ch + archived: true +- id: uzh + companyName: Universität Zürich + logo: ./uzh.svg + url: https://www.uzh.ch +- id: wagner + companyName: Wagner Unternehmungen AG + logo: ./wagner.svg + url: https://wagner-rohbau.ch +- id: wiegand + companyName: Wiegand AG + logo: ./wiegand.png + url: https://wiegand.ch + archived: true +- id: yaver + companyName: YAVER Infrastructure & Services GmbH + logo: ./yaver.svg + url: https://yaver.ch + archived: true +- id: zli + companyName: Zürcher Lehrbetriebsverband ICT + logo: ./zli.svg + url: https://zli.ch diff --git a/src/content/references/companies/schalthalle.svg b/src/content/references/companies/schalthalle.svg new file mode 100644 index 00000000..06a2650c --- /dev/null +++ b/src/content/references/companies/schalthalle.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/data/sections/references/companies/sto.svg b/src/content/references/companies/sto.svg similarity index 100% rename from content/data/sections/references/companies/sto.svg rename to src/content/references/companies/sto.svg diff --git a/src/content/references/companies/uzh.svg b/src/content/references/companies/uzh.svg new file mode 100644 index 00000000..5e4b274b --- /dev/null +++ b/src/content/references/companies/uzh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/data/sections/references/companies/wagner.svg b/src/content/references/companies/wagner.svg similarity index 100% rename from content/data/sections/references/companies/wagner.svg rename to src/content/references/companies/wagner.svg diff --git a/content/data/sections/references/companies/wiegand.png b/src/content/references/companies/wiegand.png similarity index 100% rename from content/data/sections/references/companies/wiegand.png rename to src/content/references/companies/wiegand.png diff --git a/content/data/sections/references/companies/yaver.svg b/src/content/references/companies/yaver.svg similarity index 100% rename from content/data/sections/references/companies/yaver.svg rename to src/content/references/companies/yaver.svg diff --git a/content/data/sections/references/companies/zli.svg b/src/content/references/companies/zli.svg similarity index 100% rename from content/data/sections/references/companies/zli.svg rename to src/content/references/companies/zli.svg diff --git a/src/content/references/projects/certification.de.md b/src/content/references/projects/certification.de.md new file mode 100644 index 00000000..d7eaea2e --- /dev/null +++ b/src/content/references/projects/certification.de.md @@ -0,0 +1,8 @@ +--- +softwareName: Zertifizierungstool +title: Unbeaufsichtigtes Online-Zertifizierungstool für eine internationale Organisation +logo: ./certification.svg +summary: Mit diesem Tool können Sie Ihren Zertifizierungsprozess organisieren. Es ermöglicht Personen periodisch zur Zertifizierung einzuladen, es führt den Zertifizierungsprozess durch und übergibt Ihnen nach erfolgreicher Zertifizierung schön formatierte PDF-Dokumente. +--- + + diff --git a/src/content/references/projects/certification.en.md b/src/content/references/projects/certification.en.md new file mode 100644 index 00000000..d2e086fc --- /dev/null +++ b/src/content/references/projects/certification.en.md @@ -0,0 +1,8 @@ +--- +softwareName: Certification Tool +title: Unattended online certification tool for an international organization +logo: ./certification.svg +summary: With this tool you can organize your certification process. It lets you invite people periodically to get certified, runs the certification process and hands you nicely designed PDF documents upon successful certification. +--- + + diff --git a/content/data/sections/references/software/certification.svg b/src/content/references/projects/certification.svg similarity index 100% rename from content/data/sections/references/software/certification.svg rename to src/content/references/projects/certification.svg diff --git a/src/content/references/projects/timelet.de.md b/src/content/references/projects/timelet.de.md new file mode 100644 index 00000000..282b5f9c --- /dev/null +++ b/src/content/references/projects/timelet.de.md @@ -0,0 +1,6 @@ +--- +softwareName: Timelet +title: Minimales Open-Source Zeiterfassungstool +logo: ./timelet.svg +summary: Dieses Produkt ist ein minimalistisches, einfach zu bedienendes Open-Source-Tool zur effizienten Zeiterfassung. Da es völlig kostenlos ist, bietet es jedem die Möglichkeit, sein Zeitmanagement professionell zu gestalten. +--- diff --git a/src/content/references/projects/timelet.en.md b/src/content/references/projects/timelet.en.md new file mode 100644 index 00000000..65c52993 --- /dev/null +++ b/src/content/references/projects/timelet.en.md @@ -0,0 +1,6 @@ +--- +softwareName: Timelet +title: Minimal opensource time tracking tool +logo: ./timelet.svg +summary: This product is a minimalist, easy-to-use, opensource tool to track time efficiently. By it being completely free to use it gives everyone the change to handle their time management professionally. +--- diff --git a/content/data/sections/references/software/timelet.svg b/src/content/references/projects/timelet.svg similarity index 100% rename from content/data/sections/references/software/timelet.svg rename to src/content/references/projects/timelet.svg diff --git a/src/content/references/projects/vialibera.de.md b/src/content/references/projects/vialibera.de.md new file mode 100644 index 00000000..563c27d0 --- /dev/null +++ b/src/content/references/projects/vialibera.de.md @@ -0,0 +1,6 @@ +--- +softwareName: ViaLibera +title: Mobiles Protokollmanagement-Tool für eine Regierungsorganisation +logo: ./vialibera.svg +summary: Es handelt sich um eine progressive Webanwendung, die offlinefähig ist. Nachdem das Gerät, auf dem die Anwendung läuft, wieder online ist, werden die Daten synchronisiert. Es hilft dabei, den Strassenzustand zu protokollieren und daraus Statistiken zu erstellen. +--- diff --git a/src/content/references/projects/vialibera.en.md b/src/content/references/projects/vialibera.en.md new file mode 100644 index 00000000..36ac1a9e --- /dev/null +++ b/src/content/references/projects/vialibera.en.md @@ -0,0 +1,6 @@ +--- +softwareName: ViaLibera +title: Mobile protocol management tool for a government organization +logo: ./vialibera.svg +summary: It's a progressive web application, which has offline capabilities. After the device which runs the application comes back online the data is synchronized. It helps you to log street condition and makes statistics out of it. +--- diff --git a/content/data/sections/references/software/vialibera.svg b/src/content/references/projects/vialibera.svg similarity index 100% rename from content/data/sections/references/software/vialibera.svg rename to src/content/references/projects/vialibera.svg diff --git a/src/content/sections/de/Questions.mdx b/src/content/sections/de/Questions.mdx new file mode 100644 index 00000000..bcace044 --- /dev/null +++ b/src/content/sections/de/Questions.mdx @@ -0,0 +1,3 @@ +import QuestionsSection from "../../../layouts/sections/QuestionsSection.astro"; + + diff --git a/src/content/sections/de/References.mdx b/src/content/sections/de/References.mdx new file mode 100644 index 00000000..cb9ac7a2 --- /dev/null +++ b/src/content/sections/de/References.mdx @@ -0,0 +1,5 @@ +import ReferencesSection from "../../../layouts/sections/ReferencesSection.astro"; + + +

Wer uns vertraut

+
diff --git a/src/content/sections/de/Services.mdx b/src/content/sections/de/Services.mdx new file mode 100644 index 00000000..c2629846 --- /dev/null +++ b/src/content/sections/de/Services.mdx @@ -0,0 +1,117 @@ +import ServicesSection from '../../../layouts/sections/ServicesSection.astro'; +import Tabs from '../../../components/Tabs.astro'; +import TabsList from '../../../components/TabsList.astro'; +import TabsTab from '../../../components/TabsTab.astro'; +import TabsPanel from '../../../components/TabsPanel.astro'; +import Sprite from '../../../components/Sprite.astro'; + + + +

Was wir anbieten

+ + + + + +

Softwareentwicklung

+
+ + +

Bildung

+
+ + +

Beratung

+
+
+ + +

Wir entwickeln robuste Softwarelösungen, die auf unterschiedliche Bedürfnisse zugeschnitten sind.

+ +
+ +

Wir teilen unser Wissen, um Ihre Lernreise zu unterstützen.

+ +
+ +

Wir begleiten Sie mit praxisnahen Ratschlägen durch technische Herausforderungen.

+ +
+
+ +
diff --git a/src/content/sections/de/Spotlight.mdx b/src/content/sections/de/Spotlight.mdx new file mode 100644 index 00000000..8bef8a2c --- /dev/null +++ b/src/content/sections/de/Spotlight.mdx @@ -0,0 +1,31 @@ +import SpotlightSection from '../../../layouts/sections/SpotlightSection.astro'; +import BackgroundVideo from '../../../components/BackgroundVideo.astro'; +import BackgroundImage from '../../../components/BackgroundImage.astro'; +import BackgroundIcon from '../../../components/BackgroundIcon.astro'; +import Button from '../../../components/Button.astro'; +import ValuesVideo from '../../../../res/values.mp4'; +import CollaborationImage from '../../../../res/collaboration.jpg'; +import ReferenceIcon from '../../../../res/dogli.svg'; + + + + +
+

Gemeinsam auf dem richtigen Weg

+

Finden wir gemeinsam den richtigen Weg, um Ihre Software Wirklichkeit werden zu lassen.

+ +
+ +
+

Nahtlos

+

Wir entwickeln Software, die sich nahtlos in Ihren bestehenden Arbeitsablauf integriert.

+ +
+ +
+

Die ultimative Hunde-Bereicherungs-App

+

Eine Smartphone-App mit Social-Media-Funktionen, um das Leben Ihres besten Freundes zu bereichern.

+ +
+ +
diff --git a/src/content/sections/de/Tools.mdx b/src/content/sections/de/Tools.mdx new file mode 100644 index 00000000..4d69325b --- /dev/null +++ b/src/content/sections/de/Tools.mdx @@ -0,0 +1,7 @@ +import ToolsSection from "../../../layouts/sections/ToolsSection.astro"; + + +

Womit wir arbeiten

+ + Dies ist eine Auswahl der Werkzeuge und Technologien, die wir täglich verwenden. Wir sind überzeugt, dass jede Programmiersprache, jedes Framework oder Tool Bereiche hat, in denen es besonders geeignet ist, und andere, in denen es weniger passt. Ein wichtiger Faktor bei unserer Werkzeugwahl ist die Nachhaltigkeit und langfristige Verfügbarkeit der eingesetzten Technologien. +
diff --git a/src/content/sections/en/Questions.mdx b/src/content/sections/en/Questions.mdx new file mode 100644 index 00000000..bcace044 --- /dev/null +++ b/src/content/sections/en/Questions.mdx @@ -0,0 +1,3 @@ +import QuestionsSection from "../../../layouts/sections/QuestionsSection.astro"; + + diff --git a/src/content/sections/en/References.mdx b/src/content/sections/en/References.mdx new file mode 100644 index 00000000..a0facde4 --- /dev/null +++ b/src/content/sections/en/References.mdx @@ -0,0 +1,5 @@ +import ReferencesSection from "../../../layouts/sections/ReferencesSection.astro"; + + +

Who trusts us

+
diff --git a/src/content/sections/en/Services.mdx b/src/content/sections/en/Services.mdx new file mode 100644 index 00000000..42ba61e8 --- /dev/null +++ b/src/content/sections/en/Services.mdx @@ -0,0 +1,117 @@ +import ServicesSection from '../../../layouts/sections/ServicesSection.astro'; +import Tabs from '../../../components/Tabs.astro'; +import TabsList from '../../../components/TabsList.astro'; +import TabsTab from '../../../components/TabsTab.astro'; +import TabsPanel from '../../../components/TabsPanel.astro'; +import Sprite from '../../../components/Sprite.astro'; + + + +

What we offer

+ + + + + +

Software development

+
+ + +

Education

+
+ + +

Consulting

+
+
+ + +

We build robust software solutions tailored to diverse needs.

+ +
+ +

We share our expertise to empower your learning journey.

+ +
+ +

We guide you through technical challenges with practical advice.

+ +
+
+ +
diff --git a/src/content/sections/en/Spotlight.mdx b/src/content/sections/en/Spotlight.mdx new file mode 100644 index 00000000..041128f7 --- /dev/null +++ b/src/content/sections/en/Spotlight.mdx @@ -0,0 +1,31 @@ +import SpotlightSection from '../../../layouts/sections/SpotlightSection.astro'; +import BackgroundVideo from '../../../components/BackgroundVideo.astro'; +import BackgroundImage from '../../../components/BackgroundImage.astro'; +import BackgroundIcon from '../../../components/BackgroundIcon.astro'; +import Button from '../../../components/Button.astro'; +import ValuesVideo from '../../../../res/values.mp4'; +import CollaborationImage from '../../../../res/collaboration.jpg'; +import ReferenceIcon from '../../../../res/dogli.svg'; + + + + +
+

Together on the right path

+

Let's find together the right path to bring your software to reality.

+ +
+ +
+

Seamless

+

We build software that integrates seamlessly into your existing workflow.

+ +
+ +
+

Ultimate dog enrichment app

+

A smartphone app with social media features to enrich your best friends life.

+ +
+ +
diff --git a/src/content/sections/en/Tools.mdx b/src/content/sections/en/Tools.mdx new file mode 100644 index 00000000..390ebac0 --- /dev/null +++ b/src/content/sections/en/Tools.mdx @@ -0,0 +1,7 @@ +import ToolsSection from "../../../layouts/sections/ToolsSection.astro"; + + +

What we work with

+ + This is a selection of the tools and technologies we use on a daily basis. We believe that every programming language, framework, or tool has areas where it excels and areas where it is less suitable. An important factor in our choice of tools is the sustainability and long-term availability of the technologies used. +
diff --git a/content/data/sections/portraits/diego-steiner.svg b/src/content/team/diego-steiner.svg similarity index 100% rename from content/data/sections/portraits/diego-steiner.svg rename to src/content/team/diego-steiner.svg diff --git a/src/content/team/index.yaml b/src/content/team/index.yaml new file mode 100644 index 00000000..a3887a6a --- /dev/null +++ b/src/content/team/index.yaml @@ -0,0 +1,18 @@ +- id: diego-steiner + name: Diego Steiner + avatar: ./diego-steiner.svg + role: + de: Mitgründer und Softwareentwickler + en: Co-founder and Software Developer +- id: leonardo-olivo + name: Leonardo Olivo + avatar: ./leonardo-olivo.svg + role: + de: Softwareentwickler + en: Software Developer +- id: robin-buehler + name: Robin Bühler + avatar: ./robin-buehler.svg + role: + de: Mitgründer und Softwareentwickler + en: Co-founder and Software Developer diff --git a/src/content/team/leonardo-olivo.svg b/src/content/team/leonardo-olivo.svg new file mode 100644 index 00000000..cf9ca2aa --- /dev/null +++ b/src/content/team/leonardo-olivo.svg @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/data/sections/portraits/robin-buehler.svg b/src/content/team/robin-buehler.svg similarity index 100% rename from content/data/sections/portraits/robin-buehler.svg rename to src/content/team/robin-buehler.svg diff --git a/src/declarations.d.ts b/src/declarations.d.ts deleted file mode 100644 index 9eb9d613..00000000 --- a/src/declarations.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -declare module '*.ttf' { - export default any; -} - -declare module '*.woff' { - export default any; -} - -declare module '*.woff2' { - export default any; -} diff --git a/src/fonts/fonts.ts b/src/fonts/fonts.ts deleted file mode 100644 index ed9e6934..00000000 --- a/src/fonts/fonts.ts +++ /dev/null @@ -1,43 +0,0 @@ -import TwoMASSJ1808HeavyTTF from './2MASSJ1808-Heavy.ttf'; -import TwoMASSJ1808HeavyWOFF from './2MASSJ1808-Heavy.woff'; -import TwoMASSJ1808HeavyWOFF2 from './2MASSJ1808-Heavy.woff2'; -import TwoMASSJ1808NormalTTF from './2MASSJ1808-Normal.ttf'; -import TwoMASSJ1808NormalWOFF from './2MASSJ1808-Normal.woff'; -import TwoMASSJ1808NormalWOFF2 from './2MASSJ1808-Normal.woff2'; - -import PTSans700TTF from './pt-sans-v12-latin-ext_latin-700.ttf'; -import PTSans700WOFF from './pt-sans-v12-latin-ext_latin-700.woff'; -import PTSans700WOFF2 from './pt-sans-v12-latin-ext_latin-700.woff2'; -import PTSans700italicTTF from './pt-sans-v12-latin-ext_latin-700italic.ttf'; -import PTSans700italicWOFF from './pt-sans-v12-latin-ext_latin-700italic.woff'; -import PTSans700italicWOFF2 from './pt-sans-v12-latin-ext_latin-700italic.woff2'; -import PTSansitalicTTF from './pt-sans-v12-latin-ext_latin-italic.ttf'; -import PTSansitalicWOFF from './pt-sans-v12-latin-ext_latin-italic.woff'; -import PTSansitalicWOFF2 from './pt-sans-v12-latin-ext_latin-italic.woff2'; -import PTSansregularTTF from './pt-sans-v12-latin-ext_latin-regular.ttf'; -import PTSansregularWOFF from './pt-sans-v12-latin-ext_latin-regular.woff'; -import PTSansregularWOFF2 from './pt-sans-v12-latin-ext_latin-regular.woff2'; - -export { - TwoMASSJ1808HeavyTTF, - TwoMASSJ1808HeavyWOFF, - TwoMASSJ1808HeavyWOFF2, - TwoMASSJ1808NormalTTF, - TwoMASSJ1808NormalWOFF, - TwoMASSJ1808NormalWOFF2, -}; - -export { - PTSans700TTF, - PTSans700WOFF, - PTSans700WOFF2, - PTSans700italicTTF, - PTSans700italicWOFF, - PTSans700italicWOFF2, - PTSansitalicTTF, - PTSansitalicWOFF, - PTSansitalicWOFF2, - PTSansregularTTF, - PTSansregularWOFF, - PTSansregularWOFF2, -}; diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700.ttf b/src/fonts/pt-sans-v12-latin-ext_latin-700.ttf deleted file mode 100644 index cb0f9730..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700.ttf and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700.woff b/src/fonts/pt-sans-v12-latin-ext_latin-700.woff deleted file mode 100644 index 5798a548..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700.woff and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700.woff2 b/src/fonts/pt-sans-v12-latin-ext_latin-700.woff2 deleted file mode 100644 index 041616bd..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700.woff2 and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.ttf b/src/fonts/pt-sans-v12-latin-ext_latin-700italic.ttf deleted file mode 100644 index f2c3778c..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.ttf and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff b/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff deleted file mode 100644 index a2f6b61c..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff2 b/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff2 deleted file mode 100644 index fa207c16..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-700italic.woff2 and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-italic.ttf b/src/fonts/pt-sans-v12-latin-ext_latin-italic.ttf deleted file mode 100644 index 36e08de8..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-italic.ttf and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff b/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff deleted file mode 100644 index 50c328c0..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff2 b/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff2 deleted file mode 100644 index 0ddd823b..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-italic.woff2 and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-regular.ttf b/src/fonts/pt-sans-v12-latin-ext_latin-regular.ttf deleted file mode 100644 index e8d63145..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-regular.ttf and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff b/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff deleted file mode 100644 index 5d289b8c..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff and /dev/null differ diff --git a/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff2 b/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff2 deleted file mode 100644 index e712d728..00000000 Binary files a/src/fonts/pt-sans-v12-latin-ext_latin-regular.woff2 and /dev/null differ diff --git a/src/gatsby/createPages/createGenericPages.ts b/src/gatsby/createPages/createGenericPages.ts deleted file mode 100644 index f13def3a..00000000 --- a/src/gatsby/createPages/createGenericPages.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { resolve } from 'path'; -import { CreatePagesArgs } from 'gatsby'; - -const genericPageTemplate = resolve('./src/templates/GenericPage.tsx'); - -export async function CreateGenericPages({ actions, graphql }: CreatePagesArgs) { - const { createPage } = actions; - const allPages = await graphql(` - query AllGenericPages { - allMdx(filter: { fields: { kind: { glob: "pages/**" } } }) { - edges { - node { - id - frontmatter { - description - title - } - fields { - path - translations { - locale - path - } - } - internal { - contentFilePath - } - } - } - } - } - `); - - allPages.data?.allMdx.edges.forEach(p => { - if (p.node.fields && p.node.fields.path) { - createPage({ - component: `${genericPageTemplate}?__contentFilePath=${p.node.internal.contentFilePath}`, - context: { id: p.node.id, translations: p.node.fields.translations, metaData: p.node.frontmatter }, - path: p.node.fields.path, - }); - } - }); -} diff --git a/src/gatsby/createSchemaCustomization/customizeSitePageContext.ts b/src/gatsby/createSchemaCustomization/customizeSitePageContext.ts deleted file mode 100644 index d1f1fd86..00000000 --- a/src/gatsby/createSchemaCustomization/customizeSitePageContext.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { CreateSchemaCustomizationArgs } from 'gatsby'; - -export const customizeSitePageContext = async ({ actions }: CreateSchemaCustomizationArgs) => { - actions.createTypes(` - type SitePage implements Node { - context: SitePageContext - } - type SitePageContext { - metaData: SitePageContextMetaData! - } - type SitePageContextMetaData { - title: String! - description: String! - } - `); -}; diff --git a/src/gatsby/onCreatePage/generatePageMetaData.test.ts b/src/gatsby/onCreatePage/generatePageMetaData.test.ts deleted file mode 100644 index 5c1b4358..00000000 --- a/src/gatsby/onCreatePage/generatePageMetaData.test.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { generatePageMetaData } from './generatePageMetaData'; - -const args: any = { - actions: {}, - page: {}, - reporter: {}, -}; - -jest.mock('../../../content/i18n/de-CH.json', () => ({}), { virtual: true }); - -describe('generatePageMetaData', () => { - beforeEach(() => { - args.actions = { - createPage: jest.fn(), - deletePage: jest.fn(), - }; - args.page = {}; - args.reporter = { - warn: jest.fn(), - }; - }); - - it('returns without page context', async () => { - await generatePageMetaData(args); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('returns when is not a stateful created page', async () => { - args.page = { - context: {}, - isCreatedByStatefulCreatePages: false, - }; - await generatePageMetaData(args); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('returns without locale pages id', async () => { - args.page = { - context: {}, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('returns when locale pages id is blacklisted', async () => { - args.page = { - context: { - localePagesId: 'dev-404-page', - }, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('returns with warning when there are no messages for locale', async () => { - args.page = { - context: { - localePagesId: 'some.page', - }, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.reporter.warn).toBeCalledWith(`Page context locale is null or couldn't find locale undefined.`); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('returns with warning when the key site.meta.title is not in the messages', async () => { - args.page = { - context: { - localePagesId: 'index', - locale: 'de-CH', - }, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.reporter.warn).toBeCalledWith(`Missing key site.meta.title in messages.`); - expect(args.actions.deletePage).not.toBeCalled(); - expect(args.actions.createPage).not.toBeCalled(); - }); - - it('set the meta data with warning when the page title key is not in the messages', async () => { - args.page = { - context: { - localePagesId: 'some.fictional.page', - locale: 'en-US', - }, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.reporter.warn).toBeCalledWith(`Missing key page.some.fictional.page.meta.title in messages.`); - expect(args.reporter.warn).toBeCalledWith(`Missing key page.some.fictional.page.meta.description in messages.`); - expect(args.actions.createPage).toMatchInlineSnapshot(` - [MockFunction] { - "calls": [ - [ - { - "context": { - "locale": "en-US", - "localePagesId": "some.fictional.page", - "metaData": { - "description": undefined, - "title": "openscript Ltd.", - }, - }, - "isCreatedByStatefulCreatePages": true, - }, - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], - } - `); - }); - - it('sets the meta data', async () => { - args.page = { - context: { - localePagesId: 'index', - locale: 'en-US', - }, - isCreatedByStatefulCreatePages: true, - }; - await generatePageMetaData(args); - expect(args.actions.deletePage).toMatchInlineSnapshot(` - [MockFunction] { - "calls": [ - [ - { - "context": { - "locale": "en-US", - "localePagesId": "index", - }, - "isCreatedByStatefulCreatePages": true, - }, - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], - } - `); - expect(args.actions.createPage).toMatchInlineSnapshot(` - [MockFunction] { - "calls": [ - [ - { - "context": { - "locale": "en-US", - "localePagesId": "index", - "metaData": { - "description": "Companions for adventures in the world of bits and bytes.", - "title": "Home - openscript Ltd.", - }, - }, - "isCreatedByStatefulCreatePages": true, - }, - ], - ], - "results": [ - { - "type": "return", - "value": undefined, - }, - ], - } - `); - }); -}); diff --git a/src/gatsby/onCreatePage/generatePageMetaData.ts b/src/gatsby/onCreatePage/generatePageMetaData.ts deleted file mode 100644 index 8d1474fd..00000000 --- a/src/gatsby/onCreatePage/generatePageMetaData.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { CreatePageArgs, Reporter } from 'gatsby'; -import deCHMessages from '../../../content/i18n/de-CH.json'; -import enUSMessages from '../../../content/i18n/en-US.json'; - -const BLACK_LIST = ['dev-404-page']; - -function getMessages(locale?: string | null) { - switch (locale) { - case 'de-CH': - return deCHMessages; - case 'en-US': - return enUSMessages; - default: - return undefined; - } -} - -function getMessageFromMessages(messages: Record, key: string, reporter: Reporter) { - if (key in messages) { - return messages[key]; - } - reporter.warn(`Missing key ${key} in messages.`); - return undefined; -} - -function createPageTitle(siteTitle: string, pageTitle?: string) { - return pageTitle ? `${pageTitle} - ${siteTitle}` : siteTitle; -} - -export async function generatePageMetaData({ actions, page, reporter }: CreatePageArgs) { - const { createPage, deletePage } = actions; - if (!page.context || !page.isCreatedByStatefulCreatePages) { - return; - } - - const { localePagesId } = page.context; - if (!localePagesId || BLACK_LIST.includes(localePagesId)) { - return; - } - const messages = getMessages(page.context.locale); - if (!messages) { - reporter.warn(`Page context locale is null or couldn't find locale ${page.context.locale}.`); - return; - } - - const siteTitle = getMessageFromMessages(messages, `site.meta.title`, reporter); - const pageTitle = getMessageFromMessages(messages, `page.${localePagesId}.meta.title`, reporter); - - if (!siteTitle) { - return; - } - - const metaData = { - title: createPageTitle(siteTitle, pageTitle), - description: getMessageFromMessages(messages, `page.${localePagesId}.meta.description`, reporter), - }; - - deletePage(page); - createPage({ ...page, context: { ...page.context, metaData } }); -} diff --git a/src/integrations/search.ts b/src/integrations/search.ts new file mode 100644 index 00000000..eafc865f --- /dev/null +++ b/src/integrations/search.ts @@ -0,0 +1,64 @@ +import type { AstroIntegration } from "astro"; +import { fileURLToPath } from "node:url"; +import { execSync } from "child_process"; +import sirv from "sirv"; + +export default function search(): AstroIntegration { + let outDir: string; + return { + name: "search", + hooks: { + "astro:config:setup": ({ config, logger }) => { + if (config.output === "server") { + logger.warn( + "Output type `server` does not produce static *.html pages in its output and thus will not work with astro-pagefind integration.", + ); + return; + } + + if (config.adapter?.name.startsWith("@astrojs/vercel")) { + outDir = fileURLToPath(new URL(".vercel/output/static/", config.root)); + } else if (config.adapter?.name === "@astrojs/cloudflare") { + outDir = fileURLToPath(new URL(config.base?.replace(/^\//, ""), config.outDir)); + } else if (config.adapter?.name === "@astrojs/node" && config.output === "static") { + outDir = fileURLToPath(config.build.client!); + } else { + outDir = fileURLToPath(config.outDir); + } + }, + "astro:server:setup": ({ server, logger }) => { + if (!outDir) { + logger.warn( + "astro-pagefind couldn't reliably determine the output directory. Search assets will not be served.", + ); + return; + } + + const serve = sirv(outDir, { + dev: true, + etag: true, + }); + server.middlewares.use((req, res, next) => { + if (req.url?.startsWith("/pagefind/")) { + serve(req, res, next); + } else { + next(); + } + }); + }, + "astro:build:done": ({ logger }) => { + if (!outDir) { + logger.warn( + "astro-pagefind couldn't reliably determine the output directory. Search index will not be built.", + ); + return; + } + + const cmd = `npx pagefind --site "${outDir}"`; + execSync(cmd, { + stdio: [process.stdin, process.stdout, process.stderr], + }); + }, + }, + }; +} diff --git a/src/layouts/DefaultLayout.tsx b/src/layouts/DefaultLayout.tsx deleted file mode 100644 index f806092c..00000000 --- a/src/layouts/DefaultLayout.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { Global, Theme, ThemeProvider } from '@emotion/react'; -import { graphql, useStaticQuery } from 'gatsby'; -import { ComponentType, PropsWithChildren } from 'react'; -import { TwoColorDivider } from '../components/TwoColorDivider'; -import { defaultStyles } from '../themes/defaultStyles'; -import { defaultTheme } from '../themes/defaultTheme'; -import { Footer } from './default/Footer'; -import { Header } from './default/Header'; -import { Main } from './default/Main'; - -const query = graphql` - query DefaultLayout { - site { - siteMetadata { - author - description - phone - email - address - siteUrl - title - version - project - } - } - } -`; - -type DefaultLayoutProps = PropsWithChildren<{ - theme?: Theme; - CustomMain?: ComponentType; -}>; - -export function DefaultLayout({ children, theme, CustomMain = Main }: DefaultLayoutProps) { - const data = useStaticQuery(query); - - return ( - - -
- - {children} - -