From 1a7ac59e99419eb19f07a4a125e2d3d88c6b39f2 Mon Sep 17 00:00:00 2001 From: Rodrigo Yokota Date: Fri, 13 Jun 2025 15:00:08 -0300 Subject: [PATCH] chore: add and adjust README files --- examples/angular-vite/README.md | 70 +- examples/create-default-webpack-mf/README.md | 97 +- .../create-default-webpack-mf/package.json | 4 + examples/create-mf-app-rspack/README.md | 63 + .../create-nx-rspack-workspace-mf/README.md | 215 +- examples/create-nx-workspace-mf/README.md | 105 +- examples/modernjs-app/README.md | 109 +- examples/nx-ng/README.md | 173 +- examples/parcel-react/README.md | 53 + examples/qwik-1.5/README.md | 197 +- examples/react-airbnb-clone/README.md | 93 +- examples/react-rollup-ts/README.md | 51 + examples/react-tractor-sample/README.md | 110 +- examples/react-vite-mf/host/README.md | 143 +- examples/react-vite-mf/readme.md | 103 +- examples/react-vite-nx/README.md | 84 +- examples/react-vite-ts/README.md | 81 +- examples/rolldown-react/README.md | 52 + examples/rspack-project/README.md | 53 + examples/rspress-ssg/README.md | 104 +- examples/solid/README.md | 78 +- examples/svelte/README.md | 92 +- examples/turbo-rspack-mf/README.md | 148 +- pnpm-lock.yaml | 1740 ++++++++++++++++- 24 files changed, 3450 insertions(+), 568 deletions(-) create mode 100644 examples/create-mf-app-rspack/README.md create mode 100644 examples/parcel-react/README.md create mode 100644 examples/react-rollup-ts/README.md create mode 100644 examples/rolldown-react/README.md create mode 100644 examples/rspack-project/README.md diff --git a/examples/angular-vite/README.md b/examples/angular-vite/README.md index 1e881ff8..29004e9b 100644 --- a/examples/angular-vite/README.md +++ b/examples/angular-vite/README.md @@ -1,29 +1,61 @@ -# Angular Vite Zephyr Template +# Angular + Vite -A minimal application that uses Angular + Vite + Zephyr for development and building. +An Angular application built with Vite bundler, showcasing fast development experience with modern tooling and Zephyr Cloud integration. -## Setup +## Technology Stack -```bash -npm install -``` +- **Framework**: Angular 19 +- **Bundler**: Vite 5 +- **Language**: TypeScript +- **Development**: Hot Module Replacement (HMR) +- **Build Plugin**: @analogjs/vite-plugin-angular +- **Deployment**: Zephyr Cloud (via vite-plugin-zephyr) -## Development +## Prerequisites -```bash -npm run dev -``` +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -Navigate to http://localhost:5173 to see the running application +## Getting Started -## Build +1. **Install dependencies** + ```bash + pnpm install + ``` -```bash -npm run build -``` +2. **Start development server** + ```bash + pnpm dev + ``` + + Navigate to `http://localhost:5173` to see the running application -## Preview +3. **Build for production** + ```bash + pnpm build + ``` -```bash -npm run preview -``` +4. **Preview production build** + ```bash + pnpm preview + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. The `vite-plugin-zephyr` handles the deployment process seamlessly. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Angular Documentation](https://angular.io/) +- [Vite Documentation](https://vitejs.dev/) +- [AnalogJS Vite Plugin](https://analogjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/create-default-webpack-mf/README.md b/examples/create-default-webpack-mf/README.md index 94b0956f..85d8c98d 100755 --- a/examples/create-default-webpack-mf/README.md +++ b/examples/create-default-webpack-mf/README.md @@ -1,20 +1,91 @@ -# Module Federation +# Webpack Module Federation Example -## How to use +A basic Module Federation setup with two React applications demonstrating micro-frontend architecture using Webpack 5. -Run the following commands in the root directory. +## Technology Stack -```bash -yarn -yarn start -``` -Both `app1` and `app2` are independently deployed apps: +- **Framework**: React 18 +- **Architecture**: Module Federation +- **Bundler**: Webpack 5 +- **Language**: JavaScript +- **Deployment**: Zephyr Cloud +- **Development**: Webpack Dev Server -- `app1`: http://localhost:3001 -- `app2`: http://localhost:3002 +## Prerequisites -To be able to use this example, build app2. Then find it in https://app.zephyr-cloud.io and set link to 'remoteEntry.js' file. Link should be set in variable app2Url (/app1/src/index.js). +- Node.js (version 16 or higher) +- pnpm (recommended) or yarn/npm -Check out this link below for more examples: +## Getting Started -[https://github.com/module-federation/module-federation-examples](https://github.com/module-federation/module-federation-examples) +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development servers** + ```bash + pnpm start + ``` + + This starts both applications concurrently: + - **app1** (Host): http://localhost:3001 + - **app2** (Remote): http://localhost:3002 + + Or start them individually: + ```bash + cd app1 && pnpm start # Host on port 3001 + cd app2 && pnpm start # Remote on port 3002 + ``` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Project Structure + +This example consists of two federated applications: + +- **`app1/`** - Host application that consumes remotes +- **`app2/`** - Remote application that exposes components + +## Zephyr Cloud Integration + +To use this example with Zephyr Cloud: + +1. Build and deploy `app2` to Zephyr Cloud +2. Copy the deployment URL for the `remoteEntry.js` file +3. Update the `app2Url` variable in `/app1/src/index.js` with the Zephyr Cloud URL +4. Build and deploy `app1` + +## Module Federation Configuration + +Each application has its own `webpack.config.js` with Module Federation plugin configuration: + +- **app1**: Configured as a host to consume remote modules +- **app2**: Configured as a remote to expose components + +## About Module Federation + +Module Federation enables: +- **Independent deployment**: Each micro-frontend can be deployed separately +- **Runtime composition**: Applications are composed at runtime, not build time +- **Shared dependencies**: Efficient sharing of common libraries +- **Technology diversity**: Different teams can use different tech stacks + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Module Federation Documentation](https://module-federation.io/) +- [Webpack Module Federation](https://webpack.js.org/concepts/module-federation/) +- [Module Federation Examples](https://github.com/module-federation/module-federation-examples) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/create-default-webpack-mf/package.json b/examples/create-default-webpack-mf/package.json index 9cc3e6fd..354b8c7a 100755 --- a/examples/create-default-webpack-mf/package.json +++ b/examples/create-default-webpack-mf/package.json @@ -2,6 +2,10 @@ "name": "create-default-webpack-mf", "version": "0.0.1", "scripts": { + "start": "concurrently \"pnpm --filter=./app2 start\" \"pnpm --filter=./app1 start\"", "build": "pnpm --filter=./app2 build && pnpm --filter=./app1 build" + }, + "devDependencies": { + "concurrently": "^8.2.2" } } diff --git a/examples/create-mf-app-rspack/README.md b/examples/create-mf-app-rspack/README.md new file mode 100644 index 00000000..892a68d7 --- /dev/null +++ b/examples/create-mf-app-rspack/README.md @@ -0,0 +1,63 @@ +# React + Rspack + Module Federation Application + +A React application built with Rspack bundler demonstrating Module Federation capabilities with fast builds and modern development experience. + +## Technology Stack + +- **Framework**: React with TypeScript +- **Architecture**: Module Federation +- **Bundler**: Rspack +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) or npm + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:3000` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Module Federation Configuration + +This application is configured as a Module Federation container with: +- **Name**: `create_mf_app_rspack` +- **Remote Entry**: `remoteEntry.js` +- **Shared Dependencies**: React, React-DOM, React-Router-DOM (all eager loaded) + +The application uses the `zephyr-rspack-plugin` for seamless integration with Zephyr Cloud deployment. + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. The Zephyr plugin handles Module Federation deployment, ensuring proper remote entry generation and dependency sharing. After running the build command, your application will be deployed and a preview URL will be provided. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Rspack Documentation](https://rspack.dev/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/create-nx-rspack-workspace-mf/README.md b/examples/create-nx-rspack-workspace-mf/README.md index 759d7eb8..3f445939 100644 --- a/examples/create-nx-rspack-workspace-mf/README.md +++ b/examples/create-nx-rspack-workspace-mf/README.md @@ -1,96 +1,119 @@ -# CreateNxRspackWorkspaceMf - - - -✨ Your new, shiny [Nx workspace](https://nx.dev) is ready ✨. - -[Learn more about this workspace setup and its capabilities](https://nx.dev/getting-started/intro#learn-nx?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or run `npx nx graph` to visually explore what was created. Now, let's get you up to speed! - -## Run tasks - -To run tasks with Nx use: - -```sh -npx nx -``` - -For example: - -```sh -npx nx build myproject -``` - -These targets are either [inferred automatically](https://nx.dev/concepts/inferred-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or defined in the `project.json` or `package.json` files. - -[More about running tasks in the docs »](https://nx.dev/features/run-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -## Add new projects - -While you could add new projects to your workspace manually, you might want to leverage [Nx plugins](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) and their [code generation](https://nx.dev/features/generate-code?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) feature. - -To install a new plugin you can use the `nx add` command. Here's an example of adding the React plugin: -```sh -npx nx add @nx/react -``` - -Use the plugin's generator to create new projects. For example, to create a new React app or library: - -```sh -# Genenerate an app -npx nx g @nx/react:app demo - -# Generate a library -npx nx g @nx/react:lib some-lib -``` - -You can use `npx nx list` to get a list of installed plugins. Then, run `npx nx list ` to learn about more specific capabilities of a particular plugin. Alternatively, [install Nx Console](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) to browse plugins and generators in your IDE. - -[Learn more about Nx plugins »](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) | [Browse the plugin registry »](https://nx.dev/plugin-registry?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -## Set up CI! - -### Step 1 - -To connect to Nx Cloud, run the following command: - -```sh -npx nx connect -``` - -Connecting to Nx Cloud ensures a [fast and scalable CI](https://nx.dev/ci/intro/why-nx-cloud?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) pipeline. It includes features such as: - -- [Remote caching](https://nx.dev/ci/features/remote-cache?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [Task distribution across multiple machines](https://nx.dev/ci/features/distribute-task-execution?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [Automated e2e test splitting](https://nx.dev/ci/features/split-e2e-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [Task flakiness detection and rerunning](https://nx.dev/ci/features/flaky-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -### Step 2 - -Use the following command to configure a CI workflow for your workspace: - -```sh -npx nx g ci-workflow -``` - -[Learn more about Nx on CI](https://nx.dev/ci/intro/ci-with-nx#ready-get-started-with-your-provider?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -## Install Nx Console - -Nx Console is an editor extension that enriches your developer experience. It lets you run tasks, generate code, and improves code autocompletion in your IDE. It is available for VSCode and IntelliJ. - -[Install Nx Console »](https://nx.dev/getting-started/editor-setup?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -## Useful links - -Learn more: - -- [Learn more about this workspace setup](https://nx.dev/getting-started/intro#learn-nx?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [Learn about Nx on CI](https://nx.dev/ci/intro/ci-with-nx?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [Releasing Packages with Nx release](https://nx.dev/features/manage-releases?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -- [What are Nx plugins?](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - -And join the Nx community: -- [Discord](https://go.nx.dev/community) -- [Follow us on X](https://twitter.com/nxdevtools) or [LinkedIn](https://www.linkedin.com/company/nrwl) -- [Our Youtube channel](https://www.youtube.com/@nxdevtools) -- [Our blog](https://nx.dev/blog?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +# Nx + Rspack + Module Federation Workspace + +A comprehensive Nx workspace demonstrating Module Federation architecture with Rspack bundler and multiple micro-frontend applications. + +## Technology Stack + +- **Framework**: React 18 with TypeScript +- **Architecture**: Module Federation +- **Build System**: Nx Workspace +- **Bundler**: Rspack +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud +- **Development**: Rspack Dev Server + +## Prerequisites + +- Node.js (version 16 or higher) +- npm or yarn + +## Project Structure + +This Nx workspace consists of three federated applications: + +- **`host/`** - Host application that orchestrates the micro-frontends +- **`remote1/`** - Remote application exposing shared components +- **`remote2/`** - Another remote application with independent functionality + +## Getting Started + +1. **Install dependencies** + ```bash + npm install + ``` + +2. **Development mode** + + Start all applications concurrently: + ```bash + npx nx run-many --target=serve --projects=remote1,remote2,host --parallel + ``` + + Or start individually: + ```bash + npx nx serve remote1 + npx nx serve remote2 + npx nx serve host + ``` + +3. **Build for production** (in correct order) + + Because this is a Module Federation setup, remotes must be built before the host: + + ```bash + npx nx run remote1:build + npx nx run remote2:build + npx nx run host:build + ``` + + Or use the convenience script that handles build order: + ```bash + npm run build + ``` + +4. **Visual project graph** + ```bash + npx nx graph + ``` + +## Module Federation Configuration + +Each application uses Rspack's Module Federation plugin: + +- **Host Application**: Consumes remote modules at runtime +- **Remote Applications**: Expose components for consumption +- **Shared Dependencies**: React, React-DOM shared as singletons +- **Build Dependencies**: Remotes must be built before host for proper mapping + +## Rspack Benefits + +This example showcases Rspack's advantages: +- **Faster builds**: Significantly faster than Webpack +- **Module Federation support**: First-class MF support +- **Webpack compatibility**: Easy migration from Webpack setups +- **Development experience**: Fast HMR and dev server + +## Zephyr Cloud Integration + +This example demonstrates enterprise-scale micro-frontend deployment: + +1. **Build Order**: Remotes built and deployed first +2. **Automatic Mapping**: Zephyr Cloud maps remote entry points +3. **Runtime Loading**: Host consumes deployed remotes at runtime +4. **Independent Deployment**: Each micro-frontend deploys separately + +## About Module Federation + +Module Federation enables: +- **Independent deployment**: Each micro-frontend can deploy separately +- **Runtime composition**: Applications compose at runtime, not build time +- **Team autonomy**: Different teams can own different remotes +- **Technology flexibility**: Different versions of dependencies per remote +- **Shared dependencies**: Efficient sharing of common libraries + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Nx Documentation](https://nx.dev/) +- [Rspack Documentation](https://rspack.dev/) +- [Module Federation Documentation](https://module-federation.io/) +- [Zephyr Cloud Micro-Frontend Guide](https://docs.zephyr-cloud.io/how-to/mf-guide) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/create-nx-workspace-mf/README.md b/examples/create-nx-workspace-mf/README.md index e6be86a1..e33f54b6 100644 --- a/examples/create-nx-workspace-mf/README.md +++ b/examples/create-nx-workspace-mf/README.md @@ -1,12 +1,101 @@ -Because this is a Micro-frontend application, to run this example, you will need to run below commands in succession: +# Nx Workspace with Module Federation -```bash -npx nx run remote1:build -npx nx run remote2:build -npx nx run shell:build -``` +A comprehensive Nx workspace demonstrating Module Federation architecture with multiple micro-frontend applications. -While `remote1` and `remote2` are remote applications, they will need to be built first for Zephyr to map the remote application to shell(the host app). +## Technology Stack -For more details about how to handle Micro-Frontend application you can refer [to the checklist here](https://docs.zephyr-cloud.io/how-to/mf-guide) +- **Framework**: React with TypeScript +- **Architecture**: Module Federation +- **Build System**: Nx Workspace +- **Bundler**: Webpack 5 +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud + +## Prerequisites + +- Node.js (version 16 or higher) +- npm or yarn + +## Project Structure + +This workspace consists of three federated applications: + +- **`shell/`** - Host application that orchestrates the micro-frontends +- **`remote1/`** - Remote application exposing shared components +- **`remote2/`** - Another remote application with independent functionality + +## Getting Started + +1. **Install dependencies** + ```bash + npm install + ``` + +2. **Development mode** + + Start all applications concurrently: + ```bash + npx nx run-many --target=serve --projects=remote1,remote2,shell --parallel + ``` + + Or start individually: + ```bash + npx nx serve remote1 + npx nx serve remote2 + npx nx serve shell + ``` + +3. **Build for production** (in correct order) + + Because this is a Micro-frontend application, remotes must be built before the host: + + ```bash + npx nx run remote1:build + npx nx run remote2:build + npx nx run shell:build + ``` + + Or build all at once (Nx handles dependencies): + ```bash + npx nx run-many --target=build --projects=remote1,remote2,shell + ``` + +## Module Federation Architecture + +- **Remote Applications** (`remote1`, `remote2`) expose components that can be consumed by other applications +- **Host Application** (`shell`) consumes and orchestrates the remote applications +- **Build Order Dependency**: Remotes must be built first so Zephyr Cloud can map remote applications to the host + +## Zephyr Cloud Integration + +This example demonstrates enterprise-scale micro-frontend deployment where: + +1. Remote applications are built and deployed first +2. Zephyr Cloud maps the remote entry points +3. The shell (host) application consumes the deployed remotes +4. Independent deployment cycles for each micro-frontend + +## About Module Federation + +Module Federation enables: +- **Independent deployment**: Each micro-frontend deploys separately +- **Runtime composition**: Applications compose at runtime, not build time +- **Team autonomy**: Different teams can own different remotes +- **Shared dependencies**: Efficient sharing of common libraries + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Nx Documentation](https://nx.dev/) +- [Module Federation Documentation](https://module-federation.io/) +- [Micro-Frontend Guide](https://docs.zephyr-cloud.io/how-to/mf-guide) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/modernjs-app/README.md b/examples/modernjs-app/README.md index 38d1d2a1..a455bdc0 100644 --- a/examples/modernjs-app/README.md +++ b/examples/modernjs-app/README.md @@ -1,37 +1,100 @@ -# Modern.js App +# Modern.js + React Application -## Setup +A React application built with Modern.js framework and Rspack, providing a full-stack development experience with modern tooling and conventions. -Install the dependencies: +## Technology Stack -```bash -pnpm install -``` +- **Framework**: Modern.js with React +- **Bundler**: Rspack (built-in) +- **Language**: TypeScript +- **Routing**: File-based routing +- **Linting**: Biome +- **Deployment**: Zephyr Cloud +- **Features**: SSR, File-based routing, Plugin system -## Get Started +## Prerequisites -Start the dev server: +- Node.js (version 16 or higher) +- pnpm (required for Modern.js) -```bash -pnpm dev -``` +## Getting Started -Enable optional features or add a new entry: +1. **Install dependencies** + ```bash + pnpm install + ``` -```bash -pnpm new -``` +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:8080` -Build the app for production: +3. **Add new features or entries** + ```bash + pnpm new + ``` + + Interactive CLI to enable optional features or add new entries -```bash -pnpm build -``` +4. **Build for production** + ```bash + pnpm build + ``` -Preview the production build locally: +5. **Preview production build** + ```bash + pnpm serve + ``` + +## Project Structure + +Modern.js uses file-based routing and conventions: -```bash -pnpm serve ``` +├── src/ +│ └── routes/ # File-based routing +│ ├── layout.tsx # Root layout +│ └── page.tsx # Home page +├── modern.config.ts # Modern.js configuration +└── biome.json # Biome configuration +``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. Modern.js provides excellent integration with various deployment platforms. + +## About Modern.js + +Modern.js is a meta-framework for building web applications that provides: +- **Progressive enhancement**: Start simple, add complexity as needed +- **Full-stack capabilities**: Frontend and backend in one framework +- **Performance-first**: Built with Rspack for fast builds +- **Convention over configuration**: Sensible defaults with flexibility +- **Plugin ecosystem**: Extensible architecture + +## Available Commands + +- `pnpm dev` - Start development server +- `pnpm build` - Build for production +- `pnpm serve` - Preview production build +- `pnpm new` - Interactive CLI for adding features +- `pnpm lint` - Run Biome linter +- `pnpm type-check` - Run TypeScript type checking + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More -For more information, see the [Modern.js documentation](https://modernjs.dev/en). +- [Modern.js Documentation](https://modernjs.dev/en) +- [Modern.js GitHub](https://github.com/web-infra-dev/modern.js) +- [Rspack Documentation](https://rspack.dev/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/nx-ng/README.md b/examples/nx-ng/README.md index c02d2f58..247965e7 100644 --- a/examples/nx-ng/README.md +++ b/examples/nx-ng/README.md @@ -1,47 +1,134 @@ -# Angular + nx v15 deployment demo +# Angular + Nx + Zephyr Cloud Integration -This readme explains why attaching Zephyr to Angular CLI is a bit more complicated they just one `withZephyr()` line. +An Angular application demonstrating Zephyr Cloud integration with Nx workspace management and custom webpack configuration. -Since Angular v8, Angular CLI builds `index.html` outside of webpack build process. -Meaning that we can't just add a plugin to webpack and expect it to work. +## Technology Stack -In a nutshell, Angular CLI does the following: -1. Starts webpack build and waits for it to finish +- **Framework**: Angular with TypeScript +- **Build System**: Nx Workspace +- **Bundler**: Webpack (via Angular CLI) +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud +- **Testing**: Jest + Cypress + +## Prerequisites + +- Node.js (version 16 or higher) +- npm or yarn +- Angular CLI knowledge + +## Getting Started + +1. **Install dependencies** + ```bash + npm install + ``` + +2. **Start development server** + ```bash + npx nx serve + ``` + + The application will be available at `http://localhost:4200` + +3. **Build for production** + ```bash + npx nx build + ``` + +4. **Run tests** + ```bash + # Unit tests + npx nx test + + # E2E tests + npx nx e2e + ``` + +5. **Lint the code** + ```bash + npx nx lint + ``` + +## Special Angular CLI + Zephyr Integration + +This example demonstrates the unique setup required for Angular CLI + Zephyr Cloud integration, which is more complex than a simple `withZephyr()` call due to Angular's build process. + +### Why the complexity? + +Since Angular v8, Angular CLI builds `index.html` outside of the webpack build process: + +1. Angular CLI starts webpack build and waits for it to finish 2. Builds `index.html` using `@angular-devkit/build-angular:html` -3. `process.exit(0)` if there are no errors - -`withZephyr()` attaches to webpack build process, while to have `index.html` we need to intercept it in index-html-transform and make Angular CLI wait for deployment to finish. - -## How to attach Zephyr to Angular CLI - -1. Install `zephyr-webpack-plugin` as a dev dependency -2. Install `@angular-builders/custom-webpack` as a dev dependency (this is needed to modify Angular CLI webpack config) -3. Create a `webpack.config.js` file in the root of your project - ```js - const {withZephyr} = require('zephyr-webpack-plugin'); - - // shorthand for: module.exports = (config) => withZephyr({wait_for_index_html: true})(config); - module.exports = withZephyr({wait_for_index_html: true}); - ``` -4. Create `index-html-transform.js` file in the root of your project - ```js - const { resolveIndexHtml, onDeploymentDone } = require('zephyr-webpack-plugin'); - - module.exports = async (targetOptions, indexHtml) => { - resolveIndexHtml(indexHtml); - await onDeploymentDone(); - return indexHtml; - }; - ``` -5. Modify build executor in `angular.json` or `project.json` to use custom webpack config and index transform - ```json - "build": { - "builder": "@angular-builders/custom-webpack:browser", - "options": { - "customWebpackConfig": { - "path": "./webpack.config.js" - }, - "indexTransform": "./index-html-transform.js" - } - } - ``` +3. Exits if there are no errors + +This means Zephyr's webpack plugin can't directly handle the HTML file. + +### Implementation Details + +The integration uses two key files: + +**1. `extra-webpack.config.js`** - Custom webpack configuration: +```javascript +const { withZephyr } = require('zephyr-webpack-plugin'); + +// Shorthand for: module.exports = (config) => withZephyr({wait_for_index_html: true})(config); +module.exports = withZephyr({ wait_for_index_html: true }); +``` + +**2. `index-html-transform.js`** - HTML transformation: +```javascript +const { resolveIndexHtml, onDeploymentDone } = require('zephyr-webpack-plugin'); + +module.exports = async (targetOptions, indexHtml) => { + resolveIndexHtml(indexHtml); + await onDeploymentDone(); + return indexHtml; +}; +``` + +**3. `project.json`** configuration uses: +- Custom webpack builder: `@angular-builders/custom-webpack:browser` +- Custom webpack config path: `./extra-webpack.config.js` +- Index transform: `./index-html-transform.js` + +## Zephyr Cloud Integration + +This example shows how to properly integrate Zephyr Cloud with Angular CLI: + +- **Custom webpack config**: Required to inject Zephyr plugin +- **HTML transformation**: Needed to handle index.html outside webpack +- **Deployment waiting**: Ensures Angular CLI waits for Zephyr deployment +- **Automatic deployment**: Triggered on each build + +## Project Structure + +``` +src/ +├── app/ # Angular application code +├── assets/ # Static assets +├── index.html # Main HTML file (transformed by Zephyr) +└── main.ts # Application bootstrap + +Configuration files: +├── extra-webpack.config.js # Zephyr webpack integration +├── index-html-transform.js # HTML transformation for Zephyr +└── project.json # Nx project configuration +``` + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Angular Documentation](https://angular.io/docs) +- [Nx Documentation](https://nx.dev/) +- [Angular Builders Custom Webpack](https://github.com/just-jeb/angular-builders/tree/master/packages/custom-webpack) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) +- [Zephyr Angular Integration Guide](https://docs.zephyr-cloud.io/how-to/angular-integration) \ No newline at end of file diff --git a/examples/parcel-react/README.md b/examples/parcel-react/README.md new file mode 100644 index 00000000..499d7930 --- /dev/null +++ b/examples/parcel-react/README.md @@ -0,0 +1,53 @@ +# Parcel + React + +A React application built with Parcel bundler, showcasing modern frontend development with fast build times and zero configuration. + +## Technology Stack + +- **Framework**: React 19 +- **Bundler**: Parcel 2.13 +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud (via parcel-reporter-zephyr) + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) or npm + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:1234` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. The `parcel-reporter-zephyr` plugin handles the deployment process. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Parcel Documentation](https://parceljs.org/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/qwik-1.5/README.md b/examples/qwik-1.5/README.md index 20b3fb71..ed0e1e37 100644 --- a/examples/qwik-1.5/README.md +++ b/examples/qwik-1.5/README.md @@ -1,137 +1,118 @@ -# Qwik City App ⚡️ +# Qwik + Vite Application ⚡️ -- [Qwik Docs](https://qwik.dev/) -- [Discord](https://qwik.dev/chat) -- [Qwik GitHub](https://github.com/BuilderIO/qwik) -- [@QwikDev](https://twitter.com/QwikDev) -- [Vite](https://vitejs.dev/) +A Qwik application built with QwikCity and Vite, demonstrating resumable JavaScript and optimal performance with edge deployment capabilities. ---- +## Technology Stack -## Project Structure - -This project is using Qwik with [QwikCity](https://qwik.dev/qwikcity/overview/). QwikCity is just an extra set of tools on top of Qwik to make it easier to build a full site, including directory-based routing, layouts, and more. - -Inside your project, you'll see the following directory structure: +- **Framework**: Qwik 1.5 with QwikCity +- **Bundler**: Vite 5 +- **Language**: TypeScript +- **Routing**: File-based routing with QwikCity +- **Deployment**: Netlify Edge Functions + Zephyr Cloud +- **Features**: SSR, SSG, Edge Functions -``` -├── public/ -│ └── ... -└── src/ - ├── components/ - │ └── ... - └── routes/ - └── ... -``` +## Prerequisites -- `src/routes`: Provides the directory-based routing, which can include a hierarchy of `layout.tsx` layout files, and an `index.tsx` file as the page. Additionally, `index.ts` files are endpoints. Please see the [routing docs](https://qwik.dev/qwikcity/routing/overview/) for more info. +- Node.js (version 18.17.0, 20.3.0, or >=21.0.0) +- pnpm (recommended) or npm -- `src/components`: Recommended directory for components. +## Getting Started -- `public`: Any static assets, like images, can be placed in the public directory. Please see the [Vite public directory](https://vitejs.dev/guide/assets.html#the-public-directory) for more info. - -## Add Integrations and deployment - -Use the `npm run qwik add` command to add additional integrations. Some examples of integrations includes: Cloudflare, Netlify or Express Server, and the [Static Site Generator (SSG)](https://qwik.dev/qwikcity/guides/static-site-generation/). - -```shell -npm run qwik add # or `yarn qwik add` -``` +1. **Install dependencies** + ```bash + pnpm install + ``` -## Development - -Development mode uses [Vite's development server](https://vitejs.dev/). The `dev` command will server-side render (SSR) the output during development. - -```shell -npm start # or `yarn start` -``` - -> Note: during dev mode, Vite may request a significant number of `.js` files. This does not represent a Qwik production build. - -## Preview - -The preview command will create a production build of the client modules, a production build of `src/entry.preview.tsx`, and run a local server. The preview server is only for convenience to preview a production build locally and should not be used as a production server. - -```shell -npm run preview # or `yarn preview` -``` +2. **Start development server** + ```bash + pnpm dev + # or pnpm start + ``` + + The application will be available at `http://localhost:5173` -## Production +3. **Build for production** + ```bash + pnpm build + ``` -The production build will generate client and server modules by running both client and server build commands. The build command will use Typescript to run a type check on the source code. +4. **Preview production build** + ```bash + pnpm preview + ``` -```shell -npm run build # or `yarn build` -``` +## Project Structure -## Static Site Generator (Node.js) +This project uses QwikCity for enhanced routing and site features: -```shell -npm run build.server ``` - -## Netlify - -This starter site is configured to deploy to [Netlify Edge Functions](https://docs.netlify.com/edge-functions/overview/), which means it will be rendered at an edge location near to your users. - -### Local development - -The [Netlify CLI](https://docs.netlify.com/cli/get-started/) can be used to preview a production build locally. To do so: First build your site, then to start a local server, run: - -1. Install Netlify CLI globally `npm i -g netlify-cli`. -2. Build your site with both ssr and static `npm run build`. -3. Start a local server with `npm run serve`. - In this project, `npm run serve` uses the `netlify dev` command to spin up a server that can handle Netlify's Edge Functions locally. -4. Visit [http://localhost:8888/](http://localhost:8888/) to check out your site. - -### Edge Functions Declarations - -[Netlify Edge Functions declarations](https://docs.netlify.com/edge-functions/declarations/) -can be configured to run on specific URL patterns. Each edge function declaration associates -one site path pattern with one function to execute on requests that match the path. A single request can execute a chain of edge functions from a series of declarations. A single edge function can be associated with multiple paths across various declarations. - -This is useful to determine if a page response should be Server-Side Rendered (SSR) or -if the response should use a static-site generated (SSG) `index.html` file instead. - -By default, the Netlify Edge adaptor will generate a `.netlify/edge-middleware/manifest.json` file, which is used by the Netlify deployment to determine which paths should, and should not, use edge functions. - -To override the generated manifest, you can [add a declaration](https://docs.netlify.com/edge-functions/declarations/#add-a-declaration) to the `netlify.toml` using the `[[edge_functions]]` config. For example: - -```toml -[[edge_functions]] - path = "/admin" - function = "auth" +├── public/ # Static assets +├── src/ +│ ├── components/ # Reusable components +│ └── routes/ # File-based routing +└── netlify.toml # Netlify configuration ``` -### Addition Adapter Options - -Netlify-specific option fields that can be passed to the adapter options: +- **`src/routes/`**: Directory-based routing with layouts and pages +- **`src/components/`**: Recommended directory for reusable components +- **`public/`**: Static assets served directly -- `excludedPath` this option accepts a `string` glob pattern that represents which path pattern should not go through the generated Edge Functions. +## Zephyr Cloud Integration -### Deployments +This example is configured to deploy to Zephyr Cloud automatically when built, while also supporting Netlify Edge Functions for optimal edge deployment. -You can [deploy your site to Netlify](https://docs.netlify.com/site-deploys/create-deploys/) either via a Git provider integration or through the Netlify CLI. This starter site includes a `netlify.toml` file to configure your build for deployment. +## About Qwik -#### Deploying via Git +Qwik is a new framework that offers: +- **Resumable JavaScript**: No hydration, instant interactivity +- **Fine-grained lazy loading**: Load only what's needed +- **Zero JavaScript by default**: HTML-first approach +- **Edge-optimized**: Perfect for edge deployments -Once your site has been pushed to your Git provider, you can either link it [in the Netlify UI](https://app.netlify.com/start) or use the CLI. To link your site to a Git provider from the Netlify CLI, run the command: +## Netlify Deployment -```shell -netlify link -``` +This project is configured for Netlify Edge Functions: -This sets up [continuous deployment](https://docs.netlify.com/site-deploys/create-deploys/#deploy-with-git) for your site's repo. Whenever you push new commits to your repo, Netlify starts the build process.. +1. **Local development with Netlify CLI**: + ```bash + npm i -g netlify-cli + pnpm build + netlify dev + ``` -#### Deploying manually via the CLI +2. **Deploy to Netlify**: + ```bash + netlify deploy --build --prod + ``` -If you wish to deploy from the CLI rather than using Git, you can use the command: +## Available Integrations -```shell -netlify deploy --build +Add additional integrations using: +```bash +pnpm qwik add ``` -You must use the `--build` flag whenever you deploy. This ensures that the Edge Functions that this starter site relies on are generated and available when you deploy your site. - -Add `--prod` flag to deploy to production. +Available options include: +- Cloudflare Workers +- Netlify Edge Functions +- Express Server +- Static Site Generation (SSG) + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Qwik Documentation](https://qwik.dev/) +- [QwikCity Guide](https://qwik.dev/qwikcity/overview/) +- [Qwik Discord Community](https://qwik.dev/chat) +- [Vite Documentation](https://vitejs.dev/) +- [Netlify Edge Functions](https://docs.netlify.com/edge-functions/overview/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/react-airbnb-clone/README.md b/examples/react-airbnb-clone/README.md index 1cc6dcc8..b2ccb9de 100644 --- a/examples/react-airbnb-clone/README.md +++ b/examples/react-airbnb-clone/README.md @@ -1,20 +1,85 @@ -# Airbnb Example +# React Airbnb Clone - Micro-Frontend Architecture -This is an Airbnb clone sample based on [another example](https://github.com/AntonioErdeljac/next13-airbnb-clone) made by [Antonio Erdeljac](https://github.com/AntonioErdeljac). ([video](https://www.youtube.com/watch?v=c_-b_isI4vg&t=9493s)) +A comprehensive Airbnb clone demonstrating micro-frontend architecture with Module Federation, showcasing how complex applications can be decomposed into independently deployable components. -The example was ported from Next.js to vanilla React using React Router for the purposes of showcasing the use of federated components with Zephyr. +## Technology Stack -To run: +- **Framework**: React 18 with React Router +- **Architecture**: Module Federation +- **Bundler**: Webpack 5 +- **Styling**: Tailwind CSS +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud (via zephyr-webpack-plugin) -```bash -pnpm i -pnpm dev -``` +## Prerequisites -To build +- Node.js (version 16 or higher) +- pnpm (required for workspace management) -```bash -# You need to first build the remotes in order for the host to attach them to the application -pnpm build-remotes -pnpm build-host -``` +## Project Structure + +This micro-frontend application is composed of multiple federated modules: + +- **`react-host/`** - Main host application with routing and layout +- **`categories/`** - Property categories remote +- **`favorites/`** - Favorites management remote +- **`home/`** - Home page and search remote +- **`properties/`** - Property listings remote +- **`reservations/`** - Booking and reservations remote +- **`trips/`** - User trips management remote + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Development mode** + ```bash + pnpm dev + ``` + + This starts all micro-frontends concurrently for development. + +3. **Build for production** + ```bash + # Build remotes first + pnpm build-remotes + + # Then build the host + pnpm build-host + ``` + +## Zephyr Cloud Integration + +This example demonstrates enterprise-scale micro-frontend deployment with Zephyr Cloud, showing how complex applications can be broken down into independently deployable and scalable components. + +## About This Example + +This Airbnb clone is based on [Antonio Erdeljac's Next.js example](https://github.com/AntonioErdeljac/next13-airbnb-clone) ([tutorial video](https://www.youtube.com/watch?v=c_-b_isI4vg&t=9493s)) and has been ported to vanilla React with React Router to showcase micro-frontend capabilities. + +## Micro-Frontend Benefits Demonstrated + +- **Independent Development**: Each team can work on separate modules +- **Independent Deployment**: Deploy individual features without affecting others +- **Technology Diversity**: Different modules can use different tech stacks +- **Scalability**: Scale individual modules based on demand +- **Fault Isolation**: Issues in one module don't break the entire application + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Module Federation Documentation](https://module-federation.io/) +- [React Router Documentation](https://reactrouter.com/) +- [Tailwind CSS Documentation](https://tailwindcss.com/) +- [Webpack Module Federation](https://webpack.js.org/concepts/module-federation/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/react-rollup-ts/README.md b/examples/react-rollup-ts/README.md new file mode 100644 index 00000000..78bd300e --- /dev/null +++ b/examples/react-rollup-ts/README.md @@ -0,0 +1,51 @@ +# React + Rollup + TypeScript + +A React application built with Rollup bundler and TypeScript, showcasing efficient bundling and tree-shaking capabilities. + +## Technology Stack + +- **Framework**: React +- **Bundler**: Rollup +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) or npm + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. After running the build command, your application will be deployed and a preview URL will be provided. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Rollup Documentation](https://rollupjs.org/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/react-tractor-sample/README.md b/examples/react-tractor-sample/README.md index a6397b79..7525e106 100644 --- a/examples/react-tractor-sample/README.md +++ b/examples/react-tractor-sample/README.md @@ -1,5 +1,105 @@ -```bash -npx nx run team-green:build -npx nx run team-blue:build -npx nx run team-red:build -``` +# React Tractor Sample - Nx + Webpack + Module Federation + +A micro-frontend implementation of the classic Tractor Store demonstrating Module Federation with Nx workspace management and Webpack 5. + +## Technology Stack + +- **Framework**: React 18 with TypeScript +- **Architecture**: Module Federation +- **Build System**: Nx Workspace +- **Bundler**: Webpack 5 +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud +- **Development**: Webpack Dev Server + +## Prerequisites + +- Node.js (version 16 or higher) +- npm or yarn + +## Project Structure + +This Nx workspace consists of three federated teams/applications: + +- **`team-red/`** - Host application that orchestrates the micro-frontends +- **`team-blue/`** - Remote application with product catalog functionality +- **`team-green/`** - Remote application with checkout and cart functionality + +## Getting Started + +1. **Install dependencies** + ```bash + npm install + ``` + +2. **Development mode** + + Start all applications: + ```bash + # Development servers will start on different ports + npx nx serve team-red # Host application + npx nx serve team-blue # Remote application + npx nx serve team-green # Remote application + ``` + +3. **Build for production** (in correct order) + + Because this is a Module Federation setup, remotes must be built before the host: + + ```bash + npx nx run team-green:build + npx nx run team-blue:build + npx nx run team-red:build + ``` + + Or use the convenience script: + ```bash + npm run build + ``` + +4. **Individual team builds** + ```bash + npm run build:team-red + npm run build:team-blue + npm run build:team-green + ``` + +## Module Federation Architecture + +- **Host Application** (`team-red`) consumes and orchestrates the remote micro-frontends +- **Remote Applications** (`team-blue`, `team-green`) expose components that represent different business domains +- **Build Order Dependency**: Remotes must be built first so Zephyr Cloud can map remote applications to the host + +## Zephyr Cloud Integration + +This example demonstrates enterprise-scale micro-frontend deployment with Zephyr Cloud: + +1. Remote applications are built and deployed first +2. Zephyr Cloud maps the remote entry points automatically +3. The host application consumes the deployed remotes at runtime +4. Independent deployment cycles for each team's micro-frontend + +## About Module Federation + +Module Federation enables: +- **Team autonomy**: Different teams can own different micro-frontends +- **Independent deployment**: Each team can deploy their part separately +- **Runtime composition**: Applications compose at runtime, not build time +- **Technology diversity**: Teams can use different versions of libraries +- **Shared dependencies**: Efficient sharing of common libraries like React + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Nx Documentation](https://nx.dev/) +- [Module Federation Documentation](https://module-federation.io/) +- [React Tractor Store Tutorial](https://micro-frontends.org/tractor-store/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/react-vite-mf/host/README.md b/examples/react-vite-mf/host/README.md index 1e5a46b4..783e9641 100644 --- a/examples/react-vite-mf/host/README.md +++ b/examples/react-vite-mf/host/README.md @@ -1,50 +1,93 @@ -# React + TypeScript + Vite - -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}); -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react'; - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}); -``` +# React + Vite Host Application + +The host application for the React + Vite Module Federation example, demonstrating how to consume multiple remote micro-frontends built with different bundlers. + +## Technology Stack + +- **Framework**: React 18 with TypeScript +- **Architecture**: Module Federation (Host) +- **Bundler**: Vite +- **Language**: TypeScript +- **Deployment**: Zephyr Cloud +- **Development**: Vite Dev Server + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + + The host application will be available at `http://localhost:5173` + +3. **Build for production** + ```bash + pnpm build + ``` + +4. **Preview production build** + ```bash + pnpm preview + ``` + +## Module Federation Configuration + +This host application is configured to consume remote micro-frontends: + +- **Vite Remote**: Components from Vite-built remote application +- **Rspack Remote**: Components from Rspack-built remote application +- **Webpack Remote**: Components from Webpack-built remote application + +The host demonstrates how different bundlers can work together seamlessly in a Module Federation architecture. + +## Development Workflow + +For local development with all remotes: + +1. Start this host application: `pnpm dev` (port 5173) +2. Start remote applications in parallel: + - Vite remote: port 5174 + - Rspack remote: port 8080 + - Webpack remote: port 3000 + +## Zephyr Cloud Integration + +This host application integrates with Zephyr Cloud for: + +- **Remote Discovery**: Automatically finds and loads deployed remotes +- **Version Management**: Uses SemVer for remote versioning +- **Runtime Loading**: Loads remote applications at runtime +- **Deployment**: Automatic deployment when built + +## About Module Federation + +Module Federation enables this host to: +- **Runtime Composition**: Load remote components at runtime +- **Independent Deployment**: Remotes can deploy without host changes +- **Technology Diversity**: Consume remotes built with different bundlers +- **Shared Dependencies**: Share React and other libraries efficiently + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Vite Documentation](https://vitejs.dev/) +- [Module Federation Documentation](https://module-federation.io/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/react-vite-mf/readme.md b/examples/react-vite-mf/readme.md index 1fc4294f..912658a5 100644 --- a/examples/react-vite-mf/readme.md +++ b/examples/react-vite-mf/readme.md @@ -1,17 +1,96 @@ -# Vite Host + Vite Remote + Rspack Remote + Webpack Remote +# React Micro-Frontend Example -[Documentation](https://docs.zephyr-cloud.io/recipes/vite-rspack-webpack-mf) for this example. +A comprehensive micro-frontend setup demonstrating Module Federation with multiple bundlers working together. -![image](./image.png) +![Host Application](./image.png) -To run this example: +## Technology Stack -In `zephyr-mono`'s root directory, run each command in succession: +- **Framework**: React 18 +- **Architecture**: Module Federation +- **Host Application**: Vite +- **Remote Applications**: + - Vite Remote (TypeScript) + - Rspack Remote + - Webpack Remote +- **Deployment**: Zephyr Cloud -``` -pnpm i -pnpm --filter vite-remote run build -pnpm --filter vite_rspack run build -pnpm --filter vite_webpack run build -pnpm --filter vite-host run build -``` +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (required for workspace management) + +## Project Structure + +This example consists of multiple applications: + +- **`host/`** - Main host application built with Vite +- **`remote/`** - Remote application built with Vite +- **`rspack/`** - Remote application built with Rspack +- **`webpack/`** - Remote application built with Webpack + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Build all applications** (in order) + ```bash + pnpm --filter=vite_remote build + pnpm --filter=vite_rspack build + pnpm --filter=vite_webpack build + pnpm --filter=vite-host build + ``` + + Or use the convenience script: + ```bash + pnpm build + ``` + +3. **Development mode** + Each application can be run independently: + ```bash + # Host application (port 5173) + cd host && pnpm dev + + # Remote applications + cd remote && pnpm dev # port 5174 + cd rspack && pnpm dev # port 8080 + cd webpack && pnpm dev # port 3000 + ``` + + **Development URLs:** + - **Host**: http://localhost:5173 + - **Vite Remote**: http://localhost:5174 + - **Rspack Remote**: http://localhost:8080 + - **Webpack Remote**: http://localhost:3000 + +## Zephyr Cloud Integration + +This example demonstrates advanced micro-frontend deployment with Zephyr Cloud, showing how different bundlers can work together seamlessly in a federated architecture. + +## About Module Federation + +Module Federation allows multiple JavaScript applications to share components and dependencies at runtime. This example shows: +- **Multi-bundler compatibility**: Different remotes using different bundlers +- **Runtime composition**: Components loaded dynamically at runtime +- **Independent deployment**: Each remote can be deployed separately + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Module Federation Documentation](https://module-federation.io/) +- [Vite Documentation](https://vitejs.dev/) +- [Rspack Documentation](https://rspack.dev/) +- [Webpack Documentation](https://webpack.js.org/) +- [Zephyr Cloud Module Federation Guide](https://docs.zephyr-cloud.io/recipes/vite-rspack-webpack-mf) diff --git a/examples/react-vite-nx/README.md b/examples/react-vite-nx/README.md index 7a3173d3..c35aeb24 100644 --- a/examples/react-vite-nx/README.md +++ b/examples/react-vite-nx/README.md @@ -1,34 +1,62 @@ -# ReactViteNx +# React + Vite + Nx -✨ Your new, shiny [Nx workspace](https://nx.dev) is ready ✨. +A React application built with Vite and managed by Nx, demonstrating monorepo tooling with modern development practices. -[Learn more about this workspace setup and its capabilities](https://nx.dev/getting-started/tutorials/react-standalone-tutorial?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or run `npx nx graph` to visually explore what was created. Now, let's get you up to speed! +## Technology Stack -## Run tasks +- **Framework**: React 18 +- **Bundler**: Vite +- **Monorepo**: Nx +- **Language**: TypeScript +- **Testing**: Jest + Testing Library +- **Linting**: ESLint +- **Deployment**: Zephyr Cloud -To run the dev server for your app, use: +## Prerequisites -```sh -npx nx serve react-vite-nx -``` +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -To create a production bundle: +[Learn more about this workspace setup and its capabilities](https://nx.dev/getting-started/tutorials/react-standalone-tutorial?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or run `npx nx graph` to visually explore what was created. -```sh -npx nx build react-vite-nx -``` +## Getting Started -To see all available targets to run for a project, run: +1. **Install dependencies** + ```bash + pnpm install + ``` -```sh -npx nx show project react-vite-nx -``` +2. **Start development server** + ```bash + npx nx serve react-vite-nx + ``` + +3. **Build for production** + ```bash + npx nx build react-vite-nx + ``` + +4. **Run tests** + ```bash + npx nx test react-vite-nx + ``` + +5. **Show project details** + ```bash + npx nx show project react-vite-nx + ``` These targets are either [inferred automatically](https://nx.dev/concepts/inferred-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) or defined in the `project.json` or `package.json` files. -[More about running tasks in the docs »](https://nx.dev/features/run-tasks?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) +## Nx Features + +This workspace demonstrates key Nx capabilities: +- **Task caching**: Intelligent caching of build artifacts +- **Task dependencies**: Automatic task orchestration +- **Code generation**: Scaffolding with generators +- **Dependency graph**: Visual project relationships ## Add new projects @@ -94,7 +122,27 @@ Learn more: - [Releasing Packages with Nx release](https://nx.dev/features/manage-releases?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) - [What are Nx plugins?](https://nx.dev/concepts/nx-plugins?utm_source=nx_project&utm_medium=readme&utm_campaign=nx_projects) -And join the Nx community: +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built, demonstrating how Nx monorepos can be deployed with modern deployment platforms. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Nx Documentation](https://nx.dev) +- [Vite Documentation](https://vitejs.dev/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) + +Join the Nx community: - [Discord](https://go.nx.dev/community) - [Follow us on X](https://twitter.com/nxdevtools) or [LinkedIn](https://www.linkedin.com/company/nrwl) - [Our Youtube channel](https://www.youtube.com/@nxdevtools) diff --git a/examples/react-vite-ts/README.md b/examples/react-vite-ts/README.md index 9d0b4bcd..9ebbe8d8 100644 --- a/examples/react-vite-ts/README.md +++ b/examples/react-vite-ts/README.md @@ -1,30 +1,69 @@ # React + TypeScript + Vite -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +A React application built with Vite bundler and TypeScript, providing fast development experience with Hot Module Replacement (HMR) and modern tooling. -Currently, two official plugins are available: +## Technology Stack -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +- **Framework**: React 18 +- **Bundler**: Vite 5 +- **Language**: TypeScript +- **Development**: HMR with Fast Refresh +- **Linting**: ESLint with TypeScript support +- **Deployment**: Zephyr Cloud (via vite-plugin-zephyr) -## Expanding the ESLint configuration +## Prerequisites -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -- Configure the top-level `parserOptions` property like this: +## Getting Started -```js -export default { - // other rules... - parserOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - project: ['./tsconfig.json', './tsconfig.node.json'], - tsconfigRootDir: __dirname, - }, -}; -``` +1. **Install dependencies** + ```bash + pnpm install + ``` -- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` -- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:5173` + +3. **Build for production** + ```bash + pnpm build + ``` + +4. **Preview production build** + ```bash + pnpm preview + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. The `vite-plugin-zephyr` handles the deployment process seamlessly. + +## ESLint Configuration + +The project includes ESLint configuration with TypeScript support. For production applications, you can enhance the configuration with type-aware lint rules: + +- Configure type-aware linting by updating `parserOptions` +- Use `plugin:@typescript-eslint/recommended-type-checked` for stricter rules +- Add `plugin:react/recommended` for React-specific linting + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Vite Documentation](https://vitejs.dev/) +- [React Documentation](https://reactjs.org/) +- [TypeScript Documentation](https://www.typescriptlang.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/rolldown-react/README.md b/examples/rolldown-react/README.md new file mode 100644 index 00000000..4008b6a6 --- /dev/null +++ b/examples/rolldown-react/README.md @@ -0,0 +1,52 @@ +# React + Rolldown + +A React application built with Rolldown, a fast Rust-based bundler compatible with Rollup. + +## Technology Stack + +- **Framework**: React +- **Bundler**: Rolldown (Rust-based) +- **Language**: TypeScript +- **Package Manager**: pnpm +- **Deployment**: Zephyr Cloud + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. After running the build command, your application will be deployed and a preview URL will be provided. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Rolldown Documentation](https://rolldown.rs/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/rspack-project/README.md b/examples/rspack-project/README.md new file mode 100644 index 00000000..20ce0cc1 --- /dev/null +++ b/examples/rspack-project/README.md @@ -0,0 +1,53 @@ +# React + Rspack + +A simple React application built with Rspack bundler, demonstrating fast builds and modern development experience. + +## Technology Stack + +- **Framework**: React +- **Bundler**: Rspack +- **Language**: JavaScript +- **Deployment**: Zephyr Cloud + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) or npm + +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:3000` + +3. **Build for production** + ```bash + pnpm build + ``` + +## Zephyr Cloud Integration + +This example is configured to deploy to Zephyr Cloud automatically when built. After running the build command, your application will be deployed and a preview URL will be provided. + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Rspack Documentation](https://rspack.dev/) +- [React Documentation](https://reactjs.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) \ No newline at end of file diff --git a/examples/rspress-ssg/README.md b/examples/rspress-ssg/README.md index 8a9c78ca..2db4634d 100644 --- a/examples/rspress-ssg/README.md +++ b/examples/rspress-ssg/README.md @@ -1,29 +1,97 @@ -# Rspress website +# Rspress Static Site Generator -## Setup +A documentation website built with Rspress, demonstrating static site generation with modern tooling and fast performance. -Install the dependencies: +## Technology Stack -```bash -npm install -``` +- **Framework**: Rspress (React-based SSG) +- **Bundler**: Rspack (built-in) +- **Language**: TypeScript +- **Content**: Markdown with MDX support +- **Deployment**: Zephyr Cloud +- **Features**: Static site generation, Hot reload, Theme customization -## Get started +## Prerequisites -Start the dev server: +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -```bash -npm run dev -``` +## Getting Started -Build the website for production: +1. **Install dependencies** + ```bash + pnpm install + ``` -```bash -npm run build -``` +2. **Start development server** + ```bash + pnpm dev + ``` + + The documentation site will be available with hot reload + +3. **Build for production** + ```bash + pnpm build + ``` + + Generates optimized static files in the `dist` directory + +4. **Preview production build** + ```bash + pnpm preview + ``` -Preview the production build locally: +## Project Structure -```bash -npm run preview +Rspress uses a content-driven architecture: + +``` +├── docs/ # Documentation content +│ ├── _meta.json # Navigation configuration +│ ├── index.md # Home page +│ ├── hello.md # Example page +│ ├── guide/ # Guide section +│ │ ├── _meta.json # Section navigation +│ │ └── index.md # Guide content +│ └── public/ # Static assets +├── rspress.config.ts # Rspress configuration +└── tsconfig.json # TypeScript configuration ``` + +## Zephyr Cloud Integration + +This example demonstrates static site deployment with Zephyr Cloud, showing how documentation and marketing sites can be efficiently deployed and versioned. + +## About Rspress + +Rspress is a static site generator built on Rspack that provides: +- **Lightning fast**: Built with Rust-based Rspack for fast builds +- **React-based**: Leverage React ecosystem and components +- **MDX support**: Write content in Markdown with React components +- **Theme system**: Customizable themes and layouts +- **Plugin architecture**: Extensible with plugins +- **TypeScript**: Full TypeScript support out of the box + +## Content Management + +- Write content in Markdown files within the `docs/` directory +- Use `_meta.json` files to configure navigation and page order +- Add static assets to `docs/public/` for images and other files +- Customize the site configuration in `rspress.config.ts` + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [Rspress Documentation](https://rspress.dev/) +- [Rspack Documentation](https://rspack.dev/) +- [MDX Documentation](https://mdxjs.com/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/solid/README.md b/examples/solid/README.md index ebcd832e..9edca738 100644 --- a/examples/solid/README.md +++ b/examples/solid/README.md @@ -1,30 +1,72 @@ -# Solid Zephyr Template +# SolidJS + TypeScript + Vite -## Usage +A SolidJS application built with Vite bundler and TypeScript, providing fast development experience with fine-grained reactivity and modern tooling. -```bash -$ npm install # or pnpm install or yarn install -``` +## Technology Stack -### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs) +- **Framework**: SolidJS +- **Bundler**: Vite 6 +- **Language**: TypeScript +- **Development**: Hot Module Replacement (HMR) +- **Build Plugin**: vite-plugin-solid +- **Deployment**: Zephyr Cloud (via vite-plugin-zephyr) -## Available Scripts +## Prerequisites -In the project directory, you can run: +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -### `npm run dev` +## Getting Started -Runs the app in the development mode.
-Open [http://localhost:5173](http://localhost:5173) to view it in the browser. +1. **Install dependencies** + ```bash + pnpm install + ``` -### `npm run build` +2. **Start development server** + ```bash + pnpm dev + ``` + + Open [http://localhost:5173](http://localhost:5173) to view it in the browser. -Builds the app for production to the `dist` folder.
-It correctly bundles Solid in production mode and optimizes the build for the best performance. +3. **Build for production** + ```bash + pnpm build + ``` + + Builds the app for production to the `dist` folder. It correctly bundles SolidJS in production mode and optimizes the build for the best performance. -The build is minified and the filenames include the hashes.
-Your app is ready to be deployed! +4. **Preview production build** + ```bash + pnpm preview + ``` -## Deployment +## Zephyr Cloud Integration -Learn more about deploying your application with the [documentations](https://vite.dev/guide/static-deploy.html) +This example is configured to deploy to Zephyr Cloud automatically when built. The `vite-plugin-zephyr` handles the deployment process seamlessly. + +## About SolidJS + +SolidJS is a declarative, efficient, and flexible JavaScript library for building user interfaces. It offers: +- **Fine-grained reactivity**: Only updates what actually changes +- **No Virtual DOM**: Direct DOM updates for better performance +- **Familiar syntax**: JSX-based with React-like patterns + +Learn more on the [SolidJS Website](https://solidjs.com) and join the community on [Discord](https://discord.com/invite/solidjs). + +## About Zephyr Cloud + +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems + +## Learn More + +- [SolidJS Documentation](https://solidjs.com/) +- [Vite Documentation](https://vitejs.dev/) +- [TypeScript Documentation](https://www.typescriptlang.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/svelte/README.md b/examples/svelte/README.md index 8d0e70aa..3859d614 100644 --- a/examples/svelte/README.md +++ b/examples/svelte/README.md @@ -1,47 +1,85 @@ -# Svelte Zephyr Template +# Svelte + TypeScript + Vite -This template should help get you started developing with Svelte and TypeScript in Vite. +A Svelte application built with Vite bundler and TypeScript, providing a minimal setup for fast development with HMR and modern tooling. -## Recommended IDE Setup +## Technology Stack -[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). +- **Framework**: Svelte +- **Bundler**: Vite 6 +- **Language**: TypeScript +- **Development**: Hot Module Replacement (HMR) +- **Build Plugin**: @sveltejs/vite-plugin-svelte +- **Deployment**: Zephyr Cloud (via vite-plugin-zephyr) + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (recommended) or npm -## Need an official Svelte framework? +## Getting Started -Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. +1. **Install dependencies** + ```bash + pnpm install + ``` -## Technical considerations +2. **Start development server** + ```bash + pnpm dev + ``` + + The application will be available at `http://localhost:5173` -**Why use this over SvelteKit?** +3. **Build for production** + ```bash + pnpm build + ``` -- It brings its own routing solution which might not be preferable for some users. -- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. +4. **Preview production build** + ```bash + pnpm preview + ``` -This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. +5. **Type checking** + ```bash + pnpm check + ``` -Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). -**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** +## Zephyr Cloud Integration -Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. +This example is configured to deploy to Zephyr Cloud automatically when built. The `vite-plugin-zephyr` handles the deployment process seamlessly. -**Why include `.vscode/extensions.json`?** +## About Svelte -Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. +Svelte is a radical new approach to building user interfaces. It offers: +- **Compile-time optimization**: No virtual DOM, compiles to vanilla JavaScript +- **Minimal runtime**: Smaller bundle sizes and better performance +- **Simple syntax**: Easy to learn and use -**Why enable `allowJs` in the TS template?** +## Framework Alternatives -While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant. +For more advanced features, consider [SvelteKit](https://github.com/sveltejs/kit#readme), which provides: +- Server-side rendering +- Built-in routing +- Serverless-first approach +- Additional tooling support -**Why is HMR not preserving my local component state?** +## About Zephyr Cloud -HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems -If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. +## Learn More -```ts -// store.ts -// An extremely simple external store -import { writable } from 'svelte/store' -export default writable(0) -``` +- [Svelte Documentation](https://svelte.dev/) +- [Vite Documentation](https://vitejs.dev/) +- [TypeScript Documentation](https://www.typescriptlang.org/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) diff --git a/examples/turbo-rspack-mf/README.md b/examples/turbo-rspack-mf/README.md index 71a900c6..90e3d8bf 100644 --- a/examples/turbo-rspack-mf/README.md +++ b/examples/turbo-rspack-mf/README.md @@ -1,6 +1,22 @@ -# Zephyr Cloud Starter +# Turbo + Rspack + Module Federation Starter -This is an official starter for Zephyr Cloud. +A comprehensive Turborepo demonstrating Module Federation architecture with Rspack bundler and multiple micro-frontend applications. + +## Technology Stack + +- **Framework**: React 18 with TypeScript +- **Architecture**: Module Federation +- **Build System**: Turborepo +- **Bundler**: Rspack +- **Language**: TypeScript +- **Styling**: Tailwind CSS +- **Deployment**: Zephyr Cloud +- **Development**: Rspack Dev Server + +## Prerequisites + +- Node.js (version 16 or higher) +- pnpm (required for Turborepo) ## Using this example @@ -9,28 +25,55 @@ Run the following command: ```sh npx create-turbo@latest --example https://github.com/swalker326/ze-starter-turbo ``` -## Running this example -For zephyr, a couple things have to happen, -- Publish the project to github (or any other git provider) - - Public or private, we just care about the git history -- The remote applications need to be built first, which is handled by turbo so all you have to do is: -``` bash -turbo run build -``` - -## What's inside? +## Getting Started + +1. **Install dependencies** + ```bash + pnpm install + ``` + +2. **Development mode** + ```bash + pnpm dev + ``` + + This starts all applications concurrently: + - **Host**: http://localhost:3000 (main application) + - **Home**: http://localhost:3001 (remote micro-frontend) + - **Settings**: http://localhost:3002 (remote micro-frontend) + +3. **Build for production** + ```bash + pnpm build + ``` + + Or using Turbo directly: + ```bash + turbo build + ``` + +4. **Other commands** + ```bash + pnpm lint # Lint all packages + pnpm check # Run Biome checks + pnpm format # Format code + ``` + +## Project Structure This Turborepo includes the following packages/apps: ### Apps and Packages -Rspack Applications -- `host`: An rspack application and also the host app -- `home`: Another rspack application with module federation setup being consumed by the host -- `settings`: A final rspack application used to highlight the routing (react router) -- `@repo/tailwind-config`: global `tailwind` configurations -- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo +**Rspack Applications with Module Federation:** +- **`host`** - Main host application that consumes remote micro-frontends +- **`home`** - Remote micro-frontend with home page functionality +- **`settings`** - Remote micro-frontend with settings and routing (React Router) + +**Shared Packages:** +- **`@repo/tailwind-config`** - Global Tailwind CSS configurations +- **`@repo/typescript-config`** - Shared TypeScript configurations Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). @@ -41,23 +84,41 @@ This Turborepo has some additional tools already setup for you: - [TypeScript](https://www.typescriptlang.org/) for static type checking - [Biomejs](https://biomejs.dev/guides/getting-started/) for formatting and linting -### Build +### Module Federation Architecture -To build all apps and packages, run the following command: +This example demonstrates a complete micro-frontend setup: -``` -cd my-turborepo -pnpm build -``` +- **Host Application**: Orchestrates and consumes all remote micro-frontends +- **Remote Applications**: Independent micro-frontends that can be deployed separately +- **Build Dependencies**: Remotes must be built before host for proper module mapping +- **Runtime Loading**: Host loads remotes dynamically at runtime -### Develop +### Build Order for Zephyr Cloud -To develop all apps and packages, run the following command: +For Zephyr Cloud deployment, remote applications need to be built first: +```bash +# Build order is handled automatically by Turbo +turbo build ``` -cd my-turborepo -pnpm dev -``` + +This ensures Zephyr Cloud can properly map remote applications before the host consumes them. + +## Zephyr Cloud Integration + +This example shows enterprise-scale micro-frontend deployment: + +1. **Git Integration**: Publish project to any git provider (public or private) +2. **Automatic Building**: Turbo handles build order dependencies +3. **Deployment**: Each build triggers Zephyr Cloud deployment +4. **Runtime Composition**: Host loads deployed remotes at runtime + +## Turborepo Benefits + +- **Task Pipeline**: Efficient task orchestration across packages +- **Incremental Builds**: Only rebuild what changed +- **Remote Caching**: Share build cache across team and CI +- **Parallel Execution**: Run tasks across packages in parallel ### Remote Caching @@ -78,13 +139,34 @@ Next, you can link your Turborepo to your Remote Cache by running the following npx turbo link ``` -## Useful Links +## About Module Federation + +Module Federation enables: +- **Independent deployment**: Each micro-frontend can deploy separately +- **Runtime composition**: Applications compose at runtime, not build time +- **Team autonomy**: Different teams can own different remotes +- **Technology diversity**: Mix different bundlers and framework versions +- **Shared dependencies**: Efficient sharing of common libraries + +## About Zephyr Cloud -Learn more about the power of Turborepo: +Zephyr Cloud is a micro-frontend deployment platform that provides: +- **Auto-deployment**: Seamless deployment from your build process +- **Live preview links**: Instant preview URLs for your applications +- **SemVer versioning**: Semantic versioning for your frontend modules +- **Rollback capabilities**: Easy rollback to previous versions +- **Enterprise-scale orchestration**: Built for composable frontend systems +## Learn More + +**Turborepo:** - [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks) - [Caching](https://turbo.build/repo/docs/core-concepts/caching) - [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) - [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering) -- [Configuration Options](https://turbo.build/repo/docs/reference/configuration) -- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference) + +**Module Federation & Zephyr:** +- [Module Federation Documentation](https://module-federation.io/) +- [Rspack Documentation](https://rspack.dev/) +- [Zephyr Cloud Documentation](https://docs.zephyr-cloud.io) +- [Zephyr Cloud Micro-Frontend Guide](https://docs.zephyr-cloud.io/how-to/mf-guide) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf3161d8..16afc997 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -633,7 +633,11 @@ importers: specifier: catalog:zephyr version: 0.0.53(encoding@0.1.13)(webpack-cli@4.10.0) - examples/create-default-webpack-mf: {} + examples/create-default-webpack-mf: + devDependencies: + concurrently: + specifier: ^8.2.2 + version: 8.2.2 examples/create-default-webpack-mf/app1: dependencies: @@ -2168,6 +2172,19 @@ importers: specifier: catalog:react18 version: 0.16.0 + examples/rspress-ssg: + dependencies: + rspress: + specifier: ^1.40.2 + version: 1.44.0(webpack@5.99.9) + zephyr-rspack-plugin: + specifier: catalog:zephyr + version: 0.0.53(@swc/helpers@0.5.17)(encoding@0.1.13)(webpack@5.99.9) + devDependencies: + '@types/node': + specifier: ^18.11.17 + version: 18.11.19 + examples/solid: dependencies: solid-js: @@ -5178,9 +5195,22 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true + '@mdx-js/loader@2.3.0': + resolution: {integrity: sha512-IqsscXh7Q3Rzb+f5DXYk0HU71PK+WuFsEhf+mSV3fOhpLcEpgsHvTQ2h0T6TlZ5gHOaBeFjkXwB52by7ypMyNg==} + peerDependencies: + webpack: '>=4' + + '@mdx-js/mdx@2.3.0': + resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} + '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + '@mdx-js/react@2.3.0': + resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} + peerDependencies: + react: '>=16' + '@mischnic/json-sourcemap@0.1.1': resolution: {integrity: sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==} engines: {node: '>=12.0.0'} @@ -7833,6 +7863,91 @@ packages: webpack-hot-middleware: optional: true + '@rspress/core@1.44.0': + resolution: {integrity: sha512-xlHeE71Ch4AWRKxQkFFOttBIl8vPJskQOEsEo0DQChz90nvio5ijh1G6cdVHseBumJeX2ZaHjYCbw5OeouKGSA==} + engines: {node: '>=14.17.6'} + + '@rspress/mdx-rs-darwin-arm64@0.6.6': + resolution: {integrity: sha512-fsuhUko2VJin9oZvGDEM8FWIisbhTe+ki8SiiVMqtl6OUtga9wB8F3JmsjVNg615lHp7FiT66Mvfbxweo+jjTQ==} + engines: {node: '>=14.12'} + cpu: [arm64] + os: [darwin] + + '@rspress/mdx-rs-darwin-x64@0.6.6': + resolution: {integrity: sha512-LAkc4H9cODxOsZLMsX57ma8Kk+KZytLTgkGTUXBX2M88O5ucZzrdBWFNXP8EvNcVcDR4O+YwcZPYMlZDqRyX5A==} + engines: {node: '>=14.12'} + cpu: [x64] + os: [darwin] + + '@rspress/mdx-rs-linux-arm64-gnu@0.6.6': + resolution: {integrity: sha512-l18CBbqFsn1NOWngdcfKVbqAGYsNouQw/WNAUxoKX3kPh+TsWxGZR2vBnPQ+In4yNzSz5AVMPKBMah2YNIFmXA==} + engines: {node: '>=14.12'} + cpu: [arm64] + os: [linux] + + '@rspress/mdx-rs-linux-arm64-musl@0.6.6': + resolution: {integrity: sha512-diwYLjMUlK1CSoZ0D6Lrdd31B60SgGlGqvvWs49PqDFpb+/wbBuKTGfjx+bzPmRBvSgjDUJuNkh3tHldj9wpXg==} + engines: {node: '>=14.12'} + cpu: [arm64] + os: [linux] + + '@rspress/mdx-rs-linux-x64-gnu@0.6.6': + resolution: {integrity: sha512-Qie1XlZ55qn2nyXZ5DO3vSYa8xiiTiT8vjh5gIkNMhYh/qvUefJTgp8RC+DFsdlyxSVHRWSTAiWchFyhpW6QCw==} + engines: {node: '>=14.12'} + cpu: [x64] + os: [linux] + + '@rspress/mdx-rs-linux-x64-musl@0.6.6': + resolution: {integrity: sha512-IegWebLUvioMIMQGo7JDW2sR3JOFOuJl/blX5Vy/fwHvfznIscRcJlu/Va6brMHkgv36fgXgCv7Yt3JwXGQaTQ==} + engines: {node: '>=14.12'} + cpu: [x64] + os: [linux] + + '@rspress/mdx-rs-win32-arm64-msvc@0.6.6': + resolution: {integrity: sha512-EA/BNOhTvF6dE+vdoIBxZaHxynLjL46qxiyHhNj0+no0lcBS2NbeWIgl2ge3O35n5h7Pj0sbmchHazpXwgDNcg==} + engines: {node: '>=14.12'} + cpu: [arm64] + os: [win32] + + '@rspress/mdx-rs-win32-x64-msvc@0.6.6': + resolution: {integrity: sha512-P6XbuHD+TRw73lqWxWf8Zb8/+MgHO4pCv4h1QoumxyFz0+2C+47576eBPimprWHgq066AZ34q3+037mrbZdvAA==} + engines: {node: '>=14.12'} + cpu: [x64] + os: [win32] + + '@rspress/mdx-rs@0.6.6': + resolution: {integrity: sha512-NpNhTKBIlV3O6ADhoZkgHvBFvXMW2TYlIWmIT1ysJESUBqDpaN9H3Teve5fugjU2pQ2ORBZO6SQGKliMw/8m/Q==} + engines: {node: '>= 10'} + + '@rspress/plugin-auto-nav-sidebar@1.44.0': + resolution: {integrity: sha512-KnbV2z2qVxA8ZLgFMqdWmfh3l/xgV2p57w/QOixVdN93KfI9lwKGn3ReodOcf15fAImZjMFAJ602FPLFKG9qTQ==} + engines: {node: '>=14.17.6'} + + '@rspress/plugin-container-syntax@1.44.0': + resolution: {integrity: sha512-KvnFGUVNyroHNzZaln6TIv4Ucz+OCzuwNpNRlMQRHJPLQiJQf28KCSbkpJsLHZpS4SemX5u2OQkMCLF+KyqgYQ==} + engines: {node: '>=14.17.6'} + + '@rspress/plugin-last-updated@1.44.0': + resolution: {integrity: sha512-/OSVzNHNLgBKuHaUvtwiAA10kLeiywzIV6nrFb9MVoZicJedxtwaL6DRgjyG/QQbfTUGle7u1G7RjbumVmfjMw==} + engines: {node: '>=14.17.6'} + + '@rspress/plugin-medium-zoom@1.44.0': + resolution: {integrity: sha512-IFUviQ5hhc/1XNcVb7pX5gJ30X9+ZIasDUS+BM7Mh9Z0mvl6roCWbqLD5PIaLnOIyhJv44X2zxKUKj15DKx2Fw==} + engines: {node: '>=14.17.6'} + peerDependencies: + '@rspress/runtime': ^1.44.0 + + '@rspress/runtime@1.44.0': + resolution: {integrity: sha512-Bu/rzl+uJpVVmzmtmX7kKj3kAF/K8r+yaXAc7+2quUZ662OWVYIRTsP5PCG306QjLMZzqQwVjqyj5frdqbtxxw==} + engines: {node: '>=14.17.6'} + + '@rspress/shared@1.44.0': + resolution: {integrity: sha512-a+yf9/UZRJHEaIA7ktAahaQC/iby/UBpNz+gWyQRYkQgkJdIhaVITWT51lCjYXKjv09yT68RmCVG3Yvs1kC0JQ==} + + '@rspress/theme-default@1.44.0': + resolution: {integrity: sha512-bk7IT9QPyveSnwJ3+3wCpA6F2f4oOS4GxlBKQRbOSK4CcTt0O2CmH3QgfaRIOS5j5U9+qck0UmTKljQOUyG8/A==} + engines: {node: '>=14.17.6'} + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -7859,6 +7974,9 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@sigstore/bundle@3.1.0': resolution: {integrity: sha512-Mm1E3/CmDDCz3nDhFKTuYdB47EdRFRQMOE/EAbiG1MJW77/w1b3P7Qx7JSrVJs8PfwOLOVcKQCHErIwCTyPbag==} engines: {node: ^18.17.0 || >=20.5.0} @@ -8276,6 +8394,9 @@ packages: '@tybys/wasm-util@0.9.0': resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -8345,6 +8466,9 @@ packages: '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + '@types/hast@2.3.10': + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -8396,6 +8520,9 @@ packages: '@types/loadable__component@5.13.9': resolution: {integrity: sha512-QWOtIkwZqHNdQj3nixQ8oyihQiTMKZLk/DNuvNxMSbTfxf47w+kqcbnxlUeBgAxdOtW0Dh48dTAIp83iJKtnrQ==} + '@types/mdast@3.0.15': + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -9555,6 +9682,9 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-scroll-lock@4.0.0-beta.0: + resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} + bonjour-service@1.3.0: resolution: {integrity: sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==} @@ -9797,15 +9927,24 @@ packages: character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} character-parser@2.2.0: resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} @@ -10050,6 +10189,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -10131,6 +10273,11 @@ packages: resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + concurrently@8.2.2: + resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} + engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true + concurrently@9.1.2: resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} engines: {node: '>=18'} @@ -10215,6 +10362,9 @@ packages: copy-template-dir@1.4.0: resolution: {integrity: sha512-xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==} + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-webpack-plugin@10.2.4: resolution: {integrity: sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==} engines: {node: '>= 12.20.0'} @@ -10821,6 +10971,10 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -10997,6 +11151,10 @@ packages: resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} engines: {node: '>=10.0.0'} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} @@ -11321,21 +11479,36 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} + estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + estree-util-build-jsx@2.2.2: + resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} + estree-util-build-jsx@3.0.1: resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + 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@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} + estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} + estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} @@ -11540,6 +11713,9 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} + faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -11721,6 +11897,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flexsearch@0.7.43: + resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} + flush-write-stream@2.0.0: resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==} @@ -11776,6 +11955,10 @@ packages: resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + formdata-node@4.4.1: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} @@ -11962,6 +12145,9 @@ packages: gitconfiglocal@2.1.0: resolution: {integrity: sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==} + 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'} @@ -12089,6 +12275,10 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -12181,15 +12371,45 @@ packages: 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@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + hast-util-to-estree@3.1.3: resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -12202,6 +12422,12 @@ packages: engines: {node: '>= 0.10.x'} hasBin: true + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + + highlightjs-vue@1.0.0: + resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} + hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} @@ -12258,6 +12484,10 @@ packages: engines: {node: ^14.13.1 || >=16.0.0} hasBin: true + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + html-webpack-plugin@5.6.3: resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} engines: {node: '>=10.13.0'} @@ -12314,6 +12544,11 @@ packages: htmlparser2@9.1.0: resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + htmr@1.0.2: + resolution: {integrity: sha512-7T9babEHZwECQ2/ouxNPow1uGcKbj/BcbslPGPRxBKIOLNiIrFKq6ELzor7mc4HiexZzdb3izQQLl16bhPR9jw==} + peerDependencies: + react: '>=15.6.1' + http-assert@1.5.0: resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} engines: {node: '>= 0.8'} @@ -12544,6 +12779,9 @@ packages: resolution: {integrity: sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==} engines: {node: ^18.17.0 || >=20.5.0} + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -12595,13 +12833,23 @@ packages: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} + is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-accessor-descriptor@1.0.1: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} engines: {node: '>= 0.10'} + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} @@ -12638,6 +12886,10 @@ packages: is-buffer@1.1.6: resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} @@ -12670,6 +12922,9 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -12742,6 +12997,9 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} @@ -13445,6 +13703,9 @@ packages: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + leaflet@1.9.4: resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==} @@ -13787,6 +14048,9 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -13865,10 +14129,17 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} + markdown-extensions@1.1.1: + resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} + engines: {node: '>=0.10.0'} + 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==} + match-sorter@8.0.0: resolution: {integrity: sha512-bGJ6Zb+OhzXe+ptP5d80OLVx7AkqfRbtGEh30vNSfjNwllu+hHI+tcbMIT/fbkx/FKN1PmKuDb65+Oofg+XUxw==} @@ -13889,30 +14160,81 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + + mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + + mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + + mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + + mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + + mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + + mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + + mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + + mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} + mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + mdast-util-mdx-jsx@2.1.4: + resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} + mdast-util-mdx-jsx@3.2.0: resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + mdast-util-mdx@2.0.1: + resolution: {integrity: sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw==} + mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} + mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + mdast-util-to-hast@13.2.0: resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} @@ -13929,6 +14251,9 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + medium-zoom@1.1.0: + resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} + memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -13971,87 +14296,192 @@ packages: micro-memoize@4.1.3: resolution: {integrity: sha512-DzRMi8smUZXT7rCGikRwldEh6eO6qzKiPPopcr1+2EY3AYKpy5fu159PKWwIS9A6IWnrvPKDMcuFtyrroZa8Bw==} + micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + + micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + + micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + + micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + + micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + + micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + + micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + + micromark-extension-mdx-expression@1.0.8: + resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} + micromark-extension-mdx-expression@3.0.1: resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + micromark-extension-mdx-jsx@1.0.5: + resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} + micromark-extension-mdx-jsx@3.0.2: resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + micromark-extension-mdx-md@1.0.1: + resolution: {integrity: sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA==} + micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + micromark-extension-mdxjs-esm@1.0.5: + resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} + micromark-extension-mdxjs-esm@3.0.0: resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + micromark-extension-mdxjs@1.0.1: + resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} + micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + micromark-factory-mdx-expression@1.0.9: + resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} + micromark-factory-mdx-expression@2.0.3: resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-factory-title@2.0.1: resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-factory-whitespace@2.0.1: resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@2.1.1: resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-util-chunked@2.0.1: resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-util-classify-character@2.0.1: resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-util-combine-extensions@2.0.1: resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + micromark-util-events-to-acorn@1.2.3: + resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} + micromark-util-events-to-acorn@2.0.3: resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-normalize-identifier@2.0.1: resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-resolve-all@2.0.1: resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-subtokenize@2.1.0: resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-types@2.0.2: resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} @@ -14570,6 +15000,9 @@ packages: resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} deprecated: This package is no longer supported. + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -14922,6 +15355,9 @@ packages: resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} engines: {node: '>= 0.10'} + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -14968,6 +15404,9 @@ packages: parse5@7.2.1: resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -15057,6 +15496,9 @@ packages: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} engines: {node: '>=0.12'} + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + peek-readable@5.4.2: resolution: {integrity: sha512-peBp3qZyuS6cNIJ2akRNG1uo1WJ1d0wTxg/fxMdZ0BqCVhx242bSFHM9eNqflfJVS9SsgkzgT/1UgnsurBOTMg==} engines: {node: '>=14.16'} @@ -15070,6 +15512,9 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -15699,6 +16144,14 @@ packages: resolution: {integrity: sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==} hasBin: true + prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} + engines: {node: '>=6'} + + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -15745,6 +16198,12 @@ packages: proper-lockfile@4.1.2: resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + property-information@7.0.0: resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} @@ -15936,6 +16395,12 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-helmet@6.1.0: resolution: {integrity: sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==} peerDependencies: @@ -15968,6 +16433,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-lazy-with-preload@2.2.1: + resolution: {integrity: sha512-ONSb8gizLE5jFpdHAclZ6EAAKuFX2JydnFXPPPjoUImZlLjGtKzyBS8SJgJq7CpLgsGKh9QCZdugJyEEOVC16Q==} + react-leaflet@4.2.1: resolution: {integrity: sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==} peerDependencies: @@ -16056,6 +16524,11 @@ packages: react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-syntax-highlighter@15.6.1: + resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} + peerDependencies: + react: '>= 0.14.0' + react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: @@ -16153,6 +16626,9 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} + refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -16207,6 +16683,9 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true + rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} @@ -16214,15 +16693,33 @@ packages: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} + remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + + remark-mdx@2.3.0: + resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} + remark-mdx@3.1.0: resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + remark-rehype@11.1.1: resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-stringify@10.0.3: + resolution: {integrity: sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==} + + remark@14.0.3: + resolution: {integrity: sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==} + remove-accents@0.5.0: resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} @@ -16423,6 +16920,13 @@ packages: '@rspack/core': optional: true + rspack-plugin-virtual-module@0.1.13: + resolution: {integrity: sha512-VC0HiVHH6dtGfTgfpbDgVTt6LlYv+uAg9CWGWAR5lBx9FbKPEZeGz7iRUUP8vMymx+PGI8ps0u4a25dne0rtuQ==} + + rspress@1.44.0: + resolution: {integrity: sha512-ZEZblWRiXHFsD+sdOsGtHok8fZ1YT9wc9aE20WT1+1HGAjybYSppcVYs+eJsLwhlemWn6JS++FwrP4hUfUaprA==} + hasBin: true + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -16821,6 +17325,10 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + secure-compare@3.0.1: resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} @@ -16835,6 +17343,9 @@ packages: resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==} hasBin: true + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + select-hose@2.0.0: resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} @@ -17165,9 +17676,15 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -17358,6 +17875,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} @@ -17418,6 +17939,9 @@ packages: style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -17773,6 +18297,9 @@ packages: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} engines: {node: '>=0.10.0'} + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -18161,6 +18688,9 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} + unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -18184,21 +18714,48 @@ packages: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} + unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + + unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-position-from-estree@1.1.2: + resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} + unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-remove-position@4.0.2: + resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} + + unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + unist-util-visit-children@2.0.2: + resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} + + unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -18341,6 +18898,11 @@ packages: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true + uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -18393,9 +18955,18 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + vfile@6.0.2: resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} @@ -18625,6 +19196,9 @@ packages: web-encoding@1.1.5: resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -21736,7 +22310,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -21749,14 +22323,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.13.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.15))(@types/node@22.13.13)(typescript@5.8.2)) + jest-config: 29.7.0(@types/node@18.11.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.15))(@types/node@22.13.13)(typescript@5.8.2)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -21784,14 +22358,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.13.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.17))(@types/node@22.13.13)(typescript@5.8.2)) + jest-config: 29.7.0(@types/node@18.11.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.17))(@types/node@22.13.13)(typescript@5.8.2)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -21816,7 +22390,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -21834,7 +22408,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.13.13 + '@types/node': 18.11.19 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -21856,7 +22430,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -21925,7 +22499,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -21934,7 +22508,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -22085,6 +22659,36 @@ snapshots: - encoding - supports-color + '@mdx-js/loader@2.3.0(webpack@5.99.9)': + dependencies: + '@mdx-js/mdx': 2.3.0 + source-map: 0.7.4 + webpack: 5.99.9 + transitivePeerDependencies: + - supports-color + + '@mdx-js/mdx@2.3.0': + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/mdx': 2.0.13 + estree-util-build-jsx: 2.2.2 + estree-util-is-identifier-name: 2.1.0 + estree-util-to-js: 1.2.0 + estree-walker: 3.0.3 + hast-util-to-estree: 2.3.3 + markdown-extensions: 1.1.1 + periscopic: 3.1.0 + remark-mdx: 2.3.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + unified: 10.1.2 + unist-util-position-from-estree: 1.1.2 + unist-util-stringify-position: 3.0.3 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + '@mdx-js/mdx@3.1.0(acorn@8.14.1)': dependencies: '@types/estree': 1.0.7 @@ -22115,6 +22719,12 @@ snapshots: - acorn - supports-color + '@mdx-js/react@2.3.0(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.0.12 + react: 18.3.1 + '@mischnic/json-sourcemap@0.1.1': dependencies: '@lezer/common': 1.2.3 @@ -27760,6 +28370,135 @@ snapshots: html-entities: 2.6.0 react-refresh: 0.17.0 + '@rspress/core@1.44.0(webpack@5.99.9)': + dependencies: + '@mdx-js/loader': 2.3.0(webpack@5.99.9) + '@mdx-js/mdx': 2.3.0 + '@mdx-js/react': 2.3.0(react@18.3.1) + '@rsbuild/core': 1.3.22 + '@rsbuild/plugin-less': 1.2.4(@rsbuild/core@1.3.22) + '@rsbuild/plugin-react': 1.3.2(@rsbuild/core@1.3.22) + '@rsbuild/plugin-sass': 1.3.2(@rsbuild/core@1.3.22) + '@rspress/mdx-rs': 0.6.6 + '@rspress/plugin-auto-nav-sidebar': 1.44.0 + '@rspress/plugin-container-syntax': 1.44.0 + '@rspress/plugin-last-updated': 1.44.0 + '@rspress/plugin-medium-zoom': 1.44.0(@rspress/runtime@1.44.0) + '@rspress/runtime': 1.44.0 + '@rspress/shared': 1.44.0 + '@rspress/theme-default': 1.44.0 + enhanced-resolve: 5.18.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-heading-rank: 2.1.1 + html-to-text: 9.0.5 + htmr: 1.0.2(react@18.3.1) + lodash-es: 4.17.21 + mdast-util-mdxjs-esm: 1.3.1 + memfs: 4.17.0 + picocolors: 1.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-lazy-with-preload: 2.2.1 + react-syntax-highlighter: 15.6.1(react@18.3.1) + rehype-external-links: 3.0.0 + remark: 14.0.3 + remark-gfm: 3.0.1 + rspack-plugin-virtual-module: 0.1.13 + tinyglobby: 0.2.14 + unified: 10.1.2 + unist-util-visit: 4.1.2 + unist-util-visit-children: 2.0.2 + transitivePeerDependencies: + - supports-color + - webpack + - webpack-hot-middleware + + '@rspress/mdx-rs-darwin-arm64@0.6.6': + optional: true + + '@rspress/mdx-rs-darwin-x64@0.6.6': + optional: true + + '@rspress/mdx-rs-linux-arm64-gnu@0.6.6': + optional: true + + '@rspress/mdx-rs-linux-arm64-musl@0.6.6': + optional: true + + '@rspress/mdx-rs-linux-x64-gnu@0.6.6': + optional: true + + '@rspress/mdx-rs-linux-x64-musl@0.6.6': + optional: true + + '@rspress/mdx-rs-win32-arm64-msvc@0.6.6': + optional: true + + '@rspress/mdx-rs-win32-x64-msvc@0.6.6': + optional: true + + '@rspress/mdx-rs@0.6.6': + optionalDependencies: + '@rspress/mdx-rs-darwin-arm64': 0.6.6 + '@rspress/mdx-rs-darwin-x64': 0.6.6 + '@rspress/mdx-rs-linux-arm64-gnu': 0.6.6 + '@rspress/mdx-rs-linux-arm64-musl': 0.6.6 + '@rspress/mdx-rs-linux-x64-gnu': 0.6.6 + '@rspress/mdx-rs-linux-x64-musl': 0.6.6 + '@rspress/mdx-rs-win32-arm64-msvc': 0.6.6 + '@rspress/mdx-rs-win32-x64-msvc': 0.6.6 + + '@rspress/plugin-auto-nav-sidebar@1.44.0': + dependencies: + '@rspress/shared': 1.44.0 + + '@rspress/plugin-container-syntax@1.44.0': + dependencies: + '@rspress/shared': 1.44.0 + + '@rspress/plugin-last-updated@1.44.0': + dependencies: + '@rspress/shared': 1.44.0 + + '@rspress/plugin-medium-zoom@1.44.0(@rspress/runtime@1.44.0)': + dependencies: + '@rspress/runtime': 1.44.0 + medium-zoom: 1.1.0 + + '@rspress/runtime@1.44.0': + dependencies: + '@rspress/shared': 1.44.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router-dom: 6.30.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + + '@rspress/shared@1.44.0': + dependencies: + '@rsbuild/core': 1.3.22 + gray-matter: 4.0.3 + lodash-es: 4.17.21 + unified: 10.1.2 + + '@rspress/theme-default@1.44.0': + dependencies: + '@mdx-js/react': 2.3.0(react@18.3.1) + '@rspress/runtime': 1.44.0 + '@rspress/shared': 1.44.0 + body-scroll-lock: 4.0.0-beta.0 + copy-to-clipboard: 3.3.3 + flexsearch: 0.7.43 + github-slugger: 2.0.0 + htmr: 1.0.2(react@18.3.1) + lodash-es: 4.17.21 + nprogress: 0.2.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-syntax-highlighter: 15.6.1(react@18.3.1) + '@rtsao/scc@1.1.0': {} '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)': @@ -27788,6 +28527,11 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + '@sigstore/bundle@3.1.0': dependencies: '@sigstore/protobuf-specs': 0.4.0 @@ -28339,6 +29083,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.7 + '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': @@ -28365,22 +29113,22 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/canvas-confetti@1.9.0': {} '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.6 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/connect@3.4.38': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/debug@4.1.12': dependencies: @@ -28408,14 +29156,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -28432,11 +29180,15 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 + + '@types/hast@2.3.10': + dependencies: + '@types/unist': 2.0.11 '@types/hast@3.0.4': dependencies: @@ -28455,7 +29207,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/inquirer@6.5.0': dependencies: @@ -28484,7 +29236,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -28500,6 +29252,10 @@ snapshots: dependencies: '@types/react': 19.0.12 + '@types/mdast@3.0.15': + dependencies: + '@types/unist': 2.0.11 + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -28514,20 +29270,20 @@ snapshots: '@types/mute-stream@0.0.4': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 form-data: 4.0.2 '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/node-persist@3.1.8': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/node@18.11.19': {} @@ -28590,7 +29346,7 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/serve-index@1.9.4': dependencies: @@ -28599,7 +29355,7 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/send': 0.17.4 '@types/sinonjs__fake-timers@8.1.1': {} @@ -28608,7 +29364,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/stack-utils@2.0.3': {} @@ -28620,7 +29376,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/tinycolor2@1.4.6': {} @@ -28638,7 +29394,7 @@ snapshots: '@types/ws@8.18.0': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 '@types/yargs-parser@21.0.3': {} @@ -28652,7 +29408,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 optional: true '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.15.0(jiti@2.4.2))(typescript@5.8.2)': @@ -29979,6 +30735,8 @@ snapshots: transitivePeerDependencies: - supports-color + body-scroll-lock@4.0.0-beta.0: {} + bonjour-service@1.3.0: dependencies: fast-deep-equal: 3.1.3 @@ -30305,14 +31063,20 @@ snapshots: character-entities-html4@2.1.0: {} + character-entities-legacy@1.1.4: {} + character-entities-legacy@3.0.0: {} + character-entities@1.2.4: {} + character-entities@2.0.2: {} character-parser@2.2.0: dependencies: is-regex: 1.2.1 + character-reference-invalid@1.1.4: {} + character-reference-invalid@2.0.1: {} chardet@0.7.0: {} @@ -30563,6 +31327,8 @@ snapshots: dependencies: delayed-stream: 1.0.0 + comma-separated-tokens@1.0.8: {} + comma-separated-tokens@2.0.3: {} commander@10.0.1: {} @@ -30647,6 +31413,18 @@ snapshots: semver: 7.7.1 well-known-symbols: 2.0.0 + concurrently@8.2.2: + dependencies: + chalk: 4.1.2 + date-fns: 2.30.0 + lodash: 4.17.21 + rxjs: 7.8.2 + shell-quote: 1.8.2 + spawn-command: 0.0.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + concurrently@9.1.2: dependencies: chalk: 4.1.2 @@ -30738,6 +31516,10 @@ snapshots: transitivePeerDependencies: - supports-color + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + copy-webpack-plugin@10.2.4(webpack@5.99.9(@swc/core@1.11.13(@swc/helpers@0.5.15))): dependencies: fast-glob: 3.3.3 @@ -31658,6 +32440,8 @@ snapshots: diff@4.0.2: {} + diff@5.2.0: {} + diffie-hellman@5.0.3: dependencies: bn.js: 4.12.1 @@ -31844,6 +32628,11 @@ snapshots: engine.io-parser@5.2.3: {} + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 @@ -32405,10 +33194,20 @@ snapshots: estraverse@5.3.0: {} + estree-util-attach-comments@2.1.1: + dependencies: + '@types/estree': 1.0.7 + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.7 + estree-util-build-jsx@2.2.2: + dependencies: + '@types/estree-jsx': 1.0.5 + estree-util-is-identifier-name: 2.1.0 + estree-walker: 3.0.3 + estree-util-build-jsx@3.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -32416,6 +33215,8 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 + estree-util-is-identifier-name@2.1.0: {} + estree-util-is-identifier-name@3.0.0: {} estree-util-scope@1.0.0: @@ -32423,12 +33224,23 @@ snapshots: '@types/estree': 1.0.7 devlop: 1.1.0 + estree-util-to-js@1.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + estree-util-to-js@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.9.0 source-map: 0.7.4 + estree-util-visit@1.2.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 2.0.11 + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -32778,6 +33590,10 @@ snapshots: dependencies: reusify: 1.1.0 + fault@1.0.4: + dependencies: + format: 0.2.2 + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 @@ -32997,6 +33813,8 @@ snapshots: flatted@3.3.3: {} + flexsearch@0.7.43: {} + flush-write-stream@2.0.0: dependencies: inherits: 2.0.4 @@ -33074,6 +33892,8 @@ snapshots: es-set-tostringtag: 2.1.0 mime-types: 2.1.35 + format@0.2.2: {} + formdata-node@4.4.1: dependencies: node-domexception: 1.0.0 @@ -33276,6 +34096,8 @@ snapshots: dependencies: ini: 1.3.8 + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -33463,6 +34285,13 @@ snapshots: graphemer@1.4.0: {} + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -33552,6 +34381,60 @@ snapshots: 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.2.1 + vfile: 6.0.3 + vfile-message: 4.0.2 + + 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.0.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-heading-rank@2.1.1: + dependencies: + '@types/hast': 2.3.10 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@2.2.5: {} + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-estree@2.3.3: + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/unist': 2.0.11 + comma-separated-tokens: 2.0.3 + estree-util-attach-comments: 2.1.1 + estree-util-is-identifier-name: 2.1.0 + hast-util-whitespace: 2.0.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdxjs-esm: 1.3.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 4.0.4 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + hast-util-to-estree@3.1.3: dependencies: '@types/estree': 1.0.7 @@ -33593,10 +34476,28 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-whitespace@2.0.1: {} + hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 + hastscript@6.0.0: + dependencies: + '@types/hast': 2.3.10 + comma-separated-tokens: 1.0.8 + hast-util-parse-selector: 2.2.5 + property-information: 5.6.0 + space-separated-tokens: 1.1.5 + + 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.0.0 + space-separated-tokens: 2.0.2 + he@1.2.0: {} header-case@1.0.1: @@ -33611,6 +34512,10 @@ snapshots: process: 0.10.1 xtend: 4.0.2 + highlight.js@10.7.3: {} + + highlightjs-vue@1.0.0: {} + hmac-drbg@1.0.1: dependencies: hash.js: 1.1.7 @@ -33680,6 +34585,14 @@ snapshots: relateurl: 0.2.7 terser: 5.39.0 + html-to-text@9.0.5: + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + html-webpack-plugin@5.6.3(@rspack/core@1.3.12(@swc/helpers@0.5.15))(webpack@5.99.9(@swc/core@1.11.13(@swc/helpers@0.5.15))): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -33786,6 +34699,12 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 + htmr@1.0.2(react@18.3.1): + dependencies: + html-entities: 2.6.0 + htmlparser2: 6.1.0 + react: 18.3.1 + http-assert@1.5.0: dependencies: deep-equal: 1.0.1 @@ -34043,6 +34962,8 @@ snapshots: ini@5.0.0: {} + inline-style-parser@0.1.1: {} + inline-style-parser@0.2.4: {} inquirer-autocomplete-prompt@1.4.0(inquirer@6.5.2): @@ -34131,12 +35052,21 @@ snapshots: ipaddr.js@2.2.0: {} + is-absolute-url@4.0.1: {} + is-accessor-descriptor@1.0.1: dependencies: hasown: 2.0.2 + is-alphabetical@1.0.4: {} + is-alphabetical@2.0.1: {} + is-alphanumerical@1.0.4: + dependencies: + is-alphabetical: 1.0.4 + is-decimal: 1.0.4 + is-alphanumerical@2.0.1: dependencies: is-alphabetical: 2.0.1 @@ -34180,6 +35110,8 @@ snapshots: is-buffer@1.1.6: {} + is-buffer@2.0.5: {} + is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 @@ -34213,6 +35145,8 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-decimal@1.0.4: {} + is-decimal@2.0.1: {} is-descriptor@0.1.7: @@ -34273,6 +35207,8 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-hexadecimal@1.0.4: {} + is-hexadecimal@2.0.1: {} is-inside-container@1.0.0: @@ -34562,7 +35498,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -34620,6 +35556,68 @@ snapshots: - supports-color - ts-node + jest-config@29.7.0(@types/node@18.11.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.15))(@types/node@22.13.13)(typescript@5.8.2)): + dependencies: + '@babel/core': 7.26.10 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 18.11.19 + ts-node: 10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.15))(@types/node@22.13.13)(typescript@5.8.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-config@29.7.0(@types/node@18.11.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.17))(@types/node@22.13.13)(typescript@5.8.2)): + dependencies: + '@babel/core': 7.26.10 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.10) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 18.11.19 + ts-node: 10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.17))(@types/node@22.13.13)(typescript@5.8.2) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-config@29.7.0(@types/node@22.13.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.11.13(@swc/helpers@0.5.15))(@types/node@22.13.13)(typescript@5.8.2)): dependencies: '@babel/core': 7.26.10 @@ -34721,7 +35719,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -34733,7 +35731,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.13.13 + '@types/node': 18.11.19 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -34772,7 +35770,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -34833,7 +35831,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -34861,7 +35859,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -34907,7 +35905,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -34935,7 +35933,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.13.13 + '@types/node': 18.11.19 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -34944,13 +35942,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.13.13 + '@types/node': 18.11.19 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -35261,6 +36259,8 @@ snapshots: dependencies: readable-stream: 2.3.8 + leac@0.6.0: {} + leaflet@1.9.4: {} less-loader@11.1.0(less@4.1.3)(webpack@5.99.9(@swc/core@1.11.13(@swc/helpers@0.5.15))): @@ -35691,6 +36691,11 @@ snapshots: lowercase-keys@3.0.0: {} + lowlight@1.20.0: + dependencies: + fault: 1.0.4 + highlight.js: 10.7.3 + lru-cache@10.4.3: {} lru-cache@11.1.0: {} @@ -35772,8 +36777,12 @@ snapshots: dependencies: object-visit: 1.0.1 + markdown-extensions@1.1.1: {} + markdown-extensions@2.0.0: {} + markdown-table@3.0.4: {} + match-sorter@8.0.0: dependencies: '@babel/runtime': 7.25.6 @@ -35800,6 +36809,36 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + mdast-util-definitions@5.1.2: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + unist-util-visit: 4.1.2 + + mdast-util-find-and-replace@2.2.2: + dependencies: + '@types/mdast': 3.0.15 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + + mdast-util-from-markdown@1.3.1: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + decode-named-character-reference: 1.1.0 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -35817,6 +36856,60 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-autolink-literal@1.0.3: + dependencies: + '@types/mdast': 3.0.15 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + + mdast-util-gfm-footnote@1.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + + mdast-util-gfm-strikethrough@1.0.3: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + + mdast-util-gfm-table@1.0.7: + dependencies: + '@types/mdast': 3.0.15 + markdown-table: 3.0.4 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@1.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + + mdast-util-gfm@2.0.2: + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@1.3.2: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -35828,6 +36921,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdx-jsx@2.1.4: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + ccount: 2.0.1 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-remove-position: 4.0.2 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-jsx@3.2.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -35845,6 +36955,16 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdx@2.0.1: + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-mdx-expression: 1.3.2 + mdast-util-mdx-jsx: 2.1.4 + mdast-util-mdxjs-esm: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + mdast-util-mdx@3.0.0: dependencies: mdast-util-from-markdown: 2.0.2 @@ -35855,6 +36975,16 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-mdxjs-esm@1.3.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -35866,11 +36996,27 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-phrasing@3.0.1: + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 + mdast-util-to-hast@12.3.0: + dependencies: + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 @@ -35883,6 +37029,17 @@ snapshots: unist-util-visit: 5.0.0 vfile: 6.0.3 + mdast-util-to-markdown@1.5.0: + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.11 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 @@ -35895,6 +37052,10 @@ snapshots: unist-util-visit: 5.0.0 zwitch: 2.0.4 + mdast-util-to-string@3.2.0: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-string@4.0.0: dependencies: '@types/mdast': 4.0.4 @@ -35907,6 +37068,8 @@ snapshots: media-typer@0.3.0: {} + medium-zoom@1.1.0: {} + memfs@3.5.3: dependencies: fs-monkey: 1.0.6 @@ -35942,6 +37105,25 @@ snapshots: micro-memoize@4.1.3: {} + micromark-core-commonmark@1.1.0: + dependencies: + decode-named-character-reference: 1.1.0 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.1.0 @@ -35961,6 +37143,75 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-gfm-autolink-literal@1.0.5: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-extension-gfm-footnote@1.1.2: + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-strikethrough@1.0.7: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-table@1.0.7: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm-tagfilter@1.0.2: + dependencies: + micromark-util-types: 1.1.0 + + micromark-extension-gfm-task-list-item@1.0.5: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + + micromark-extension-gfm@2.0.3: + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + + micromark-extension-mdx-expression@1.0.8: + dependencies: + '@types/estree': 1.0.7 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + micromark-extension-mdx-expression@3.0.1: dependencies: '@types/estree': 1.0.7 @@ -35972,6 +37223,19 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-mdx-jsx@1.0.5: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.7 + estree-util-is-identifier-name: 2.1.0 + micromark-factory-mdx-expression: 1.0.9 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + micromark-extension-mdx-jsx@3.0.2: dependencies: '@types/estree': 1.0.7 @@ -35985,10 +37249,26 @@ snapshots: micromark-util-types: 2.0.2 vfile-message: 4.0.2 + micromark-extension-mdx-md@1.0.1: + dependencies: + micromark-util-types: 1.1.0 + micromark-extension-mdx-md@2.0.0: dependencies: micromark-util-types: 2.0.2 + micromark-extension-mdxjs-esm@1.0.5: + dependencies: + '@types/estree': 1.0.7 + micromark-core-commonmark: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + micromark-extension-mdxjs-esm@3.0.0: dependencies: '@types/estree': 1.0.7 @@ -36001,6 +37281,17 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + micromark-extension-mdxjs@1.0.1: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + micromark-extension-mdx-expression: 1.0.8 + micromark-extension-mdx-jsx: 1.0.5 + micromark-extension-mdx-md: 1.0.1 + micromark-extension-mdxjs-esm: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + micromark-extension-mdxjs@3.0.0: dependencies: acorn: 8.14.1 @@ -36012,12 +37303,25 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 + micromark-factory-destination@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + 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@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 @@ -36025,6 +37329,17 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-factory-mdx-expression@1.0.9: + dependencies: + '@types/estree': 1.0.7 + micromark-util-character: 1.2.0 + micromark-util-events-to-acorn: 1.2.3 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-position-from-estree: 1.1.2 + uvu: 0.5.6 + vfile-message: 3.1.4 + micromark-factory-mdx-expression@2.0.3: dependencies: '@types/estree': 1.0.7 @@ -36037,11 +37352,23 @@ snapshots: unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + micromark-factory-space@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-types: 2.0.2 + micromark-factory-title@1.1.0: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -36049,6 +37376,13 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-factory-whitespace@1.1.0: + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 @@ -36056,30 +37390,61 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-util-character@1.2.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-util-chunked@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-chunked@2.0.1: dependencies: micromark-util-symbol: 2.0.1 + micromark-util-classify-character@1.1.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + 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@1.1.0: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + 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@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: micromark-util-symbol: 2.0.1 + micromark-util-decode-string@1.1.0: + dependencies: + decode-named-character-reference: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.1.0 @@ -36087,8 +37452,21 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 + micromark-util-encode@1.1.0: {} + micromark-util-encode@2.0.1: {} + micromark-util-events-to-acorn@1.2.3: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.7 + '@types/unist': 2.0.11 + estree-util-visit: 1.2.1 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + vfile-message: 3.1.4 + micromark-util-events-to-acorn@2.0.3: dependencies: '@types/estree': 1.0.7 @@ -36099,22 +37477,45 @@ snapshots: micromark-util-types: 2.0.2 vfile-message: 4.0.2 + micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@2.0.1: {} + micromark-util-normalize-identifier@1.1.0: + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-normalize-identifier@2.0.1: dependencies: micromark-util-symbol: 2.0.1 + micromark-util-resolve-all@1.1.0: + dependencies: + micromark-util-types: 1.1.0 + micromark-util-resolve-all@2.0.1: dependencies: micromark-util-types: 2.0.2 + micromark-util-sanitize-uri@1.2.0: + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + 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@1.1.0: + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 @@ -36122,10 +37523,36 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.2 + micromark-util-symbol@1.1.0: {} + micromark-util-symbol@2.0.1: {} + micromark-util-types@1.1.0: {} + micromark-util-types@2.0.2: {} + micromark@3.2.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0(supports-color@9.4.0) + decode-named-character-reference: 1.1.0 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + micromark@4.0.2: dependencies: '@types/debug': 4.1.12 @@ -36842,6 +38269,8 @@ snapshots: gauge: 3.0.2 set-blocking: 2.0.0 + nprogress@0.2.0: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -37395,6 +38824,15 @@ snapshots: pbkdf2: 3.1.2 safe-buffer: 5.2.1 + parse-entities@2.0.0: + dependencies: + character-entities: 1.2.4 + character-entities-legacy: 1.1.4 + character-reference-invalid: 1.1.4 + is-alphanumerical: 1.0.4 + is-decimal: 1.0.4 + is-hexadecimal: 1.0.4 + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -37446,6 +38884,11 @@ snapshots: dependencies: entities: 4.5.0 + parseley@0.12.1: + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + parseurl@1.3.3: {} pascal-case@2.0.1: @@ -37516,6 +38959,8 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + peberminta@0.9.0: {} + peek-readable@5.4.2: {} pend@1.2.0: {} @@ -37524,6 +38969,12 @@ snapshots: performance-now@2.1.0: {} + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.7 + estree-walker: 3.0.3 + is-reference: 3.0.3 + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -38421,6 +39872,10 @@ snapshots: colors: 1.4.0 minimist: 1.2.8 + prismjs@1.27.0: {} + + prismjs@1.30.0: {} + proc-log@3.0.0: {} proc-log@5.0.0: {} @@ -38463,6 +39918,12 @@ snapshots: retry: 0.12.0 signal-exit: 3.0.7 + property-information@5.6.0: + dependencies: + xtend: 4.0.2 + + property-information@6.5.0: {} + property-information@7.0.0: {} proto-list@1.2.4: {} @@ -38479,7 +39940,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.13.13 + '@types/node': 18.11.19 long: 5.3.1 protocols@2.0.2: {} @@ -38711,6 +40172,16 @@ snapshots: react-fast-compare@3.2.2: {} + react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + shallowequal: 1.1.0 + react-helmet@6.1.0(react@19.0.0): dependencies: object-assign: 4.1.1 @@ -38740,6 +40211,8 @@ snapshots: react-is@18.3.1: {} + react-lazy-with-preload@2.2.1: {} + react-leaflet@4.2.1(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@react-leaflet/core': 2.1.0(leaflet@1.9.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -38825,6 +40298,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + react-syntax-highlighter@15.6.1(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + highlight.js: 10.7.3 + highlightjs-vue: 1.0.0 + lowlight: 1.20.0 + prismjs: 1.30.0 + react: 18.3.1 + refractor: 3.6.0 + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -38966,6 +40449,12 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 + refractor@3.6.0: + dependencies: + hastscript: 6.0.0 + parse-entities: 2.0.0 + prismjs: 1.27.0 + regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -39028,6 +40517,15 @@ snapshots: dependencies: jsesc: 3.0.2 + rehype-external-links@3.0.0: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.0 + hast-util-is-element: 3.0.0 + is-absolute-url: 4.0.1 + space-separated-tokens: 2.0.2 + unist-util-visit: 5.0.0 + rehype-recma@1.0.0: dependencies: '@types/estree': 1.0.7 @@ -39038,6 +40536,22 @@ snapshots: relateurl@0.2.7: {} + remark-gfm@3.0.1: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + + remark-mdx@2.3.0: + dependencies: + mdast-util-mdx: 2.0.1 + micromark-extension-mdxjs: 1.0.1 + transitivePeerDependencies: + - supports-color + remark-mdx@3.1.0: dependencies: mdast-util-mdx: 3.0.0 @@ -39045,6 +40559,14 @@ snapshots: transitivePeerDependencies: - supports-color + remark-parse@10.0.2: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -39054,6 +40576,13 @@ snapshots: transitivePeerDependencies: - supports-color + remark-rehype@10.1.0: + dependencies: + '@types/hast': 2.3.10 + '@types/mdast': 3.0.15 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 @@ -39062,6 +40591,21 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + remark-stringify@10.0.3: + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + unified: 10.1.2 + + remark@14.0.3: + dependencies: + '@types/mdast': 3.0.15 + remark-parse: 10.0.2 + remark-stringify: 10.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + remove-accents@0.5.0: {} remove-trailing-separator@1.1.0: {} @@ -39341,6 +40885,23 @@ snapshots: optionalDependencies: '@rspack/core': 1.3.12(@swc/helpers@0.5.17) + rspack-plugin-virtual-module@0.1.13: + dependencies: + fs-extra: 11.3.0 + + rspress@1.44.0(webpack@5.99.9): + dependencies: + '@rsbuild/core': 1.3.22 + '@rspress/core': 1.44.0(webpack@5.99.9) + '@rspress/shared': 1.44.0 + cac: 6.7.14 + chokidar: 3.6.0 + picocolors: 1.1.1 + transitivePeerDependencies: + - supports-color + - webpack + - webpack-hot-middleware + run-applescript@7.0.0: {} run-async@2.4.1: {} @@ -39693,6 +41254,11 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + secure-compare@3.0.1: {} secure-json-parse@2.7.0: {} @@ -39705,6 +41271,10 @@ snapshots: dependencies: commander: 6.2.1 + selderee@0.11.0: + dependencies: + parseley: 0.12.1 + select-hose@2.0.0: {} selfsigned@2.4.1: @@ -40159,8 +41729,12 @@ snapshots: source-map@0.7.4: {} + space-separated-tokens@1.1.5: {} + space-separated-tokens@2.0.2: {} + spawn-command@0.0.2: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -40411,6 +41985,8 @@ snapshots: dependencies: ansi-regex: 6.1.0 + strip-bom-string@1.0.0: {} + strip-bom@3.0.0: {} strip-bom@4.0.0: {} @@ -40470,6 +42046,10 @@ snapshots: dependencies: style-to-object: 1.0.8 + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -41024,6 +42604,8 @@ snapshots: regex-not: 1.0.2 safe-regex: 1.1.0 + toggle-selection@1.0.6: {} + toidentifier@1.0.1: {} token-stream@1.0.0: {} @@ -41524,6 +43106,16 @@ snapshots: unicorn-magic@0.3.0: {} + unified@10.1.2: + dependencies: + '@types/unist': 2.0.11 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 5.3.7 + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -41557,27 +43149,65 @@ snapshots: dependencies: crypto-random-string: 4.0.0 + unist-util-generated@2.0.1: {} + + unist-util-is@5.2.1: + dependencies: + '@types/unist': 2.0.11 + unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-position-from-estree@1.1.2: + dependencies: + '@types/unist': 2.0.11 + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-position@4.0.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-remove-position@4.0.2: + dependencies: + '@types/unist': 2.0.11 + unist-util-visit: 4.1.2 + + unist-util-stringify-position@3.0.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 + unist-util-visit-children@2.0.2: + dependencies: + '@types/unist': 2.0.11 + + unist-util-visit-parents@5.1.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 + unist-util-visit@4.1.2: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -41721,6 +43351,13 @@ snapshots: uuid@9.0.0: {} + uvu@0.5.6: + dependencies: + dequal: 2.0.3 + diff: 5.2.0 + kleur: 4.1.5 + sade: 1.8.1 + v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: @@ -41762,11 +43399,28 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@3.1.4: + dependencies: + '@types/unist': 2.0.11 + unist-util-stringify-position: 3.0.3 + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 + vfile@5.3.7: + dependencies: + '@types/unist': 2.0.11 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + vfile@6.0.2: dependencies: '@types/unist': 3.0.3 @@ -42105,6 +43759,8 @@ snapshots: optionalDependencies: '@zxing/text-encoding': 0.9.0 + web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} web-streams-polyfill@4.0.0-beta.3: {}