pax_global_header00006660000000000000000000000064152573374740014533gustar00rootroot0000000000000052 comment=51a0cc5530d8e29272406384723e8871245821f1 mochajs-mocha-51a0cc5/000077500000000000000000000000001525733747400146475ustar00rootroot00000000000000mochajs-mocha-51a0cc5/.browserslistrc000066400000000000000000000004011525733747400177320ustar00rootroot00000000000000node >= 14 last 2 Chrome versions last 2 Edge versions last 2 Firefox versions last 2 Safari versions last 2 Opera versions unreleased Chrome versions unreleased Edge versions unreleased Firefox versions unreleased Safari versions unreleased Opera versions mochajs-mocha-51a0cc5/.gitattributes000066400000000000000000000000231525733747400175350ustar00rootroot00000000000000* text=auto eol=lf mochajs-mocha-51a0cc5/.github/000077500000000000000000000000001525733747400162075ustar00rootroot00000000000000mochajs-mocha-51a0cc5/.github/CODE_OF_CONDUCT.md000066400000000000000000000002401525733747400210020ustar00rootroot00000000000000# Code of Conduct This project follows the OpenJS Foundation Code of Conduct available at [code-of-conduct.openjsf.org](https://code-of-conduct.openjsf.org/). mochajs-mocha-51a0cc5/.github/CONTRIBUTING.md000066400000000000000000000362221525733747400204450ustar00rootroot00000000000000# Contributing to Mocha > Please read these guidelines before submitting an issue, filing a feature request, or contributing code. ## ❓ Got a Question? If you have a question about using Mocha, please use [StackOverflow](https://stackoverflow.com) or ask the friendly people in [our Discord](https://discord.gg/KeDn2uXhER). ## ✏️ Filing Issues Before adding anything to the issue tracker, **please [search issues](https://github.com/mochajs/mocha/issues) to see if it's already been reported**. Make sure to check closed and/or older issues as well. With the exception of minor documentation typos, all changes to Mocha should be discussed in the issue tracker first. This includes bugs, feature requests, and improvements to documentation. ### πŸ› I Found a Bug Sorry! It happens to the best of us. First, please confirm the bug by reproducing it in a minimal project. You can use the [repro folder](../repro/README.md) for this, or you can describe the minimal reproduction in the bug description. Then, [file an issue using the bug report template](https://github.com/mochajs/mocha/issues/new?template=01-bug.yml). If we need more information from you, we'll let you know. ### ❗️ Propose a Change Please [file an issue using the feature request template](https://github.com/mochajs/mocha/issues/new?assignees=&labels=type%3A+feature&projects=&template=03-feature-request.yml). Most importantly: - Let us know _what_ the proposed change is, in as much detail as you can - Explain _why_ you want the change - Include your test code or file(s). If large, please provide a link to a repository or [gist](https://gist.github.com). We'll discuss your proposed changes and how they relate to the overarching goals of Mocha, detailed below in [⚽️ About Project Goals](#%EF%B8%8F-about-project-goals). ## ⚽️ About Project Goals Mocha is a test framework. Developers use it against anything from legacy spaghetti in barely-supported browsers to stage-0 TC39 features in Electron. Mocha is committed to providing support for maintained (LTS) versions of Node.js and popular browsers. Mocha adheres strictly to [semantic versioning](https://semver.org). We are _extremely cautious_ with changes that have the potential to break; given the size of Mocha's user base, it's _highly unlikely_ a breaking change will slide by. Mocha's usage far outweighs its resources. If a proposed feature would incur a maintenance penalty, it could be a hard sell. We ask you please keep these goals in mind when making or proposing changes. ## πŸ˜‡ I Just Want To Help _Excellent._ Here's how: - **Handy with JavaScript?** Please check out the issues labeled [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22status%3A+accepting+prs%22) or [`good first issue`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+). Try `npx good-first-issue mocha`! - **Can you write ~~good~~ well?** The [documentation](https://mochajs.org) almost always needs some love. See the [doc-related issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22area%3A+documentation%22). - **Design your thing?** [Our site](https://mochajs.org) needs your magic touch. - **Familiar with Mocha's codebase?** We could use your help triaging issues and/or reviewing pull requests. Please contact an [org member](https://github.com/orgs/mochajs/people), and we'll chat. - **Want to build our community?** Mocha has a _lot_ of users. We could use your help bringing everyone together in peace and harmony. Please contact an [org member](https://github.com/orgs/mochajs/people). - **Do you write unit tests for _fun_?** A PR which increases coverage is unlikely to be turned down. - **Are you experienced?** 🎸 If you're a seasoned Mocha user, why not help answer some questions in [our Discord's `#help` channel](https://discord.gg/KeDn2uXhER)? ## πŸ™‹ Frequently Asked Questions ### Can I work on this issue? Anyone can work on any issue marked `status: accepting prs` πŸ™‚ Please check if there is already a PR for this issue, and if it's still being worked on. If it hasn't been updated for over a week, you're welcome to open your own PR and we'll review it when we can! ## πŸ‘ž Contributing Code: Step-by-Step First follow the steps in [DEVELOPMENT.md](./DEVELOPMENT.md) to get Mocha's repository installed locally. Then: ### 🀏 Trivial Changes A trivial change is a typo fix, comment update, or similar very small change. These changes do not require backing issues and can be opened in a PR directly. Trivial changes are still important! Nobody likes typos or stale comments, and we appreciate the time you take to propose updates to any and all parts of Mocha. Feel free to open PRs for changes you think are trivial. If a maintainer believes the change needs a backing issue and discussion first, they'll ask kindly. ### πŸŽ‹ Initial Creation 1. Make sure the issue is labeled with [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aissue+is%3Aopen+label%3A%22status%3A+accepting+prs%22) (or your change is [trivial](#trivial-changes)) 1. Create a new branch in your working copy. 1. Make your changes and add them via `git add`. - Your changes will likely be somewhere in `lib/`, `bin/`, or (if your changes are browser-specific) `browser-entry.js`. - Unit and/or integration **tests are required** for any code change. These live in `test/`. - **Do not modify** the root `mocha.js` file directly; it is automatically generated. - Keep your PR focused. Don't fix two things at once; don't upgrade dependencies unless necessary. 1. Before committing, run `npm test`. - This will run both Node.js-based and browser-based tests. - Ultimately, your pull request will be built on our continuous integration servers ([GitHub Actions](https://github.com/mochajs/mocha/actions?query=workflow%3A%22Tests%22)). The first step to ensuring these checks pass is to test on your own machine. - When tests are run in CI, a coverage check is sent to [Codecov](https://app.codecov.io/gh/mochajs/mocha). You'll need to [add the Codecov GitHub app](https://app.codecov.io/login) to upload these results from your fork. This is recommended but not necessary to open a PR. **A drop in code coverage % is considered a failed check**. 1. Commit your changes. - Use a brief message on the first line, referencing a relevant issue (e.g. `closes #12345`). - Add detail in subsequent lines. - A pre-commit hook will run which automatically formats your staged changes (and fixes any problems it can) with ESLint and Prettier. If ESLint fails to fix an issue, your commit will fail and you will need to manually correct the problem. 1. (Optional) Ensure you are up-to-date with Mocha's `main` branch: - You can add an "upstream" remote repo using `git remote add upstream https://github.com/mochajs/mocha.git && git fetch upstream`. - Navigate to your `main` branch using `git checkout main`. - Pull changes from `upstream` using `git pull upstream main`. - If any changes were pulled in, update your branch from `main` by switching back to your branch (`git checkout `) then merging using `git merge main`. 1. Push your changes to your fork; `git push origin`. 1. In your browser, navigate to [mochajs/mocha](https://github.com/mochajs/mocha). You should see a notification about your recent changes in your fork's branch, with a (green?) button to create a pull request. Click it. 1. Describe your changes in detail here, following the template. Once you're satisfied, submit the form. At that point, hooray! πŸŽ‰ You should see a pull request on github.com/mochajs/mocha/pulls. ### πŸ€– AI-Generated Code We recognize that AI tools like GitHub Copilot, Claude, and others can be valuable aids in software development. However, **all code contributions, whether written by humans or generated by AI, must meet the same quality standards**. If you use AI to help generate code for a pull request: - **All automated tests must pass**: Your code must pass linting, unit tests, integration tests, and any other automated checks. - **Manual review is required**: AI-generated code must undergo the same thorough manual inspection as any other contribution. This includes checking for correctness, security vulnerabilities, adherence to project conventions, and overall code quality. - **Ensure quality descriptions**: When submitting a PR or issue, summarize it succinctly. AI-generated PR and issue descriptions tend to be verbose and low-quality, making it harder for maintainers to review your request. - **You are responsible**: As the submitter of the pull request, you are fully responsible for understanding and maintaining the code, regardless of how it was generated. These requirements apply to all contributions and are not unique to AI-generated codeβ€”they simply reinforce our existing standards. ### 🏭 PR Process Now that the pull request exists, some tasks will be run on it: 1. If you have not signed our [Contributor License Agreement](docs.linuxfoundation.org/lfx/easycla/v2-current/contributors), a friendly robot will prompt you to do so. A [CLA](https://openjsf.org/cla) (electronic) signature is **required** for all contributions of code to Mocha. 1. Continuous integration checks will run against your changes. The result of these checks will be displayed on your PR. - If the checks fail, you must address those before the PR is accepted. 1. Be patient while your PR is reviewed. This can take a while. We may request changes, but don't be afraid to question them. 1. Your PR might become conflicted with the code in `main`. If this is the case, you will need to [update your PR](#up-to-date) and resolve your conflicts. 1. You don't need to make a new PR to any needed changes. Instead, commit on top of your changes, and push these to your fork's branch. The PR will be updated, and CI will re-run. 1. Once you've addressed all the feedback you can, [re-request review on GitHub](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews#re-requesting-a-review). Join us in [our Discord](https://discord.gg/KeDn2uXhER)! ## 🌐 External Services Mocha uses several external services for project infrastructure: - **[Codecov](https://app.codecov.io/gh/mochajs/mocha)**: Code coverage tracking. PRs must not decrease coverage. Contributors should add the Codecov GitHub app to upload coverage from forks. - **[Discord](https://discord.gg/KeDn2uXhER)**: Official community chat for support, discussions, and connecting with maintainers and users. - **[EasyCLA](https://openjsf.org/cla)**: Contributor License Agreement system via Linux Foundation. All code contributions require a signed CLA. A bot prompts contributors on their first PR. - **Netlify**: Hosts the documentation website at mochajs.org. Provides automatic deploy previews for documentation PRs and nightly scheduled deploys to update supporter information. - **[npm registry](https://www.npmjs.com/package/mocha)**: Package distribution. Mocha is also available via GitHub Releases. - **[OctoGuide](https://octo.guide/)**: Basic PR guidance, helping contributors know what they can do to get their items reviewed quicker. - **[Open Collective](https://opencollective.com/mochajs)**: Transparent donations to Mocha and expenses from maintainers. See also Tidelift. - **[OpenJS Foundation](https://openjsf.org)**: Mocha is part of the OpenJS Foundation which provides governance and infrastructure support. See [PROJECT_CHARTER.md](../PROJECT_CHARTER.md) for governance details. - **[Renovate](https://developer.mend.io/github/mochajs/mocha)**: Automatic dependency updates. - **[Tidelift](https://tidelift.com/lifter/package/npm/mocha/overview)**: Minor additional funding, see also Open Collective. ## 🀝 Working Together ### Be friendly and patient We understand that everyone has different levels of experience or knowledge in many diverse fields, be it technical or non-technical in nature. We also have areas of knowledge we are eager to expand; we want to be a community where people can not only contribute, but feel comfortable to ask questions as well and learn along the way. If someone says something wrong, or says something accidentally offensive, respond with patience and try to keep it polite and civil. Remember that we all were newbies at one point. ### Be welcoming We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, color, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. ### Be considerate Your work will be used by other people, and you in turn will depend on the work of others. Any decision you make will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language. ### Be respectful Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the OpenJS Foundation community should be respectful when dealing with other members as well as with people outside the OpenJS Foundation community. ### Be careful in the words that you choose We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. This includes, but is not limited to: - Violent threats or language directed against another person. - Discriminatory jokes and language. - Posting sexually explicit or violent material. - Posting (or threatening to post) other people's personally identifying information ("doxing"). - Personal insults, especially those using racist or sexist terms. - Unwelcome sexual attention. - Advocating for, or encouraging, any of the above behavior. - Repeated harassment of others. In general, if someone asks you to stop, then stop. ### When we disagree, try to understand why Disagreements, both social and technical, happen all the time and OpenJS Foundation projects are no exception. It is important that we resolve disagreements and differing views constructively. Remember that we're different. The strength of the OpenJS Foundation comes from its varied community, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn't mean that they're wrong. Don't forget that it is human to err and blaming each other doesn't get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes. Original text courtesy of the Speak Up! project and Django Project. mochajs-mocha-51a0cc5/.github/DEVELOPMENT.md000066400000000000000000000061431525733747400203170ustar00rootroot00000000000000# Development Follow these steps to get going in local development. If you are having trouble, don't be afraid to [ask for help](./CONTRIBUTING.md#❓-got-a-question). ## Prerequisites - [Node.js](https://nodejs.org/en/download) `^20.19.0 || >=22.12.0` (Node >=22 LTS recommended). - If you're new to installing Node, a tool like [nvm](https://github.com/nvm-sh/nvm#install-script) can help you manage multiple version installations. - npm (do not use yarn or pnpm for this repository). - [Google Chrome](https://www.google.com/chrome) is required to run browser tests locally. ## Setup 1. Follow [GitHub's documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) on setting up Git, forking, and cloning. 1. Run `npm install` from the repository root to install dependencies. - Some optional dependencies may fail; you can safely ignore these unless you are trying to build the documentation. - If you're sick of seeing the failures, run `npm install --ignore-scripts`. ## Running Tests You can (and should) run the test suite of Mocha itself before committing, and ideally confirm that your changes give the expected result on another project's test suite too. To run all code validations (linting, testing in both Node.js and browsers), run: ```sh npm test ``` For faster feedback during development, you can directly use targeted commands: | Command | What it runs | | ------------------------------- | --------------------------------------------- | | `npm run test-smoke` | Quick smoke test to confirm Mocha boots | | `npm run test-node:unit` | Unit tests | | `npm run test-node:integration` | Integration tests (includes build) | | `npm run test-node:interfaces` | Interface tests (BDD, TDD, QUnit, exports) | | `npm run test-node:reporters` | Reporter tests | | `npm run test-browser` | Browser tests via Playwright (includes build) | | `npm run tsc` | TypeScript type checking | | `npm run lint` | Linting and formatting checks | A typical edit-test cycle uses `--watch` to re-run tests automatically as you change files: ```sh npx mocha --watch test/unit/ ``` If your change touches browser code or reporters, also run: ```sh npm run test-browser ``` ## Building Mocha's browser bundle (`mocha.js`) is generated by Rollup. You normally don't need to build manually β€” `npm run test-browser` handles it. If you do need to build: ```sh npm run clean npm run build ``` > **Note:** Do not edit `mocha.js` or `mocha.js.map` directly β€” they are generated files. ## Troubleshooting - **`npm test` fails right away with lint errors:** Run `npm run format:fix` to auto-fix formatting, then re-run. - **Playwright tests fail with `Test timeout of ___ms exceeded`:** Run `npm run build` first. Browser tests require the generated bundle. We recommend running `npm run test-browser` to automatically clean and build before each run. mochajs-mocha-51a0cc5/.github/FUNDING.yml000066400000000000000000000000311525733747400200160ustar00rootroot00000000000000open_collective: mochajs mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/000077500000000000000000000000001525733747400203725ustar00rootroot00000000000000mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/01-bug.yml000066400000000000000000000045671525733747400221240ustar00rootroot00000000000000body: - attributes: description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! label: Bug Report Checklist options: - label: This is NOT a [security, `npm audit`, or GitHub Advisory issue](https://mochajs.org/explainers/security-vulnerability-reports). required: true - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) required: true - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue. required: true - label: I have 'smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, my usage of Mocha, or Mocha itself. required: true - label: I want to provide a PR to resolve this type: checkboxes - attributes: description: What did you expect to happen? label: Expected type: textarea validations: required: true - attributes: description: What happened instead? label: Actual type: textarea validations: required: true - attributes: description: Detail the steps necessary to reproduce the problem. To get the fastest support, create an [MCVE](https://stackoverflow.com/help/mcve) and upload it to GitHub. label: Minimal, Complete and Verifiable Example type: textarea validations: required: true - attributes: description: What do `mocha --version`, `node_modules/.bin/mocha.js --version`, and `node --version` output? What name and version of browser/environment, shell, and any other related modules such as transpilers are you using? label: Versions type: textarea validations: required: true - attributes: description: Any additional info you'd like to provide. label: Additional Info type: textarea description: Report a bug trying to use Mocha labels: - "status: in triage" - "type: bug" name: πŸ› Bug title: "πŸ› Bug: " mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/02-documentation.yml000066400000000000000000000024111525733747400242030ustar00rootroot00000000000000body: - attributes: description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! label: Documentation Request Checklist options: - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) required: true - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue. required: true - label: I want to provide a PR to resolve this type: checkboxes - attributes: description: What would you like to report? label: Overview type: textarea validations: required: true - attributes: description: Any additional info you'd like to provide. label: Additional Info type: textarea description: Report a typo or missing area of documentation labels: - "area: documentation" - "status: in triage" name: πŸ“ Docs title: "πŸ“ Docs: " mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/03-feature-request.yml000066400000000000000000000032071525733747400244600ustar00rootroot00000000000000body: - attributes: description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! label: Feature Request Checklist options: - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) required: true - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue. required: true - label: I want to provide a PR to resolve this type: checkboxes - attributes: description: What is the feature gap or problem you'd like to address? label: Overview type: textarea validations: required: true - attributes: description: How would you like to solve this need? label: Suggested Solution type: textarea validations: required: true - attributes: description: What other features or solutions have you also considered? label: Alternatives type: textarea validations: required: true - attributes: description: Any additional info you'd like to provide. label: Additional Info type: textarea description: Request that a new feature be added or an existing feature improved labels: - "status: in triage" - "type: feature" name: πŸš€ Feature title: "πŸš€ Feature: " mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/04-performance.yml000066400000000000000000000061621525733747400236440ustar00rootroot00000000000000body: - type: markdown attributes: value: | Thanks for taking the time to suggest a performance improvement to Mocha! Please note that Mocha is a widely used library with many millions of weekly downloads, many thousands of dependents, and many years of longstanding behavior. Every change to it is inherently risky and may break user edge cases that we have no way to learn of otherwise. So, to accept a performance improvement, we'd need to see _measurable, non-negligible improvement_ in Mocha's real-world usage. That requires providing at least: - Exhaustive comparison with other alternatives that proves this is the winning approach - Disclosure of any personal affiliation with the proposed solution and alternatives - For runtime performance: some kind of reproducible benchmark to demonstrate exactly what's different - For dependency cleanups: - The specific change to the dependency tree of a project with Mocha and no other dependencies - The specific change to the dependency tree of a project with Mocha and other common dependencies, such as `chai`, `express`, and `sinon` You can always suggest a performance improvement without those validations, but we are unlikely to accept it without them. For more information, see [mochajs/mocha#5377 πŸ› οΈ Repo: Add issue template for performance improvements](https://github.com/mochajs/mocha/issues/5377). - attributes: description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! label: Performance Suggestion Checklist options: - label: I am using the latest version of Mocha. required: true - label: I have read and understood the nuances around performance reports. required: true - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) required: true - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue. required: true - label: I want to provide a PR to resolve this type: checkboxes - attributes: description: What is your suggestion? label: Overview type: textarea validations: required: true - attributes: description: If you have a suggested implementation, please explain why you believe it's the best one here. label: Validations type: textarea - attributes: description: Any additional info you'd like to provide. label: Additional Info type: textarea description: Suggest a way to make Mocha faster, more memory- and/or space-efficient, or otherwise improve performance labels: - "area: performance" - "status: in triage" name: ⚑️ Performance title: "⚑️ Performance: " mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/05-repository-tooling.yml000066400000000000000000000030471525733747400252330ustar00rootroot00000000000000body: - attributes: description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you! label: Tooling Suggestion Checklist options: - label: I have tried restarting my IDE and the issue persists. required: true - label: I have pulled the latest `main` branch of the repository. required: true - label: I have read and agree to Mocha's [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) and [Contributing Guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) required: true - label: I have searched for [related issues](https://github.com/mochajs/mocha/issues?q=is%3Aissue) and [issues with the `faq` label](https://github.com/mochajs/mocha/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Afaq%20), but none matched my issue. required: true - label: I want to provide a PR to resolve this type: checkboxes - attributes: description: What changes would you like, and how do they help contributors? label: Overview type: textarea validations: required: true - attributes: description: Any additional info you'd like to provide. label: Additional Info type: textarea description: Report a bug or request an enhancement in the Mocha repository's internal tooling labels: - "area: repository tooling" - "status: in triage" name: πŸ› οΈ Repository Tooling title: "πŸ› οΈ Repo: " mochajs-mocha-51a0cc5/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000011331525733747400223600ustar00rootroot00000000000000blank_issues_enabled: true contact_links: - name: Documentation Website about: Please read our documentation website before filing new issues. url: https://mochajs.org - name: Documentation Website > APIs about: If you're using Mocha's API, see also the website's API docs. url: https://mochajs.org/api - name: Discord about: Our Discord is the right place for quick informal questions. url: https://discord.gg/KeDn2uXhER - name: StackOverflow about: For more questions, see the `mocha` tag on StackOverflow. url: https://stackoverflow.com/questions/tagged/mocha mochajs-mocha-51a0cc5/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000013301525733747400220050ustar00rootroot00000000000000 ## PR Checklist - [ ] Addresses an existing open issue: fixes #000 (or is a [trivial change](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md#trivial-changes)) - [ ] That issue was marked as [`status: accepting prs`](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22) - [ ] Steps in [CONTRIBUTING.md](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) were taken ## Overview mochajs-mocha-51a0cc5/.github/copilot-instructions.md000066400000000000000000000022431525733747400227450ustar00rootroot00000000000000# Copilot Instructions (Mocha) For this repository, follow `AGENTS.md` in the repo root as the primary onboarding source. ## Priority rules 1. Trust `AGENTS.md` command ordering and runbooks first. 2. Keep edits minimal and semver-safe. 3. Never edit generated bundle artifacts (`mocha.js`, `mocha.js.map`) directly. 4. Validate with targeted tests first, then broader checks as needed. 5. Prefer repository `npm` scripts and workflow-defined commands over ad hoc shell pipelines. 6. If the current tool environment cannot edit files or run commands, provide copy-ready patch/command text and clearly mark validation as not run. ## Minimum validation checklist - Build if browser path is involved: `npm run build` - Typecheck when signatures/types may be impacted: `npm run tsc` - Run at least one relevant test suite under `test/` - Include browser test coverage when browser code/reporters are touched - Only report checks you actually ran; if blocked, say so and include the exact blocker. If your local results conflict with expectations, capture exact command output and reconcile with workflow scripts in `.github/workflows/mocha.yml` and `.github/workflows/npm-script.yml`. mochajs-mocha-51a0cc5/.github/dependabot.yml000066400000000000000000000002721525733747400210400ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" groups: github-actions: patterns: - "*" mochajs-mocha-51a0cc5/.github/release-please/000077500000000000000000000000001525733747400210765ustar00rootroot00000000000000mochajs-mocha-51a0cc5/.github/release-please/config.json000066400000000000000000000016011525733747400232340ustar00rootroot00000000000000{ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/v17.1.3/schemas/config.json", "release-type": "node", "include-component-in-tag": false, "changelog-sections": [ { "type": "feat", "section": "🌟 Features", "hidden": false }, { "type": "fix", "section": "🩹 Fixes", "hidden": false }, { "type": "docs", "section": "πŸ“š Documentation", "hidden": false }, { "type": "chore", "section": "🧹 Chores", "hidden": false }, { "type": "perf", "section": "🧹 Chores", "hidden": false }, { "type": "refactor", "section": "🧹 Chores", "hidden": false }, { "type": "test", "section": "🧹 Chores", "hidden": false }, { "type": "build", "section": "πŸ€– Automation", "hidden": false }, { "type": "ci", "section": "πŸ€– Automation", "hidden": true } ], "packages": { ".": { "extra-files": ["README.md"] } } } mochajs-mocha-51a0cc5/.github/release-please/manifest.json000066400000000000000000000000171525733747400235750ustar00rootroot00000000000000{".":"12.0.3"} mochajs-mocha-51a0cc5/.github/workflows/000077500000000000000000000000001525733747400202445ustar00rootroot00000000000000mochajs-mocha-51a0cc5/.github/workflows/add-to-project.yml000066400000000000000000000016771525733747400236160ustar00rootroot00000000000000name: Auto-add issue to Mocha project # Automatically adds issues to our GitHub project. # We silence "add" failures to reduce noise. # (This often happens when issues are created from project GUI.) # https://markwiemer.com/software/github/apps#auto-add on: issues: types: [opened] jobs: add-to-project: runs-on: ubuntu-latest steps: # https://github.com/actions/create-github-app-token - uses: actions/create-github-app-token@v3 id: app-token with: # https://github.com/mochajs/mocha/settings/secrets/actions client-id: ${{ secrets.APP_CLIENT_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} owner: mochajs # https://github.com/actions/add-to-project - uses: actions/add-to-project@v2 with: project-url: https://github.com/orgs/mochajs/projects/6 github-token: ${{ steps.app-token.outputs.token }} continue-on-error: true mochajs-mocha-51a0cc5/.github/workflows/auto-label.yml000066400000000000000000000010601525733747400230110ustar00rootroot00000000000000name: Auto Label Issues # Labels issues as "needs: triage" when first opened on: issues: types: [opened] permissions: issues: write pull-requests: write contents: read jobs: add-needs-triage: runs-on: ubuntu-latest steps: - uses: actions/github-script@v9 with: script: | await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, labels: ['status: in triage'] }); mochajs-mocha-51a0cc5/.github/workflows/blocked-pr.yml000066400000000000000000000024261525733747400230150ustar00rootroot00000000000000name: Blocked PR Check on: pull_request: branches: - main types: [opened, reopened, synchronize, labeled, unlabeled] workflow_dispatch: inputs: pr: description: "PR ID" required: true type: string permissions: contents: read pull-requests: read jobs: not-blocked: name: not-blocked runs-on: ubuntu-latest steps: - name: 'Verify "status: blocked" label is not applied' if: "github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'status: blocked')" run: | echo "::error::This PR has the 'status: blocked' label and cannot be merged until that label is removed." exit 1 - name: 'Verify "status: blocked" label is not applied (manual runs)' if: "github.event_name == 'workflow_dispatch'" env: GH_TOKEN: ${{ github.token }} PR: ${{ inputs.pr }} run: | labels=$(gh pr view "$PR" --repo "$GITHUB_REPOSITORY" --json labels --jq '.labels[].name') if echo "$labels" | grep -qx 'status: blocked'; then echo "::error::PR #$PR has the 'status: blocked' label and cannot be merged until that label is removed." exit 1 fi echo "PR #$PR is not blocked." mochajs-mocha-51a0cc5/.github/workflows/format.yml000066400000000000000000000006001525733747400222530ustar00rootroot00000000000000name: Format on: push: branches: - main pull_request: branches: - main types: [opened, synchronize, reopened, edited] workflow_dispatch: permissions: contents: read id-token: write # for Codecov OIDC (required by npm-script.yml) issues: write jobs: format: uses: ./.github/workflows/npm-script.yml with: npm-script: format:check mochajs-mocha-51a0cc5/.github/workflows/mocha.yml000066400000000000000000000053721525733747400220650ustar00rootroot00000000000000name: Tests on: push: branches: - main paths-ignore: ["*.md", "docs/**", ".github/**", ".prettierignore", "AUTHORS", "LICENSE"] pull_request: branches: - main paths-ignore: ["*.md", "docs/**", ".github/**", ".prettierignore", "AUTHORS", "LICENSE"] types: [opened, synchronize, reopened, edited] workflow_dispatch: permissions: contents: read id-token: write # for Codecov OIDC issues: write jobs: lint: uses: ./.github/workflows/npm-script.yml with: npm-script: lint smoke: uses: ./.github/workflows/npm-script.yml with: node-versions: "20.19.0,20,22.12.0,22,24,26" npm-script: test-smoke test-node-lts: # TODO: Restore "mocha-github-actions-reporter" style reporting without relying on third party module # https://github.com/mochajs/mocha/issues/5183 uses: ./.github/workflows/npm-script.yml needs: smoke strategy: fail-fast: false matrix: test-part: - interfaces - unit - integration - jsapi - requires - reporters - only with: npm-script: test-node:${{ matrix.test-part }} test-node-all: name: Test ${{ matrix.test-part }} in all environments permissions: id-token: write # for Codecov OIDC contents: read # for Codecov OIDC issues: write # TODO: Restore "mocha-github-actions-reporter" style reporting without relying on third party module # https://github.com/mochajs/mocha/issues/5183 uses: ./.github/workflows/npm-script.yml needs: test-node-lts strategy: fail-fast: false matrix: coverage: [true] test-part: - interfaces - unit - integration - requires - reporters - only include: - test-part: jsapi coverage: false with: os: "ubuntu-latest,windows-latest" # We pin exact versions here per https://github.com/mochajs/mocha/issues/5052 # Ref https://nodejs.org/en/about/previous-releases node-versions: "20.19.4,22.18.0,24.6.0,26.8.2" npm-script: test-node:${{ matrix.test-part }} coverage: ${{ matrix.coverage }} test-browser: name: Browser tests runs-on: ubuntu-latest timeout-minutes: 20 permissions: contents: read issues: write steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: actions/setup-node@v7 with: node-version: "22" cache: "npm" - run: npm ci --ignore-scripts - run: npm run test-browser env: NODE_OPTIONS: "--trace-warnings" tsc: uses: ./.github/workflows/npm-script.yml with: npm-script: tsc mochajs-mocha-51a0cc5/.github/workflows/nightly-site-deploy.yml000066400000000000000000000010451525733747400247010ustar00rootroot00000000000000# Deploy `mochajs.org` branch nightly by hitting a netlify build URL. # This updates the list of supporters # It uses commands from netlify.toml at root of repo name: Nightly mochajs.org Deploy on: schedule: - cron: "0 0 * * *" workflow_dispatch: permissions: contents: read jobs: deploy: runs-on: ubuntu-latest steps: - name: Webhook Action uses: joelwmale/webhook-action@e90574c974be32d5107947fc75f007a415de4758 env: data: "" WEBHOOK_URL: ${{ secrets.NETLIFY_NIGHTLY_DEPLOY_URL }} mochajs-mocha-51a0cc5/.github/workflows/npm-script.yml000066400000000000000000000124301525733747400230630ustar00rootroot00000000000000name: Reusable npm script runner on: workflow_call: inputs: npm-script: description: "npm script" required: true type: string browsers: description: "A comma separated list of browser names to test with." required: false type: string node-versions: description: "A comma separated list of Node versions to test with." required: false type: string os: description: "A comma separated list of operating systems to test on." required: false type: string coverage: description: "Whether to set up coverage reporting or not" required: false type: boolean permissions: contents: read id-token: write issues: write jobs: resolve-inputs: runs-on: ubuntu-latest outputs: browsers: ${{ steps.split-browsers.outputs.splitted }} nodeVersions: ${{ steps.split-node-versions.outputs.splitted }} os: ${{ steps.split-os.outputs.splitted }} steps: - id: split-browsers if: inputs.browsers run: echo "splitted=$(echo '${{ inputs.browsers }}' | jq -R -c 'split(",")')" >> $GITHUB_OUTPUT - id: split-node-versions if: inputs.node-versions run: echo "splitted=$(echo '${{ inputs.node-versions }}' | jq -R -c 'split(",")')" >> $GITHUB_OUTPUT - id: split-os if: inputs.os run: echo "splitted=$(echo '${{ inputs.os }}' | jq -R -c 'split(",")')" >> $GITHUB_OUTPUT script: name: ${{ inputs.npm-script }}${{ needs.resolve-inputs.outputs.browsers && format('[{0}]', matrix.browser) }}${{ needs.resolve-inputs.outputs.nodeVersions && format(' with node.js {0}', matrix.node_version) }}${{ needs.resolve-inputs.outputs.os && format(' on {0}', matrix.os) }} runs-on: ${{ matrix.os }} timeout-minutes: 20 needs: - resolve-inputs strategy: fail-fast: false matrix: node_version: ${{ fromJson(needs.resolve-inputs.outputs.nodeVersions || '["22"]') }} os: ${{ fromJson(needs.resolve-inputs.outputs.os || '["ubuntu-latest"]') }} browser: ${{ fromJson(needs.resolve-inputs.outputs.browsers || '[""]') }} steps: - uses: actions/checkout@v7 with: persist-credentials: false - uses: actions/setup-node@v7 with: node-version: ${{ matrix.node_version }} cache: "npm" - run: npm ci --ignore-scripts - id: npm-script run: npm run ${{ inputs.npm-script }} env: BROWSER: ${{ matrix.browser }} COVERAGE: ${{ inputs.coverage && '1'}} NODE_OPTIONS: "--trace-warnings" - name: Generate coverage report if: ${{ !cancelled() && inputs.coverage && (steps.npm-script.conclusion == 'success' || steps.npm-script.conclusion == 'failure') }} run: npm run test-coverage-generate # https://github.com/marketplace/actions/codecov # https://app.codecov.io/gh/mochajs/mocha - id: upload-coverage name: Upload coverage reports if: ${{ !cancelled() && inputs.coverage && (steps.npm-script.conclusion == 'success' || steps.npm-script.conclusion == 'failure') }} continue-on-error: true uses: codecov/codecov-action@v7 with: fail_ci_if_error: true use_oidc: true - name: Track Codecov failures if: ${{ !cancelled() && inputs.coverage && (steps.npm-script.conclusion == 'success' || steps.npm-script.conclusion == 'failure') && steps.upload-coverage.outcome == 'failure' }} uses: actions/github-script@v9 with: script: | const owner = context.repo.owner; const repo = context.repo.repo; const issueTitle = 'Codecov upload failed'; const runUrl = `${context.serverUrl}/${owner}/${repo}/actions/runs/${context.runId}`; const issueBody = [ 'Codecov failed to upload coverage reports for this repository.', '', `- Workflow run: ${runUrl}`, `- Commit: ${context.sha}`, `- Ref: ${context.ref}`, '', 'This issue is automatically updated when the upload fails again in CI.', ].join('\n'); const { data: issues } = await github.rest.issues.listForRepo({ owner, repo, state: 'all', per_page: 100, }); const existingIssue = issues.find(issue => issue.title === issueTitle && !issue.pull_request); if (existingIssue) { if (existingIssue.state === 'closed') { await github.rest.issues.update({ owner, repo, issue_number: existingIssue.number, state: 'open', }); } await github.rest.issues.createComment({ owner, repo, issue_number: existingIssue.number, body: `Codecov upload failed again.\n\n${issueBody}`, }); return; } await github.rest.issues.create({ owner, repo, title: issueTitle, body: issueBody, labels: ['status: in triage', 'area: repository tooling'], }); mochajs-mocha-51a0cc5/.github/workflows/octoguide.yml000066400000000000000000000011521525733747400227500ustar00rootroot00000000000000jobs: octoguide: if: ${{ !endsWith(github.actor, '[bot]') }} runs-on: ubuntu-latest steps: - uses: OctoGuide/bot@0.23.0 with: github-token: ${{ secrets.GITHUB_TOKEN }} name: OctoGuide on: discussion: types: [created, edited] discussion_comment: types: [created, deleted, edited] issue_comment: types: [created, deleted, edited] issues: types: [edited, opened] pull_request_review_comment: types: [created, deleted, edited] pull_request_target: types: [edited, opened] permissions: discussions: write issues: write pull-requests: write mochajs-mocha-51a0cc5/.github/workflows/protect-manifest.yml000066400000000000000000000013051525733747400242520ustar00rootroot00000000000000name: Protect Release Please Manifest on: pull_request: paths: - .github/release-please/manifest.json permissions: contents: read pull-requests: read jobs: check-manifest-author: name: Verify manifest not manually edited runs-on: ubuntu-latest steps: - name: Block manual manifest edits if: github.event.pull_request.user.login != 'github-actions[bot]' run: | echo ".github/release-please/manifest.json should only be updated by Release Please (github-actions[bot])" echo "See [MAINTAINERS.md#mochas-release-process](https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md#mochas-release-process) for more details" exit 1 mochajs-mocha-51a0cc5/.github/workflows/release-comment.yml000066400000000000000000000007111525733747400240460ustar00rootroot00000000000000name: Release Comment on: release: types: [published] permissions: contents: read issues: write pull-requests: write jobs: comment: name: Comment on released issues and PRs runs-on: ubuntu-latest steps: - uses: apexskier/github-release-commenter@v1 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} comment-template: | :brown_heart: This was released in {release_link}. :brown_heart: mochajs-mocha-51a0cc5/.github/workflows/release-please.yml000066400000000000000000000040661525733747400236640ustar00rootroot00000000000000name: Release Please on: push: branches: - main workflow_dispatch: inputs: target_branch: description: "Branch to run Release Please against" default: "main" required: false permissions: contents: read id-token: write jobs: release_please: name: release-please runs-on: ubuntu-latest outputs: releaseCreated: ${{ steps.release.outputs.release_created }} version: ${{ steps.release.outputs.version }} permissions: contents: write pull-requests: write steps: - uses: googleapis/release-please-action@v5 id: release with: config-file: .github/release-please/config.json manifest-file: .github/release-please/manifest.json target-branch: ${{ inputs.target_branch || 'main' }} npm_publish: name: Publish to npm runs-on: ubuntu-latest environment: npm needs: release_please if: needs.release_please.outputs.releaseCreated steps: - uses: actions/checkout@v7 with: show-progress: false - uses: actions/setup-node@v7 with: node-version: "24" registry-url: "https://registry.npmjs.org" # If this step fails, it may be a transient issue, just run again # https://github.com/mochajs/mocha/issues/5611 - name: Upgrade npm for OIDC support run: npm install -g npm@latest - name: Install dependencies run: npm ci --ignore-scripts --force --no-fund --no-audit - name: Determine npm dist-tag id: dist_tag env: VERSION: ${{ needs.release_please.outputs.version }} run: | if [[ "$VERSION" == *-alpha* ]]; then echo "tag=alpha" >> "$GITHUB_OUTPUT" elif [[ "$VERSION" == *-* ]]; then echo "tag=next" >> "$GITHUB_OUTPUT" else echo "tag=latest" >> "$GITHUB_OUTPUT" fi - run: npm publish --provenance --access public --tag=${{ steps.dist_tag.outputs.tag }} env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} mochajs-mocha-51a0cc5/.github/workflows/remove-waiting-label.yml000066400000000000000000000034161525733747400250050ustar00rootroot00000000000000name: Adjust labels on author activity on: issue_comment: pull_request_review_comment: pull_request_target: types: [review_requested, synchronize] permissions: issues: write pull-requests: write jobs: remove-label: if: >- ${{ (github.event_name == 'pull_request_target' && github.event.action == 'review_requested' && !github.event.pull_request.draft) || (github.event_name == 'pull_request_target' && github.event.action == 'synchronize') || (github.event_name == 'issue_comment' && github.actor == github.event.issue.user.login) || (github.event_name == 'pull_request_review_comment' && github.actor == github.event.pull_request.user.login) }} runs-on: ubuntu-latest steps: - name: 'Remove "waiting" and "stale" labels' uses: actions/github-script@v9 with: # REST gives 404 if label isn't present script: | const labelNames = ['status: waiting for author', 'status: stale']; let issueNumber; if (context.eventName === 'issue_comment') { issueNumber = context.payload.issue.number; } else if (context.eventName === 'pull_request_review_comment') { issueNumber = context.payload.pull_request.number; } else { issueNumber = context.payload.pull_request.number; } for (const labelName of labelNames) { try { await github.rest.issues.removeLabel({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issueNumber, name: labelName, }); } catch (e) { if (e.status !== 404) throw e; } } mochajs-mocha-51a0cc5/.github/workflows/slop-detection.yml000066400000000000000000000040361525733747400237230ustar00rootroot00000000000000name: Slop Detection on: # WARNING: pull_request_target is needed to label/comment/close PRs from forks. # DO NOT CHECK OUT THE REPO IN THIS WORKFLOW. pull_request_target: types: [opened, reopened] issues: types: [opened] permissions: {} jobs: agentscan: name: AgentScan runs-on: ubuntu-latest permissions: contents: read issues: write pull-requests: write steps: - name: Cache AgentScan analysis uses: actions/cache@v6 with: path: .agentscan-cache key: agentscan-cache-${{ github.actor }} restore-keys: agentscan-cache- - name: AgentScan uses: MatteoGabriele/agentscan-action@v2.5.0 with: auto-close: true auto-close-classifications: automation cache-path: .agentscan-cache github-token: ${{ secrets.GITHUB_TOKEN }} label-automation: "spam: automated account" label-community-flagged: "spam: community flagged" label-mixed: "spam: mixed signals" scan-issues: true trusted-author-associations: collaborator, member, owner anti-slop: name: Anti Slop if: github.event_name == 'pull_request_target' runs-on: ubuntu-latest permissions: contents: read issues: read pull-requests: write steps: - name: Anti Slop uses: peakoss/anti-slop@v0.3.0 with: close-pr: true exempt-label: "spam: exempt" failure-add-pr-labels: "spam: likely slop" failure-pr-message: > Thanks for the contribution. This PR matched multiple low-quality/spam signals and does not appear to conform to Mocha's AI contribution guidelines. Please review the [AI-Generated Code section of our contributing guidelines](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md#-ai-generated-code). If this was a mistake, please comment with more context and ask a maintainer to reconsider. lock-pr: false mochajs-mocha-51a0cc5/.github/workflows/stale-branches.yml000066400000000000000000000070371525733747400236710ustar00rootroot00000000000000name: Manage stale branches on: schedule: - cron: "0 0 * * *" # Run daily at midnight UTC workflow_dispatch: permissions: contents: read issues: write pull-requests: read jobs: stale-branches: runs-on: ubuntu-latest steps: - name: Open issues for stale branches that need maintainer review uses: actions/github-script@v9 with: script: | const protectedBranches = new Set(['main', 'v11.x']); const staleAfterMs = 1000 * 60 * 60 * 24 * 7; const now = Date.now(); const repoUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}`; const openPullRequests = await github.paginate(github.rest.pulls.list, { owner: context.repo.owner, repo: context.repo.repo, state: 'open', per_page: 100, }); const openBranchRefs = new Set( openPullRequests .filter(pr => pr.head && pr.head.repo && pr.head.repo.full_name === `${context.repo.owner}/${context.repo.repo}`) .map(pr => pr.head.ref) ); const openIssues = await github.paginate(github.rest.issues.listForRepo, { owner: context.repo.owner, repo: context.repo.repo, state: 'open', per_page: 100, }); const branches = await github.paginate(github.rest.repos.listBranches, { owner: context.repo.owner, repo: context.repo.repo, per_page: 100, }); for (const branch of branches) { if (protectedBranches.has(branch.name) || openBranchRefs.has(branch.name)) { continue; } const { data: branchDetails } = await github.rest.repos.getBranch({ owner: context.repo.owner, repo: context.repo.repo, branch: branch.name, }); const lastUpdated = Date.parse(branchDetails.commit.commit.committer.date); if (Number.isNaN(lastUpdated) || now - lastUpdated < staleAfterMs) { continue; } const issueTitle = `Review stale branch: ${branch.name}`; const existingIssue = openIssues.find(issue => issue.title === issueTitle); if (existingIssue) { continue; } const issueBody = [ `This branch has been inactive for more than 7 days and is not associated with an open PR.`, '', `- Branch: \`${branch.name}\``, `- Last updated: ${new Date(lastUpdated).toISOString()}`, `- Branch URL: ${repoUrl}/tree/${encodeURIComponent(branch.name)}`, '', '@mochajs/maintenance-crew, could someone please review whether this branch should be kept, merged, or removed?', ].join('\n'); try { const issue = await github.rest.issues.create({ owner: context.repo.owner, repo: context.repo.repo, title: issueTitle, body: issueBody, labels: ['status: in triage', 'area: repository tooling'], }); core.info(`Created stale-branch review issue: #${issue.data.number}`); } catch (error) { core.warning(`Unable to create review issue for stale branch ${branch.name}: ${error.message}`); } } mochajs-mocha-51a0cc5/.github/workflows/stale.yml000066400000000000000000000103421525733747400220770ustar00rootroot00000000000000name: Manage stale items on: schedule: - cron: "0 0 * * *" # Run daily at midnight UTC workflow_dispatch: permissions: issues: write pull-requests: write jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v11 with: close-issue-message: > This issue has been automatically closed after waiting 2 weeks with no response from the author. If you have more information to provide, please feel free to reopen this issue or open a new one. close-pr-message: > This pull request has been automatically closed after waiting 2 weeks with no response from the author. If you have more information to provide, please feel free to reopen this pull request or open a new one. days-before-close: 7 days-before-stale: 7 only-labels: "status: waiting for author" operations-per-run: 100 remove-stale-when-updated: true stale-issue-label: "status: stale" stale-issue-message: > This issue has been waiting for a response from the author for 1 week with no activity. If there is no further activity in the next 1 week, this issue will be automatically closed. Maintainers: to keep this issue open indefinitely, remove the "status: waiting for author" label. stale-pr-label: "status: stale" stale-pr-message: > This pull request has been waiting for a response from the author for 1 week with no activity. If there is no further activity in the next 1 week, this pull request will be automatically closed. Maintainers: to keep this pull request open indefinitely, remove the "status: waiting for author" label. triage-reminder: runs-on: ubuntu-latest steps: - name: "Ping maintainers on stale triage issues" uses: actions/github-script@v9 with: script: | const owner = context.repo.owner; const repo = context.repo.repo; const staleAfter = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString(); const issues = await github.paginate(github.rest.issues.listForRepo, { owner, repo, state: 'open', labels: 'status: in triage', sort: 'created', direction: 'asc', per_page: 100, }); for (const issue of issues) { if (new Date(issue.created_at) > new Date(staleAfter)) { continue; } const timeline = await github.paginate(github.rest.issues.listEventsForTimeline, { owner, repo, issue_number: issue.number, per_page: 100, }); const hasMaintainerUpdate = timeline.some(event => { if (!['labeled', 'unlabeled'].includes(event.event)) { return false; } if (!event.actor || !event.created_at) { return false; } return !event.actor.login.includes('github-actions') && new Date(event.created_at) > new Date(issue.created_at); }); if (hasMaintainerUpdate) { continue; } const comments = await github.paginate(github.rest.issues.listComments, { owner, repo, issue_number: issue.number, per_page: 100, }); const alreadyPinged = comments.some(comment => { return comment.body && comment.body.includes('@mochajs/maintenance-crew') && comment.body.includes('This issue has been waiting in triage for more than a week'); }); if (alreadyPinged) { continue; } await github.rest.issues.createComment({ owner, repo, issue_number: issue.number, body: 'This issue has been waiting in triage for more than a week without a maintainer update. @mochajs/maintenance-crew, could someone please take a look?', }); } mochajs-mocha-51a0cc5/.gitignore000066400000000000000000000036111525733747400166400ustar00rootroot00000000000000# Mocha-specific docs/images/supporters mocha.js mocha.js.map !bin/mocha.mjs !lib/mocha.js # Playwright browser tests test/browser/.generated/ test-results/ playwright-report/ blob-report/ # Bundle debugging stats.html ######################################### # NON-MOCHA STUFF GOES BELOW THIS THING # ######################################### # Git mergetool # Use `git config mergetool.keepBackup false` to stop generating these files *.orig # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* # nyc/istanbul coverage .nyc_output # Dependencies node_modules/ # npm .npm *.tgz # Optional eslint cache .eslintcache # Optional REPL history .node_repl_history # dotenv environment variables file .env .env.test # Yarn yarn.lock .yarn-integrity # Various temporary files *~ # Emacs \#*\# /.emacs.desktop /.emacs.desktop.lock *.elc auto-save-list tramp .\#* # Vim [._]*.s[a-v][a-z] [._]*.sw[a-p] [._]s[a-rt-v][a-z] [._]ss[a-gi-z] [._]sw[a-p] Session.vim [._]*.un~ # Diff *.patch *.diff # VSCode .vscode/ # JetBrains' IDEs .idea/ *.iws out/ .idea_modules/ atlassian-ide-plugin.xml # SourceTree *_BACKUP_* *_BASE_* *_LOCAL_* *_REMOTE_* # SublimeText *.tmlanguage.cache *.tmPreferences.cache *.stTheme.cache *.sublime-workspace *.sublime-project sftp-config.json Package Control.last-run Package Control.ca-list Package Control.ca-bundle Package Control.system-ca-bundle Package Control.cache/ Package Control.ca-certs/ Package Control.merged-ca-bundle Package Control.user-ca-bundle oscrypto-ca-bundle.crt bh_unicode_properties.cache GitHub.sublime-settings # direnv .envrc # Linux .fuse_hidden* .directory .Trash-* .nfs* # Windows Thumbs.db ehthumbs.db ehthumbs_vista.db *.stackdump [Dd]esktop.ini $RECYCLE.BIN/ *.cab *.msi *.msix *.msm *.msp *.lnk # macOS .DS_Store .AppleDouble .LSOverride ._* .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # Local Netlify folder .netlify mochajs-mocha-51a0cc5/.knip.jsonc000066400000000000000000000013271525733747400167270ustar00rootroot00000000000000{ "$schema": "https://unpkg.com/knip@6/schema-jsonc.json", "entry": ["docs/_data/supporters.cjs", "index.js!", "lib/cli/index.cjs!"], "project": ["{bin,lib,scripts,test}/**/*.{js,ts,mjs,cjs}"], "ignore": [ "test/integration/fixtures/esm/type-module/test-that-imports-non-existing-module.fixture.js", "test/integration/fixtures/options/watch/test-with-dependency.fixture.cjs", ], "ignoreDependencies": [ "@test/esm-only-loader", "coffeescript", "fake", "non-existent-package", "tsx", ], "mocha": { "entry": ["test/**/*.{js,ts,mjs,cjs}"], }, "webpack": { "config": "test/browser-specific/fixtures/webpack/webpack.config.cjs", }, "rules": { "exports": "off", }, } mochajs-mocha-51a0cc5/.mailmap000066400000000000000000000037741525733747400163030ustar00rootroot00000000000000# see https://www.git-scm.com/docs/git-check-mailmap for formatting info TJ Holowaychuk Travis Jeffery Travis Jeffery Dr. Travis Jeffery Christopher Hiller David da Silva ContΓ­n David da Silva David da Silva ContΓ­n David da Silva David da Silva ContΓ­n Ariel Mashraki Ariel Mashraki Forbes Lindesay Ben Bradley <[ben.bradley@cigna.com|mailto:ben.bradley@cigna.com]> Glen Mailer 38elements <38elements@users.noreply.github.com> Andreas Lind Petersen Andreas Lind Ben Harris Can Oztokmak Will Langstroth Sulabh Bista Rustem Mustafin Rico Sta. Cruz Pete Hawkins Raynos <=> Raynos Raynos (Jake Verbaten) Markus Tacker Long Ho LΓ‘szlΓ³ BΓ‘csi Laszlo Bacsi Eli Skeggs Domenic Denicola domenic Michael Schoonmaker mochajs-mocha-51a0cc5/.mocharc.yml000066400000000000000000000003171525733747400170650ustar00rootroot00000000000000require: "./test/setup.cjs" ui: "bdd" global: - "okGlobalA,okGlobalB" - "okGlobalC" - "callback*" timeout: 1000 watch-ignore: - ".*" - "docs/_site/**" - "node_modules" - "coverage" - "cache" mochajs-mocha-51a0cc5/.npmrc000066400000000000000000000000251525733747400157640ustar00rootroot00000000000000 message=Release v%smochajs-mocha-51a0cc5/.nycrc000066400000000000000000000011051525733747400157630ustar00rootroot00000000000000{ "reporter": ["json", "text-summary"], "all": true, "exclude": [ "coverage/**", "docs/**", "packages/*/test{,s}/**", "repro/**", "**/*.d.ts", "test{,s}/**", "test{,-*}.{js,cjs,mjs,ts}", "**/*{.,-}test.{js,cjs,mjs,ts}", "**/__tests__/**", "**/{rollup,webpack}.config.js", "**/playwright.config.js", "**/{babel.config,.eslintrc,.mocharc}.{js,cjs}", "lib/browser/**", "package-lock.json", "**/package-lock.json", "node_modules/**", "scripts/**", "!test/integration/fixtures/stack-trace.fixture.cjs" ] } mochajs-mocha-51a0cc5/.prettierignore000066400000000000000000000002551525733747400177140ustar00rootroot00000000000000/.nyc_output /CHANGELOG.md /coverage /pnpm-lock.yaml /test/*/fixtures/** # release-please generate a compact manifest.json by default /.github/release-please/manifest.json mochajs-mocha-51a0cc5/.wallaby.cjs000066400000000000000000000027311525733747400170640ustar00rootroot00000000000000"use strict"; module.exports = () => { return { files: [ "index.js", "lib/**/*.{js,json}", "test/setup.cjs", "test/assertions.cjs", { pattern: "test/node-unit/**/*.fixture.js", instrument: false, }, { pattern: "test/unit/**/*.fixture.js", instrument: false, }, "package.json", "mocharc.yml", "!lib/browser/growl.js", ], filesWithNoCoverageCalculated: [ "test/**/*.fixture.js", "test/setup.cjs", "test/assertions.cjs", "lib/browser/**/*.js", ], tests: ["test/unit/**/*.spec.js", "test/node-unit/**/*.spec.js"], env: { type: "node", runner: "node", }, workers: { recycle: true }, testFramework: { type: "mocha", path: __dirname }, setup(wallaby) { // running mocha instance is not the same as mocha under test, // running mocha is the project's source code mocha, mocha under test is instrumented version of the source code const runningMocha = wallaby.testFramework; runningMocha.timeout(1000); // to expose it/describe etc. on the mocha under test const MochaUnderTest = require("./"); const mochaUnderTest = new MochaUnderTest(); mochaUnderTest.suite.emit( MochaUnderTest.Suite.constants.EVENT_FILE_PRE_REQUIRE, global, "", mochaUnderTest, ); require("./test/setup.cjs"); }, debug: true, runMode: "onsave", }; }; mochajs-mocha-51a0cc5/AGENTS.md000066400000000000000000000153641525733747400161630ustar00rootroot00000000000000# AGENTS.md Agent onboarding for the `mochajs/mocha` repository. > **Trust this file first.** If you are unsure about command order, use the sequences below before trying alternatives. ## Instruction precedence and execution defaults - Use `AGENTS.md` as the primary repository playbook for agent work. - Use `.github/copilot-instructions.md` as the short compatibility layer for tools that prefer it. - If prose and executable configuration disagree on command details, trust `package.json` scripts and `.github/workflows/*.yml`. - Prefer repository `npm` scripts over ad hoc shell pipelines. - If the current tool environment cannot edit files or run commands, provide copy-ready patch/command text and clearly mark validation as not run. ## Mission and scope - Keep changes minimal and targeted. - Preserve compatibility (Mocha is highly depended-upon and semver-sensitive). - Never edit generated artifacts directly. - Validate locally with the smallest command set that matches your change. ## Environment prerequisites - Node.js: `^20.19.0 || >=22.12.0` (prefer Node 22 locally) - npm (do not use pnpm/yarn for this repo) - Google Chrome (required for browser tests) ## Repository map (quick) - `lib/` β€” core runtime (runner, suite, hooks, reporters, CLI internals) - `bin/` β€” CLI entrypoints (`mocha`) - `test/` β€” unit, integration, node-only, browser-specific, smoke - `docs/` β€” Astro/Starlight docs app with separate lockfile/scripts - `mocha.js` / `mocha.js.map` β€” browser bundle outputs (generated) - `.github/workflows/` β€” CI job matrix and script partitioning ## Generated files and do-not-edit rules - **Do not edit** `mocha.js` or `mocha.js.map` by hand. - These are generated via `npm run build` (Rollup). - `npm run clean` removes generated bundle artifacts. ## Verified command runbooks Run from repository root unless noted. ### Bootstrap 1. `npm install` 2. (Docs work only) `cd docs && npm install` For clean CI reproduction on a fresh checkout, prefer `npm ci --ignore-scripts`; use `npm install` for normal local bootstrap. ### Fast sanity (recommended before/after focused edits) 1. `npm run clean` 2. `npm run build` 3. `npm run tsc` 4. `npm run test-smoke` 5. Targeted tests relevant to changed area (see below) ### Targeted tests - Unit/core: `npm run test-node:unit` - Integration: `npm run test-node:integration` - Interfaces: `npm run test-node:interfaces` - Reporters: `npm run test-node:reporters` - Browser subset: `npm run test-browser -- --grep bdd` - Full browser path: `npm run test-browser` (includes clean + build) ### Validation routing - Instruction/docs-only edits: no runtime checks required unless behavior claims changed. - Browser or reporter changes: `npm run clean` β†’ `npm run build` β†’ browser validation. - CLI or node runtime changes: `npm run test-smoke` plus the closest `test-node:*` suite. - Type/signature changes: `npm run tsc`. - Workflow or script changes: mirror the affected `package.json` script or workflow job locally when practical. ### Full local gate (closest to CI intent) 1. `npm run format:check` 2. `npm run lint` 3. `npm run test-node` 4. `npm run test-browser` 5. `npm run tsc` ## Critical command-order gotchas - Browser tests depend on built bundle artifacts. - If you run `clean`, you **must** run `build` before invoking `playwright test` directly, or the page will 404 on `/mocha.js`. - `test-browser` script is safer than calling `playwright test` directly because it includes `clean build`. ## CI parity notes Main workflow: `.github/workflows/mocha.yml` CI partitions checks into separate jobs: - `format:check` - `lint` - `test-smoke` (Node 20/22/24) - `test-node:*` matrix (interfaces/unit/integration/jsapi/requires/reporters/only) - browser tests (`test-browser` with ChromeHeadless) - `tsc` Reusable execution details in `.github/workflows/npm-script.yml`: - Uses `npm ci --ignore-scripts` - Default Node 22 unless overridden - `NODE_OPTIONS=--trace-warnings` - Optional coverage upload via Codecov ## Transient validation issues and environment drift During onboarding or after dependency refresh, you may encounter validation failures that reflect local environment or ecosystem drift rather than a persistent repository bug. Common patterns include: - Lint commands (for example, `npm run lint:code`) failing because new or stricter rules turn warnings into errors (such as via `--max-warnings 0`). Inspect the reported rule and location before changing lint configuration or adding suppressions. - Docs-related workflows where documentation generation succeeds but a subsequent static site or bundler step (for example, `astro build`) fails with runtime errors originating in third-party dependencies. Treat these as potential environment/version drift signals. Do not resolve them by broadly weakening checks (for example, relaxing lint strictness or skipping build steps) unless explicitly requested in the task. ## Change strategy for agents - Prefer smallest reproducible command to validate your specific edit first. - Add/adjust tests with behavior changes; do not change unrelated tests. - Avoid broad dependency upgrades unless task explicitly requests it. - If touching browser behavior, always include at least one browser test run. - If touching CLI or node runtime behavior, include smoke + targeted node suite. ### CJS to ESM migration conventions (runtime code) - Scope: prioritize runtime modules under `lib/`; do not include test fixtures unless explicitly requested. - For ESM modules, prefer **named exports** over `export default`. - When consuming ESM from CJS via `require()`, import named bindings from the namespace object: - Use `const { SomeName } = require("./file.mjs");` - Avoid `require("./file.mjs").default` for runtime modules. - Keep PRs small and reviewable (roughly <=100 changed lines when practical). - After each migration slice, update all direct runtime call sites in the same PR to avoid mixed import patterns. ## Docs subsystem notes (`docs/`) - Separate package and lockfile. - Script chain in `docs/package.json`: - `generate` fetches supporter metadata/assets - `build` runs `astro check && astro build` - `docs` script reinstalls root+docs deps, then generate+build - Docs output can be very noisy (many supporter image fetch logs). ## High-signal troubleshooting - Never claim a check passed unless you actually ran it. - If blocked, report the exact command, working directory, and first meaningful error. - Missing Chrome / browser launch failures: ensure local Chrome installed and available. - Browser path errors after cleanup: rerun `npm run build`. - Strange lint failures after dependency changes: rerun on clean install (`npm ci`), inspect warning-as-error output first. - Unexpected CI mismatch: mirror exact script from workflow rather than invoking custom command combinations. mochajs-mocha-51a0cc5/AUTHORS000066400000000000000000000537061525733747400157320ustar00rootroot00000000000000# Authors ordered by first contribution. TJ Holowaychuk James Carr Fredrik Lindin Konstantin Käfer David Henderson Harry Brundage Quang Van hokaccha Guillermo Rauch FARKAS MΓ‘tΓ© Ben Lindsey Steve Mason Ryunosuke SATO Nathan Rajlich Raynos Yuest Wang Maciej MaΕ‚ecki Joshua Krall Fedor Indutny Will Langstroth Attila Domokos Jussi Virtanen Phil Sung vlad Paul Miller BjΓΈrge NΓ¦ss Jeff Kunkle Fabio M. Costa Michael Riley Ian Young Jakub Nešetřil Tyson Tate Jo Liss Arian Stolwijk Brendan Nee Xavier Antoviaque Domenic Denicola Brian Beck Dave McKenna Richard Dingwall Cory Thomas R56 Ian Storm Taylor Andreas Brekken abrkn Nathan Bowser LΓ‘szlΓ³ BΓ‘csi Atsuya Takagi Gavin Mogan fengmk2 Seiya Konno Jan Lehnardt Matt Robenolt Jonas Westerlund Koen Punt Jason Barry Austin Birch Adam Crabtree Casey Foster Jonathan Creamer Brian Moore traleig1 John Firebaugh airportyh Aaron Heckmann Russ Bradberry Ivan Corey Butler Paul Armstrong Herman Junge Michael Schoonmaker Wil Moore III Pete Hawkins tgautier@yahoo.com yuitest Matt Smith Katie Gengler Bryan Donovan Nathan Alderson Shawn Krisman Merrick Christensen Timo Tijhof Simon Gaeremynck Jaakko Salonen Jonathan Rajavuori Forbes Lindesay Standa Opichal Matthew Shanley James Lal Greg Perkins Gareth Murphy Juzer Ali Sasha Koss Justin DuJardin Frederico Silva Jesse Dailey Yanis Wang fcrisci Javier Aranda Florian Margaine fool2fish James Bowes Valentin Agachi Mathieu DesvΓ© Glen Huang Simon Goumaz Alexander Early Jimmy Cuadra Russell Munson lodr Liam Newman Dmitry Shirokov Fredrik Enestad Kirill Korolyov grasGendarme Mike Pennisi Victor Costan Tim Ehat Jeremy Martin Mal Graty Di Wu badunk Marc Kuo Sindre Sorhus Salehen Shovon Rahman eiji.ienaga Oscar Godson Daniel Stockman Stephen Mathieson Travis Jeffery Andreas Lind Petersen Romain Prieto JP Bochi Teddy Zeenny Roman Neuhauser XhmikosR Brian Lalor Refael Ackermann ChrisWren Andrew Nesbitt berni Andrey Popp <8mayday@gmail.com> Brian M. Carlson Michael Olson Arnaud Brousseau Peter Rust Vadim Nikitin Roman Shtylman Tapiwa Kelvin Rustem Mustafin Glen Mailer Nathan Black sebv andy matthews Benjie Gillam Noshir Patel Ben Noordhuis Jacob Wejendorp claudyus Denis Bardadym Connor Dunn Jonathan Ong Harish Michal Charemza startswithaj Gareth Aye Nick Fitzgerald Jan Kopriva kavun Christoffer Hallas Jonathan Park Devin Weaver John Doty Shaine Hatch Ben Bradley qiuzuhui Jean Ponchon Linus UnnebΓ€ck Mattias Tidlund Matija MarohniΔ‡ Michael Jackson Joel Kemp Zsolt TakΓ‘cs jsdevel lakmeer Joshua Appelman Christopher Hiller Michael Demmer Giovanni Bassi Panu Horsmalahti nishigori Nicolo Taddei Diogo Monteiro mrShturman PoppinL samuel goldszmidt Rob Wu Kent C. Dodds Kevin Conway Dominique Quatravaux zhiyelee Quanlong He omardelarosa Ariel Mashraki Sean Lang David da Silva ContΓ­n C. Scott Ananian Douglas Christopher Wilson Richard Knop Buck Doyle Jonas Dohse oveddan monowerker Marcello Bastea-Forte BenoΓ�t Zugmeyer Vlad Magdalin Moshe Kolodny Tom Coquereau Timothy Gu Ian Zamojc Martin Marko Chris Buckley Jake Craige Fede Ramirez Parker Moore Todd Agulnick Daniel St. Jules Rico Sta. Cruz Anis Safine Adam Gruber Sam Mussell klaemo Stewart Taylor Jordan Sexton Keith Cirkel Andrii Shumada Dominic Barnes Maximilian Antoni Sune Simonsen Kyle Mitchell James Nylen Jonathan Delgado Jake Marsh slyg Tomer Eskenazi Jeff Schilling Ryan Hubbard amsul Kevin Kirsche Gabriel Silk Johnathon Sanders Max Goodman Nathan Houle Ben Vinegar Duncan Beevers Tingan Ho Guy Arye Nik Nyby Artem Govorov Ajay Kodali Ryan Tablada Pavel Zubkou gigadude Outsider Jason Lai Aaron Krause wsw Kevin Burke Berker Peksag nexdrew Hugo Giraudel Rich Trott Matt Giles Joey Cozza Kris Rasmussen James G. Kim Sorin Iclanzan Rob Raux Sergey Simonchik Ian W. Remmel tmont John Reeves Fagner Brack Mark Banner Michiel de Jong Benoit Larroque Charles Lowell Joao Moreno Long Ho Robert Rossmann Aaron Hamid Stone Tom Hughes Soel Mislav MarohniΔ‡ Prayag Verma Frank Leon Rose Ryan Shaw Thedark1337 Gyandeep Singh ryym Josh Lory Jonathan Kim Al Scott Tobias Bieniek Benjamin Eidelman Julien Wajsberg sarehag Alexander Shepelin OlegTsyba Xavier Damman Mick Brooks Erik Eng Kelong Wang JΓ©rΓ©mie Astori ScottFreeCode Sergio Santoro Adrian Ludwig Anders Olsen Sandvik Thomas Grainger jimenglish81 Avi Vahl Jason Leyba silentcloud Dmitriy Simushev simov Ross Warren Benson Trent rmacklin Rob Loach Shinnosuke Watanabe Callum Macrae ELLIOTTCABLE Anton Peter MΓΌller APerson not-an-aardvark Alhadis Slobodan MiΕ‘koviΔ‡ Philip M. White Christian anton Dmitry Sorin Vivek Ganesan Josh Eversmann inxorable Ben Harris Aaron Petcoff Matt Bierner Ville Saukkonen Ben Hutchison Volker Buzek Scott Kao Sulabh Bista rotemdan Fumiaki MATSUSHIMA Markus Tacker Christoph Neuroth Enric Pallerols Craig Taub Yoshiya Hinosawa Sebastian Van Sande Chris Lamb Igwe Kalu Kevin Wang Laurence Rowe Jakob Krigovsky Chris Kunal Nagpal elergy Jupp MΓΌller PoprΓ‘di ÁrpΓ‘d Charlie Rudolph Angelica Valenta Jan Krems Josh Soref solodynamo Eli Skeggs Nikolaos Georgiou olsonpm David Neubauer Darryl Pogue 38elements Guangcong Luo David M. Lee tripu Pat Finnigan Eugene Tiutiunnyk Aaron Brady Charles Merriam Kevin Partington Lane Kelly Cube yehiyam Jon Surrell ηŽ°ε…… Ahmad Bamieh Capacitor Set Anthony Can Oztokmak ImgBot <31427850+ImgBotApp@users.noreply.github.com> Thomas Broadley FND Dina Berry Marais Rossouw Andrew Krawchyk <903716+akrawchyk@users.noreply.github.com> Ted Yavuzkurt Daniel Ruf Harry Wolff Valeri Karpov Silvio Massari Joseph Lin Honza Javorek Harry Sarson Anish Karandikar Victor Emanuele Thomas Vantuycom Alex Bainter Jerry Muzsik Nicolas Girault dfberry DavNej Paul Roebuck Tim Harshman Charles Samborski Tobias Mollstam Ben Glassman Mark Owsiak fargies Marc Udoff gizemkeser <44727928+gizemkeser@users.noreply.github.com> Fin Chen Brittany Moore FΓ‘bio Santos Jayasankar Juerg B <44573692+juergba@users.noreply.github.com> Svetlana <39729453+Lana-Light@users.noreply.github.com> Martijn Cuppens Anna Henningsen Andreas Lind Chen Yangjian <252317+cyjake@users.noreply.github.com> Corey Farrell Wanseob Lim Szauka <33459309+Szauka@users.noreply.github.com> Brian Tomlin Sylvain Adam Ginzberg XhmikosR GastΓ³n I. Silva Andrew Bradley Andrew Bradley DavidLi119 James D. Rogers Carl-Erik Kopseng juergba Sylvester Keil Bjorn Stromberg Stephen Hess toyjhlee Piotr Kuczynski Thomas Scholtes Brian Lagerman <49239617+brian-lagerman@users.noreply.github.com> Pascal Gabe Gorelick Daniel Ruf <827205+DanielRuf@users.noreply.github.com> Mario DΓ­az CeΓ±era <46492068+MarioDiaz98@users.noreply.github.com> Oliver Salzburg Sona Lee Park Seong-beom EunChan Park Mia Lindsay-Needs-Sleep <51773923+Lindsay-Needs-Sleep@users.noreply.github.com> Soobin Bak Peter Schmidt SheetJSDev HyunSangHan Jan-Philip Gehrcke Robert Kieffer Saerom Bang Kyle Fuller Rens Groothuijsen Hugo Kim KyoungWan Zirak Christian Holm Kai Cataldo Gil Tayar Ulises GascΓ³n kundol Arvid Ottenberg Daniel0113 Nico Jansen JacobLey <37151850+JacobLey@users.noreply.github.com> Gil Tayar Martin Oppitz Benjamin E. Coe Michael Brade Gopishankar Haridas devjeel Martin Oppitz indieisaconcept Sri Harsha irrationnelle Donghoon Song <32301380+Donghoon759@users.noreply.github.com> Sujin Park KIM HYO RIN Chuf <42591821+GChuf@users.noreply.github.com> Donghoon Song Evaline Ju Park Juhyung FrancΜ§ois Hodierne Evaline Ju <69598118+evaline-ju@users.noreply.github.com> Valeria Jordan Stephens Adam Keating <1427265+akeating@users.noreply.github.com> Hazem JosΓ© JesΓΊs Sinohui FernΓ‘ndez Maxwell Gerber Sebastian Noack Christian Bromann Alexander Fenster MoonSupport Dayzen Alexander Fenster kirill-golovan <57108967+kirill-golovan@users.noreply.github.com> Michal Dorner Curtis Man 华 <1395348685z@gmail.com> Andrei Rusu Quentin Barbe Mattias Norlander CommanderRoot Elihu Cruz Sukka Darius Dzien Yeting Li Greggman Josh Goldberg Kleis Auke Wolthuizen Paulo GonΓ§alves Anton Usmansky jb2311 <32516995+jb2311@users.noreply.github.com> Aras Abbasi Spencer <16455389+Spencer-Doak@users.noreply.github.com> Feng Yu Pelle Wessman Orgad Shaneh Lucas Lopes Bryan Mishkin <698306+bmish@users.noreply.github.com> Ville Lahdenvuo Nathan Phillip Brink StΓ₯le Tomten dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Sleepy Flower StevenMia <166844090+StevenMia@users.noreply.github.com> Simon Hanna <33220646+simhnna@users.noreply.github.com> Ilia Choly Marjorie Saito Khoa Huynh <58313491+khoaHyh@users.noreply.github.com> Sam Adams <107990625+sam-super@users.noreply.github.com> Marc Durdin Ilya Goncharov github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Mark Wiemer <7833360+mark-wiemer@users.noreply.github.com> Danny Lin KristjΓ‘n Oddsson David Huggins-Daines Joy Dey Julian Grinblat Linda_pp Eric Cornelissen Kelechi Ebiri <56020538+TG199@users.noreply.github.com> Dinika Kevin Locke Phillip Barta Grzegorz Godlewski Darren DeRidder <73rhodes@users.noreply.github.com> Chengzhong Wu Marcelo Shima Chengzhong Wu Samuel Henrique Mark Wiemer Martin Slota <46676886+martinslota@users.noreply.github.com> # Generated by scripts/update-authors.js mochajs-mocha-51a0cc5/CHANGELOG.md000066400000000000000000005377511525733747400165020ustar00rootroot00000000000000# Changelog ## [12.0.3](https://github.com/mochajs/mocha/compare/v12.0.2...v12.0.3) (2026-10-01) ### 🩹 Fixes * keep watching when the last test file is removed ([#6355](https://github.com/mochajs/mocha/issues/6355)) ([921c161](https://github.com/mochajs/mocha/commit/921c161f90a0982fe021873db1fc87b64aead525)) * show require() error on unsupported directory import ([#6354](https://github.com/mochajs/mocha/issues/6354)) ([a68344f](https://github.com/mochajs/mocha/commit/a68344fdce07a3a26356a175ff65f6b990e3761c)) * support `--X` one-char aliases ([#6391](https://github.com/mochajs/mocha/issues/6391)) ([1227939](https://github.com/mochajs/mocha/commit/12279398f98942f21eeca7c1df5967f5f3bbe83f)) ### πŸ“š Documentation * refresh help output, fix stale links ([#6357](https://github.com/mochajs/mocha/issues/6357)) ([bb2e69a](https://github.com/mochajs/mocha/commit/bb2e69a953645fa12b534d20182a5ca5fbbc995b)) ### 🧹 Chores * add --import=tsx integration test ([#6356](https://github.com/mochajs/mocha/issues/6356)) ([3382fdd](https://github.com/mochajs/mocha/commit/3382fdd29e920deb625e279d3bf83b6bf0bbe405)) * touch a new file without stamping it afterwards ([#6349](https://github.com/mochajs/mocha/issues/6349)) ([d59467a](https://github.com/mochajs/mocha/commit/d59467a8a50c07628f5ccb11c683e8820dd4a291)) ## [12.0.2](https://github.com/mochajs/mocha/compare/v12.0.1...v12.0.2) (2026-09-17) ### 🩹 Fixes * fail nested tests on beforeEach failure ([#6292](https://github.com/mochajs/mocha/issues/6292)) ([a75b43b](https://github.com/mochajs/mocha/commit/a75b43b0d69fb0529945bc71aaca9a1a5dc24188)) * give CLI reporter-option precedence over config file ([#6331](https://github.com/mochajs/mocha/issues/6331)) ([571110f](https://github.com/mochajs/mocha/commit/571110f0e87a3871b7ae6cea3eb4f19101a39f2c)) * propagate spec file path on parallel worker death ([#6268](https://github.com/mochajs/mocha/issues/6268)) ([55a544a](https://github.com/mochajs/mocha/commit/55a544a409cc1dc8171b715ab4010c705ab53027)) * use find-up-simple to workaround ERR_PACKAGE_PATH_NOT_EXPORTED ([#6342](https://github.com/mochajs/mocha/issues/6342)) ([a652ff5](https://github.com/mochajs/mocha/commit/a652ff5c1b14e2476a0e81ddabf5992fb7de5c12)) * watch existing dirs so first run starts armed ([#6263](https://github.com/mochajs/mocha/issues/6263)) ([f5c8aca](https://github.com/mochajs/mocha/commit/f5c8acac5f556e58d6d7327e660070684b8d06bb)) ### πŸ“š Documentation * add remaining external services ([#6316](https://github.com/mochajs/mocha/issues/6316)) ([bfe0b5d](https://github.com/mochajs/mocha/commit/bfe0b5d2f93f9c3f44a0da8936884c64ddf997e0)) * update copyright year, holder, and URLs ([#6303](https://github.com/mochajs/mocha/issues/6303)) ([288c075](https://github.com/mochajs/mocha/commit/288c075644caef5e4cb30223677b2f5a9784de46)) ### 🧹 Chores * add "stale branch" workflow ([#6315](https://github.com/mochajs/mocha/issues/6315)) ([ad17f9f](https://github.com/mochajs/mocha/commit/ad17f9f5f8f5d56e0a6b3e05aaf1290b9adf2375)) * add dependency conflict detection workflow ([#6246](https://github.com/mochajs/mocha/issues/6246)) ([ef0ae32](https://github.com/mochajs/mocha/commit/ef0ae32e6ef1d90fd72d08bc3ba7b507c9057911)) * add folder for reproducing issues ([#6330](https://github.com/mochajs/mocha/issues/6330)) ([6728030](https://github.com/mochajs/mocha/commit/672803069c1f927103ca9ed3937c4a3e4a341550)) * add stale triage reminder for unreviewed issues ([#6314](https://github.com/mochajs/mocha/issues/6314)) ([ee35133](https://github.com/mochajs/mocha/commit/ee351334a007970a06ae1810a85d6cd3297fcac4)) * auto-remove "waiting for author" label on author activity ([#6213](https://github.com/mochajs/mocha/issues/6213)) ([dbd4322](https://github.com/mochajs/mocha/commit/dbd43220b3ff3a00aed3fb6e04a44178ba04b869)) * convert file-unloader to ESM ([#6294](https://github.com/mochajs/mocha/issues/6294)) ([dc73f4c](https://github.com/mochajs/mocha/commit/dc73f4c7f5244911d019ace1eda4f746d6b393ce)) * **deps:** update dependency @playwright/test to v1.63.0 ([#6299](https://github.com/mochajs/mocha/issues/6299)) ([931baa5](https://github.com/mochajs/mocha/commit/931baa53d43fe23a05ba09a889268215e450babd)) * **deps:** update dependency eslint to v10.10.0 ([#6296](https://github.com/mochajs/mocha/issues/6296)) ([3cb22d1](https://github.com/mochajs/mocha/commit/3cb22d1a6e0393d88c4b173b860d9216709bfb61)) * **deps:** update dependency knip to v6.35.0 ([#6324](https://github.com/mochajs/mocha/issues/6324)) ([a2416af](https://github.com/mochajs/mocha/commit/a2416af29d057f1df122f5961ad030f56151ac7b)) * **deps:** update octoguide/bot action to v0.23.0 ([#6304](https://github.com/mochajs/mocha/issues/6304)) ([bbe5a27](https://github.com/mochajs/mocha/commit/bbe5a27ea957f1960179646c8f4a0e752a9757cc)) * exclude "v11.x" from "stale branch" workflow ([#6338](https://github.com/mochajs/mocha/issues/6338)) ([e7b7fe1](https://github.com/mochajs/mocha/commit/e7b7fe12499fd709302a60add0dc6e19a9a901e1)) * fix owner in auto-add workflow ([#6309](https://github.com/mochajs/mocha/issues/6309)) ([037aa8b](https://github.com/mochajs/mocha/commit/037aa8bc39378fc87bf8d5e9c61d2a0c9a85c49e)) * fixup "auto-add" workflow ([#6308](https://github.com/mochajs/mocha/issues/6308)) ([b3f7cbc](https://github.com/mochajs/mocha/commit/b3f7cbcb9915a9b83220e9bff31eb2d798cc3185)) * fixup workflow perms in-job ([#6327](https://github.com/mochajs/mocha/issues/6327)) ([633480c](https://github.com/mochajs/mocha/commit/633480c976dc49d73693148b43983778e2f44f49)) * provide write perms to workflows ([#6325](https://github.com/mochajs/mocha/issues/6325)) ([d6f6f4c](https://github.com/mochajs/mocha/commit/d6f6f4cd13d1bfe1a5fc53fbefff56c1825022d8)) * remove "stale" label on author activity ([#6312](https://github.com/mochajs/mocha/issues/6312)) ([e60fbda](https://github.com/mochajs/mocha/commit/e60fbda5769ea693d0969646b5fcdd742b9cc873)) * remove unused .editorconfig file ([#6306](https://github.com/mochajs/mocha/issues/6306)) ([880269f](https://github.com/mochajs/mocha/commit/880269ff709414c6015bb0aee45213ed965ca51d)) * replace find-conflicts with improved smoke versions ([#6344](https://github.com/mochajs/mocha/issues/6344)) ([2668e71](https://github.com/mochajs/mocha/commit/2668e712ee733c93005323ce0218853171f57449)) * set author to Mark Wiemer ([#6305](https://github.com/mochajs/mocha/issues/6305)) ([cd2a730](https://github.com/mochajs/mocha/commit/cd2a73057f6bce8a29dbfb1b39912ea950d31af4)) * **site:** update Astro (7.3.2) and fast-uri (3.1.7) ([#6301](https://github.com/mochajs/mocha/issues/6301)) ([a4f2213](https://github.com/mochajs/mocha/commit/a4f221333238e72532019de1bd0dcb91731a4003)) * stabilize `--parallel` integration suite ([#6313](https://github.com/mochajs/mocha/issues/6313)) ([856a1ae](https://github.com/mochajs/mocha/commit/856a1ae6a8626b0ebe265fd151983c2323e9ea31)) * stop auto-adding PRs to project ([#6352](https://github.com/mochajs/mocha/issues/6352)) ([a8309fd](https://github.com/mochajs/mocha/commit/a8309fd4a82f573b23a6185525cdfc18517f081d)) * track Codecov in issue without failing CI ([#6323](https://github.com/mochajs/mocha/issues/6323)) ([c39f602](https://github.com/mochajs/mocha/commit/c39f602fcec5ad9dd9f8ce20f62ba18b899e590a)) * widen --exit detection window ([#6293](https://github.com/mochajs/mocha/issues/6293)) ([ee3a4b1](https://github.com/mochajs/mocha/commit/ee3a4b1340a41d0f366e2e5628f5e5866f51b958)) ## [12.0.1](https://github.com/mochajs/mocha/compare/v12.0.0...v12.0.1) (2026-09-08) ### 🩹 Fixes * bump serialize-javascript to ^7.1.1 ([#6278](https://github.com/mochajs/mocha/issues/6278)) ([02558a3](https://github.com/mochajs/mocha/commit/02558a399ce2349177c39aabe4f1420579bbfb69)) * **deps:** update dependency find-up to v8 ([#5747](https://github.com/mochajs/mocha/issues/5747)) ([ee11d29](https://github.com/mochajs/mocha/commit/ee11d292560ee49a97ee7b0ca5fed621daf388f1)) * **deps:** update dependency is-path-inside to v4 ([#5748](https://github.com/mochajs/mocha/issues/5748)) ([5b27e3a](https://github.com/mochajs/mocha/commit/5b27e3acc227b32fb38986b39d76805589100ab1)) * **deps:** update dependency starlight-blog to ^0.29.0 ([#6248](https://github.com/mochajs/mocha/issues/6248)) ([532b82b](https://github.com/mochajs/mocha/commit/532b82b50f7fe67995559bfbcc8b0e2842b89719)) * keep unknown config values from becoming test specs ([#6244](https://github.com/mochajs/mocha/issues/6244)) ([15aa7d1](https://github.com/mochajs/mocha/commit/15aa7d1554865fc7f37e166340903c1b752def7c)) * only reject positional args that are entirely numeric ([#6222](https://github.com/mochajs/mocha/issues/6222)) ([1633779](https://github.com/mochajs/mocha/commit/163377915b2ae96194b721b662e9dee0b6dfd4c5)) * **reporter:** split err.stack at trailing frame block so embedded stacks render once ([#5997](https://github.com/mochajs/mocha/issues/5997)) ([90f48e4](https://github.com/mochajs/mocha/commit/90f48e40b95eb622ad7123915e730c284652a1e8)) ### πŸ“š Documentation * **blog:** fixup v12 blog ([#6258](https://github.com/mochajs/mocha/issues/6258)) ([6bcbee4](https://github.com/mochajs/mocha/commit/6bcbee4fd9a95351cedf0fdcb14c7d696486bc5a)) * fix minor API documentation issue ([#6241](https://github.com/mochajs/mocha/issues/6241)) ([683fd10](https://github.com/mochajs/mocha/commit/683fd10e50681bb13fd3ac487f55a2af8b3fe576)) * publish v12 stable blog ([#6249](https://github.com/mochajs/mocha/issues/6249)) ([d5ad803](https://github.com/mochajs/mocha/commit/d5ad803fd8cf15da508a344ce8172db22d0ca66e)) ### 🧹 Chores * auto-add GitHub items to project ([#5686](https://github.com/mochajs/mocha/issues/5686)) ([d24c320](https://github.com/mochajs/mocha/commit/d24c3205cb0a61e758e1971db26324d2b30f5ccd)) * convert lib/runner.js to ESM ([#6260](https://github.com/mochajs/mocha/issues/6260)) ([123b2d5](https://github.com/mochajs/mocha/commit/123b2d5c9da27c0df71a8b3a072c319dfdb9ef34)) * **deps:** update actions/add-to-project action to v2 ([#6276](https://github.com/mochajs/mocha/issues/6276)) ([00f873b](https://github.com/mochajs/mocha/commit/00f873bea8d09df52627bd06a60b551d6cb94191)) * **deps:** update actions/github-script action to v9 ([#6277](https://github.com/mochajs/mocha/issues/6277)) ([49ed525](https://github.com/mochajs/mocha/commit/49ed52521b4dd930747a962f343e8e3e6e308d7d)) * **deps:** update dependency astro to v7.2.9 ([#6223](https://github.com/mochajs/mocha/issues/6223)) ([513bd50](https://github.com/mochajs/mocha/commit/513bd500a8bd87f6f70a227dc710b4301e4534ef)) * **deps:** update dependency eslint to v10.9.1 ([#6251](https://github.com/mochajs/mocha/issues/6251)) ([e28b90c](https://github.com/mochajs/mocha/commit/e28b90c24aec0e50dd04eac43a4ee8cc09008150)) * **deps:** update dependency eslint-plugin-n to v18.3.0 ([#6240](https://github.com/mochajs/mocha/issues/6240)) ([3a11840](https://github.com/mochajs/mocha/commit/3a118405f375361f8084093dd85eaa89e79a5af7)) * **deps:** update dependency globals to v17.11.0 ([#6243](https://github.com/mochajs/mocha/issues/6243)) ([1cf345b](https://github.com/mochajs/mocha/commit/1cf345b2c807b06fa3af9cc8141eca9c0683a5e9)) * **deps:** update dependency globals to v17.12.0 ([#6288](https://github.com/mochajs/mocha/issues/6288)) ([97b8df6](https://github.com/mochajs/mocha/commit/97b8df6ade18bd581dd335f0f0b902159c17fae8)) * **deps:** update dependency js-yaml to v5.4.1 ([#6247](https://github.com/mochajs/mocha/issues/6247)) ([9593caa](https://github.com/mochajs/mocha/commit/9593caaa7750c1d123101da1367bdd90f22dcffb)) * **deps:** update dependency knip to v6.32.3 ([#6224](https://github.com/mochajs/mocha/issues/6224)) ([6781fa1](https://github.com/mochajs/mocha/commit/6781fa1e111fa36597bda03ad97dc2624007db40)) * **deps:** update dependency knip to v6.34.0 ([#6279](https://github.com/mochajs/mocha/issues/6279)) ([85ff1b6](https://github.com/mochajs/mocha/commit/85ff1b61d7288160db833420d7e8a7a752df2b90)) * **deps:** update dependency rollup to v4.63.1 ([#6274](https://github.com/mochajs/mocha/issues/6274)) ([e5a779e](https://github.com/mochajs/mocha/commit/e5a779eb40bf2aa2659f41878fcb2f90f95fbcbf)) * **deps:** update dependency serialize-javascript to v7.1.0 ([#6239](https://github.com/mochajs/mocha/issues/6239)) ([77e4d4a](https://github.com/mochajs/mocha/commit/77e4d4a92efdd4f1b61db10ab7a879a6c12ccd29)) * **deps:** update dependency webpack to v5.110.1 ([#6275](https://github.com/mochajs/mocha/issues/6275)) ([ec436d5](https://github.com/mochajs/mocha/commit/ec436d581ea02dbfafde824491a45f4e6578f42c)) * **deps:** update matteogabriele/agentscan-action action to v2.5.0 ([#6280](https://github.com/mochajs/mocha/issues/6280)) ([0bb7925](https://github.com/mochajs/mocha/commit/0bb7925f98e5e915f845c35c0ad3ec3c1cec5967)) * remove unused .lintstagedrc.json ([#6270](https://github.com/mochajs/mocha/issues/6270)) ([d84fdbf](https://github.com/mochajs/mocha/commit/d84fdbf117397df12179f9de514b4495d684c555)) * update spam filter ([#6271](https://github.com/mochajs/mocha/issues/6271)) ([b932787](https://github.com/mochajs/mocha/commit/b932787b80f8a38e36b2e7027bb4ed2fae69b5c5)) * use a junction to link the config fixture on Windows ([#6218](https://github.com/mochajs/mocha/issues/6218)) ([a6b5d98](https://github.com/mochajs/mocha/commit/a6b5d981b641525b09a0f4b11f6c8be7ff85bae3)) ## [12.0.0](https://github.com/mochajs/mocha/compare/v12.0.0-rc.6...v12.0.0) (2026-08-31) ### 🩹 Fixes * fixup parsing negative numbers and quoted strings ([#6250](https://github.com/mochajs/mocha/issues/6250)) ([2962875](https://github.com/mochajs/mocha/commit/2962875f70df72ec5f0aaba45b3776167902894e)) * preserve FIFO descriptors when respawning ([#6254](https://github.com/mochajs/mocha/issues/6254)) ([3bb317d](https://github.com/mochajs/mocha/commit/3bb317dbe7edc460f44328e630f607aa26773a4d)) ### πŸ“š Documentation * fix minor correctness issues ([#6215](https://github.com/mochajs/mocha/issues/6215)) ([e6b9ee7](https://github.com/mochajs/mocha/commit/e6b9ee773481fd739ae24caeb42f32ac0b010f95)) * link to mochajs.org instead of the wiki ([#6216](https://github.com/mochajs/mocha/issues/6216)) ([8720225](https://github.com/mochajs/mocha/commit/8720225413002aeda0a8760e911374fddd6e7b24)) ### 🧹 Chores * setup Release Please for v12 stable ([#6084](https://github.com/mochajs/mocha/issues/6084)) ([219674f](https://github.com/mochajs/mocha/commit/219674fa5bfaf8fa740fab783344703a2991532d)) ## [12.0.0-rc.6](https://github.com/mochajs/mocha/compare/v12.0.0-rc.5...v12.0.0-rc.6) (2026-08-09) ### 🩹 Fixes * **deps:** update dependency starlight-blog to ^0.28.0 ([#6153](https://github.com/mochajs/mocha/issues/6153)) ([6b79044](https://github.com/mochajs/mocha/commit/6b79044a260d096d8266585dfbd7daf173886937)) * **docs:** restore homepage logo ([#6183](https://github.com/mochajs/mocha/issues/6183)) ([06e81a8](https://github.com/mochajs/mocha/commit/06e81a800356bb5ea42304e978919d833c8558b4)) * **docs:** restore spacing around footer links ([#6185](https://github.com/mochajs/mocha/issues/6185)) ([163d751](https://github.com/mochajs/mocha/commit/163d751ebb0a9587559ed24aae74564c09f10312)) * use main instead of exports for the package entry point ([#6193](https://github.com/mochajs/mocha/issues/6193)) ([c32a696](https://github.com/mochajs/mocha/commit/c32a696f0963737eedc9dde5a3e122a6fa1586b3)) ### πŸ“š Documentation * **blog:** add community contributions post ([#6172](https://github.com/mochajs/mocha/issues/6172)) ([5fcc0fe](https://github.com/mochajs/mocha/commit/5fcc0fe4e2bf7a260cd1cc7f312132e26abd1a05)) * **blog:** update community-contributions to 2026-community-sponsorships ([5462d84](https://github.com/mochajs/mocha/commit/5462d841264d28f0bd3c1fe90479b40af6ba03d3)) * fix blog/2026-community-sponsorships description ([#6177](https://github.com/mochajs/mocha/issues/6177)) ([98c4746](https://github.com/mochajs/mocha/commit/98c47466fc7bdfb7e1ff7bdabad04739e892ff09)) * sync CLI docs with v12 options and defaults ([#6140](https://github.com/mochajs/mocha/issues/6140)) ([579fd15](https://github.com/mochajs/mocha/commit/579fd1563822564d528d99e10303dd3a5e29116c)) ### 🧹 Chores * **deps:** update dependency @playwright/test to v1.62.1 ([#6197](https://github.com/mochajs/mocha/issues/6197)) ([dcc539a](https://github.com/mochajs/mocha/commit/dcc539ad05427c010136bd17f57e9d3148f3ebee)) * **deps:** update dependency eslint to v10.8.0 ([#6196](https://github.com/mochajs/mocha/issues/6196)) ([deeeec6](https://github.com/mochajs/mocha/commit/deeeec61f2f40fafa035dfd25dffa8fed672a877)) * **deps:** update dependency globals to v17.9.0 ([#6201](https://github.com/mochajs/mocha/issues/6201)) ([c2c6d63](https://github.com/mochajs/mocha/commit/c2c6d63967a7def05452c9f2074ec092ef80e4c0)) * **deps:** update dependency knip to v6.31.0 ([#6166](https://github.com/mochajs/mocha/issues/6166)) ([b7cd1bd](https://github.com/mochajs/mocha/commit/b7cd1bd9d75cef7d6f350dd038fdaaf553e27e82)) * **deps:** update dependency sinon to v22.1.0 ([#6188](https://github.com/mochajs/mocha/issues/6188)) ([284f0c2](https://github.com/mochajs/mocha/commit/284f0c23082e3e55106d61c3e69e29f6637b86bd)) * **deps:** update dependency webpack to v5.109.2 ([#6194](https://github.com/mochajs/mocha/issues/6194)) ([badf733](https://github.com/mochajs/mocha/commit/badf73375430c5352fcf0314417b2d87ce1f7c3d)) * extract stripLeadingDashes helper + cover CLI arg-parsing edge cases ([#6171](https://github.com/mochajs/mocha/issues/6171)) ([867e175](https://github.com/mochajs/mocha/commit/867e17566beb8f7077e969e9c58e9383bcf6d657)) * fix esm-utils tests when run without coverage ([#6160](https://github.com/mochajs/mocha/issues/6160)) ([c54539f](https://github.com/mochajs/mocha/commit/c54539f570c005ea1a6b74b283664e0aee7972b1)) * keep stderr out of the JSON parsed by the FIFO test ([#6187](https://github.com/mochajs/mocha/issues/6187)) ([ea6489e](https://github.com/mochajs/mocha/commit/ea6489e973fde53ef2a9e3455110befc064f5ed0)) * limit token perms in protect-manifest workflow ([#6175](https://github.com/mochajs/mocha/issues/6175)) ([8cf0030](https://github.com/mochajs/mocha/commit/8cf003021a4184dfce85367c6622a08b0c8d0891)) * **repo:** change stale threshold from 2+2 to 1+1 ([#6179](https://github.com/mochajs/mocha/issues/6179)) ([7cb2678](https://github.com/mochajs/mocha/commit/7cb267830c51d0b9a851086eb8d87013ee7663bd)) ### πŸ€– Automation * **deps:** bump actions/stale from 10 to 11 in the github-actions group ([#6207](https://github.com/mochajs/mocha/issues/6207)) ([ce13809](https://github.com/mochajs/mocha/commit/ce1380932dbc47e02cbaf969875f0cc8534e6ccd)) ## [12.0.0-rc.5](https://github.com/mochajs/mocha/compare/v12.0.0-rc.4...v12.0.0-rc.5) (2026-07-23) ### 🩹 Fixes * add package.json exports to avoid DEP0151 warning ([#6168](https://github.com/mochajs/mocha/issues/6168)) ([3031567](https://github.com/mochajs/mocha/commit/3031567913b544a97402f449722cc110e9890420)) ## [12.0.0-rc.4](https://github.com/mochajs/mocha/compare/v12.0.0-rc.3...v12.0.0-rc.4) (2026-07-23) ### ⚠ BREAKING CHANGES * replace yargs with Node.js util.parseArgs ([#6164](https://github.com/mochajs/mocha/issues/6164)) ### 🧹 Chores * replace yargs with Node.js util.parseArgs ([#6164](https://github.com/mochajs/mocha/issues/6164)) ([21a3902](https://github.com/mochajs/mocha/commit/21a39022861e08a3a8836f365f313f6274dcf485)) ## [12.0.0-rc.3](https://github.com/mochajs/mocha/compare/v12.0.0-rc.2...v12.0.0-rc.3) (2026-07-22) ### ⚠ BREAKING CHANGES * replace yargs-unparser in CLI respawn paths ([#6125](https://github.com/mochajs/mocha/issues/6125)) * replace yargs-parser in CLI option loading ([#6124](https://github.com/mochajs/mocha/issues/6124)) ### 🌟 Features * replace yargs-parser in CLI option loading ([#6124](https://github.com/mochajs/mocha/issues/6124)) ([e846f8f](https://github.com/mochajs/mocha/commit/e846f8f54754ecbbfca868885e255bbce51e0582)) * replace yargs-unparser in CLI respawn paths ([#6125](https://github.com/mochajs/mocha/issues/6125)) ([1d2bb2e](https://github.com/mochajs/mocha/commit/1d2bb2efea721474b7fcaac4e209a844e5a463a0)) ## [12.0.0-rc.2](https://github.com/mochajs/mocha/compare/v12.0.0-rc.1...v12.0.0-rc.2) (2026-07-20) ### ⚠ BREAKING CHANGES * replace he dependency with manual HTML encoding ### 🌟 Features * add --clear-screen option for watch mode ([#6133](https://github.com/mochajs/mocha/issues/6133)) ([3301ed7](https://github.com/mochajs/mocha/commit/3301ed7578d2e60cf0e303083d9d6c2d220d13a4)) * add built-in github-actions reporter ([#6088](https://github.com/mochajs/mocha/issues/6088)) ([a99b8ba](https://github.com/mochajs/mocha/commit/a99b8ba1d621dc1e1a4e718091f3c7a799e71f39)) ### 🩹 Fixes * **deps:** update dependency js-yaml to v5 ([#6117](https://github.com/mochajs/mocha/issues/6117)) ([2fb44ff](https://github.com/mochajs/mocha/commit/2fb44ffd9eaff5ea86a7f9cfdc4e24c7e4e25c61)) * replace he dependency with manual HTML encoding ([9f85d71](https://github.com/mochajs/mocha/commit/9f85d71769250e515c1a48caf5f31352e16e2c82)) * strip ANSI sequences from xunit output ([bf76999](https://github.com/mochajs/mocha/commit/bf76999b2b2a99a4442aba34a4ceaa3679898806)) ### πŸ“š Documentation * move legacy site link to bottom of homepage ([#6093](https://github.com/mochajs/mocha/issues/6093)) ([f3e7d37](https://github.com/mochajs/mocha/commit/f3e7d374c717cb1a61297233237c8be53ba5e68e)) ### 🧹 Chores * add "Protect Release Please Manifest" workflow ([#6099](https://github.com/mochajs/mocha/issues/6099)) ([2d7bc22](https://github.com/mochajs/mocha/commit/2d7bc22dda9d14beeae1bf89ae7ea5bdbfa8f56a)) * add v12 RC 1 release notes ([#5848](https://github.com/mochajs/mocha/issues/5848)) ([275ce51](https://github.com/mochajs/mocha/commit/275ce519122c154cdd75434de9fde2800416dad1)) * **deps:** bump unexpected to 13 and remove unused plugins ([#6135](https://github.com/mochajs/mocha/issues/6135)) ([b587012](https://github.com/mochajs/mocha/commit/b587012724d490d4d3ce79890efaf6ec235ae21b)) * **deps:** update actions/checkout action to v7 ([#6114](https://github.com/mochajs/mocha/issues/6114)) ([857945d](https://github.com/mochajs/mocha/commit/857945dbf650ea6bdcdfb2c74cd97a0a391df6ad)) * **deps:** update actions/github-script action to v9 ([#6091](https://github.com/mochajs/mocha/issues/6091)) ([a017f08](https://github.com/mochajs/mocha/commit/a017f08f4d784489949e2b9744716a4f1e705b6d)) * **deps:** update dependency eslint to v10.7.0 ([#6134](https://github.com/mochajs/mocha/issues/6134)) ([26d73d3](https://github.com/mochajs/mocha/commit/26d73d36e345b3ef5d04fa2dce7225ec28598d91)) * **deps:** update dependency eslint-plugin-n to v18.2.2 ([#6137](https://github.com/mochajs/mocha/issues/6137)) ([9d925f0](https://github.com/mochajs/mocha/commit/9d925f0969ded263bb7e98cc8ff25bf400694dd8)) * **deps:** update dependency globals to v17.7.0 ([#6126](https://github.com/mochajs/mocha/issues/6126)) ([864fb80](https://github.com/mochajs/mocha/commit/864fb806078f068797317dfab2f513b16ccb66d9)) * **deps:** update dependency js-yaml to v4.3.0 ([#6141](https://github.com/mochajs/mocha/issues/6141)) ([bd4fcf4](https://github.com/mochajs/mocha/commit/bd4fcf484bb52e33e9cf57077e6900122f66a25b)) * **deps:** update dependency knip to v6.24.0 ([#6110](https://github.com/mochajs/mocha/issues/6110)) ([bab1d4e](https://github.com/mochajs/mocha/commit/bab1d4e9dff4bc2514466fc1afba2de9d376f4e9)) * **deps:** update dependency knip to v6.26.0 ([#6145](https://github.com/mochajs/mocha/issues/6145)) ([c7cfbe9](https://github.com/mochajs/mocha/commit/c7cfbe9ef945b1422316cf58f19afc9c243397d9)) * **deps:** update dependency prettier to v3.9.5 ([#6142](https://github.com/mochajs/mocha/issues/6142)) ([55df0d1](https://github.com/mochajs/mocha/commit/55df0d141a866b142f53410aa3a5816a82646d2f)) * **deps:** update dependency webpack to v5.108.4 ([#6150](https://github.com/mochajs/mocha/issues/6150)) ([4e072d1](https://github.com/mochajs/mocha/commit/4e072d14618a2a631077eb9ebce8efabf0b9435a)) * **deps:** update dependency webpack-cli to v7.2.1 ([#6151](https://github.com/mochajs/mocha/issues/6151)) ([19978d7](https://github.com/mochajs/mocha/commit/19978d7b0689b3b6924cdc682c6bb1af2aa49172)) * **deps:** update playwright monorepo to v1.61.0 ([#6108](https://github.com/mochajs/mocha/issues/6108)) ([7ad398e](https://github.com/mochajs/mocha/commit/7ad398ebf14e4a9255984338619907bf485d6a17)) * fix RC 1 blog publish time, rename to `...-rc-1` ([#6106](https://github.com/mochajs/mocha/issues/6106)) ([00d59bc](https://github.com/mochajs/mocha/commit/00d59bc5ff3f8c95235c0b7f500521dc6320440b)) * raise timeout for node-unit Mocha spec to fix flaky hook ([#6118](https://github.com/mochajs/mocha/issues/6118)) ([31ee8c5](https://github.com/mochajs/mocha/commit/31ee8c5af3ac3a6e7540d7475089d5d054d4a340)) * require exact fixture references in integration tests ([#6096](https://github.com/mochajs/mocha/issues/6096)) ([d602cc7](https://github.com/mochajs/mocha/commit/d602cc7ab9b93169916d267e19071fbeb6cd0468)) * retry touch in dir-add watch test to reduce flakiness ([#6119](https://github.com/mochajs/mocha/issues/6119)) ([061cb52](https://github.com/mochajs/mocha/commit/061cb529cdec6265d7f8366ad97fd2a054fac21c)) * upgrade Astro to 7.1.1 ([#6149](https://github.com/mochajs/mocha/issues/6149)) ([a5f1caa](https://github.com/mochajs/mocha/commit/a5f1caa61d6f48d7d970401e22cc8cd205b7ce3a)) ### πŸ€– Automation * **deps:** bump actions/setup-node from 6 to 7 in the github-actions group across 1 directory ([#6146](https://github.com/mochajs/mocha/issues/6146)) ([a73e34c](https://github.com/mochajs/mocha/commit/a73e34ceda600818ad6d7f5edad5dd9d61014b5f)) ## [12.0.0-rc.1](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.6...v12.0.0-rc.1) (2026-06-20) ### ⚠ BREAKING CHANGES * change root package.json type to module ([#6078](https://github.com/mochajs/mocha/issues/6078)) ### 🌟 Features * change root package.json type to module ([#6078](https://github.com/mochajs/mocha/issues/6078)) ([da015de](https://github.com/mochajs/mocha/commit/da015de4493f6f497802c4fc35ab294e46a59dad)) ### πŸ“š Documentation * add blog ([#6095](https://github.com/mochajs/mocha/issues/6095)) ([c0280ba](https://github.com/mochajs/mocha/commit/c0280baad8e07d3d7e6f4bce524bf47c102836c1)) * switch util.inherits to class extends ([#5677](https://github.com/mochajs/mocha/issues/5677)) ([f6e8d9a](https://github.com/mochajs/mocha/commit/f6e8d9ab58217971e24fd1fb0a4569f50a6ff488)) ### 🧹 Chores * configure Release Please for RC ([#6083](https://github.com/mochajs/mocha/issues/6083)) ([8f3a61c](https://github.com/mochajs/mocha/commit/8f3a61c7137632062105e0fdaa6abdd82fe1627d)) * **deps:** update dependency @types/node to v24.13.0 ([#6066](https://github.com/mochajs/mocha/issues/6066)) ([fb1998a](https://github.com/mochajs/mocha/commit/fb1998a350dec3f424015b5b5f01ba98309e5b95)) * **deps:** update dependency eslint-plugin-n to v18.1.0 ([#6072](https://github.com/mochajs/mocha/issues/6072)) ([6f56135](https://github.com/mochajs/mocha/commit/6f56135a3d64cd450782f442417a731f40e1a97c)) * **deps:** update dependency knip to v6.16.1 ([#6067](https://github.com/mochajs/mocha/issues/6067)) ([b204395](https://github.com/mochajs/mocha/commit/b20439531ef88cf766eadc1b8d4c1a12cae17240)) * **deps:** update dependency rollup to v4.61.0 ([#6050](https://github.com/mochajs/mocha/issues/6050)) ([87696d5](https://github.com/mochajs/mocha/commit/87696d57e4418899e2289c9a2f03143a2ccd92e0)) * **deps:** update dependency rollup to v4.62.0 ([#6103](https://github.com/mochajs/mocha/issues/6103)) ([69e04bf](https://github.com/mochajs/mocha/commit/69e04bf0b9a9becf4875732bbdeca587d8e21b3f)) * **deps:** update eslint monorepo to v10.5.0 ([#6100](https://github.com/mochajs/mocha/issues/6100)) ([ac372e0](https://github.com/mochajs/mocha/commit/ac372e07960f1d41ddba0fe9632c278cfdde0284)) * explain "trivial changes", update PR template ([#6075](https://github.com/mochajs/mocha/issues/6075)) ([6cbe3d5](https://github.com/mochajs/mocha/commit/6cbe3d5f9fd2e83ef10e97cc2a2cc49aa484a4d4)) * fix "remove 'waiting for author' " workflow ([#6090](https://github.com/mochajs/mocha/issues/6090)) ([b80d44b](https://github.com/mochajs/mocha/commit/b80d44b3bea01cb4cd7e0bda295ea00a1d6e157d)) * fix formatting on new remove-waiting-label file ([#6062](https://github.com/mochajs/mocha/issues/6062)) ([bfcb02a](https://github.com/mochajs/mocha/commit/bfcb02a1d12c0f03e8be6771e27aa4135f377bc9)) * fix Release Please manifest ([#6097](https://github.com/mochajs/mocha/issues/6097)) ([cfd9cf7](https://github.com/mochajs/mocha/commit/cfd9cf7610f436384ef23d8dcd32f55492fa350c)) * remove "status: waiting for author" label on review request ([#5983](https://github.com/mochajs/mocha/issues/5983)) ([fa3488d](https://github.com/mochajs/mocha/commit/fa3488d80db56ee328348c4901e25bd9eff8fb4b)) * replace Karma with Playwright for browser tests ([#6031](https://github.com/mochajs/mocha/issues/6031)) ([7c9b004](https://github.com/mochajs/mocha/commit/7c9b0046f30076b39f1cb161adad0416ea827606)) * restore cursor in watch failure diagnostics ([#6102](https://github.com/mochajs/mocha/issues/6102)) ([d640269](https://github.com/mochajs/mocha/commit/d640269413414b401980d676d1383b5974010681)) * synchronize watch integration tests on observed runs instead of sleeps ([#6058](https://github.com/mochajs/mocha/issues/6058)) ([84af186](https://github.com/mochajs/mocha/commit/84af186b327ac44dd832ae272e31705c4ce19c70)) * upgrade Astro and its deps ([#6089](https://github.com/mochajs/mocha/issues/6089)) ([66cdd8f](https://github.com/mochajs/mocha/commit/66cdd8f02ce420803d70532215ea9b588e7e78c9)) * use 1st-party script for blocked-pr.yml ([#6085](https://github.com/mochajs/mocha/issues/6085)) ([54aee06](https://github.com/mochajs/mocha/commit/54aee06a9c49a0bb7827b217ab8ef6986cb071af)) ### πŸ€– Automation * **deps:** bump codecov/codecov-action from 6 to 7 in the github-actions group ([#6051](https://github.com/mochajs/mocha/issues/6051)) ([00db758](https://github.com/mochajs/mocha/commit/00db758fdbd61762d735ce7d7f76972da43561aa)) ## [12.0.0-beta-9.6](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.5...v12.0.0-beta-9.6) (2026-06-10) ### 🩹 Fixes * require serializer.mjs in parallel worker pool files ([#6055](https://github.com/mochajs/mocha/issues/6055)) ([ffdf37c](https://github.com/mochajs/mocha/commit/ffdf37c513481856ee953a9c1ae6418cf435634a)) * surface global setup/teardown errors with a non-zero exit code ([#5994](https://github.com/mochajs/mocha/issues/5994)) ([ad81ec6](https://github.com/mochajs/mocha/commit/ad81ec68b5182b155937a123e14490e15ae217fe)) ### πŸ“š Documentation * clarify supported mocha version for ESM configuration ([#6027](https://github.com/mochajs/mocha/issues/6027)) ([5921837](https://github.com/mochajs/mocha/commit/5921837be8d53ea2f6d41e0ca0419aafd428f69e)) * fix inconsistencies in docs ([#6000](https://github.com/mochajs/mocha/issues/6000)) ([6310d0e](https://github.com/mochajs/mocha/commit/6310d0ef5e20272d6cc885c5e10534cbed0db662)) * include the released version in the npm badge alt text ([#5959](https://github.com/mochajs/mocha/issues/5959)) ([de924ba](https://github.com/mochajs/mocha/commit/de924bab471e3570415ed2585db4fbd8becd21ff)) * modernize spies example, drop should.js ([#6016](https://github.com/mochajs/mocha/issues/6016)) ([3b321a3](https://github.com/mochajs/mocha/commit/3b321a36f13e7317f748547508f376a5f02d1066)) ### 🧹 Chores * add "descriptions" item to "AI-generated code" ([#6041](https://github.com/mochajs/mocha/issues/6041)) ([efe6167](https://github.com/mochajs/mocha/commit/efe6167abef9f79001af163924bd8fb3582c4145)) * **deps:** update dependency js-yaml to v4.2.0 ([#6047](https://github.com/mochajs/mocha/issues/6047)) ([8df3ba6](https://github.com/mochajs/mocha/commit/8df3ba64950fe264fb9ed446b91f58af3e55bd32)) * **deps:** update dependency knip to v6.15.0 ([#6043](https://github.com/mochajs/mocha/issues/6043)) ([0c03d7d](https://github.com/mochajs/mocha/commit/0c03d7d0681dc5fcc5e1128dd6c0b74a7bbf221a)) * rollback devDep npm-run-all2 to v8 for Node 20 ([#6040](https://github.com/mochajs/mocha/issues/6040)) ([d7d095b](https://github.com/mochajs/mocha/commit/d7d095b6d5e7e0d33e783c4f196c106102d3b82f)) ### πŸ€– Automation * **deps:** bump astro from 6.1.9 to 6.4.4 in /docs ([#6046](https://github.com/mochajs/mocha/issues/6046)) ([f47bcf5](https://github.com/mochajs/mocha/commit/f47bcf5ee91f1a7b747bc82ae9c1642c5e1985ad)) ## [12.0.0-beta-9.5](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.4...v12.0.0-beta-9.5) (2026-06-03) ### ⚠ BREAKING CHANGES * remove `bin/_mocha` and convert `bin/` and entry points to ESM ([#6017](https://github.com/mochajs/mocha/issues/6017)) ### 🌟 Features * remove `bin/_mocha` and convert `bin/` and entry points to ESM ([#6017](https://github.com/mochajs/mocha/issues/6017)) ([930972a](https://github.com/mochajs/mocha/commit/930972a9a705e0b2953d518c0f7ef8ec36c0b9db)) ### 🩹 Fixes * lookupFiles() now returns string[] for direct file paths ([#5941](https://github.com/mochajs/mocha/issues/5941)) ([4718476](https://github.com/mochajs/mocha/commit/4718476be9727d8ce1c22be65d8f5cca5babc78b)), closes [#5940](https://github.com/mochajs/mocha/issues/5940) * prevent diff hang on large/complex objects ([#5898](https://github.com/mochajs/mocha/issues/5898)) ([6695fba](https://github.com/mochajs/mocha/commit/6695fba397a6d1ca2d7cd4de86d9dda2d3fba342)) ### 🧹 Chores * convert `lib/nodejs/` utility files to ESM ([#6011](https://github.com/mochajs/mocha/issues/6011)) ([a8ffaa9](https://github.com/mochajs/mocha/commit/a8ffaa9375e5b8bce9fe8d692474660540586a91)) * convert `lib/reporters/base` to ESM ([#6012](https://github.com/mochajs/mocha/issues/6012)) ([d12dd90](https://github.com/mochajs/mocha/commit/d12dd906aeb7d092a6834586b0c5a4c7d32a0fe3)) * **deps:** update dependency eslint to v10.4.0 ([#5996](https://github.com/mochajs/mocha/issues/5996)) ([f2dd26b](https://github.com/mochajs/mocha/commit/f2dd26b996bfc6c902847a14246486bbfa233b58)) * **deps:** update dependency knip to v6.14.2 ([#5982](https://github.com/mochajs/mocha/issues/5982)) ([b40e85b](https://github.com/mochajs/mocha/commit/b40e85be119b666981997369f582b3e2e1406e4d)) * **deps:** update dependency npm-run-all2 to v9 ([#6019](https://github.com/mochajs/mocha/issues/6019)) ([70bea83](https://github.com/mochajs/mocha/commit/70bea8379aa5b76c50bbad4e4e9b584a0d0fbffc)) * **deps:** update dependency webpack to v5.107.2 ([#6022](https://github.com/mochajs/mocha/issues/6022)) ([5eca67d](https://github.com/mochajs/mocha/commit/5eca67d149cf96474d5a5d18f553222da9d83439)) ### πŸ€– Automation * **deps:** bump joelwmale/webhook-action in the github-actions group ([#6032](https://github.com/mochajs/mocha/issues/6032)) ([75c618d](https://github.com/mochajs/mocha/commit/75c618d6d85d9754b0d9bb8b2e1709be737de970)) ## [12.0.0-beta-9.4](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.3...v12.0.0-beta-9.4) (2026-05-16) ### ⚠ BREAKING CHANGES * remove unused legacy `errors.js` functions ([#5835](https://github.com/mochajs/mocha/issues/5835)) ### 🩹 Fixes * **deps:** update dependency @astrojs/starlight to ^0.39.0 ([#5952](https://github.com/mochajs/mocha/issues/5952)) ([eed10ac](https://github.com/mochajs/mocha/commit/eed10acdad8f075488beadedb872a43d4f781285)) ### πŸ“š Documentation * add TypeScript setup guide ([#5863](https://github.com/mochajs/mocha/issues/5863)) ([af63dcf](https://github.com/mochajs/mocha/commit/af63dcf772b0884695b3c447df78c62d41cb6472)) * fix correctness issues in error codes, CLI defaults, and config docs ([#5860](https://github.com/mochajs/mocha/issues/5860)) ([bd54205](https://github.com/mochajs/mocha/commit/bd54205584abe47f4b1588e0ceb7db4dc2cc924b)) * modernize DEVELOPMENT.md for new contributors ([#5865](https://github.com/mochajs/mocha/issues/5865)) ([5122ad7](https://github.com/mochajs/mocha/commit/5122ad74d717f29e5c7d59466db774cb6a8b144b)) ### 🧹 Chores * convert `lib/cli/cli.mjs` to ESM ([#5909](https://github.com/mochajs/mocha/issues/5909)) ([6e91a89](https://github.com/mochajs/mocha/commit/6e91a8915e55924a6186e6ac1f5994a81191956c)) * convert dot, min, and list reporters to esm ([#5907](https://github.com/mochajs/mocha/issues/5907)) ([b19b696](https://github.com/mochajs/mocha/commit/b19b69691b3b0725acacad1e1e3268a6d4762cca)) * convert run-option-metadata and exports interface to ESM ([#5910](https://github.com/mochajs/mocha/issues/5910)) ([27b0814](https://github.com/mochajs/mocha/commit/27b081488b05e9c673b7fc9acd51ffb4fca77904)) * **deps:** update dependency @types/node to v24 ([#5958](https://github.com/mochajs/mocha/issues/5958)) ([ef113d7](https://github.com/mochajs/mocha/commit/ef113d7262e8f5d6b602c75a84204863870a4fd5)) * **deps:** update dependency eslint to v10.3.0 ([#5945](https://github.com/mochajs/mocha/issues/5945)) ([18cf178](https://github.com/mochajs/mocha/commit/18cf17847379f0b80dacdfe7b37c7625209b2bea)) * **deps:** update dependency eslint-plugin-n to v18 ([#5948](https://github.com/mochajs/mocha/issues/5948)) ([99f0e4a](https://github.com/mochajs/mocha/commit/99f0e4a39e44508384e992f2edec03a1c37200c2)) * **deps:** update dependency globals to v17.6.0 ([#5946](https://github.com/mochajs/mocha/issues/5946)) ([412070c](https://github.com/mochajs/mocha/commit/412070c7f6570e3bc18cb9769a8b4c85246805db)) * **deps:** update dependency knip to v6.12.1 ([#5942](https://github.com/mochajs/mocha/issues/5942)) ([e29003d](https://github.com/mochajs/mocha/commit/e29003d049979204689a6a7aee2fa0b6bf73dd30)) * **deps:** update dependency knip to v6.6.1 ([#5927](https://github.com/mochajs/mocha/issues/5927)) ([7c48496](https://github.com/mochajs/mocha/commit/7c4849672dd5192fd3bc33f4427281ae22f68fc3)) * **deps:** update dependency knip to v6.7.0 ([#5933](https://github.com/mochajs/mocha/issues/5933)) ([441c32a](https://github.com/mochajs/mocha/commit/441c32aa076f2b0e1c1ba39d67f267c46c1dee4b)) * **deps:** update dependency nyc to v18 ([#5846](https://github.com/mochajs/mocha/issues/5846)) ([1fea247](https://github.com/mochajs/mocha/commit/1fea247b4e7ba0dafa1a338d438b042ac431d997)) * **deps:** update dependency semver to v7.8.0 ([#5957](https://github.com/mochajs/mocha/issues/5957)) ([0cbb43c](https://github.com/mochajs/mocha/commit/0cbb43c120c5ce48b6f9df0969c2160bcc6150db)) * **deps:** update dependency sinon to v22 ([#5949](https://github.com/mochajs/mocha/issues/5949)) ([54dcfda](https://github.com/mochajs/mocha/commit/54dcfda422f5260a2a9705c04213db7f37ac7e75)) * **deps:** update dependency webpack-cli to v7 ([#5871](https://github.com/mochajs/mocha/issues/5871)) ([9d367e1](https://github.com/mochajs/mocha/commit/9d367e1d31fc03cb744979665a3252aaf47259b4)) * **deps:** update googleapis/release-please-action action to v5 ([#5929](https://github.com/mochajs/mocha/issues/5929)) ([f32085f](https://github.com/mochajs/mocha/commit/f32085ff2e9794b329b45f06761e710a5baeb4f8)) * **dev-deps:** upgrade `webpack` from v6 to v7 + remove obsolete `fail-on-errors-webpack-plugin` ([#5908](https://github.com/mochajs/mocha/issues/5908)) ([103ad41](https://github.com/mochajs/mocha/commit/103ad416546bc33804c680cde46de4d0b9ff1c9a)) * document CJS and MJS config file priority ([#5923](https://github.com/mochajs/mocha/issues/5923)) ([09a1106](https://github.com/mochajs/mocha/commit/09a11062c701b6776937e3f9b53fd879f71b608c)) * fix Knip issues ([#5919](https://github.com/mochajs/mocha/issues/5919)) ([1b3d604](https://github.com/mochajs/mocha/commit/1b3d60429e484bde837b86e6eb12b497e2c73c40)) * migrate core interfaces and utilities to ESM ([#5930](https://github.com/mochajs/mocha/issues/5930)) ([1ad23ab](https://github.com/mochajs/mocha/commit/1ad23ab544ac7344b0e2840ce91e0817ce71079a)) * migrate reporters to ESM ([#5928](https://github.com/mochajs/mocha/issues/5928)) ([f6a62ca](https://github.com/mochajs/mocha/commit/f6a62cae13bf84dda64d1e12978ace049af89369)) * remove unused legacy `errors.js` functions ([#5835](https://github.com/mochajs/mocha/issues/5835)) ([4116368](https://github.com/mochajs/mocha/commit/41163689264c3ae80c25d168954532b10337aa75)) * tag alpha releases as `alpha`, not `next` ([#5951](https://github.com/mochajs/mocha/issues/5951)) ([8e29413](https://github.com/mochajs/mocha/commit/8e29413678a36a87f41ba4730af3db6507f1b719)), closes [#5947](https://github.com/mochajs/mocha/issues/5947) ## [12.0.0-beta-9.3](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.2...v12.0.0-beta-9.3) (2026-04-28) ### 🩹 Fixes * begin running tests immediately instead of waiting for watcher, reload required files in watch mode ([#5409](https://github.com/mochajs/mocha/issues/5409)) ([7d9ade6](https://github.com/mochajs/mocha/commit/7d9ade6bffbe09959d4e8acaf33dd22b4edb2b39)) * **deps:** update dependency diff to v9 ([#5917](https://github.com/mochajs/mocha/issues/5917)) ([fbd831e](https://github.com/mochajs/mocha/commit/fbd831e9c93e2a704bfa5dca587eb3e664569414)) * support file: URLs in loadFilesAsync ([#5833](https://github.com/mochajs/mocha/issues/5833)) ([f9f9436](https://github.com/mochajs/mocha/commit/f9f9436aadc68ab496a30e5d9b7ffb72dfe4c32b)), closes [#4993](https://github.com/mochajs/mocha/issues/4993) * support modern RegExp flags in Mocha#grep ([#5825](https://github.com/mochajs/mocha/issues/5825)) ([35413b6](https://github.com/mochajs/mocha/commit/35413b661023ff3e5e27b120843ee2ebf5902aa4)) ### πŸ“š Documentation * agent instructions to help review agents ([#5839](https://github.com/mochajs/mocha/issues/5839)) ([badac5b](https://github.com/mochajs/mocha/commit/badac5b1632235d40ec77fe0365690076ae5e1ae)) * clarify --delay option behavior ([#5862](https://github.com/mochajs/mocha/issues/5862)) ([0b88137](https://github.com/mochajs/mocha/commit/0b88137c7d72c11e0dcc0b7b73661061ad8bac8c)) * clarify that parallel mode does not provide test isolation ([#5864](https://github.com/mochajs/mocha/issues/5864)) ([274c3d2](https://github.com/mochajs/mocha/commit/274c3d268bd4703d8b1416038eae27e068a0b5b4)) * document parent directory lookup for config files ([#5861](https://github.com/mochajs/mocha/issues/5861)) ([e7a98ef](https://github.com/mochajs/mocha/commit/e7a98ef8c232448e44e4e239294e7117df1cee4d)) * fix various typos in source and documentation ([#5834](https://github.com/mochajs/mocha/issues/5834)) ([e15bbda](https://github.com/mochajs/mocha/commit/e15bbdacebdc8651d0bfcb2a0c16bfeb367911e5)) * modernize code examples ([#5687](https://github.com/mochajs/mocha/issues/5687)) ([9c4966a](https://github.com/mochajs/mocha/commit/9c4966a47e7d503fb77704d7559ecab5ce399234)) ### 🧹 Chores * add transient error note to Release Please workflow ([#5847](https://github.com/mochajs/mocha/issues/5847)) ([7288278](https://github.com/mochajs/mocha/commit/7288278faec3f8d021cd6dcc4f4d0d7b4ccc2e75)) * convert commands, init, and lookup-files to ESM ([#5891](https://github.com/mochajs/mocha/issues/5891)) ([46d09d1](https://github.com/mochajs/mocha/commit/46d09d1a8e259300e09b3bc546894878290acac8)) * convert context, hook, and stats-collector to ESM ([#5853](https://github.com/mochajs/mocha/issues/5853)) ([5ac4070](https://github.com/mochajs/mocha/commit/5ac40707fd219c5623eac5802853022d0e8c1a05)) * convert highlight-tags and parse-query to ESM ([#5855](https://github.com/mochajs/mocha/issues/5855)) ([aad7997](https://github.com/mochajs/mocha/commit/aad799751af28d0979d72e21c1d2a9c183cab46c)) * convert node-flags and options to ESM, fix ESLint issue ([#5900](https://github.com/mochajs/mocha/issues/5900)) ([cd2e461](https://github.com/mochajs/mocha/commit/cd2e46160196fae35b86c3880f70c6d598b94d7f)) * **deps:** update dependency @eslint/markdown to v8 ([#5845](https://github.com/mochajs/mocha/issues/5845)) ([bd05089](https://github.com/mochajs/mocha/commit/bd05089ea6d5c68952b3e881be846d9321277ca9)) * **deps:** update dependency eslint to v10.2.0 ([#5884](https://github.com/mochajs/mocha/issues/5884)) ([2829fe3](https://github.com/mochajs/mocha/commit/2829fe3824fc5b1b06215b23599cbab06972888b)) * **deps:** update dependency globals to v17.5.0 ([#5914](https://github.com/mochajs/mocha/issues/5914)) ([96eaa7c](https://github.com/mochajs/mocha/commit/96eaa7c32a3dfb538f63f9fe717e13da739229da)) * **deps:** update dependency knip to v6.3.1 ([#5892](https://github.com/mochajs/mocha/issues/5892)) ([a2675f1](https://github.com/mochajs/mocha/commit/a2675f15e0043d06bf0d19cf98e28def2294ed0b)) * **deps:** update dependency knip to v6.4.0 ([#5901](https://github.com/mochajs/mocha/issues/5901)) ([17ce208](https://github.com/mochajs/mocha/commit/17ce2081912a2e3fbff949469da400c14a1d9529)) * **deps:** update dependency knip to v6.5.0 ([#5916](https://github.com/mochajs/mocha/issues/5916)) ([34465f6](https://github.com/mochajs/mocha/commit/34465f65c0ae0fbdd7c157ba99782da0bbfe27df)) * **deps:** update dependency unexpected-sinon to v11 ([#5737](https://github.com/mochajs/mocha/issues/5737)) ([e652121](https://github.com/mochajs/mocha/commit/e652121271238f3eca117f465d3d4edad691fdc6)) * **deps:** update dependency webpack to v5.106.1 ([#5893](https://github.com/mochajs/mocha/issues/5893)) ([db85960](https://github.com/mochajs/mocha/commit/db85960a5fda4e9b25da9df5270f19321ec654e5)) * fix format workflow permissions for npm-script.yml ([#5903](https://github.com/mochajs/mocha/issues/5903)) ([88a9806](https://github.com/mochajs/mocha/commit/88a9806f39da78110865a591a2cab6253a2a1ad6)) * fix formatting in lib/cli/lookup-files.mjs ([#5912](https://github.com/mochajs/mocha/issues/5912)) ([a3c3a1c](https://github.com/mochajs/mocha/commit/a3c3a1cb295cd177542846004eae735467b31122)) * fix line numbers in stack traces ([#5664](https://github.com/mochajs/mocha/issues/5664)) ([f49aca5](https://github.com/mochajs/mocha/commit/f49aca510c653ad408e8bd433ef190b868f54348)) * format AGENTS.md ([#5852](https://github.com/mochajs/mocha/issues/5852)) ([16497f2](https://github.com/mochajs/mocha/commit/16497f20f66266d6c8323e4bd2530b2b403f6e8b)) * inline `escape-string-regexp` (single-regex utility) ([#5883](https://github.com/mochajs/mocha/issues/5883)) ([25e6538](https://github.com/mochajs/mocha/commit/25e65385d849e33f33704785dd6058469bf25cca)) * migrate 5 unit test files from unexpected to chai ([#5896](https://github.com/mochajs/mocha/issues/5896)) ([fa06dde](https://github.com/mochajs/mocha/commit/fa06dde40cdbcd1bc6e98af19112b1a68a059a29)) * migrate lib/pending and lib/error-constants to ESM ([#5767](https://github.com/mochajs/mocha/issues/5767)) ([5aacbce](https://github.com/mochajs/mocha/commit/5aacbce08ff25ebe5991cc7ed85a4a8e13b5d3f5)) * upgrade site to Astro 6 ([#5913](https://github.com/mochajs/mocha/issues/5913)) ([1afd6c7](https://github.com/mochajs/mocha/commit/1afd6c7bd847f67c0a8f8e81000fd45ccec22d91)) ## [12.0.0-beta-9.2](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9.1...v12.0.0-beta-9.2) (2026-04-03) ### 🩹 Fixes * **deps:** update dependency workerpool to v10 ([#5751](https://github.com/mochajs/mocha/issues/5751)) ([96a4768](https://github.com/mochajs/mocha/commit/96a476831b2852e440357a450c3aebaec0bdb20f)) * use semver dot separator for beta pre-release versions (beta-X β†’ beta.X) ([#5764](https://github.com/mochajs/mocha/issues/5764)) ([5574738](https://github.com/mochajs/mocha/commit/557473828570f8883c55cb0e450f153f3f9f8f74)) ### πŸ“š Documentation * add "failing workaround" and new dash to sec-vuln-reports.mdx ([#5783](https://github.com/mochajs/mocha/issues/5783)) ([f9e553e](https://github.com/mochajs/mocha/commit/f9e553e1acd8d2b09be35ebfc13d2803e0a1ff14)) * add FAQ explainer for dependency security vulnerability reports ([#5691](https://github.com/mochajs/mocha/issues/5691)) ([2517693](https://github.com/mochajs/mocha/commit/2517693683fdd47471a0b6e442adde7487af8b89)) * add FAQ section to CONTRIBUTING.md for "can I work on this?" ([#5689](https://github.com/mochajs/mocha/issues/5689)) ([682c307](https://github.com/mochajs/mocha/commit/682c3076cb3c15530b05bbac265fece99e7db985)) * add major release strategy, fix typos ([#5551](https://github.com/mochajs/mocha/issues/5551)) ([ec0fe0d](https://github.com/mochajs/mocha/commit/ec0fe0d17401495ad01db3b5bc1adad1f5547009)) * cleanup third party UI code examples for issue 5570 ([#5784](https://github.com/mochajs/mocha/issues/5784)) ([8d86811](https://github.com/mochajs/mocha/commit/8d86811ecbba26750d2afb3cfab46c99b4bb9440)) * document AI-generated code policies ([#5693](https://github.com/mochajs/mocha/issues/5693)) ([3533316](https://github.com/mochajs/mocha/commit/353331663ff65239eb0c3b722978e8f88c773ba5)) * document many "external" services ([#5685](https://github.com/mochajs/mocha/issues/5685)) ([30f8fe6](https://github.com/mochajs/mocha/commit/30f8fe6599cd9e35f7853d7110333d979ff5810c)) * fix typo in configuring.mdx ([#5699](https://github.com/mochajs/mocha/issues/5699)) ([fdf1a11](https://github.com/mochajs/mocha/commit/fdf1a11338e5c446ba967dbd2b1324079c8077fc)) * Updates COC Policy To Match OpenJS Guidelines ([#5802](https://github.com/mochajs/mocha/issues/5802)) ([9029f66](https://github.com/mochajs/mocha/commit/9029f668e62a953b8ce52a4b9a479d457faab718)) ### 🧹 Chores * add Knip to docs-next, remove unused deps, and cleanup links ([#5726](https://github.com/mochajs/mocha/issues/5726)) ([a3908e9](https://github.com/mochajs/mocha/commit/a3908e9008c946f3bcc321c2ef630b587727fce4)) * add link from bug template to security explainer ([#5782](https://github.com/mochajs/mocha/issues/5782)) ([ab8fc25](https://github.com/mochajs/mocha/commit/ab8fc2504975c34792027cc681f1a96cd79a5b33)) * add workflow to handle stale items ([#5831](https://github.com/mochajs/mocha/issues/5831)) ([dd08f6f](https://github.com/mochajs/mocha/commit/dd08f6fab89e29f6f1c157fcf406fe6ceff40fb0)) * add workflow_dispatch to all workflows ([#5793](https://github.com/mochajs/mocha/issues/5793)) ([cca0a2c](https://github.com/mochajs/mocha/commit/cca0a2c9efa20719a2be233a5bd0d9256cc69964)) * **deps:** update actions/stale action to v10 ([#5842](https://github.com/mochajs/mocha/issues/5842)) ([e75b14f](https://github.com/mochajs/mocha/commit/e75b14fa87616ccafe329e4c21a32980dbf30990)) * **deps:** update dependency astro to v5.18.1 ([#5786](https://github.com/mochajs/mocha/issues/5786)) ([bf99e30](https://github.com/mochajs/mocha/commit/bf99e300510879259e04115d0961287a16bb3fae)) * **deps:** update dependency chai to v6 ([#5720](https://github.com/mochajs/mocha/issues/5720)) ([2e07be1](https://github.com/mochajs/mocha/commit/2e07be139e3ab89c0c882e51ed948d032af4edc5)) * **deps:** update dependency eslint to v10.1.0 ([#5827](https://github.com/mochajs/mocha/issues/5827)) ([2c8eeb0](https://github.com/mochajs/mocha/commit/2c8eeb0296aa9ed8e8acd5baba7de8a45126b591)) * **deps:** update dependency eslint-plugin-n to v17.24.0 ([#5798](https://github.com/mochajs/mocha/issues/5798)) ([bb66555](https://github.com/mochajs/mocha/commit/bb66555ea7e917041869faef1934b8ed26368ed2)) * **deps:** update dependency globals to v17 ([#5722](https://github.com/mochajs/mocha/issues/5722)) ([acf9357](https://github.com/mochajs/mocha/commit/acf93578cc6ca9e424f37410bd3b72d38f233aa7)) * **deps:** update dependency installed-check to v10 ([#5738](https://github.com/mochajs/mocha/issues/5738)) ([5905ed9](https://github.com/mochajs/mocha/commit/5905ed9c2c411dfa0e7189ce0d446b2e213422e3)) * **deps:** update dependency knip to v5.88.0 ([#5799](https://github.com/mochajs/mocha/issues/5799)) ([40ec9b8](https://github.com/mochajs/mocha/commit/40ec9b81403140c198d966f61d954ca5901e5382)) * **deps:** update dependency knip to v6 ([#5828](https://github.com/mochajs/mocha/issues/5828)) ([661f349](https://github.com/mochajs/mocha/commit/661f349ac29e4dbc32c9532ce25fdfd8ba996f01)) * **deps:** update dependency rollup to v4.59.0 ([#5813](https://github.com/mochajs/mocha/issues/5813)) ([1ef2020](https://github.com/mochajs/mocha/commit/1ef2020023163bd38386e466ab311ec2f5fc3b37)) * **deps:** update dependency rollup to v4.60.0 ([#5829](https://github.com/mochajs/mocha/issues/5829)) ([4ab5813](https://github.com/mochajs/mocha/commit/4ab581328166d828af939be99e69089996d99697)) * **deps:** update eslint monorepo to v10 (major) ([#5742](https://github.com/mochajs/mocha/issues/5742)) ([fe9dc01](https://github.com/mochajs/mocha/commit/fe9dc01850f1c191e758fd60a71d1db8b13cc968)) * **deps:** update joelwmale/webhook-action digest to 6cebc9d ([#5702](https://github.com/mochajs/mocha/issues/5702)) ([e61c8d5](https://github.com/mochajs/mocha/commit/e61c8d5ff69a91f039fd42bed7d7f4988740d0ca)) * **docs:** rename `docs-next` to `docs` ([#5770](https://github.com/mochajs/mocha/issues/5770)) ([39c15a8](https://github.com/mochajs/mocha/commit/39c15a8918e6ec8ebb11d4a2b2b3606b69da4745)) * fix supporters file extension in knip config ([#5796](https://github.com/mochajs/mocha/issues/5796)) ([53ca72f](https://github.com/mochajs/mocha/commit/53ca72ffcff8162a25a1a6cdb5a636faa0afce17)) * have `Tests` workflow ignore more relevant paths ([#5762](https://github.com/mochajs/mocha/issues/5762)) ([8e2cebe](https://github.com/mochajs/mocha/commit/8e2cebe14505ce62b0597c854bec217c60c00020)) * remove `global.setImmediate` fallback ([#5836](https://github.com/mochajs/mocha/issues/5836)) ([5e69d16](https://github.com/mochajs/mocha/commit/5e69d1659e0f20b8d1b83b6c188ae3e7a3dcf413)) * remove `repeat()` polyfill ([#5837](https://github.com/mochajs/mocha/issues/5837)) ([f988a80](https://github.com/mochajs/mocha/commit/f988a8054044593c7854e92f422014de621df63f)) * remove now-unused `utils.inherits` ([#5766](https://github.com/mochajs/mocha/issues/5766)) ([d0a636b](https://github.com/mochajs/mocha/commit/d0a636b5e9bd5a4b1c8864b91aec94f12f16490f)) * remove unused `libc` props from `package-lock.json` ([#5817](https://github.com/mochajs/mocha/issues/5817)) ([b0a89ce](https://github.com/mochajs/mocha/commit/b0a89ce5eb727cb1f09bb2bf19ec509a792cff54)) * remove unused fossaignore ([#5769](https://github.com/mochajs/mocha/issues/5769)) ([8a0eaf7](https://github.com/mochajs/mocha/commit/8a0eaf7997ca8f97676412e0e89c1a7df9c0b5c3)) * run tests when PR is retargeted ([#5761](https://github.com/mochajs/mocha/issues/5761)) ([3481b1e](https://github.com/mochajs/mocha/commit/3481b1e32c3ad85e38af9639fc39b53685dd1922)) * switch reporters from util.inherits to ES2015 classes ([#5180](https://github.com/mochajs/mocha/issues/5180)) ([c3f32ce](https://github.com/mochajs/mocha/commit/c3f32ce7e2f39d14beb325892953d3fb1c4922e6)) * switch Runnable, Hook, and Test from util.inherits to ES2015 classes ([#5178](https://github.com/mochajs/mocha/issues/5178)) ([1378fd8](https://github.com/mochajs/mocha/commit/1378fd86071a0c59c0a991569441fe398d0911d8)) * use `beta-9.1` instead of `beta.10` ([#5821](https://github.com/mochajs/mocha/issues/5821)) ([bc1eff2](https://github.com/mochajs/mocha/commit/bc1eff2e44d68c1e06bf3d64a649af96bb00c120)) ### πŸ€– Automation * **deps:** bump codecov/codecov-action in the github-actions group ([#5832](https://github.com/mochajs/mocha/issues/5832)) ([525b50a](https://github.com/mochajs/mocha/commit/525b50a2a3f4965b6f663bfba6b9d5dd4f0f5d01)) * **deps:** bump OctoGuide/bot in the github-actions group ([#5791](https://github.com/mochajs/mocha/issues/5791)) ([fb6bfd6](https://github.com/mochajs/mocha/commit/fb6bfd6425729a3516c60933298988a5711a6edc)) ## [12.0.0-beta-9.1](https://github.com/mochajs/mocha/compare/v12.0.0-beta-9...v12.0.0-beta-9.1) (2026-02-21) ### 🌟 Features * remove Sauce Labs ([#5700](https://github.com/mochajs/mocha/issues/5700)) ([625c34e](https://github.com/mochajs/mocha/commit/625c34e8469562dbde8440c2b4d64e820f7019fa)) ### 🩹 Fixes * change Pending to properly extend Error ([#5679](https://github.com/mochajs/mocha/issues/5679)) ([158effd](https://github.com/mochajs/mocha/commit/158effd7de677c21b3a4ccd79ce0879fe0f97f8b)) * **deps:** update dependency chokidar to v5 ([#5734](https://github.com/mochajs/mocha/issues/5734)) ([ff2f17f](https://github.com/mochajs/mocha/commit/ff2f17fb25e5001420d48035f81f5b19a5f0974f)) * **deps:** update dependency minimatch to v10 ([#5743](https://github.com/mochajs/mocha/issues/5743)) ([3f3e449](https://github.com/mochajs/mocha/commit/3f3e449f889cb2ddcf950e7bf2268091000b9f7c)) * **deps:** update dependency starlight-package-managers to ^0.12.0 ([#5717](https://github.com/mochajs/mocha/issues/5717)) ([aa4ba48](https://github.com/mochajs/mocha/commit/aa4ba483a4a25f5dfc36334439caf2b8935874d2)) ### πŸ“š Documentation * fix client redirects ([#5697](https://github.com/mochajs/mocha/issues/5697)) ([dd9145d](https://github.com/mochajs/mocha/commit/dd9145dd9c5a684aa918ca5ed10155293df2bb91)), closes [#5696](https://github.com/mochajs/mocha/issues/5696) ### 🧹 Chores * Configure Renovate ([#5678](https://github.com/mochajs/mocha/issues/5678)) ([a9c9b90](https://github.com/mochajs/mocha/commit/a9c9b90098a831d82e69d82bfc7ce8c7aa749911)) * **deps:** update dependency @rollup/plugin-alias to v6 ([#5718](https://github.com/mochajs/mocha/issues/5718)) ([267d751](https://github.com/mochajs/mocha/commit/267d751dd05270de4e18e0348584fbb12d90ce04)) * **deps:** update dependency @rollup/plugin-commonjs to v29 ([#5719](https://github.com/mochajs/mocha/issues/5719)) ([9ed4ee5](https://github.com/mochajs/mocha/commit/9ed4ee55d975281ea54f237d23666d7b0307a596)) * **deps:** update dependency astro to v5.17.1 ([#5703](https://github.com/mochajs/mocha/issues/5703)) ([ec3d1fa](https://github.com/mochajs/mocha/commit/ec3d1fa02e285a4430942942c11c376e63d395ca)) * **deps:** update dependency chai to v4.5.0 ([#5705](https://github.com/mochajs/mocha/issues/5705)) ([870f9f8](https://github.com/mochajs/mocha/commit/870f9f8df7d1f9cace40bfc29a9b5b79a26ccb4e)) * **deps:** update dependency cross-env to v10 ([#5721](https://github.com/mochajs/mocha/issues/5721)) ([20b7476](https://github.com/mochajs/mocha/commit/20b7476904592b356a48c3f89817e930c78f15cb)) * **deps:** update dependency knip to v5.83.1 ([#5708](https://github.com/mochajs/mocha/issues/5708)) ([d833413](https://github.com/mochajs/mocha/commit/d833413622807c91cc2dea243c2be3518e2fe10b)) * **deps:** update dependency npm-run-all2 to v8 ([#5727](https://github.com/mochajs/mocha/issues/5727)) ([e38e0ec](https://github.com/mochajs/mocha/commit/e38e0ec3dd91be11b2b999959e6245ec721168e3)) * **deps:** update dependency prettier to v3.8.1 ([#5709](https://github.com/mochajs/mocha/issues/5709)) ([2f98cfd](https://github.com/mochajs/mocha/commit/2f98cfd1e3e9fce8a3c1a645f99a6b4b3b69ea6c)) * **deps:** update dependency rimraf to v6 ([#5728](https://github.com/mochajs/mocha/issues/5728)) ([ba124e9](https://github.com/mochajs/mocha/commit/ba124e9161e5efd052df77dda50925c5666ccd6d)) * **deps:** update dependency rollup to v4.57.1 ([#5710](https://github.com/mochajs/mocha/issues/5710)) ([178749d](https://github.com/mochajs/mocha/commit/178749da1bee978b5ef109a253337ae88206365c)) * **deps:** update dependency unexpected-map to v3 ([#5736](https://github.com/mochajs/mocha/issues/5736)) ([c1f3379](https://github.com/mochajs/mocha/commit/c1f33798ab925c76c5f9a69dcb8c1ce71da2fbc9)) * **deps:** update dependency unist-util-visit to v5.1.0 ([#5711](https://github.com/mochajs/mocha/issues/5711)) ([7ede894](https://github.com/mochajs/mocha/commit/7ede8943ff8f7925b51d4e4a226ee76b0a77619d)) * **deps:** update dependency webdriverio to v9 ([#5739](https://github.com/mochajs/mocha/issues/5739)) ([ff334df](https://github.com/mochajs/mocha/commit/ff334df744c93f27c7cce08ced320833ee69cb2f)) * **deps:** update dependency webpack-cli to v6 ([#5741](https://github.com/mochajs/mocha/issues/5741)) ([95c9d75](https://github.com/mochajs/mocha/commit/95c9d75120078e4c1fbb87d23f4fd7ec1f8a5405)) * **deps:** update dependency workerpool to v9.3.4 ([#5715](https://github.com/mochajs/mocha/issues/5715)) ([c030a3b](https://github.com/mochajs/mocha/commit/c030a3bd4774db679ac8dc7d56e705975f1a1b6e)) * **deps:** update remark ([#5745](https://github.com/mochajs/mocha/issues/5745)) ([37a25f1](https://github.com/mochajs/mocha/commit/37a25f174e6f3f16cae34923b86ab7d2504985ce)) * fix timeout issue with some XUnit tests ([53cc467](https://github.com/mochajs/mocha/commit/53cc46755571ed53e32254fb7d896f599a1a7d1f)) * switch Suite from util.inherits to ES2015 classes ([#5179](https://github.com/mochajs/mocha/issues/5179)) ([1ce690e](https://github.com/mochajs/mocha/commit/1ce690e590ca7bff7f47b108d3a5cc61dde6aa1b)) ### πŸ€– Automation * **deps:** bump OctoGuide/bot in the github-actions group ([#5724](https://github.com/mochajs/mocha/issues/5724)) ([87224d8](https://github.com/mochajs/mocha/commit/87224d8400fa3b074f77a8ba1baadf7e0b99d864)) * run `npm audit fix` ([#5695](https://github.com/mochajs/mocha/issues/5695)) ([c7b00b0](https://github.com/mochajs/mocha/commit/c7b00b0e4f03583c4dcc407f28a5453df436f32b)) ## [12.0.0-beta-9](https://github.com/mochajs/mocha/compare/v12.0.0-beta-8...v12.0.0-beta-9) (2026-02-13) ### 🌟 Features * remove `log-symbols` dependency ([#5469](https://github.com/mochajs/mocha/issues/5469)) ([b92168f](https://github.com/mochajs/mocha/commit/b92168f5625be7343fb94d458d8a055cca8ff0a4)) ## [12.0.0-beta-8](https://github.com/mochajs/mocha/compare/v12.0.0-beta-7...v12.0.0-beta-8) (2026-02-06) ### 🧹 Chores * use OIDC to publish to npm ([#5681](https://github.com/mochajs/mocha/issues/5681)) ([5567aed](https://github.com/mochajs/mocha/commit/5567aed50a00b63074d5c7703c6d8196dee92088)) ## [12.0.0-beta-7](https://github.com/mochajs/mocha/compare/v12.0.0-beta-6...v12.0.0-beta-7) (2026-02-03) ### 🩹 Fixes * bump diff dependency to ^8.0.3 ([#5674](https://github.com/mochajs/mocha/issues/5674)) ([15fb31a](https://github.com/mochajs/mocha/commit/15fb31a8b25a4d03242e5c5f901ff3800889263e)) * print helpful message when internal CLI error happens ([#5344](https://github.com/mochajs/mocha/issues/5344)) ([1e11836](https://github.com/mochajs/mocha/commit/1e118367dbb27f558edb7389985cca97d6d7da4b)) ### πŸ“š Documentation * update sponsor image to be larger ([#5659](https://github.com/mochajs/mocha/issues/5659)) ([bbe2bdb](https://github.com/mochajs/mocha/commit/bbe2bdbb69f7aa560645a5ab2cbd596dd0b43448)) ### 🧹 Chores * move nyc config changes from package.json into .nycrc ([#5668](https://github.com/mochajs/mocha/issues/5668)) ([e923e40](https://github.com/mochajs/mocha/commit/e923e4063f6a24dcaf7c6d7c7a3c8be998cb7980)) * remove extra newline ([bbe2bdb](https://github.com/mochajs/mocha/commit/bbe2bdbb69f7aa560645a5ab2cbd596dd0b43448)) ## [12.0.0-beta-6](https://github.com/mochajs/mocha/compare/v12.0.0-beta-5...v12.0.0-beta-6) (2026-01-23) ### 🩹 Fixes * allow chain call timeout to override nested items timeout ([#5612](https://github.com/mochajs/mocha/issues/5612)) ([5525da6](https://github.com/mochajs/mocha/commit/5525da60cf8d2596e14ff5441ea518d47bd732da)) * import() fallback prevention ([#5647](https://github.com/mochajs/mocha/issues/5647)) ([6a78fa3](https://github.com/mochajs/mocha/commit/6a78fa39576ffb42700811661a94c9ac996707f2)) ### πŸ€– Automation * **deps:** bump OctoGuide/bot in the github-actions group ([#5653](https://github.com/mochajs/mocha/issues/5653)) ([e06cce7](https://github.com/mochajs/mocha/commit/e06cce7a49b79a163e33db166e9b078b0d7b4001)) ## [12.0.0-beta-5](https://github.com/mochajs/mocha/compare/v12.0.0-beta-4...v12.0.0-beta-5) (2026-01-16) ### 🌟 Features * add --fail-hook-affected-tests option to report skipped tests as failed ([#5519](https://github.com/mochajs/mocha/issues/5519)) ([0ed524a](https://github.com/mochajs/mocha/commit/0ed524af347b59200e03b972c2450d36f6818a45)) ### πŸ“š Documentation * add missing /next/* redirects ([#5627](https://github.com/mochajs/mocha/issues/5627)) ([8fa183d](https://github.com/mochajs/mocha/commit/8fa183d592b29346901b55e2fa479c8f598a1ec3)) ### 🧹 Chores * cleanup issue templates ([#5624](https://github.com/mochajs/mocha/issues/5624)) ([1972dd7](https://github.com/mochajs/mocha/commit/1972dd76ec66e8e11532bb6aca9157c4f8892d3c)) * remove unused assets folder ([#5638](https://github.com/mochajs/mocha/issues/5638)) ([ddf8644](https://github.com/mochajs/mocha/commit/ddf864482ff66b1ca46ef7f08e63ca923222e717)) * update spam filter ([#5645](https://github.com/mochajs/mocha/issues/5645)) ([cf945fb](https://github.com/mochajs/mocha/commit/cf945fb73b7c5a74f0856cabca5b5b1c8a6ff1c8)) * update tagline ([#5635](https://github.com/mochajs/mocha/issues/5635)) ([8ff0209](https://github.com/mochajs/mocha/commit/8ff0209db575c8231eea77e6ab23e6fe95620c92)) ### πŸ€– Automation * **deps:** bump OctoGuide/bot in the github-actions group ([#5648](https://github.com/mochajs/mocha/issues/5648)) ([fed6bbd](https://github.com/mochajs/mocha/commit/fed6bbdb891c518e61e8ef4bbf07ed46b469f860)) * **docs/dev-deps:** use JS-native `fetch` to get supporters data instead of external `needle` ([#5643](https://github.com/mochajs/mocha/issues/5643)) ([e37e56f](https://github.com/mochajs/mocha/commit/e37e56fbe6a1072f1784ef87278d46f7ac48cdb8)) * initial file implementation for ocotoguide ([#5608](https://github.com/mochajs/mocha/issues/5608)) ([a5f5c64](https://github.com/mochajs/mocha/commit/a5f5c6442505069573a17798a515f267c24a38f3)) ## [12.0.0-beta-4](https://github.com/mochajs/mocha/compare/v12.0.0-beta-3...v12.0.0-beta-4) (2026-01-04) ### 🌟 Features * ESM configuration file ([#5397](https://github.com/mochajs/mocha/issues/5397)) ([dff9d78](https://github.com/mochajs/mocha/commit/dff9d7873f2d47a799e0adef338a7d6045ba0731)) * migrate Markdown lint to `@eslint/markdown` ([#5593](https://github.com/mochajs/mocha/issues/5593)) ([d9e1f0a](https://github.com/mochajs/mocha/commit/d9e1f0aa7e39caa11edb81581c14cd02b3f40b3f)) ### 🩹 Fixes * remove `run` and use globalThis `setup` ([#5592](https://github.com/mochajs/mocha/issues/5592)) ([1544c39](https://github.com/mochajs/mocha/commit/1544c39dcd76916cca23a111c88eee8cbb781c24)) ### πŸ“š Documentation * fix v3_older changelog duplicate headings ([#5602](https://github.com/mochajs/mocha/issues/5602)) ([a750518](https://github.com/mochajs/mocha/commit/a7505180b64541ac71639ec3d1193f26e73527d9)) ### 🧹 Chores * **ci:** use OIDC token for trusted publishing to `npm` ([#5610](https://github.com/mochajs/mocha/issues/5610)) ([dc0fdb7](https://github.com/mochajs/mocha/commit/dc0fdb767fe46b885f7a0ccfb67acfb453156a3b)) * create exclusions for nyc ([#5609](https://github.com/mochajs/mocha/issues/5609)) ([702473a](https://github.com/mochajs/mocha/commit/702473a54d9348948a63b4600171afa6956ccb0b)) * **main:** release 12.0.0-beta-4 ([#5598](https://github.com/mochajs/mocha/issues/5598)) ([424516e](https://github.com/mochajs/mocha/commit/424516ed3c34c6716afbf554425cf5df439cd86c)) * prevent unwanted Prettier rewrites ([#5591](https://github.com/mochajs/mocha/issues/5591)) ([3ea1578](https://github.com/mochajs/mocha/commit/3ea15789ddb4b77c591d9da36d2476ac359de00d)) * remove broken browser-test.yml ([#5615](https://github.com/mochajs/mocha/issues/5615)) ([33ce345](https://github.com/mochajs/mocha/commit/33ce345f9ab4f47573a4994c5c01de6eda2af45d)) * remove legacy `docs/` ([#5583](https://github.com/mochajs/mocha/issues/5583)) ([d8c310e](https://github.com/mochajs/mocha/commit/d8c310e3eddd235be55ad1891cde84c3be6f56f3)) * revert "chore(main): release 12.0.0-beta-4 ([#5598](https://github.com/mochajs/mocha/issues/5598))" ([#5619](https://github.com/mochajs/mocha/issues/5619)) ([dba8091](https://github.com/mochajs/mocha/commit/dba809196541df415fac2681822f5cd35cf20442)) ### πŸ€– Automation * **dep:** update `diff` from v7 to v8 ([#5605](https://github.com/mochajs/mocha/issues/5605)) ([8ca311c](https://github.com/mochajs/mocha/commit/8ca311c6c9b0d353b1c9d65b5751296d9baddd83)) * update npm command for format ([#5603](https://github.com/mochajs/mocha/issues/5603)) ([c6a29cc](https://github.com/mochajs/mocha/commit/c6a29ccb38f81d65100cb2a0e6d73ad4303f58fb)) ## [12.0.0-beta-3](https://github.com/mochajs/mocha/compare/v12.0.0-beta-2...v12.0.0-beta-3) (2026-01-01) ### 🌟 Features * add mocha.mjs export ([#5527](https://github.com/mochajs/mocha/issues/5527)) ([e1cf23c](https://github.com/mochajs/mocha/commit/e1cf23cbc2049a375ab9980337dbf2486450f7cb)) * bump serialize-javascript from 6.0.2 to 7.0.2 ([#5589](https://github.com/mochajs/mocha/issues/5589)) ([24fb1b6](https://github.com/mochajs/mocha/commit/24fb1b6f8a45b4ca93b4577838bc1d9a47c74ec1)) * bump strip-json-comments from 3 to 5 ([#5484](https://github.com/mochajs/mocha/issues/5484)) ([9b0db24](https://github.com/mochajs/mocha/commit/9b0db24740c65717dcd1838dcafccbfc1c538d3b)) ### 🩹 Fixes * allow importing ESM interface and reporters ([#5563](https://github.com/mochajs/mocha/issues/5563)) ([bc9fc84](https://github.com/mochajs/mocha/commit/bc9fc842213d00cf7ac4a4b0de898bf29e38bdad)) * **docs-next:** backer's logo is consistent regardless of size ([#5594](https://github.com/mochajs/mocha/issues/5594)) ([1a53a10](https://github.com/mochajs/mocha/commit/1a53a100a4f3b83a725ccf3c166dcbefebca8602)) * surface ts-node compile errors ([#5572](https://github.com/mochajs/mocha/issues/5572)) ([add4cf8](https://github.com/mochajs/mocha/commit/add4cf8166b330c9af4342def643c606459331d7)) ### πŸ“š Documentation * bumped docs-next Astro to ^5.16.6 ([#5574](https://github.com/mochajs/mocha/issues/5574)) ([806222b](https://github.com/mochajs/mocha/commit/806222b0998ffb4d09399090f4ec638e90974427)) * fix light mode Astro accent text color ([#5585](https://github.com/mochajs/mocha/issues/5585)) ([9cc3ada](https://github.com/mochajs/mocha/commit/9cc3ada85b4ab4a4f2a8c7dc1b9d9ff8f101ffc1)) * update Contributor License Agreement link in CONTRIBUTING.md ([#5567](https://github.com/mochajs/mocha/issues/5567)) ([410ce0d](https://github.com/mochajs/mocha/commit/410ce0d2a0f799aaca2c0bc627294d70c62dd3f4)) ### 🧹 Chores * normalized ESLint config to v9's recommended structure ([#5575](https://github.com/mochajs/mocha/issues/5575)) ([7f9ed1f](https://github.com/mochajs/mocha/commit/7f9ed1fb3480e0658c2c7d84c60a1b505c941ce5)) * update Rollup to v4 ([#5510](https://github.com/mochajs/mocha/issues/5510)) ([cafa782](https://github.com/mochajs/mocha/commit/cafa782f010021e7055f8482ede2c02c6503f0a0)) ### πŸ€– Automation * **dev-deps:** upgrade `eslint` from v8 to v9 ([#5559](https://github.com/mochajs/mocha/issues/5559)) ([bb24ca8](https://github.com/mochajs/mocha/commit/bb24ca8fde15471ff68d5b01b74c2d7e6047d966)) * **dev-deps:** upgrade `markdownlint-cli` to latest v0.46.0 ([#5560](https://github.com/mochajs/mocha/issues/5560)) ([a124f1d](https://github.com/mochajs/mocha/commit/a124f1d3b7d0f8277962cae295cd43878294e183)) * **dev-deps:** upgrade `nyc` from 15 to 17 ([#5556](https://github.com/mochajs/mocha/issues/5556)) ([599ab01](https://github.com/mochajs/mocha/commit/599ab013f526e78b3888a092a928ea4bc67138c0)) ## [12.0.0-beta-2](https://github.com/mochajs/mocha/compare/v12.0.0-beta-1...v12.0.0-beta-2) (2025-11-25) ### 🧹 Chores * bump glob to version 13 ([#5546](https://github.com/mochajs/mocha/issues/5546)) ([f4d4ad2](https://github.com/mochajs/mocha/commit/f4d4ad23e9e994668c7d95c5a9bf59f581dccebf)) ## [12.0.0-beta-1](https://github.com/mochajs/mocha/compare/v11.7.4...v12.0.0-beta-1) (2025-11-25) ### ⚠ BREAKING CHANGES * cleanup references of --compilers ([#5403](https://github.com/mochajs/mocha/issues/5403)) * change the default of --forbid-only to check for process.env.CI ([#5496](https://github.com/mochajs/mocha/issues/5496)) * bump minimum Node.js version from 18.18.0 to 20.19.0 ([#5477](https://github.com/mochajs/mocha/issues/5477)) ### 🌟 Features * allow FIFOs as test files ([#5512](https://github.com/mochajs/mocha/issues/5512)) ([ca4af43](https://github.com/mochajs/mocha/commit/ca4af439d5766fdfb2b5a7d7e06db0280b1abb6e)) * bump minimum Node.js version from 18.18.0 to 20.19.0 ([#5477](https://github.com/mochajs/mocha/issues/5477)) ([1c34eef](https://github.com/mochajs/mocha/commit/1c34eef426f29e5e46ec348272ccaa869ae43922)) * change the default of --forbid-only to check for process.env.CI ([#5496](https://github.com/mochajs/mocha/issues/5496)) ([3d94dde](https://github.com/mochajs/mocha/commit/3d94ddea2f45d18473bf00e71db2b9766ab227fe)) * cleanup references of --compilers ([#5403](https://github.com/mochajs/mocha/issues/5403)) ([f75d150](https://github.com/mochajs/mocha/commit/f75d150cf6115334e7f14b8ee1fbbda04eb87087)) ### 🩹 Fixes * correct assertion import syntax in getting-started guide ([#5526](https://github.com/mochajs/mocha/issues/5526)) ([fb0215b](https://github.com/mochajs/mocha/commit/fb0215bd4fba44fde0cc7b8f9b91a4f07020a13b)) * handle empty null-prototyped objects ([#5506](https://github.com/mochajs/mocha/issues/5506)) ([2a0bce0](https://github.com/mochajs/mocha/commit/2a0bce02f6f696c74fb8fdcd9f72089e82935903)) ### πŸ“š Documentation * add maintainer expectations to MAINTAINERS.md ([#5514](https://github.com/mochajs/mocha/issues/5514)) ([76f95a1](https://github.com/mochajs/mocha/commit/76f95a1113ea0472800ff6b1781f2750836a6db7)) * migrate how-to wiki pages to main documentation ([#5463](https://github.com/mochajs/mocha/issues/5463)) ([b85aec6](https://github.com/mochajs/mocha/commit/b85aec6e4307903f31b2b8039dd749efc44ffcf5)) * migrate programmatic usage to docs, development content to DEVELOPMENT.md ([#5464](https://github.com/mochajs/mocha/issues/5464)) ([cb47925](https://github.com/mochajs/mocha/commit/cb47925f99b39bd66bdd09218395bf5e0a54802d)) * test/integration/README: remove ref to non-existent dir ([#5516](https://github.com/mochajs/mocha/issues/5516)) ([d2c2d40](https://github.com/mochajs/mocha/commit/d2c2d4026d0f6a09b96344f034e9cba9ee6277af)) ### 🧹 Chores * applied formatting to all files ([#5493](https://github.com/mochajs/mocha/issues/5493)) ([76d7194](https://github.com/mochajs/mocha/commit/76d719495d09dc4afb37d1179ede8911c52a011e)) * fix broken link in .github/CONTRIBUTING.md ([681e843](https://github.com/mochajs/mocha/commit/681e843800051a9d3ab66c1bfb7ad71428e34315)) * remove Node.js 18 from test-smoke in CI too ([d643105](https://github.com/mochajs/mocha/commit/d643105aa6f3fbac9d13e8a44f4c4c7302512193)) * switch from Coveralls to Codecov ([#5447](https://github.com/mochajs/mocha/issues/5447)) ([f4e7e54](https://github.com/mochajs/mocha/commit/f4e7e54eb285765d7c50bce9c501db2e1b1e22be)) * unpin node-version in release-please ([#5550](https://github.com/mochajs/mocha/issues/5550)) ([62c90cd](https://github.com/mochajs/mocha/commit/62c90cd2aea4c719d2014e7134b2a1d7c189fd7a)) * use `ps-list` instead of `pidtree` to remove wmic ([#5479](https://github.com/mochajs/mocha/issues/5479)) ([b2985b3](https://github.com/mochajs/mocha/commit/b2985b3428b4b88ca220a14a26e9eb7139e8d445)) ### πŸ€– Automation * **deps:** bump actions/checkout in the github-actions group ([#5547](https://github.com/mochajs/mocha/issues/5547)) ([561eb03](https://github.com/mochajs/mocha/commit/561eb039f7cfc36563a9583b17c7d4cb7ec30652)) * **deps:** bump actions/setup-node in the github-actions group ([#5503](https://github.com/mochajs/mocha/issues/5503)) ([9a70533](https://github.com/mochajs/mocha/commit/9a7053349589344236b20301de965030eaabfea9)) ## [11.7.4](https://github.com/mochajs/mocha/compare/v11.7.3...v11.7.4) (2025-10-01) ### 🩹 Fixes * watch mode using chokidar v4 ([#5379](https://github.com/mochajs/mocha/issues/5379)) ([c2667c3](https://github.com/mochajs/mocha/commit/c2667c3b3fca33c21306f59a1cca55bb7e1dac1f)) ### πŸ“š Documentation * migrate remaining legacy wiki pages to main documentation ([#5465](https://github.com/mochajs/mocha/issues/5465)) ([bff9166](https://github.com/mochajs/mocha/commit/bff91660733b71b124aad939538dee7747cfbeb8)) ### 🧹 Chores * remove trailing spaces ([#5475](https://github.com/mochajs/mocha/issues/5475)) ([7f68e5c](https://github.com/mochajs/mocha/commit/7f68e5c1565606bcebeb715b8591c52973d00dff)) ## [11.7.3](https://github.com/mochajs/mocha/compare/v11.7.2...v11.7.3) (2025-09-30) ### 🩹 Fixes * use original require() error for TS files if ERR_UNKNOWN_FILE_EXTENSION ([#5408](https://github.com/mochajs/mocha/issues/5408)) ([ebdbc48](https://github.com/mochajs/mocha/commit/ebdbc487693254498de62068c59e3e43d078eff1)) ### πŸ“š Documentation * add security escalation policy ([#5466](https://github.com/mochajs/mocha/issues/5466)) ([4122c7d](https://github.com/mochajs/mocha/commit/4122c7d13d0941be451365397fbf43e1f3103027)) * fix duplicate global leak documentation ([#5461](https://github.com/mochajs/mocha/issues/5461)) ([1164b9d](https://github.com/mochajs/mocha/commit/1164b9da895e56cf745acda2792e634080018ff6)) * migrate third party UIs wiki page to docs ([#5434](https://github.com/mochajs/mocha/issues/5434)) ([6654704](https://github.com/mochajs/mocha/commit/66547045cb9bd2fa8209b34c36da2a5ef49d23fc)) * update maintainer release notes for release-please ([#5453](https://github.com/mochajs/mocha/issues/5453)) ([185ae1e](https://github.com/mochajs/mocha/commit/185ae1eabe5c1e92c758bdfb398f7f47b6ef9483)) ### πŸ€– Automation * **deps:** bump actions/setup-node in the github-actions group ([#5459](https://github.com/mochajs/mocha/issues/5459)) ([48c6f40](https://github.com/mochajs/mocha/commit/48c6f4068b5d22ebc49220900f0b53f8ecdc2b74)) ## [11.7.2](https://github.com/mochajs/mocha/compare/v11.7.1...v11.7.2) (2025-09-01) ### 🩹 Fixes * fail with an informative error message on a file with a broken default import ([#5413](https://github.com/mochajs/mocha/issues/5413)) ([b0e6135](https://github.com/mochajs/mocha/commit/b0e61350594f2a044bf34ea153d1fab1e82e80cc)) * load mjs files correctly ([#5429](https://github.com/mochajs/mocha/issues/5429)) ([a947b9b](https://github.com/mochajs/mocha/commit/a947b9b95501a35efa73c18aa57a74dad555c03a)) ### πŸ“š Documentation * add banner from old site to new site, link from new to old ([#5414](https://github.com/mochajs/mocha/issues/5414)) ([dedef11](https://github.com/mochajs/mocha/commit/dedef110a2af2f8632fb6c1b864fa0a46ad6ca9c)) * add info on spies to legacy docs ([#5421](https://github.com/mochajs/mocha/issues/5421)) ([21f5544](https://github.com/mochajs/mocha/commit/21f554459c75f5a75b22556b6e2ac70d6ac0e9fc)) * explain node import swallowing error ([#5401](https://github.com/mochajs/mocha/issues/5401)) ([09f5b2c](https://github.com/mochajs/mocha/commit/09f5b2c9de67ef40d5bd1775c3fca3bdb138f371)) * fix links in new site ([#5416](https://github.com/mochajs/mocha/issues/5416)) ([b2bc769](https://github.com/mochajs/mocha/commit/b2bc769c6c8d87311ba0bdc9df8b9b588494eba5)) * migrate assertion libraries wiki link to main docs ([#5442](https://github.com/mochajs/mocha/issues/5442)) ([95f3ca8](https://github.com/mochajs/mocha/commit/95f3ca8bc3a6c6af2932f7fd59a404768c0c6693)) * migrate count assertions wiki page to docs ([#5438](https://github.com/mochajs/mocha/issues/5438)) ([02a306c](https://github.com/mochajs/mocha/commit/02a306c6cbf31f4eef7d4c9bf5e06c917d3efc11)) * migrate shared behaviours to docs-next ([#5432](https://github.com/mochajs/mocha/issues/5432)) ([1dc4aa9](https://github.com/mochajs/mocha/commit/1dc4aa98eb3793865fa2a4da3373534dafc1c9a7)) * migrate Spies wiki page to explainers ([#5420](https://github.com/mochajs/mocha/issues/5420)) ([cbcf007](https://github.com/mochajs/mocha/commit/cbcf007c5ae25f203863aac0b43eca1e8aefe093)) * Migrate tagging wiki page to docs ([#5435](https://github.com/mochajs/mocha/issues/5435)) ([876247a](https://github.com/mochajs/mocha/commit/876247a8a636cc7bb1c3bf31390e7771182a090a)) * migrate third party reporters wiki page to docs ([#5433](https://github.com/mochajs/mocha/issues/5433)) ([f70764c](https://github.com/mochajs/mocha/commit/f70764c9a56fcf12e316d5539788c7be0693b6a9)) * migrate to global leak wiki page to docs ([#5437](https://github.com/mochajs/mocha/issues/5437)) ([8a6fdca](https://github.com/mochajs/mocha/commit/8a6fdcafccd94c888fae5e8be47dd29a604241b6)) * update /next bug report link to be docs issue template ([#5424](https://github.com/mochajs/mocha/issues/5424)) ([668cb66](https://github.com/mochajs/mocha/commit/668cb66e1288051369ab144ccb50c840ebe34267)) ### 🧹 Chores * add issue form for ⚑️ Performance ([#5406](https://github.com/mochajs/mocha/issues/5406)) ([a908b3b](https://github.com/mochajs/mocha/commit/a908b3b86604d41d5751cccfaff505d7092c114f)) * add test for `-R import-only-loader` ([#5391](https://github.com/mochajs/mocha/issues/5391)) ([6ee5b48](https://github.com/mochajs/mocha/commit/6ee5b483b8c29e0593c7765ad7a5c7b7f7764fc3)) * also test Node.js 24 in CI ([#5405](https://github.com/mochajs/mocha/issues/5405)) ([15f5980](https://github.com/mochajs/mocha/commit/15f59805287f4c84ab8d057735a391a795be23f1)) * bump CI to use 20.19.4, 22.18.0, 24.6.0 ([#5430](https://github.com/mochajs/mocha/issues/5430)) ([ace5eb4](https://github.com/mochajs/mocha/commit/ace5eb47a7926fe9d56ebcd95fd659c557a5be4d)) * bump Knip to 5.61.2 ([#5394](https://github.com/mochajs/mocha/issues/5394)) ([f3d7430](https://github.com/mochajs/mocha/commit/f3d743061d6523f7077b21749089e6fb2f9c32e3)) * cleanup references of --opts ([#5402](https://github.com/mochajs/mocha/issues/5402)) ([1096b37](https://github.com/mochajs/mocha/commit/1096b376c3c3bb9d4256c643ad35a459ed750928)) * enabled ESLint's no-unused-vars ([#5399](https://github.com/mochajs/mocha/issues/5399)) ([d4168ae](https://github.com/mochajs/mocha/commit/d4168aef4c21f8fd119385da1cf1794a1ec5c2e1)) * move callback and object typedefs to a new types.d.ts ([#5351](https://github.com/mochajs/mocha/issues/5351)) ([3300d21](https://github.com/mochajs/mocha/commit/3300d2155a1b06059fbe89c98a1d8bf979539019)) * rewrite base path instead of copy-pasting ([#5431](https://github.com/mochajs/mocha/issues/5431)) ([c6c6740](https://github.com/mochajs/mocha/commit/c6c6740fb45da43510f86c1d22ea46ce9ee6a7ae)) * unify caught errors as err ([#5439](https://github.com/mochajs/mocha/issues/5439)) ([d4912e7](https://github.com/mochajs/mocha/commit/d4912e705cf9ae1c3aa274b6449a6a0ff6d408c5)) * Update experimental module detection test and pin exact Node versions ([#5417](https://github.com/mochajs/mocha/issues/5417)) ([2489090](https://github.com/mochajs/mocha/commit/2489090223f2629e4a380abe4cc6d46858ada922)) ### πŸ€– Automation * **deps:** bump actions/checkout in the github-actions group ([#5419](https://github.com/mochajs/mocha/issues/5419)) ([03ac2d0](https://github.com/mochajs/mocha/commit/03ac2d0e6e75e95b3dc7fb08f2e1a1117d9718ca)) ## [11.7.1](https://github.com/mochajs/mocha/compare/v11.7.0...v11.7.1) (2025-06-24) ### 🩹 Fixes * always fallback to import() if require() fails ([#5384](https://github.com/mochajs/mocha/issues/5384)) ([295c168](https://github.com/mochajs/mocha/commit/295c168628c2583245fb67d371b640309ba243ba)) ### 🧹 Chores * add esm loader test ([#5383](https://github.com/mochajs/mocha/issues/5383)) ([f58e49f](https://github.com/mochajs/mocha/commit/f58e49f08df2066e27f87f93ad7ee9cd6f91d225)) ## [11.7.0](https://github.com/mochajs/mocha/compare/v11.6.0...v11.7.0) (2025-06-18) ### 🌟 Features * use require to load esm ([#5366](https://github.com/mochajs/mocha/issues/5366)) ([41e24a2](https://github.com/mochajs/mocha/commit/41e24a242944da0cfc9d4d6989dede85f648cb40)) ## [11.6.0](https://github.com/mochajs/mocha/compare/v11.5.0...v11.6.0) (2025-06-09) ### 🌟 Features * bump workerpool from ^6.5.1 to ^9.2.0 ([#5350](https://github.com/mochajs/mocha/issues/5350)) ([581a3c5](https://github.com/mochajs/mocha/commit/581a3c554489855ac02860689d3f4ae772c2ea79)) ## [11.5.0](https://github.com/mochajs/mocha/compare/v11.4.0...v11.5.0) (2025-05-22) ### 🌟 Features * bump mimimatch from ^5.1.6 to ^9.0.5 ([#5349](https://github.com/mochajs/mocha/issues/5349)) ([a3dea85](https://github.com/mochajs/mocha/commit/a3dea85b316e229ea95f51c715ad61708e9ab9a3)) ## [11.4.0](https://github.com/mochajs/mocha/compare/v11.3.0...v11.4.0) (2025-05-19) ### 🌟 Features * bump diff from ^5.2.0 to ^7.0.0 ([#5348](https://github.com/mochajs/mocha/issues/5348)) ([554d6bb](https://github.com/mochajs/mocha/commit/554d6bbec92c3c938af0a533109749b6f3b7bd2c)) ### πŸ“š Documentation * added CHANGELOG.md note around 11.1 yargs-parser update ([#5362](https://github.com/mochajs/mocha/issues/5362)) ([618415d](https://github.com/mochajs/mocha/commit/618415d9c6fa3ef4e959207c8dd404f4703de7a7)) ## [11.3.0](https://github.com/mochajs/mocha/compare/v11.2.2...v11.3.0) (2025-05-16) ### 🌟 Features * add option to use posix exit code upon fatal signal ([#4989](https://github.com/mochajs/mocha/issues/4989)) ([91bbf85](https://github.com/mochajs/mocha/commit/91bbf855012ee9b83700d3c563b517483de0831c)) ### πŸ“š Documentation * Deploy new site alongside old one ([#5360](https://github.com/mochajs/mocha/issues/5360)) ([6c96545](https://github.com/mochajs/mocha/commit/6c96545aee03efeee78c55feedcf70664426514c)) * mention explicit browser support range ([#5354](https://github.com/mochajs/mocha/issues/5354)) ([c514c0b](https://github.com/mochajs/mocha/commit/c514c0bfad044f8450a63b2f9c6c781b9ce6f164)) * update Node.js version requirements for 11.x ([#5329](https://github.com/mochajs/mocha/issues/5329)) ([abf3dd9](https://github.com/mochajs/mocha/commit/abf3dd921544b45c4c09eef8f7c9c3c4481a3d66)) ### 🧹 Chores * remove prerelease setting in release-please config ([#5363](https://github.com/mochajs/mocha/issues/5363)) ([8878f22](https://github.com/mochajs/mocha/commit/8878f222c418a0bf4fe170c17573c30b5ea2d567)) ## [11.2.2](https://github.com/mochajs/mocha/compare/v11.2.1...v11.2.2) (2025-04-10) ### 🩹 Fixes * **deps:** update chokidar to v4 ([#5256](https://github.com/mochajs/mocha/issues/5256)) ([8af0f1a](https://github.com/mochajs/mocha/commit/8af0f1a9005a948fbefeb19be618a64dd910d39f)) ### πŸ“š Documentation * add ClientRedirects.astro ([#5324](https://github.com/mochajs/mocha/issues/5324)) ([b88d441](https://github.com/mochajs/mocha/commit/b88d441cc7616253892572778150998627d746ec)) * add example/tests.html to docs-next ([#5325](https://github.com/mochajs/mocha/issues/5325)) ([6ec5762](https://github.com/mochajs/mocha/commit/6ec5762edd419578e9d3ce2fcc2b8dedcb0caf06)) ## [11.2.1](https://github.com/mochajs/mocha/compare/v11.2.0...v11.2.1) (2025-04-10) ### 🩹 Fixes * switch from ansi-colors to picocolors ([#5323](https://github.com/mochajs/mocha/issues/5323)) ([7c08d09](https://github.com/mochajs/mocha/commit/7c08d0944d2255084bc4415238430b13c90f0df5)) ### πŸ“š Documentation * fix new website typos, improve readability ([#5312](https://github.com/mochajs/mocha/issues/5312)) ([fbceb19](https://github.com/mochajs/mocha/commit/fbceb19bbdad121f0100ec3434258775bd87aeaf)) ### 🧹 Chores * "force" Netlify to use npm to build new site ([#5319](https://github.com/mochajs/mocha/issues/5319)) ([3a46855](https://github.com/mochajs/mocha/commit/3a46855294f82e58a5a414aed3525e394b82aced)) * Fix tests ([#5320](https://github.com/mochajs/mocha/issues/5320)) ([18699a0](https://github.com/mochajs/mocha/commit/18699a0d668ed2654dd15433f03b74348baf9559)) ## [11.2.0](https://github.com/mochajs/mocha/compare/v11.1.0...v11.2.0) (2025-03-17) ### 🌟 Features * enable reporters to show relative paths of tests ([#5292](https://github.com/mochajs/mocha/issues/5292)) ([81ea666](https://github.com/mochajs/mocha/commit/81ea6667e9286c55ffa67977448b776a23c6da2d)) ### πŸ“š Documentation * add instructions for API docs ([#5287](https://github.com/mochajs/mocha/issues/5287)) ([b720ec1](https://github.com/mochajs/mocha/commit/b720ec1b3ca630a90f80311da391b2a0cdfead4e)) * add new website using Astro Starlight ([#5246](https://github.com/mochajs/mocha/issues/5246)) ([b1f1cb7](https://github.com/mochajs/mocha/commit/b1f1cb78b655191b7a43dc962b513bf1b076890c)) * improve third-party reporter docs ([#5285](https://github.com/mochajs/mocha/issues/5285)) ([c5a0ef5](https://github.com/mochajs/mocha/commit/c5a0ef523d52d8cab50e4a9b226af3790f54e75f)) ### 🧹 Chores * enabled eslint-plugin-n ([#5280](https://github.com/mochajs/mocha/issues/5280)) ([945d6e3](https://github.com/mochajs/mocha/commit/945d6e3bf5a9de19c3aa26fbdac966a721006b58)) * pin node-lts tests to 22.11.0 ([#5279](https://github.com/mochajs/mocha/issues/5279)) ([664e1f4](https://github.com/mochajs/mocha/commit/664e1f49f7ae214a9666c90f388407e9fa100309)) * replace `fs-extra` with newer `fs` built-ins ([#5284](https://github.com/mochajs/mocha/issues/5284)) ([75dcf8c](https://github.com/mochajs/mocha/commit/75dcf8c6c40ed1ce134ae5e174b6f4c4ca4d8c42)) ## [11.1.0](https://github.com/mochajs/mocha/compare/v11.0.2...v11.1.0) (2025-01-02) ### 🌟 Features * bump yargs to 17 ([#5165](https://github.com/mochajs/mocha/issues/5165)) ([8f1c8d8](https://github.com/mochajs/mocha/commit/8f1c8d888b0104afcd95ca55a517320399755749)) * Note that this also included a version bump of [`yargs-parser`](http://npmjs.com/package/yargs-parser) from `^20.2.9` to `^21.1.`, which fixed a bug that caused extra quotes in file paths to be removed. See [#5341](https://github.com/mochajs/mocha/issues/5341) for more information. * replace `strip-ansi` with `util.stripVTControlCharacters` ([#5267](https://github.com/mochajs/mocha/issues/5267)) ([3c191c0](https://github.com/mochajs/mocha/commit/3c191c05d9db1e99aec9b600edac2ce10a6b6d71)), closes [#5265](https://github.com/mochajs/mocha/issues/5265) ## [11.0.2](https://github.com/mochajs/mocha/compare/v11.0.1...v11.0.2) (2024-12-09) ### 🩹 Fixes * catch exceptions setting Error.stackTraceLimit ([#5254](https://github.com/mochajs/mocha/issues/5254)) ([259f8f8](https://github.com/mochajs/mocha/commit/259f8f8ba5709b5d84fa66e17cd10560a11f45c9)) * error handling for unexpected numeric arguments passed to cli ([#5263](https://github.com/mochajs/mocha/issues/5263)) ([210d658](https://github.com/mochajs/mocha/commit/210d658678a2ec3b6f85c59d4b300b4722671099)) ### πŸ“š Documentation * correct outdated `status: accepting prs` link ([#5268](https://github.com/mochajs/mocha/issues/5268)) ([f729cd0](https://github.com/mochajs/mocha/commit/f729cd09b61bb598409f19b3c76b9e9536812237)) * replace "New in" with "Since" in version annotations ([#5262](https://github.com/mochajs/mocha/issues/5262)) ([6f10d12](https://github.com/mochajs/mocha/commit/6f10d12c6c6dfa4df7d5221a3ce688f687aaf320)) ## [11.0.1](https://github.com/mochajs/mocha/compare/v11.0.0...v11.0.1) (2024-12-02) ### 🌟 Features * bumped glob dependency from 8 to 10 ([#5250](https://github.com/mochajs/mocha/issues/5250)) ([43c3157](https://github.com/mochajs/mocha/commit/43c3157c6ef4f2d4bfecf3ad3a42479fd64187b8)) ### πŸ“š Documentation * fix examples for `linkPartialObjects` methods ([#5255](https://github.com/mochajs/mocha/issues/5255)) ([34e0e52](https://github.com/mochajs/mocha/commit/34e0e52e047a9119aeae9cb5b660a8438656a1e0)) ## [11.0.0](https://github.com/mochajs/mocha/compare/v10.8.2...v11.0.0) (2024-11-11) ### ⚠ BREAKING CHANGES - adapt new engine range for Mocha 11 ([#5216](https://github.com/mochajs/mocha/issues/5216)) ### 🌟 Features - allow calling hook methods ([#5231](https://github.com/mochajs/mocha/issues/5231)) ([e3da641](https://github.com/mochajs/mocha/commit/e3da641b08bed20f12df524fc64cb9579f980c1e)) ### 🩹 Fixes - adapt new engine range for Mocha 11 ([#5216](https://github.com/mochajs/mocha/issues/5216)) ([80da25a](https://github.com/mochajs/mocha/commit/80da25a4132ca50d3ad35087cb62c9b0f8fc946a)) ### πŸ“š Documentation - downgrade example/tests chai to 4.5.0 ([#5245](https://github.com/mochajs/mocha/issues/5245)) ([eac87e1](https://github.com/mochajs/mocha/commit/eac87e10f49207a9b388f87d77d198583c6f889a)) ## [10.8.2](https://github.com/mochajs/mocha/compare/v10.8.1...v10.8.2) (2024-10-30) ### 🩹 Fixes - support errors with circular dependencies in object values with --parallel ([#5212](https://github.com/mochajs/mocha/issues/5212)) ([ba0fefe](https://github.com/mochajs/mocha/commit/ba0fefe10b08a689cf49edc3818026938aa3a240)) - test link in html reporter ([#5224](https://github.com/mochajs/mocha/issues/5224)) ([f054acc](https://github.com/mochajs/mocha/commit/f054acc1f60714bbe00ad1ab270fb4977836d045)) ### πŸ“š Documentation - indicate 'exports' interface does not work in browsers ([#5181](https://github.com/mochajs/mocha/issues/5181)) ([14e640e](https://github.com/mochajs/mocha/commit/14e640ee49718d587779a9594b18f3796c42cf2a)) ### 🧹 Chores - fix docs builds by re-adding eleventy and ignoring gitignore again ([#5240](https://github.com/mochajs/mocha/issues/5240)) ([881e3b0](https://github.com/mochajs/mocha/commit/881e3b0ca2e24284aab2a04f63639a0aa9e0ad1b)) ### πŸ€– Automation - **deps:** bump the github-actions group with 1 update ([#5132](https://github.com/mochajs/mocha/issues/5132)) ([e536ab2](https://github.com/mochajs/mocha/commit/e536ab25b308774e3103006c044cb996a2e17c87)) ## [10.8.1](https://github.com/mochajs/mocha/compare/v10.8.0...v10.8.1) (2024-10-29) ### 🩹 Fixes - handle case of invalid package.json with no explicit config ([#5198](https://github.com/mochajs/mocha/issues/5198)) ([f72bc17](https://github.com/mochajs/mocha/commit/f72bc17cb44164bcfff7abc83d0d37d99a061104)) - Typos on mochajs.org ([#5237](https://github.com/mochajs/mocha/issues/5237)) ([d8ca270](https://github.com/mochajs/mocha/commit/d8ca270a960554c9d5c5fbf264e89d668d01ff0d)) - use accurate test links in HTML reporter ([#5228](https://github.com/mochajs/mocha/issues/5228)) ([68803b6](https://github.com/mochajs/mocha/commit/68803b685d55dcccc51fa6ccfd27701cda4e26ed)) ## [10.8.0](https://github.com/mochajs/mocha/compare/v10.7.3...v10.8.0) (2024-10-29) ### 🌟 Features - highlight browser failures ([#5222](https://github.com/mochajs/mocha/issues/5222)) ([8ff4845](https://github.com/mochajs/mocha/commit/8ff48453a8b12d9cacf56b0c0c544c8256af64c7)) ### 🩹 Fixes - remove `:is()` from `mocha.css` to support older browsers ([#5225](https://github.com/mochajs/mocha/issues/5225)) ([#5227](https://github.com/mochajs/mocha/issues/5227)) ([0a24b58](https://github.com/mochajs/mocha/commit/0a24b58477ea8ad146afc798930800b02c08790a)) ### πŸ“š Documentation - add `SECURITY.md` pointing to Tidelift ([#5210](https://github.com/mochajs/mocha/issues/5210)) ([bd7e63a](https://github.com/mochajs/mocha/commit/bd7e63a1f6d98535ce1ed1ecdb57b3e4db8a33c5)) - adopt Collective Funds Guidelines 0.1 ([#5199](https://github.com/mochajs/mocha/issues/5199)) ([2b03d86](https://github.com/mochajs/mocha/commit/2b03d865eec63d627ff229e07d777f25061260d4)) - update README, LICENSE and fix outdated ([#5197](https://github.com/mochajs/mocha/issues/5197)) ([1203e0e](https://github.com/mochajs/mocha/commit/1203e0ed739bbbf12166078738357fdb29a8c000)) ### 🧹 Chores - fix npm scripts on windows ([#5219](https://github.com/mochajs/mocha/issues/5219)) ([1173da0](https://github.com/mochajs/mocha/commit/1173da0bf614e8d2a826687802ee8cbe8671ccf1)) - remove trailing whitespace in SECURITY.md ([7563e59](https://github.com/mochajs/mocha/commit/7563e59ae3c78ada305d26eadb86998ab54342da)) ## [10.7.3](https://github.com/mochajs/mocha/compare/v10.7.2...v10.7.3) (2024-08-09) ### 🩹 Fixes - make release-please build work ([#5194](https://github.com/mochajs/mocha/issues/5194)) ([afd66ef](https://github.com/mochajs/mocha/commit/afd66ef3df20fab51ce38b97216c09108e5c2bfd)) ## [10.7.2](https://github.com/mochajs/mocha/compare/v10.7.1...v10.7.2) (2024-08-06) ### πŸ“š Documentation - improve filtering ([#5191](https://github.com/mochajs/mocha/issues/5191)) ([1ac5b55](https://github.com/mochajs/mocha/commit/1ac5b552e3f32694d349023cb7f6196ba92b180e)) ### 🧹 Chores - fix failing markdown linting ([#5193](https://github.com/mochajs/mocha/issues/5193)) ([7e7a2ec](https://github.com/mochajs/mocha/commit/7e7a2ecb9bf8daba7e885a880bd8314b7b6fe07d)) ## [10.7.1](https://github.com/mochajs/mocha/compare/v10.7.0...v10.7.1) (2024-08-06) ### 🩹 Fixes - crash with --parallel and --retries both enabled ([#5173](https://github.com/mochajs/mocha/issues/5173)) ([d7013dd](https://github.com/mochajs/mocha/commit/d7013ddb1099cfafe66a1af9640370998290e62c)) ### 🧹 Chores - add knip to validate included dependencies ([5c2989f](https://github.com/mochajs/mocha/commit/5c2989fcc7ae17618d9db16d7c99e23dfb1d38ee)) - more fully remove assetgraph-builder and canvas ([#5175](https://github.com/mochajs/mocha/issues/5175)) ([1883c41](https://github.com/mochajs/mocha/commit/1883c41a49fad009bd407efc1bece3a5c75fd10a)) - replace `nps` with npm scripts ([#5128](https://github.com/mochajs/mocha/issues/5128)) ([c44653a](https://github.com/mochajs/mocha/commit/c44653a3a04b8418ec24a942fa7513a4673f3667)), closes [#5126](https://github.com/mochajs/mocha/issues/5126) ## 10.7.0 / 2024-07-20 ### :tada: Enhancements - [#4771](https://github.com/mochajs/mocha/pull/4771) feat: add option to not fail on failing test suite ([**@ilgonmic**](https://github.com/ilgonmic)) ## 10.6.1 / 2024-07-20 ### :bug: Fixes - [#3825](https://github.com/mochajs/mocha/pull/3825) fix: do not exit when only unref'd timer is present in test code ([**@boneskull**](https://github.com/boneskull)) - [#5040](https://github.com/mochajs/mocha/pull/5040) fix: support canonical module ([**@JacobLey**](https://github.com/JacobLey)) ## 10.6.0 / 2024-07-02 ### :tada: Enhancements - [#5150](https://github.com/mochajs/mocha/pull/5150) feat: allow ^ versions for character encoding packages ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5151](https://github.com/mochajs/mocha/pull/5151) feat: allow ^ versions for file matching packages ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5152](https://github.com/mochajs/mocha/pull/5152) feat: allow ^ versions for yargs packages ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5153](https://github.com/mochajs/mocha/pull/5153) feat: allow ^ versions for data serialization packages ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5154](https://github.com/mochajs/mocha/pull/5154) feat: allow ^ versions for miscellaneous packages ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) ## 10.5.2 / 2024-06-25 ### :bug: Fixes - [#5032](https://github.com/mochajs/mocha/pull/5032) fix: better tracking of seen objects in error serialization ([**@sam-super**](https://github.com/sam-super)) ## 10.5.1 / 2024-06-24 ### :bug: Fixes - [#5086](https://github.com/mochajs/mocha/pull/5086) fix: Add error handling for nonexistent file case with --file option ([**@khoaHyh**](https://github.com/khoaHyh)) ## 10.5.0 / 2024-06-24 ### :tada: Enhancements - [#5015](https://github.com/mochajs/mocha/pull/5015) feat: use \ and \ for browser progress indicator instead of \ ([**@yourWaifu**](https://github.com/yourWaifu)) - [#5143](https://github.com/mochajs/mocha/pull/5143) feat: allow using any 3.x chokidar dependencies ([**@simhnna**](https://github.com/simhnna)) - [#4835](https://github.com/mochajs/mocha/pull/4835) feat: add MOCHA\_OPTIONS env variable ([**@icholy**](https://github.com/icholy)) ### :bug: Fixes - [#5107](https://github.com/mochajs/mocha/pull/5107) fix: include stack in browser uncaught error reporting ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) ### :nut\_and\_bolt: Other - [#5110](https://github.com/mochajs/mocha/pull/5110) chore: switch two-column list styles to be opt-in ([**@marjys**](https://github.com/marjys)) - [#5135](https://github.com/mochajs/mocha/pull/5135) chore: fix some typos in comments ([**@StevenMia**](https://github.com/StevenMia)) - [#5130](https://github.com/mochajs/mocha/pull/5130) chore: rename 'master' to 'main' in docs and tooling ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) ## 10.4.0 / 2024-03-26 ### :tada: Enhancements - [#4829](https://github.com/mochajs/mocha/pull/4829) feat: include `.cause` stacks in the error stack traces ([**@voxpelli**](https://github.com/voxpelli)) - [#4985](https://github.com/mochajs/mocha/pull/4985) feat: add file path to xunit reporter ([**@bmish**](https://github.com/bmish)) ### :bug: Fixes - [#5074](https://github.com/mochajs/mocha/pull/5074) fix: harden error handling in `lib/cli/run.js` ([**@stalet**](https://github.com/stalet)) ### :nut\_and\_bolt: Other - [#5077](https://github.com/mochajs/mocha/pull/5077) chore: add mtfoley/pr-compliance-action ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5060](https://github.com/mochajs/mocha/pull/5060) chore: migrate ESLint config to flat config ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5095](https://github.com/mochajs/mocha/pull/5095) chore: revert [#5069](https://github.com/mochajs/mocha/pull/5069) to restore Netlify builds ([**@voxpelli**](https://github.com/voxpelli)) - [#5097](https://github.com/mochajs/mocha/pull/5097) docs: add sponsored to sponsorship link rels ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5093](https://github.com/mochajs/mocha/pull/5093) chore: add 'status: in triage' label to issue templates and docs ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5083](https://github.com/mochajs/mocha/pull/5083) docs: fix CHANGELOG.md headings to start with a root-level h1 ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5100](https://github.com/mochajs/mocha/pull/5100) chore: fix header generation and production build crashes ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5104](https://github.com/mochajs/mocha/pull/5104) chore: bump ESLint ecmaVersion to 2020 ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5116](https://github.com/mochajs/mocha/pull/5116) fix: eleventy template builds crash with 'unexpected token at ": string, msg..."' ([**@LcsK**](https://github.com/LcsK)) - [#4869](https://github.com/mochajs/mocha/pull/4869) docs: fix documentation concerning glob expansion on UNIX ([**@binki**](https://github.com/binki)) - [#5122](https://github.com/mochajs/mocha/pull/5122) test: fix xunit integration test ([**@voxpelli**](https://github.com/voxpelli)) - [#5123](https://github.com/mochajs/mocha/pull/5123) chore: activate dependabot for workflows ([**@voxpelli**](https://github.com/voxpelli)) - [#5125](https://github.com/mochajs/mocha/pull/5125) build(deps): bump the github-actions group with 2 updates ([**@dependabot**](https://github.com/dependabot)) ## 10.3.0 / 2024-02-08 This is a stable release equivalent to [10.30.0-prerelease](#1030-prerelease--2024-01-18). ## 10.3.0-prerelease / 2024-01-18 This is a prerelease version to test our ability to release. Other than removing or updating dependencies, it contains no intended user-facing changes. ### :nut\_and\_bolt: Other - [#5069](https://github.com/mochajs/mocha/pull/5069): chore: remove unnecessary canvas dependency ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5068](https://github.com/mochajs/mocha/pull/5068): fix: add alt text to Built with Netlify badge ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5056](https://github.com/mochajs/mocha/pull/5056): chore: inline nyan reporter's write function ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5050](https://github.com/mochajs/mocha/pull/5050): docs: touchups to labels and a template title post-revamp ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5038](https://github.com/mochajs/mocha/pull/5038): docs: overhaul contributing and maintenance docs for end-of-year 2023 ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5029](https://github.com/mochajs/mocha/pull/5029): chore: remove stale workflow ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#5024](https://github.com/mochajs/mocha/pull/5024): chore: remove nanoid as dependency ([**@Uzlopak**](https://github.com/Uzlopak)) - [#5023](https://github.com/mochajs/mocha/pull/5023): chore: remove touch as dev dependency ([**@Uzlopak**](https://github.com/Uzlopak)) - [#5022](https://github.com/mochajs/mocha/pull/5022): chore: remove uuid dev dependency ([**@Uzlopak**](https://github.com/Uzlopak)) - [#5021](https://github.com/mochajs/mocha/pull/5021): update can-i-use ([**@Uzlopak**](https://github.com/Uzlopak)) - [#5020](https://github.com/mochajs/mocha/pull/5020): chore: fix the ci ([**@Uzlopak**](https://github.com/Uzlopak)) - [#4974](https://github.com/mochajs/mocha/pull/4974): Add Node v19 to test matrix ([**@juergba**](https://github.com/juergba)) - [#4970](https://github.com/mochajs/mocha/pull/4970): fix [#4837](https://github.com/mochajs/mocha/issues/4837) Update glob due to vulnerability in dep ([**@jb2311**](https://github.com/jb2311)) - [#4962](https://github.com/mochajs/mocha/pull/4962): Fix deprecated warn gh actions ([**@outsideris**](https://github.com/outsideris)) - [#4927](https://github.com/mochajs/mocha/pull/4927): docs: use mocha.js instead of mocha in the example run ([**@nikolas**](https://github.com/nikolas)) - [#4918](https://github.com/mochajs/mocha/pull/4918): docs: fix fragment ID for yargs' "extends" documentation ([**@Spencer-Doak**](https://github.com/Spencer-Doak)) - [#4886](https://github.com/mochajs/mocha/pull/4886): docs: fix jsdoc return type of titlePath method ([**@F3n67u**](https://github.com/F3n67u)) ## 10.2.0 / 2022-12-11 ### :tada: Enhancements - [#4945](https://github.com/mochajs/mocha/issues/4945): API: add possibility to decorate ESM name before import ([**@j0tunn**](https://github.com/j0tunn)) ### :bug: Fixes - [#4946](https://github.com/mochajs/mocha/issues/4946): Browser: color of failed test icon ([**@kleisauke**](https://github.com/kleisauke)) ### :book: Documentation - [#4944](https://github.com/mochajs/mocha/issues/4944): Remove duplicated header ([**@PauloGoncalvesBH**](https://github.com/PauloGoncalvesBH)) ## 10.1.0 / 2022-10-16 ### :tada: Enhancements - [#4896](https://github.com/mochajs/mocha/issues/4896): Browser: add support for `prefers-color-scheme: dark` ([**@greggman**](https://github.com/greggman)) ### :nut\_and\_bolt: Other - [#4912](https://github.com/mochajs/mocha/issues/4912): Browser: increase contrast for replay buttons ([**@JoshuaKGoldberg**](https://github.com/JoshuaKGoldberg)) - [#4905](https://github.com/mochajs/mocha/issues/4905): Use standard `Promise.allSettled` instead of polyfill ([**@outsideris**](https://github.com/outsideris)) - [#4899](https://github.com/mochajs/mocha/issues/4899): Upgrade official GitHub actions to latest ([**@ddzz**](https://github.com/ddzz)) - [#4770](https://github.com/mochajs/mocha/issues/4770): Fix regex in function `clean`([**@yetingli**](https://github.com/yetingli)) ## 10.0.0 / 2022-05-01 ### :boom: Breaking Changes - [#4845](https://github.com/mochajs/mocha/issues/4845): **Drop Node.js v12.x support** ([**@juergba**](https://github.com/juergba)) - [#4848](https://github.com/mochajs/mocha/issues/4848): Drop Internet-Explorer-11 support ([**@juergba**](https://github.com/juergba)) - [#4857](https://github.com/mochajs/mocha/issues/4857): Drop AMD/RequireJS support ([**@juergba**](https://github.com/juergba)) - [#4866](https://github.com/mochajs/mocha/issues/4866): Drop Growl notification support ([**@juergba**](https://github.com/juergba)) - [#4863](https://github.com/mochajs/mocha/issues/4863): Rename executable `bin/mocha` to `bin/mocha.js` ([**@juergba**](https://github.com/juergba)) - [#4865](https://github.com/mochajs/mocha/issues/4865): `--ignore` option in Windows: upgrade Minimatch ([**@juergba**](https://github.com/juergba)) - [#4861](https://github.com/mochajs/mocha/issues/4861): Remove deprecated `Runner` signature ([**@juergba**](https://github.com/juergba)) ### :nut\_and\_bolt: Other - [#4878](https://github.com/mochajs/mocha/issues/4878): Update production dependencies ([**@juergba**](https://github.com/juergba)) - [#4876](https://github.com/mochajs/mocha/issues/4876): Add Node.js v18 to CI test matrix ([**@outsideris**](https://github.com/outsideris)) - [#4852](https://github.com/mochajs/mocha/issues/4852): Replace deprecated `String.prototype.substr()` ([**@CommanderRoot**](https://github.com/CommanderRoot)) Also thanks to [**@ea2305**](https://github.com/ea2305) and [**@SukkaW**](https://github.com/SukkaW) for improvements to our documentation. ## 9.2.2 / 2022-03-11 ### :bug: Fixes - [#4842](https://github.com/mochajs/mocha/issues/4842): Loading of reporter throws wrong error ([**@juergba**](https://github.com/juergba)) - [#4839](https://github.com/mochajs/mocha/issues/4839): `dry-run`: prevent potential call-stack crash ([**@juergba**](https://github.com/juergba)) ### :nut\_and\_bolt: Other - [#4843](https://github.com/mochajs/mocha/issues/4843): Update production dependencies ([**@juergba**](https://github.com/juergba)) ## 9.2.1 / 2022-02-19 ### :bug: Fixes - [#4832](https://github.com/mochajs/mocha/issues/4832): Loading of config files throws wrong error ([**@juergba**](https://github.com/juergba)) - [#4799](https://github.com/mochajs/mocha/issues/4799): Reporter: configurable `maxDiffSize` reporter-option ([**@norla**](https://github.com/norla)) ## 9.2.0 / 2022-01-24 ### :tada: Enhancements - [#4813](https://github.com/mochajs/mocha/issues/4813): Parallel: assign each worker a worker-id ([**@forty**](https://github.com/forty)) ### :nut\_and\_bolt: Other - [#4818](https://github.com/mochajs/mocha/issues/4818): Update production dependencies ([**@juergba**](https://github.com/juergba)) ## 9.1.4 / 2022-01-14 ### :bug: Fixes - [#4807](https://github.com/mochajs/mocha/issues/4807): `import` throws wrong error if loader is used ([**@giltayar**](https://github.com/giltayar)) ### :nut\_and\_bolt: Other - [#4777](https://github.com/mochajs/mocha/issues/4777): Add Node v17 to CI test matrix ([**@outsideris**](https://github.com/outsideris)) ## 9.1.3 / 2021-10-15 ### :bug: Fixes - [#4769](https://github.com/mochajs/mocha/issues/4769): Browser: re-enable `bdd` ES6 style import ([**@juergba**](https://github.com/juergba)) ### :nut\_and\_bolt: Other - [#4764](https://github.com/mochajs/mocha/issues/4764): Revert deprecation of `EVENT_SUITE_ADD_*` events ([**@beatfactor**](https://github.com/beatfactor)) ## 9.1.2 / 2021-09-25 ### :bug: Fixes - [#4746](https://github.com/mochajs/mocha/issues/4746): Browser: stop using all global vars in `browser-entry.js` ([**@PaperStrike**](https://github.com/PaperStrike)) ### :nut\_and\_bolt: Other - [#4754](https://github.com/mochajs/mocha/issues/4754): Remove dependency wide-align ([**@juergba**](https://github.com/juergba)) - [#4736](https://github.com/mochajs/mocha/issues/4736): ESM: remove code for Node versions <10 ([**@juergba**](https://github.com/juergba)) ## 9.1.1 / 2021-08-28 ### :bug: Fixes - [#4623](https://github.com/mochajs/mocha/issues/4623): `XUNIT` and `JSON` reporter crash in `parallel` mode ([**@curtisman**](https://github.com/curtisman)) ## 9.1.0 / 2021-08-20 ### :tada: Enhancements - [#4716](https://github.com/mochajs/mocha/issues/4716): Add new option `--fail-zero` ([**@juergba**](https://github.com/juergba)) - [#4691](https://github.com/mochajs/mocha/issues/4691): Add new option `--node-option` ([**@juergba**](https://github.com/juergba)) - [#4607](https://github.com/mochajs/mocha/issues/4607): Add output option to `JSON` reporter ([**@dorny**](https://github.com/dorny)) ## 9.0.3 / 2021-07-25 ### :bug: Fixes - [#4702](https://github.com/mochajs/mocha/issues/4702): Error rethrow from cwd-relative path while loading `.mocharc.js` ([**@kirill-golovan**](https://github.com/kirill-golovan)) - [#4688](https://github.com/mochajs/mocha/issues/4688): Usage of custom interface in parallel mode ([**@juergba**](https://github.com/juergba)) - [#4687](https://github.com/mochajs/mocha/issues/4687): ESM: don't swallow `MODULE_NOT_FOUND` errors in case of `type:module` ([**@giltayar**](https://github.com/giltayar)) ## 9.0.2 / 2021-07-03 ### :bug: Fixes - [#4668](https://github.com/mochajs/mocha/issues/4668): ESM: make `--require ` work with new `import`-first loading ([**@giltayar**](https://github.com/giltayar)) ### :nut\_and\_bolt: Other - [#4674](https://github.com/mochajs/mocha/issues/4674): Update production dependencies ([**@juergba**](https://github.com/juergba)) ## 9.0.1 / 2021-06-18 ### :nut\_and\_bolt: Other - [#4657](https://github.com/mochajs/mocha/issues/4657): Browser: add separate bundle for modern browsers ([**@juergba**](https://github.com/juergba)) We added a separate browser bundle `mocha-es2018.js` in javascript ES2018, as we skipped the transpilation down to ES5. This is an **experimental step towards freezing Mocha's support of IE11**. - [#4653](https://github.com/mochajs/mocha/issues/4653): ESM: proper version check in `hasStableEsmImplementation` ([**@alexander-fenster**](https://github.com/alexander-fenster)) ## 9.0.0 / 2021-06-07 ### :boom: Breaking Changes - [#4633](https://github.com/mochajs/mocha/issues/4633): **Drop Node.js v10.x support** ([**@juergba**](https://github.com/juergba)) - [#4635](https://github.com/mochajs/mocha/issues/4635): `import`-first loading of test files ([**@giltayar**](https://github.com/giltayar)) **Mocha is going ESM-first!** This means that it will now use ESM `import(test_file)` to load the test files, instead of the CommonJS `require(test_file)`. This is not a problem, as `import` can also load most files that `require` does. In the rare cases where this fails, it will fallback to `require(...)`. This ESM-first approach is the next step in Mocha's ESM migration, and allows ESM loaders to load and transform the test file. - [#4636](https://github.com/mochajs/mocha/issues/4636): Remove deprecated `utils.lookupFiles()` ([**@juergba**](https://github.com/juergba)) - [#4638](https://github.com/mochajs/mocha/issues/4638): Limit the size of `actual`/`expected` for `diff` generation ([**@juergba**](https://github.com/juergba)) - [#4389](https://github.com/mochajs/mocha/issues/4389): Refactoring: Consuming log-symbols alternate to code for win32 in reporters/base ([**@MoonSupport**](https://github.com/MoonSupport)) ### :tada: Enhancements - [#4640](https://github.com/mochajs/mocha/issues/4640): Add new option `--dry-run` ([**@juergba**](https://github.com/juergba)) ### :bug: Fixes - [#4128](https://github.com/mochajs/mocha/issues/4128): Fix: control stringification of error message ([**@syeutyu**](https://github.com/syeutyu)) ### :nut\_and\_bolt: Other - [#4646](https://github.com/mochajs/mocha/issues/4646): Deprecate `Runner(suite: Suite, delay: boolean)` signature ([**@juergba**](https://github.com/juergba)) - [#4643](https://github.com/mochajs/mocha/issues/4643): Update production dependencies ([**@juergba**](https://github.com/juergba)) ## 8.4.0 / 2021-05-07 ### :tada: Enhancements - [#4502](https://github.com/mochajs/mocha/issues/4502): CLI file parsing errors now have error codes ([**@evaline-ju**](https://github.com/evaline-ju)) ### :bug: Fixes - [#4614](https://github.com/mochajs/mocha/issues/4614): Watch: fix crash when reloading files ([**@outsideris**](https://github.com/outsideris)) ### :book: Documentation - [#4630](https://github.com/mochajs/mocha/issues/4630): Add `options.require` to Mocha constructor for `root hook` plugins on parallel runs ([**@juergba**](https://github.com/juergba)) - [#4617](https://github.com/mochajs/mocha/issues/4617): Dynamically generating tests with `top-level await` and ESM test files ([**@juergba**](https://github.com/juergba)) - [#4608](https://github.com/mochajs/mocha/issues/4608): Update default file extensions ([**@outsideris**](https://github.com/outsideris)) Also thanks to [**@outsideris**](https://github.com/outsideris) for various improvements on our GH actions workflows. ## 8.3.2 / 2021-03-12 ### :bug: Fixes - [#4599](https://github.com/mochajs/mocha/issues/4599): Fix regression in `require` interface ([**@alexander-fenster**](https://github.com/alexander-fenster)) ### :book: Documentation - [#4601](https://github.com/mochajs/mocha/issues/4601): Add build to GH actions run ([**@christian-bromann**](https://github.com/christian-bromann)) - [#4596](https://github.com/mochajs/mocha/issues/4596): Filter active sponsors/backers ([**@juergba**](https://github.com/juergba)) - [#4225](https://github.com/mochajs/mocha/issues/4225): Update config file examples ([**@pkuczynski**](https://github.com/pkuczynski)) ## 8.3.1 / 2021-03-06 ### :bug: Fixes - [#4577](https://github.com/mochajs/mocha/issues/4577): Browser: fix `EvalError` caused by regenerator-runtime ([**@snoack**](https://github.com/snoack)) - [#4574](https://github.com/mochajs/mocha/issues/4574): ESM: allow `import` from mocha in parallel mode ([**@nicojs**](https://github.com/nicojs)) ## 8.3.0 / 2021-02-11 ### :tada: Enhancements - [#4506](https://github.com/mochajs/mocha/issues/4506): Add error code for test timeout errors ([**@boneskull**](https://github.com/boneskull)) - [#4112](https://github.com/mochajs/mocha/issues/4112): Add BigInt support to stringify util function ([**@JosejeSinohui**](https://github.com/JosejeSinohui)) ### :bug: Fixes - [#4557](https://github.com/mochajs/mocha/issues/4557): Add file location when SyntaxError happens in ESM ([**@giltayar**](https://github.com/giltayar)) - [#4521](https://github.com/mochajs/mocha/issues/4521): Fix `require` error when bundling Mocha with Webpack ([**@devhazem**](https://github.com/devhazem)) ### :book: Documentation - [#4507](https://github.com/mochajs/mocha/issues/4507): Add support for typescript-style docstrings ([**@boneskull**](https://github.com/boneskull)) - [#4503](https://github.com/mochajs/mocha/issues/4503): Add GH Actions workflow status badge ([**@outsideris**](https://github.com/outsideris)) - [#4494](https://github.com/mochajs/mocha/issues/4494): Add example of generating tests dynamically with a closure ([**@maxwellgerber**](https://github.com/maxwellgerber)) ### :nut\_and\_bolt: Other - [#4556](https://github.com/mochajs/mocha/issues/4556): Upgrade all dependencies to latest stable ([**@AviVahl**](https://github.com/AviVahl)) - [#4543](https://github.com/mochajs/mocha/issues/4543): Update dependencies yargs and yargs-parser ([**@juergba**](https://github.com/juergba)) Also thanks to [**@outsideris**](https://github.com/outsideris) and [**@HyunSangHan**](https://github.com/HyunSangHan) for various fixes to our website and documentation. ## 8.2.1 / 2020-11-02 Fixed stuff. ### :bug: Fixes - [#4489](https://github.com/mochajs/mocha/issues/4489): Fix problematic handling of otherwise-unhandled `Promise` rejections and erroneous "`done()` called twice" errors ([**@boneskull**](https://github.com/boneskull)) - [#4496](https://github.com/mochajs/mocha/issues/4496): Avoid `MaxListenersExceededWarning` in watch mode ([**@boneskull**](https://github.com/boneskull)) Also thanks to [**@akeating**](https://github.com/akeating) for a documentation fix! ## 8.2.0 / 2020-10-16 The major feature added in v8.2.0 is addition of support for [*global fixtures*](https://mochajs.org/#global-fixtures). While Mocha has always had the ability to run setup and teardown via a hook (e.g., a `before()` at the top level of a test file) when running tests in serial, Mocha v8.0.0 added support for parallel runs. Parallel runs are *incompatible* with this strategy; e.g., a top-level `before()` would only run for the file in which it was defined. With [global fixtures](https://mochajs.org/#global-fixtures), Mocha can now perform user-defined setup and teardown *regardless* of mode, and these fixtures are guaranteed to run *once and only once*. This holds for parallel mode, serial mode, and even "watch" mode (the teardown will run once you hit Ctrl-C, just before Mocha finally exits). Tasks such as starting and stopping servers are well-suited to global fixtures, but not sharing resources--global fixtures do *not* share context with your test files (but they do share context with each other). Here's a short example of usage: ```js // fixtures.js // can be async or not exports.mochaGlobalSetup = async function () { this.server = await startSomeServer({port: process.env.TEST_PORT}); console.log(`server running on port ${this.server.port}`); }; exports.mochaGlobalTeardown = async function () { // the context (`this`) is shared, but not with the test files await this.server.stop(); console.log(`server on port ${this.server.port} stopped`); }; // this file can contain root hook plugins as well! // exports.mochaHooks = { ... } ``` Fixtures are loaded with `--require`, e.g., `mocha --require fixtures.js`. For detailed information, please see the [documentation](https://mochajs.org/#global-fixtures) and this handy-dandy [flowchart](https://mochajs.org/#test-fixture-decision-tree-wizard-thing) to help understand the differences between hooks, root hook plugins, and global fixtures (and when you should use each). ### :tada: Enhancements - [#4308](https://github.com/mochajs/mocha/issues/4308): Support run-once [global setup & teardown fixtures](https://mochajs.org/#global-fixtures) ([**@boneskull**](https://github.com/boneskull)) - [#4442](https://github.com/mochajs/mocha/issues/4442): Multi-part extensions (e.g., `test.js`) now usable with `--extension` option ([**@jordanstephens**](https://github.com/jordanstephens)) - [#4472](https://github.com/mochajs/mocha/issues/4472): Leading dots (e.g., `.js`, `.test.js`) now usable with `--extension` option ([**@boneskull**](https://github.com/boneskull)) - [#4434](https://github.com/mochajs/mocha/issues/4434): Output of `json` reporter now contains `speed` ("fast"/"medium"/"slow") property ([**@wwhurin**](https://github.com/wwhurin)) - [#4464](https://github.com/mochajs/mocha/issues/4464): Errors thrown by serializer in parallel mode now have error codes ([**@evaline-ju**](https://github.com/evaline-ju)) *For implementors of custom reporters:* - [#4409](https://github.com/mochajs/mocha/issues/4409): Parallel mode and custom reporter improvements ([**@boneskull**](https://github.com/boneskull)): - Support custom worker-process-only reporters (`Runner.prototype.workerReporter()`); reporters should subclass `ParallelBufferedReporter` in `mocha/lib/nodejs/reporters/parallel-buffered` - Allow opt-in of object reference matching for "sufficiently advanced" custom reporters (`Runner.prototype.linkPartialObjects()`); use if strict object equality is needed when consuming `Runner` event data - Enable detection of parallel mode (`Runner.prototype.isParallelMode()`) ### :bug: Fixes - [#4476](https://github.com/mochajs/mocha/issues/4476): Workaround for profoundly bizarre issue affecting `npm` v6.x causing some of Mocha's deps to be installed when `mocha` is present in a package's `devDependencies` and `npm install --production` is run the package's working copy ([**@boneskull**](https://github.com/boneskull)) - [#4465](https://github.com/mochajs/mocha/issues/4465): Worker processes guaranteed (as opposed to "very likely") to exit before Mocha does; fixes a problem when using `nyc` with Mocha in parallel mode ([**@boneskull**](https://github.com/boneskull)) - [#4419](https://github.com/mochajs/mocha/issues/4419): Restore `lookupFiles()` in `mocha/lib/utils`, which was broken/missing in Mocha v8.1.0; it now prints a deprecation warning (use `const {lookupFiles} = require('mocha/lib/cli')` instead) ([**@boneskull**](https://github.com/boneskull)) Thanks to [**@AviVahl**](https://github.com/AviVahl), [**@donghoon-song**](https://github.com/donghoon-song), [**@ValeriaVG**](https://github.com/ValeriaVG), [**@znarf**](https://github.com/znarf), [**@sujin-park**](https://github.com/sujin-park), and [**@majecty**](https://github.com/majecty) for other helpful contributions! ## 8.1.3 / 2020-08-28 ### :bug: Fixes - [#4425](https://github.com/mochajs/mocha/issues/4425): Restore `Mocha.utils.lookupFiles()` and Webpack compatibility (both broken since v8.1.0); `Mocha.utils.lookupFiles()` is now **deprecated** and will be removed in the next major revision of Mocha; use `require('mocha/lib/cli').lookupFiles` instead ([**@boneskull**](https://github.com/boneskull)) ## 8.1.2 / 2020-08-25 ### :bug: Fixes - [#4418](https://github.com/mochajs/mocha/issues/4418): Fix command-line flag incompatibility in forthcoming Node.js v14.9.0 ([**@boneskull**](https://github.com/boneskull)) - [#4401](https://github.com/mochajs/mocha/issues/4401): Fix missing global variable in browser ([**@irrationnelle**](https://github.com/irrationnelle)) ### :lock: Security Fixes - [#4396](https://github.com/mochajs/mocha/issues/4396): Update many dependencies ([**@GChuf**](https://github.com/GChuf)) ### :book: Documentation - Various fixes by [**@sujin-park**](https://github.com/sujin-park), [**@wwhurin**](https://github.com/wwhurin) & [**@Donghoon759**](https://github.com/Donghoon759) ## 8.1.1 / 2020-08-04 ### :bug: Fixes - [#4394](https://github.com/mochajs/mocha/issues/4394): Fix regression wherein certain reporters did not correctly detect terminal width ([**@boneskull**](https://github.com/boneskull)) ## 8.1.0 / 2020-07-30 In this release, Mocha now builds its browser bundle with Rollup and Babel, which will provide the project's codebase more flexibility and consistency. While we've been diligent about backwards compatibility, it's *possible* consumers of the browser bundle will encounter differences (other than an increase in the bundle size). If you *do* encounter an issue with the build, please [report it here](https://github.com/mochajs/mocha/issues/new?labels=unconfirmed-bug\&template=bug_report.md\&title=). This release **does not** drop support for IE11. Other community contributions came from [**@Devjeel**](https://github.com/Devjeel), [**@Harsha509**](https://github.com/Harsha509) and [**@sharath2106**](https://github.com/sharath2106). *Thank you* to everyone who contributed to this release! > Do you read Korean? See [this guide to running parallel tests in Mocha](https://blog.outsider.ne.kr/1489), translated by our maintainer, [**@outsideris**](https://github.com/outsideris). ### :tada: Enhancements - [#4287](https://github.com/mochajs/mocha/issues/4287): Use background colors with inline diffs for better visual distinction ([**@michael-brade**](https://github.com/michael-brade)) ### :bug: Fixes - [#4328](https://github.com/mochajs/mocha/issues/4328): Fix "watch" mode when Mocha run in parallel ([**@boneskull**](https://github.com/boneskull)) - [#4382](https://github.com/mochajs/mocha/issues/4382): Fix root hook execution in "watch" mode ([**@indieisaconcept**](https://github.com/indieisaconcept)) - [#4383](https://github.com/mochajs/mocha/issues/4383): Consistent auto-generated hook titles ([**@cspotcode**](https://github.com/cspotcode)) - [#4359](https://github.com/mochajs/mocha/issues/4359): Better errors when running `mocha init` ([**@boneskull**](https://github.com/boneskull)) - [#4341](https://github.com/mochajs/mocha/issues/4341): Fix weirdness when using `delay` option in browser ([**@craigtaub**](https://github.com/craigtaub)) ### :lock: Security Fixes - [#4378](https://github.com/mochajs/mocha/issues/4378), [#4333](https://github.com/mochajs/mocha/issues/4333): Update [javascript-serialize](https://npm.im/javascript-serialize) ([**@martinoppitz**](https://github.com/martinoppitz), [**@wnghdcjfe**](https://github.com/wnghdcjfe)) - [#4354](https://github.com/mochajs/mocha/issues/4354): Update [yargs-unparser](https://npm.im/yargs-unparser) ([**@martinoppitz**](https://github.com/martinoppitz)) ### :book: Documentation & Website - [#4173](https://github.com/mochajs/mocha/issues/4173): Document how to use `--enable-source-maps` with Mocha ([**@bcoe**](https://github.com/bcoe)) - [#4343](https://github.com/mochajs/mocha/issues/4343): Clean up some API docs ([**@craigtaub**](https://github.com/craigtaub)) - [#4318](https://github.com/mochajs/mocha/issues/4318): Sponsor images are now self-hosted ([**@Munter**](https://github.com/Munter)) ### :nut\_and\_bolt: Other - [#4293](https://github.com/mochajs/mocha/issues/4293): Use Rollup and Babel in build pipeline; add source map to published files ([**@Munter**](https://github.com/Munter)) ## 8.0.1 / 2020-06-10 The obligatory patch after a major. ### :bug: Fixes - [#4328](https://github.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@boneskull**](https://github.com/boneskull)) ## 8.0.0 / 2020-06-10 In this major release, Mocha adds the ability to *run tests in parallel*. Better late than never! Please note the **breaking changes** detailed below. Let's welcome [**@giltayar**](https://github.com/giltayar) and [**@nicojs**](https://github.com/nicojs) to the maintenance team! ### :boom: Breaking Changes - [#4164](https://github.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.12.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@UlisesGascon**](https://github.com/UlisesGascon)) - [#4175](https://github.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@juergba**](https://github.com/juergba)) :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs). - [#4260](https://github.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@craigtaub**](https://github.com/craigtaub)) :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`. - [#4315](https://github.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@juergba**](https://github.com/juergba)) :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`). - [#4309](https://github.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@juergba**](https://github.com/juergba)) - [#4282](https://github.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@arvidOtt**](https://github.com/arvidOtt)) - [#4223](https://github.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@juergba**](https://github.com/juergba)) - [#4178](https://github.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@wnghdcjfe**](https://github.com/wnghdcjfe)): - `Mocha.prototype.ignoreLeaks()` - `Mocha.prototype.useColors()` - `Mocha.prototype.useInlineDiffs()` - `Mocha.prototype.hideDiff()` ### :tada: Enhancements - [#4245](https://github.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@boneskull**](https://github.com/boneskull)) :exclamation: See also [#4244](https://github.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- *root hooks must be defined via Root Hook Plugins to work in parallel mode* - [#4304](https://github.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@JacobLey**](https://github.com/JacobLey)) - [#4299](https://github.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- *use at your own risk!* ([**@giltayar**](https://github.com/giltayar)) ### :book: Documentation - [#4246](https://github.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@boneskull**](https://github.com/boneskull)) ### :nut\_and\_bolt: Other - [#4200](https://github.com/mochajs/mocha/issues/4200): Drop mkdirp and replace it with fs.mkdirSync ([**@HyunSangHan**](https://github.com/HyunSangHan)) ### :bug: Fixes (All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above) ## 7.2.0 / 2020-05-22 ### :tada: Enhancements - [#4234](https://github.com/mochajs/mocha/issues/4234): Add ability to run tests in a mocha instance multiple times ([**@nicojs**](https://github.com/nicojs)) - [#4219](https://github.com/mochajs/mocha/issues/4219): Exposing filename in JSON, doc, and json-stream reporters ([**@Daniel0113**](https://github.com/Daniel0113)) - [#4244](https://github.com/mochajs/mocha/issues/4244): Add Root Hook Plugins ([**@boneskull**](https://github.com/boneskull)) ### :bug: Fixes - [#4258](https://github.com/mochajs/mocha/issues/4258): Fix missing dot in name of configuration file ([**@sonicdoe**](https://github.com/sonicdoe)) - [#4194](https://github.com/mochajs/mocha/issues/4194): Check if module.paths really exists ([**@ematipico**](https://github.com/ematipico)) - [#4256](https://github.com/mochajs/mocha/issues/4256): `--forbid-only` does not recognize `it.only` when `before` crashes ([**@arvidOtt**](https://github.com/arvidOtt)) - [#4152](https://github.com/mochajs/mocha/issues/4152): Bug with multiple async done() calls ([**@boneskull**](https://github.com/boneskull)) - [#4275](https://github.com/mochajs/mocha/issues/4275): Improper warnings for invalid reporters ([**@boneskull**](https://github.com/boneskull)) - [#4288](https://github.com/mochajs/mocha/issues/4288): Broken hook.spec.js test for IE11 ([**@boneskull**](https://github.com/boneskull)) ### :book: Documentation - [#4081](https://github.com/mochajs/mocha/issues/4081): Insufficient white space for API docs in view on mobile ([**@HyunSangHan**](https://github.com/HyunSangHan)) - [#4255](https://github.com/mochajs/mocha/issues/4255): Update mocha-docdash for UI fixes on API docs ([**@craigtaub**](https://github.com/craigtaub)) - [#4235](https://github.com/mochajs/mocha/issues/4235): Enable emoji on website; enable normal ul elements ([**@boneskull**](https://github.com/boneskull)) - [#4272](https://github.com/mochajs/mocha/issues/4272): Fetch sponsors at build time, show ALL non-skeevy sponsors ([**@boneskull**](https://github.com/boneskull)) ### :nut\_and\_bolt: Other - [#4249](https://github.com/mochajs/mocha/issues/4249): Refactoring improving encapsulation ([**@arvidOtt**](https://github.com/arvidOtt)) - [#4242](https://github.com/mochajs/mocha/issues/4242): CI add job names, add Node.js v14 to matrix ([**@boneskull**](https://github.com/boneskull)) - [#4237](https://github.com/mochajs/mocha/issues/4237): Refactor validatePlugins to throw coded errors ([**@boneskull**](https://github.com/boneskull)) - [#4236](https://github.com/mochajs/mocha/issues/4236): Better debug output ([**@boneskull**](https://github.com/boneskull)) ## 7.1.2 / 2020-04-26 ### :nut\_and\_bolt: Other - [#4251](https://github.com/mochajs/mocha/issues/4251): Prevent karma-mocha from stalling ([**@juergba**](https://github.com/juergba)) - [#4222](https://github.com/mochajs/mocha/issues/4222): Update dependency mkdirp to v0.5.5 ([**@outsideris**](https://github.com/outsideris)) ### :book: Documentation - [#4208](https://github.com/mochajs/mocha/issues/4208): Add Wallaby logo to site ([**@boneskull**](https://github.com/boneskull)) ## 7.1.1 / 2020-03-18 ### :lock: Security Fixes - [#4204](https://github.com/mochajs/mocha/issues/4204): Update dependencies mkdirp, yargs-parser and yargs ([**@juergba**](https://github.com/juergba)) ### :bug: Fixes - [#3660](https://github.com/mochajs/mocha/issues/3660): Fix `runner` listening to `start` and `end` events ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#4190](https://github.com/mochajs/mocha/issues/4190): Show Netlify badge on footer ([**@outsideris**](https://github.com/outsideris)) ## 7.1.0 / 2020-02-26 ### :tada: Enhancements [#4038](https://github.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@giltayar**](https://github.com/giltayar)) Mocha supports writing your test files as ES modules: - Node.js only v12.11.0 and above - Node.js below v13.2.0, you must set `--experimental-modules` option - current limitations: please check our [documentation](https://mochajs.org/#nodejs-native-esm-support) - for programmatic usage: see [API: loadFilesAsync()](https://mochajs.org/api/mocha#loadFilesAsync) **Note:** Node.JS native [ECMAScript Modules](https://nodejs.org/api/esm.html) implementation has status: **Stability: 1 - Experimental** ### :bug: Fixes - [#4181](https://github.com/mochajs/mocha/issues/4181): Programmatic API cannot access retried test objects ([**@juergba**](https://github.com/juergba)) - [#4174](https://github.com/mochajs/mocha/issues/4174): Browser: fix `allowUncaught` option ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#4058](https://github.com/mochajs/mocha/issues/4058): Manage author list in AUTHORS instead of `package.json` ([**@outsideris**](https://github.com/outsideris)) ### :nut\_and\_bolt: Other - [#4138](https://github.com/mochajs/mocha/issues/4138): Upgrade ESLint v6.8 ([**@kaicataldo**](https://github.com/kaicataldo)) ## 7.0.1 / 2020-01-25 ### :bug: Fixes - [#4165](https://github.com/mochajs/mocha/issues/4165): Fix exception when skipping tests programmatically ([**@juergba**](https://github.com/juergba)) - [#4153](https://github.com/mochajs/mocha/issues/4153): Restore backwards compatibility for `reporterOptions` ([**@holm**](https://github.com/holm)) - [#4150](https://github.com/mochajs/mocha/issues/4150): Fix recovery of an open test upon uncaught exception ([**@juergba**](https://github.com/juergba)) - [#4147](https://github.com/mochajs/mocha/issues/4147): Fix regression of leaking uncaught exception handler ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#4146](https://github.com/mochajs/mocha/issues/4146): Update copyright & trademark notices per OJSF ([**@boneskull**](https://github.com/boneskull)) - [#4140](https://github.com/mochajs/mocha/issues/4140): Fix broken links ([**@KyoungWan**](https://github.com/KyoungWan)) ### :nut\_and\_bolt: Other - [#4133](https://github.com/mochajs/mocha/issues/4133): Print more descriptive error message ([**@Zirak**](https://github.com/Zirak)) ## 7.0.0 / 2020-01-05 ### :boom: Breaking Changes - [#3885](https://github.com/mochajs/mocha/issues/3885): **Drop Node.js v6.x support** ([**@mojosoeun**](https://github.com/mojosoeun)) - [#3890](https://github.com/mochajs/mocha/issues/3890): Remove Node.js debug-related flags `--debug`/`--debug-brk` and deprecate `debug` argument ([**@juergba**](https://github.com/juergba)) - [#3962](https://github.com/mochajs/mocha/issues/3962): Changes to command-line options ([**@ParkSB**](https://github.com/ParkSB)): - `--list-interfaces` replaces `--interfaces` - `--list-reporters` replaces `--reporters` - Hook pattern of `this.skip()` ([**@juergba**](https://github.com/juergba)): - [#3859](https://github.com/mochajs/mocha/issues/3859): When conditionally skipping in a `it` test, related `afterEach` hooks are now executed - [#3741](https://github.com/mochajs/mocha/issues/3741): When conditionally skipping in a `beforeEach` hook, subsequent inner `beforeEach` hooks are now skipped and related `afterEach` hooks are executed - [#4136](https://github.com/mochajs/mocha/issues/4136): Disallow `this.skip()` within `after` hooks - [#3967](https://github.com/mochajs/mocha/issues/3967): Remove deprecated `getOptions()` and `lib/cli/options.js` ([**@juergba**](https://github.com/juergba)) - [#4083](https://github.com/mochajs/mocha/issues/4083): Uncaught exception in `pending` test: don't swallow, but retrospectively fail the test for correct exit code ([**@juergba**](https://github.com/juergba)) - [#4004](https://github.com/mochajs/mocha/issues/4004): Align `Mocha` constructor's option names with command-line options ([**@juergba**](https://github.com/juergba)) ### :tada: Enhancements - [#3980](https://github.com/mochajs/mocha/issues/3980): Refactor and improve `--watch` mode with chokidar ([**@geigerzaehler**](https://github.com/geigerzaehler)): - adds command-line options `--watch-files` and `--watch-ignore` - removes `--watch-extensions` - [#3979](https://github.com/mochajs/mocha/issues/3979): Type "rs\n" to restart tests ([**@broofa**](https://github.com/broofa)) ### :fax: Deprecations These are *soft*-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha: - [#3968](https://github.com/mochajs/mocha/issues/3968): Deprecate legacy configuration via `mocha.opts` ([**@juergba**](https://github.com/juergba)) ### :bug: Fixes - [#4125](https://github.com/mochajs/mocha/issues/4125): Fix timeout handling with `--inspect-brk`/`--inspect` ([**@juergba**](https://github.com/juergba)) - [#4070](https://github.com/mochajs/mocha/issues/4070): `Mocha` constructor: improve browser setup ([**@juergba**](https://github.com/juergba)) - [#4068](https://github.com/mochajs/mocha/issues/4068): XUnit reporter should handle exceptions during diff generation ([**@rgroothuijsen**](https://github.com/rgroothuijsen)) - [#4030](https://github.com/mochajs/mocha/issues/4030): Fix `--allow-uncaught` with `this.skip()` ([**@juergba**](https://github.com/juergba)) ### :mag: Coverage - [#4109](https://github.com/mochajs/mocha/issues/4109): Add Node.js v13.x to CI test matrix ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#4129](https://github.com/mochajs/mocha/issues/4129): Fix broken links ([**@SaeromB**](https://github.com/SaeromB)) - [#4127](https://github.com/mochajs/mocha/issues/4127): Add reporter alias names to docs ([**@khg0712**](https://github.com/khg0712)) - [#4101](https://github.com/mochajs/mocha/issues/4101): Clarify invalid usage of `done()` ([**@jgehrcke**](https://github.com/jgehrcke)) - [#4092](https://github.com/mochajs/mocha/issues/4092): Replace `:coffee:` with emoji β˜•οΈ ([**@pzrq**](https://github.com/pzrq)) - [#4088](https://github.com/mochajs/mocha/issues/4088): Initial draft of project charter ([**@boneskull**](https://github.com/boneskull)) - [#4066](https://github.com/mochajs/mocha/issues/4066): Change `sh` to `bash` for code block in docs/index.md ([**@HyunSangHan**](https://github.com/HyunSangHan)) - [#4045](https://github.com/mochajs/mocha/issues/4045): Update README.md concerning GraphicsMagick installation ([**@HyunSangHan**](https://github.com/HyunSangHan)) - [#3988](https://github.com/mochajs/mocha/issues/3988): Fix sponsors background color for readability ([**@outsideris**](https://github.com/outsideris)) ### :nut\_and\_bolt: Other - [#4118](https://github.com/mochajs/mocha/issues/4118): Update node-environment-flags to 1.0.6 ([**@kylef**](https://github.com/kylef)) - [#4097](https://github.com/mochajs/mocha/issues/4097): Add GH Funding Metadata ([**@SheetJSDev**](https://github.com/SheetJSDev)) - [#4089](https://github.com/mochajs/mocha/issues/4089): Add funding information to `package.json` ([**@Munter**](https://github.com/Munter)) - [#4077](https://github.com/mochajs/mocha/issues/4077): Improve integration tests ([**@soobing**](https://github.com/soobing)) ## 6.2.3 / 2020-03-25 ### :lock: Security Fixes - [848d6fb8](https://github.com/mochajs/mocha/commit/848d6fb8feef659564b296db457312d38176910d): Update dependencies mkdirp, yargs-parser and yargs ([**@juergba**](https://github.com/juergba)) ## 6.2.2 / 2019-10-18 ### :bug: Fixes - [#4025](https://github.com/mochajs/mocha/issues/4025): Fix duplicate `EVENT_RUN_END` events upon uncaught exception ([**@juergba**](https://github.com/juergba)) - [#4051](https://github.com/mochajs/mocha/issues/4051): Fix "unhide" function in `html` reporter (browser) ([**@pec9399**](https://github.com/pec9399)) - [#4063](https://github.com/mochajs/mocha/issues/4063): Fix use of [esm](https://npm.im/esm) in Node.js v8.x ([**@boneskull**](https://github.com/boneskull)) - [#4033](https://github.com/mochajs/mocha/issues/4033): Fix output when multiple async exceptions are thrown ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#4046](https://github.com/mochajs/mocha/issues/4046): Site accessibility fixes ([**@Mia-jeong**](https://github.com/Mia-jeong)) - [#4026](https://github.com/mochajs/mocha/issues/4026): Update docs for custom reporters in browser ([**@Lindsay-Needs-Sleep**](https://github.com/Lindsay-Needs-Sleep)) - [#3971](https://github.com/mochajs/mocha/issues/3971): Adopt new OpenJS Foundation Code of Conduct ([**@craigtaub**](https://github.com/craigtaub)) ## 6.2.1 / 2019-09-29 ### :bug: Fixes - [#3955](https://github.com/mochajs/mocha/issues/3955): tty.getWindowSize is not a function inside a "worker\_threads" worker ([**@1999**](https://github.com/1999)) - [#3970](https://github.com/mochajs/mocha/issues/3970): remove extraGlobals() ([**@juergba**](https://github.com/juergba)) - [#3984](https://github.com/mochajs/mocha/issues/3984): Update yargs-unparser to v1.6.0 ([**@juergba**](https://github.com/juergba)) - [#3983](https://github.com/mochajs/mocha/issues/3983): Package 'esm': spawn child-process for correct loading ([**@juergba**](https://github.com/juergba)) - [#3986](https://github.com/mochajs/mocha/issues/3986): Update yargs to v13.3.0 and yargs-parser to v13.1.1 ([**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#3886](https://github.com/mochajs/mocha/issues/3886): fix styles on mochajs.org ([**@outsideris**](https://github.com/outsideris)) - [#3966](https://github.com/mochajs/mocha/issues/3966): Remove jsdoc index.html placeholder from eleventy file structure and fix broken link in jsdoc tutorial ([**@Munter**](https://github.com/Munter)) - [#3765](https://github.com/mochajs/mocha/issues/3765): Add Matomo to website ([**@MarioDiaz98**](https://github.com/MarioDiaz98)) - [#3947](https://github.com/mochajs/mocha/issues/3947): Clarify effect of .skip() ([**@oliversalzburg**](https://github.com/oliversalzburg)) ## 6.2.0 / 2019-07-18 ### :tada: Enhancements - [#3827](https://github.com/mochajs/mocha/issues/3827): Do not fork child-process if no Node flags are present ([**@boneskull**](https://github.com/boneskull)) - [#3725](https://github.com/mochajs/mocha/issues/3725): Base reporter store ref to console.log, see [mocha/wiki](https://github.com/mochajs/mocha/wiki/HOW-TO:-Correctly-stub-stdout) ([**@craigtaub**](https://github.com/craigtaub)) ### :bug: Fixes - [#3942](https://github.com/mochajs/mocha/issues/3942): Fix "No test files found" Error when file is passed via `--file` ([**@gabegorelick**](https://github.com/gabegorelick)) - [#3914](https://github.com/mochajs/mocha/issues/3914): Modify Mocha constructor to accept options `global` or `globals` ([**@pascalpp**](https://github.com/pascalpp)) - [#3894](https://github.com/mochajs/mocha/issues/3894): Fix parsing of config files with `_mocha` binary ([**@juergba**](https://github.com/juergba)) - [#3834](https://github.com/mochajs/mocha/issues/3834): Fix CLI parsing with default values ([**@boneskull**](https://github.com/boneskull), [**@juergba**](https://github.com/juergba)) - [#3831](https://github.com/mochajs/mocha/issues/3831): Fix `--timeout`/`--slow` string values and duplicate arguments ([**@boneskull**](https://github.com/boneskull), [**@juergba**](https://github.com/juergba)) ### :book: Documentation - [#3906](https://github.com/mochajs/mocha/issues/3906): Document option to define custom report name for XUnit reporter ([**@pkuczynski**](https://github.com/pkuczynski)) - [#3889](https://github.com/mochajs/mocha/issues/3889): Adds doc links for mocha-examples ([**@craigtaub**](https://github.com/craigtaub)) - [#3887](https://github.com/mochajs/mocha/issues/3887): Fix broken links ([**@toyjhlee**](https://github.com/toyjhlee)) - [#3841](https://github.com/mochajs/mocha/issues/3841): Fix anchors to configuration section ([**@trescube**](https://github.com/trescube)) ### :mag: Coverage - [#3915](https://github.com/mochajs/mocha/issues/3915), [#3929](https://github.com/mochajs/mocha/issues/3929): Increase tests coverage for `--watch` options ([**@geigerzaehler**](https://github.com/geigerzaehler)) ### :nut\_and\_bolt: Other - [#3953](https://github.com/mochajs/mocha/issues/3953): Collect test files later, prepares improvements to the `--watch` mode behavior ([**@geigerzaehler**](https://github.com/geigerzaehler)) - [#3939](https://github.com/mochajs/mocha/issues/3939): Upgrade for npm audit ([**@boneskull**](https://github.com/boneskull)) - [#3930](https://github.com/mochajs/mocha/issues/3930): Extract `runWatch` into separate module ([**@geigerzaehler**](https://github.com/geigerzaehler)) - [#3922](https://github.com/mochajs/mocha/issues/3922): Add `mocha.min.js` file to stacktrace filter ([**@brian-lagerman**](https://github.com/brian-lagerman)) - [#3919](https://github.com/mochajs/mocha/issues/3919): Update CI config files to use Node-12.x ([**@plroebuck**](https://github.com/plroebuck)) - [#3892](https://github.com/mochajs/mocha/issues/3892): Rework reporter tests ([**@plroebuck**](https://github.com/plroebuck)) - [#3872](https://github.com/mochajs/mocha/issues/3872): Rename `--exclude` to `--ignore` and create alias ([**@boneskull**](https://github.com/boneskull)) - [#3963](https://github.com/mochajs/mocha/issues/3963): Hide stacktrace when cli args are missing ([**@outsideris**](https://github.com/outsideris)) - [#3956](https://github.com/mochajs/mocha/issues/3956): Do not redeclare variable in docs array example ([**@DanielRuf**](https://github.com/DanielRuf)) - [#3957](https://github.com/mochajs/mocha/issues/3957): Remove duplicate line-height property in `mocha.css` ([**@DanielRuf**](https://github.com/DanielRuf)) - [#3960](https://github.com/mochajs/mocha/issues/3960): Don't re-initialize grep option on watch re-run ([**@geigerzaehler**](https://github.com/geigerzaehler)) ## 6.1.4 / 2019-04-18 ### :lock: Security Fixes - [#3877](https://github.com/mochajs/mocha/issues/3877): Upgrade [js-yaml](https://npm.im/js-yaml), addressing [code injection vulnerability](https://www.npmjs.com/advisories/813) ([**@bjornstar**](https://github.com/bjornstar)) ## 6.1.3 / 2019-04-11 ### :bug: Fixes - [#3863](https://github.com/mochajs/mocha/issues/3863): Fix `yargs`-related global scope pollution ([**@inukshuk**](https://github.com/inukshuk)) - [#3869](https://github.com/mochajs/mocha/issues/3869): Fix failure when installed w/ `pnpm` ([**@boneskull**](https://github.com/boneskull)) ## 6.1.2 / 2019-04-08 ### :bug: Fixes - [#3867](https://github.com/mochajs/mocha/issues/3867): Re-publish v6.1.1 from POSIX OS to avoid dropped executable flags ([**@boneskull**](https://github.com/boneskull)) ## 6.1.1 / 2019-04-07 ### :bug: Fixes - [#3866](https://github.com/mochajs/mocha/issues/3866): Fix Windows End-of-Line publishing issue ([**@juergba**](https://github.com/juergba) & [**@cspotcode**](https://github.com/cspotcode)) ## 6.1.0 / 2019-04-07 ### :lock: Security Fixes - [#3845](https://github.com/mochajs/mocha/issues/3845): Update dependency "js-yaml" to v3.13.0 per npm security advisory ([**@plroebuck**](https://github.com/plroebuck)) ### :tada: Enhancements - [#3766](https://github.com/mochajs/mocha/issues/3766): Make reporter constructor support optional `options` parameter ([**@plroebuck**](https://github.com/plroebuck)) - [#3760](https://github.com/mochajs/mocha/issues/3760): Add support for config files with `.jsonc` extension ([**@sstephant**](https://github.com/sstephant)) ### :fax: Deprecations These are *soft*-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha: - [#3719](https://github.com/mochajs/mocha/issues/3719): Deprecate `this.skip()` for "after all" hooks ([**@juergba**](https://github.com/juergba)) ### :bug: Fixes - [#3829](https://github.com/mochajs/mocha/issues/3829): Use cwd-relative pathname to load config file ([**@plroebuck**](https://github.com/plroebuck)) - [#3745](https://github.com/mochajs/mocha/issues/3745): Fix async calls of `this.skip()` in "before each" hooks ([**@juergba**](https://github.com/juergba)) - [#3669](https://github.com/mochajs/mocha/issues/3669): Enable `--allow-uncaught` for uncaught exceptions thrown inside hooks ([**@givanse**](https://github.com/givanse)) and some regressions: - [#3848](https://github.com/mochajs/mocha/issues/3848): Fix `Suite` cloning by copying `root` property ([**@fatso83**](https://github.com/fatso83)) - [#3816](https://github.com/mochajs/mocha/issues/3816): Guard against undefined timeout option ([**@boneskull**](https://github.com/boneskull)) - [#3814](https://github.com/mochajs/mocha/issues/3814): Update "yargs" in order to avoid deprecation message ([**@boneskull**](https://github.com/boneskull)) - [#3788](https://github.com/mochajs/mocha/issues/3788): Fix support for multiple node flags ([**@aginzberg**](https://github.com/aginzberg)) ### :book: Documentation - [mochajs/mocha-examples](https://github.com/mochajs/mocha-examples): New repository of working examples of common configurations using mocha ([**@craigtaub**](https://github.com/craigtaub)) - [#3850](https://github.com/mochajs/mocha/issues/3850): Remove pound icon showing on header hover on docs ([**@jd2rogers2**](https://github.com/jd2rogers2)) - [#3812](https://github.com/mochajs/mocha/issues/3812): Add autoprefixer to documentation page CSS ([**@Munter**](https://github.com/Munter)) - [#3811](https://github.com/mochajs/mocha/issues/3811): Update doc examples "tests.html" ([**@DavidLi119**](https://github.com/DavidLi119)) - [#3807](https://github.com/mochajs/mocha/issues/3807): Mocha website HTML tweaks ([**@plroebuck**](https://github.com/plroebuck)) - [#3793](https://github.com/mochajs/mocha/issues/3793): Update config file example ".mocharc.yml" ([**@cspotcode**](https://github.com/cspotcode)) ### :nut\_and\_bolt: Other - [#3830](https://github.com/mochajs/mocha/issues/3830): Replace dependency "findup-sync" with "find-up" for faster startup ([**@cspotcode**](https://github.com/cspotcode)) - [#3799](https://github.com/mochajs/mocha/issues/3799): Update devDependencies to fix many npm vulnerabilities ([**@XhmikosR**](https://github.com/XhmikosR)) ## 6.0.2 / 2019-02-25 ### :bug: Fixes Two more regressions fixed: - [#3768](https://github.com/mochajs/mocha/issues/3768): Test file paths no longer dropped from `mocha.opts` ([**@boneskull**](https://github.com/boneskull)) - [#3767](https://github.com/mochajs/mocha/issues/3767): `--require` does not break on module names that look like certain `node` flags ([**@boneskull**](https://github.com/boneskull)) ## 6.0.1 / 2019-02-21 The obligatory round of post-major-release bugfixes. ### :bug: Fixes These issues were regressions. - [#3754](https://github.com/mochajs/mocha/issues/3754): Mocha again finds `test.js` when run without arguments ([**@plroebuck**](https://github.com/plroebuck)) - [#3756](https://github.com/mochajs/mocha/issues/3756): Mocha again supports third-party interfaces via `--ui` ([**@boneskull**](https://github.com/boneskull)) - [#3755](https://github.com/mochajs/mocha/issues/3755): Fix broken `--watch` ([**@boneskull**](https://github.com/boneskull)) - [#3759](https://github.com/mochajs/mocha/issues/3759): Fix unwelcome deprecation notice when Mocha run against languages (CoffeeScript) with implicit return statements; *returning a non-`undefined` value from a `describe` callback is no longer considered deprecated* ([**@boneskull**](https://github.com/boneskull)) ### :book: Documentation - [#3738](https://github.com/mochajs/mocha/issues/3738): Upgrade to `@mocha/docdash@2` ([**@tendonstrength**](https://github.com/tendonstrength)) - [#3751](https://github.com/mochajs/mocha/issues/3751): Use preferred names for example config files ([**@Szauka**](https://github.com/Szauka)) ## 6.0.0 / 2019-02-18 ### :tada: Enhancements - [#3726](https://github.com/mochajs/mocha/issues/3726): Add ability to unload files from `require` cache ([**@plroebuck**](https://github.com/plroebuck)) ### :bug: Fixes - [#3737](https://github.com/mochajs/mocha/issues/3737): Fix falsy values from options globals ([**@plroebuck**](https://github.com/plroebuck)) - [#3707](https://github.com/mochajs/mocha/issues/3707): Fix encapsulation issues for `Suite#_onlyTests` and `Suite#_onlySuites` ([**@vkarpov15**](https://github.com/vkarpov15)) - [#3711](https://github.com/mochajs/mocha/issues/3711): Fix diagnostic messages dealing with plurality and markup of output ([**@plroebuck**](https://github.com/plroebuck)) - [#3723](https://github.com/mochajs/mocha/issues/3723): Fix "reporter-option" to allow comma-separated options ([**@boneskull**](https://github.com/boneskull)) - [#3722](https://github.com/mochajs/mocha/issues/3722): Fix code quality and performance of `lookupFiles` and `files` ([**@plroebuck**](https://github.com/plroebuck)) - [#3650](https://github.com/mochajs/mocha/issues/3650), [#3654](https://github.com/mochajs/mocha/issues/3654): Fix noisy error message when no files found ([**@craigtaub**](https://github.com/craigtaub)) - [#3632](https://github.com/mochajs/mocha/issues/3632): Tests having an empty title are no longer confused with the "root" suite ([**@juergba**](https://github.com/juergba)) - [#3666](https://github.com/mochajs/mocha/issues/3666): Fix missing error codes ([**@vkarpov15**](https://github.com/vkarpov15)) - [#3684](https://github.com/mochajs/mocha/issues/3684): Fix exiting problem in Node.js v11.7.0+ ([**@addaleax**](https://github.com/addaleax)) - [#3691](https://github.com/mochajs/mocha/issues/3691): Fix `--delay` (and other boolean options) not working in all cases ([**@boneskull**](https://github.com/boneskull)) - [#3692](https://github.com/mochajs/mocha/issues/3692): Fix invalid command-line argument usage not causing actual errors ([**@boneskull**](https://github.com/boneskull)) - [#3698](https://github.com/mochajs/mocha/issues/3698), [#3699](https://github.com/mochajs/mocha/issues/3699): Fix debug-related Node.js options not working in all cases ([**@boneskull**](https://github.com/boneskull)) - [#3700](https://github.com/mochajs/mocha/issues/3700): Growl notifications now show the correct number of tests run ([**@outsideris**](https://github.com/outsideris)) - [#3686](https://github.com/mochajs/mocha/issues/3686): Avoid potential ReDoS when diffing large objects ([**@cyjake**](https://github.com/cyjake)) - [#3715](https://github.com/mochajs/mocha/issues/3715): Fix incorrect order of emitted events when used programmatically ([**@boneskull**](https://github.com/boneskull)) - [#3706](https://github.com/mochajs/mocha/issues/3706): Fix regression wherein `--reporter-option`/`--reporter-options` did not support comma-separated key/value pairs ([**@boneskull**](https://github.com/boneskull)) ### :book: Documentation - [#3652](https://github.com/mochajs/mocha/issues/3652): Switch from Jekyll to Eleventy ([**@Munter**](https://github.com/Munter)) ### :nut\_and\_bolt: Other - [#3677](https://github.com/mochajs/mocha/issues/3677): Add error objects for createUnsupportedError and createInvalidExceptionError ([**@boneskull**](https://github.com/boneskull)) - [#3733](https://github.com/mochajs/mocha/issues/3733): Removed unnecessary processing in post-processing hook ([**@wanseob**](https://github.com/wanseob)) - [#3730](https://github.com/mochajs/mocha/issues/3730): Update nyc to latest version ([**@coreyfarrell**](https://github.com/coreyfarrell)) - [#3648](https://github.com/mochajs/mocha/issues/3648), [#3680](https://github.com/mochajs/mocha/issues/3680): Fixes to support latest versions of [unexpected](https://npm.im/unexpected) and [unexpected-sinon](https://npm.im/unexpected-sinon) ([**@sunesimonsen**](https://github.com/sunesimonsen)) - [#3638](https://github.com/mochajs/mocha/issues/3638): Add meta tag to site ([**@MartijnCuppens**](https://github.com/MartijnCuppens)) - [#3653](https://github.com/mochajs/mocha/issues/3653): Fix parts of test suite failing to run on Windows ([**@boneskull**](https://github.com/boneskull)) ## 6.0.0-1 / 2019-01-02 ### :bug: Fixes - Fix missing `mocharc.json` in published package ([**@boneskull**](https://github.com/boneskull)) ## 6.0.0-0 / 2019-01-01 **Documentation for this release can be found at [next.mochajs.org](https://next.mochajs.org)**! Welcome [**@plroebuck**](https://github.com/plroebuck), [**@craigtaub**](https://github.com/craigtaub), & [**@markowsiak**](https://github.com/markowsiak) to the team! ### :boom: Breaking Changes - [#3149](https://github.com/mochajs/mocha/issues/3149): **Drop Node.js v4.x support** ([**@outsideris**](https://github.com/outsideris)) - [#3556](https://github.com/mochajs/mocha/issues/3556): Changes to command-line options ([**@boneskull**](https://github.com/boneskull)): - `--grep` and `--fgrep` are now mutually exclusive; attempting to use both will cause Mocha to fail instead of simply ignoring `--grep` - `--compilers` is no longer supported; attempting to use will cause Mocha to fail with a link to more information - `-d` is no longer an alias for `--debug`; `-d` is currently ignored - [#3275](https://github.com/mochajs/mocha/issues/3275): `--watch-extensions` no longer implies `js`; it must be explicitly added ([**@TheDancingCode**](https://github.com/TheDancingCode)) - [#2908](https://github.com/mochajs/mocha/issues/2908): `tap` reporter emits error messages ([**@chrmod**](https://github.com/chrmod)) - [#2819](https://github.com/mochajs/mocha/issues/2819): When conditionally skipping in a `before` hook, subsequent `before` hooks *and* tests in nested suites are now skipped ([**@bannmoore**](https://github.com/bannmoore)) - [#627](https://github.com/mochajs/mocha/issues/627): Emit filepath in "timeout exceeded" exceptions where applicable ([**@boneskull**](https://github.com/boneskull)) - [#3556](https://github.com/mochajs/mocha/issues/3556): `lib/template.html` has moved to `lib/browser/template.html` ([**@boneskull**](https://github.com/boneskull)) - [#2576](https://github.com/mochajs/mocha/issues/2576): An exception is now thrown if Mocha fails to parse or find a `mocha.opts` at a user-specified path ([**@plroebuck**](https://github.com/plroebuck)) - [#3458](https://github.com/mochajs/mocha/issues/3458): Instantiating a `Base`-extending reporter without a `Runner` parameter will throw an exception ([**@craigtaub**](https://github.com/craigtaub)) - [#3125](https://github.com/mochajs/mocha/issues/3125): For consumers of Mocha's programmatic API, all exceptions thrown from Mocha now have a `code` property (and some will have additional metadata). Some `Error` messages have changed. **Please use the `code` property to check `Error` types instead of the `message` property**; these descriptions will be localized in the future. ([**@craigtaub**](https://github.com/craigtaub)) ### :fax: Deprecations These are *soft*-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha: - `-gc` users should use `--gc-global` instead - Consumers of the function exported by `bin/options` should now use the `loadMochaOpts` or `loadOptions` (preferred) functions exported by the `lib/cli/options` module Regarding the `Mocha` class constructor (from `lib/mocha`): - Use property `color: false` instead of `useColors: false` - Use property `timeout: false` instead of `enableTimeouts: false` All of the above deprecations were introduced by [#3556](https://github.com/mochajs/mocha/issues/3556). `mocha.opts` is now considered "legacy"; please prefer RC file or `package.json` over `mocha.opts`. ### :tada: Enhancements Enhancements introduced in [#3556](https://github.com/mochajs/mocha/issues/3556): - Mocha now supports "RC" files in JS, JSON, YAML, or `package.json`-based (using `mocha` property) format - `.mocharc.js`, `.mocharc.json`, `.mocharc.yaml` or `.mocharc.yml` are valid "rc" file names and will be automatically loaded - Use `--config /path/to/rc/file` to specify an explicit path - Use `--package /path/to/package.json` to specify an explicit `package.json` to read the `mocha` prop from - Use `--no-config` or `--no-package` to completely disable loading of configuration via RC file and `package.json`, respectively - Configurations are merged as applicable using the priority list: 1. Command-line arguments 1. RC file 1. `package.json` 1. `mocha.opts` 1. Mocha's own defaults - Check out these [example config files](https://github.com/mochajs/mocha/tree/master/example/config) - Node/V8 flag support in `mocha` executable: - Support all allowed `node` flags as supported by the running version of `node` (also thanks to [**@demurgos**](https://github.com/demurgos)) - Support any V8 flag by prepending `--v8-` to the flag name - All flags are also supported via config files, `package.json` properties, or `mocha.opts` - Debug-related flags (e.g., `--inspect`) now *imply* `--no-timeouts` - Use of e.g., `--debug` will automatically invoke `--inspect` if supported by running version of `node` - Support negation of any Mocha-specific command-line flag by prepending `--no-` to the flag name - Interfaces now have descriptions when listed using `--interfaces` flag - `Mocha` constructor supports all options - `--extension` is now an alias for `--watch-extensions` and affects *non-watch-mode* test runs as well. For example, to run *only* `test/*.coffee` (not `test/*.js`), you can do `mocha --require coffee-script/register --extensions coffee`. - [#3552](https://github.com/mochajs/mocha/issues/3552): `tap` reporter is now TAP13-capable ([**@plroebuck**](https://github.com/plroebuck) & [**@mollstam**](https://github.com/mollstam)) - [#3535](https://github.com/mochajs/mocha/issues/3535): Mocha's version can now be queried programmatically via public property `Mocha.prototype.version` ([**@plroebuck**](https://github.com/plroebuck)) - [#3428](https://github.com/mochajs/mocha/issues/3428): `xunit` reporter shows diffs ([**@mlucool**](https://github.com/mlucool)) - [#2529](https://github.com/mochajs/mocha/issues/2529): `Runner` now emits a `retry` event when tests are retried (reporters can listen for this) ([**@catdad**](https://github.com/catdad)) - [#2962](https://github.com/mochajs/mocha/issues/2962), [#3111](https://github.com/mochajs/mocha/issues/3111): In-browser notification support; warn about missing prereqs when `--growl` supplied ([**@plroebuck**](https://github.com/plroebuck)) ### :bug: Fixes - [#3356](https://github.com/mochajs/mocha/issues/3356): `--no-timeouts` and `--timeout 0` now does what you'd expect ([**@boneskull**](https://github.com/boneskull)) - [#3475](https://github.com/mochajs/mocha/issues/3475): Restore `--no-exit` option ([**@boneskull**](https://github.com/boneskull)) - [#3570](https://github.com/mochajs/mocha/issues/3570): Long-running tests now respect `SIGINT` ([**@boneskull**](https://github.com/boneskull)) - [#2944](https://github.com/mochajs/mocha/issues/2944): `--forbid-only` and `--forbid-pending` now "fail fast" when encountered on a suite ([**@outsideris**](https://github.com/outsideris)) - [#1652](https://github.com/mochajs/mocha/issues/1652), [#2951](https://github.com/mochajs/mocha/issues/2951): Fix broken clamping of timeout values ([**@plroebuck**](https://github.com/plroebuck)) - [#2095](https://github.com/mochajs/mocha/issues/2095), [#3521](https://github.com/mochajs/mocha/issues/3521): Do not log `stdout:` prefix in browser console ([**@Bamieh**](https://github.com/Bamieh)) - [#3595](https://github.com/mochajs/mocha/issues/3595): Fix mochajs.org deployment problems ([**@papandreou**](https://github.com/papandreou)) - [#3518](https://github.com/mochajs/mocha/issues/3518): Improve `utils.isPromise()` ([**@fabiosantoscode**](https://github.com/fabiosantoscode)) - [#3320](https://github.com/mochajs/mocha/issues/3320): Fail gracefully when non-extensible objects are thrown in async tests ([**@fargies**](https://github.com/fargies)) - [#2475](https://github.com/mochajs/mocha/issues/2475): XUnit does not duplicate test result numbers in "errors" and "failures"; "failures" will **always** be zero ([**@mlucool**](https://github.com/mlucool)) - [#3398](https://github.com/mochajs/mocha/issues/3398), [#3598](https://github.com/mochajs/mocha/issues/3598), [#3457](https://github.com/mochajs/mocha/issues/3457), [#3617](https://github.com/mochajs/mocha/issues/3617): Fix regression wherein `--bail` would not execute "after" nor "after each" hooks ([**@juergba**](https://github.com/juergba)) - [#3580](https://github.com/mochajs/mocha/issues/3580): Fix potential exception when using XUnit reporter programmatically ([**@Lana-Light**](https://github.com/Lana-Light)) - [#1304](https://github.com/mochajs/mocha/issues/1304): Do not output color to `TERM=dumb` ([**@plroebuck**](https://github.com/plroebuck)) ### :book: Documentation - [#3525](https://github.com/mochajs/mocha/issues/3525): Improvements to `.github/CONTRIBUTING.md` ([**@markowsiak**](https://github.com/markowsiak)) - [#3466](https://github.com/mochajs/mocha/issues/3466): Update description of `slow` option ([**@finfin**](https://github.com/finfin)) - [#3405](https://github.com/mochajs/mocha/issues/3405): Remove references to bower installations ([**@goteamtim**](https://github.com/goteamtim)) - [#3361](https://github.com/mochajs/mocha/issues/3361): Improvements to `--watch` docs ([**@benglass**](https://github.com/benglass)) - [#3136](https://github.com/mochajs/mocha/issues/3136): Improve docs around globbing and shell expansion ([**@akrawchyk**](https://github.com/akrawchyk)) - [#2819](https://github.com/mochajs/mocha/issues/2819): Update docs around skips and hooks ([**@bannmoore**](https://github.com/bannmoore)) - Many improvements by [**@outsideris**](https://github.com/outsideris) ### :nut\_and\_bolt: Other - [#3557](https://github.com/mochajs/mocha/issues/3557): Use `ms` userland module instead of hand-rolled solution ([**@gizemkeser**](https://github.com/gizemkeser)) - Many CI fixes and other refactors by [**@plroebuck**](https://github.com/plroebuck) - Test refactors by [**@outsideris**](https://github.com/outsideris) ## 5.2.0 / 2018-05-18 ### :tada: Enhancements - [#3375](https://github.com/mochajs/mocha/pull/3375): Add support for comments in `mocha.opts` ([@plroebuck](https://github.com/plroebuck)) ### :bug: Fixes - [#3346](https://github.com/mochajs/mocha/pull/3346): Exit correctly from `before` hooks when using `--bail` ([@outsideris](https://github.com/outsideris)) ### :book: Documentation - [#3328](https://github.com/mochajs/mocha/pull/3328): Mocha-flavored [API docs](https://mochajs.org/api/)! ([@Munter](https://github.com/munter)) ### :nut\_and\_bolt: Other - [#3330](https://github.com/mochajs/mocha/pull/3330): Use `Buffer.from()` ([@harrysarson](https://github.com/harrysarson)) - [#3295](https://github.com/mochajs/mocha/pull/3295): Remove redundant folder ([@DavNej](https://github.com/DajNev)) - [#3356](https://github.com/mochajs/mocha/pull/3356): Refactoring ([@plroebuck](https://github.com/plroebuck)) ## 5.1.1 / 2018-04-18 ### :bug: Fixes - [#3325](https://github.com/mochajs/mocha/issues/3325): Revert change which broke `--watch` ([@boneskull](https://github.com/boneskull)) ## 5.1.0 / 2018-04-12 ### :tada: Enhancements - [#3210](https://github.com/mochajs/mocha/pull/3210): Add `--exclude` option ([@metalex9](https://github.com/metalex9)) ### :bug: Fixes - [#3318](https://github.com/mochajs/mocha/pull/3318): Fix failures in circular objects in JSON reporter ([@jeversmann](https://github.com/jeversmann), [@boneskull](https://github.com/boneskull)) ### :book: Documentation - [#3323](https://github.com/mochajs/mocha/pull/3323): Publish actual [API documentation](https://mochajs.org/api/)! ([@dfberry](https://github.com/dfberry), [@Munter](https://github.com/munter)) - [#3299](https://github.com/mochajs/mocha/pull/3299): Improve docs around exclusive tests ([@nicgirault](https://github.com/nicgirault)) ### :nut\_and\_bolt: Other - [#3302](https://github.com/mochajs/mocha/pull/3302), [#3308](https://github.com/mochajs/mocha/pull/3308), [#3310](https://github.com/mochajs/mocha/pull/3310), [#3315](https://github.com/mochajs/mocha/pull/3315), [#3316](https://github.com/mochajs/mocha/pull/3316): Build matrix improvements ([more info](https://boneskull.com/mocha-and-travis-ci-build-stages/)) ([@outsideris](https://github.com/outsideris), [@boneskull](https://github.com/boneskull)) - [#3272](https://github.com/mochajs/mocha/pull/3272): Refactor reporter tests ([@jMuzsik](https://github.com/jMuzsik)) ## 5.0.5 / 2018-03-22 Welcome [@outsideris](https://github.com/outsideris) to the team! ### :bug: Fixes - [#3096](https://github.com/mochajs/mocha/issues/3096): Fix `--bail` failing to bail within hooks ([@outsideris](https://github.com/outsideris)) - [#3184](https://github.com/mochajs/mocha/issues/3184): Don't skip too many suites (using `describe.skip()`) ([@outsideris](https://github.com/outsideris)) ### :book: Documentation - [#3133](https://github.com/mochajs/mocha/issues/3133): Improve docs regarding "pending" behavior ([@ematicipo](https://github.com/ematicipo)) - [#3276](https://github.com/mochajs/mocha/pull/3276), [#3274](https://github.com/mochajs/mocha/pull/3274): Fix broken stuff in `CHANGELOG.md` ([@tagoro9](https://github.com/tagoro9), [@honzajavorek](https://github.com/honzajavorek)) ### :nut\_and\_bolt: Other - [#3208](https://github.com/mochajs/mocha/issues/3208): Improve test coverage for AMD users ([@outsideris](https://github.com/outsideris)) - [#3267](https://github.com/mochajs/mocha/pull/3267): Remove vestiges of PhantomJS from CI ([@anishkny](https://github.com/anishkny)) - [#2952](https://github.com/mochajs/mocha/issues/2952): Fix a debug message ([@boneskull](https://github.com/boneskull)) ## 5.0.4 / 2018-03-07 ### :bug: Fixes - [#3265](https://github.com/mochajs/mocha/issues/3265): Fixes regression in "watch" functionality introduced in v5.0.2 ([@outsideris](https://github.com/outsideris)) ## 5.0.3 / 2018-03-06 This patch features a fix to address a potential "low severity" [ReDoS vulnerability](https://snyk.io/vuln/npm:diff:20180305) in the [diff](https://npm.im/diff) package (a dependency of Mocha). ### :lock: Security Fixes - [#3266](https://github.com/mochajs/mocha/pull/3266): Bump `diff` to v3.5.0 ([@anishkny](https://github.com/anishkny)) ### :nut\_and\_bolt: Other - [#3011](https://github.com/mochajs/mocha/issues/3011): Expose `generateDiff()` in `Base` reporter ([@harrysarson](https://github.com/harrysarson)) ## 5.0.2 / 2018-03-05 This release fixes a class of tests which report as *false positives*. **Certain tests will now break**, though they would have previously been reported as passing. Details below. Sorry for the inconvenience! ### :bug: Fixes - [#3226](https://github.com/mochajs/mocha/issues/3226): Do not swallow errors that are thrown asynchronously from passing tests ([@boneskull](https://github.com/boneskull)). Example: \`\`\`js it('should actually fail, sorry!', function (done) { // passing assertion assert(true === true); // test complete & is marked as passing done(); // ...but something evil lurks within setTimeout(() => { throw new Error('chaos!'); }, 100); }); \`\`\` Previously to this version, Mocha would have *silently swallowed* the `chaos!` exception, and you wouldn't know. Well, *now you know*. Mocha cannot recover from this gracefully, so it will exit with a nonzero code. **Maintainers of external reporters**: *If* a test of this class is encountered, the `Runner` instance will emit the `end` event *twice*; you *may* need to change your reporter to use `runner.once('end')` intead of `runner.on('end')`. - [#3093](https://github.com/mochajs/mocha/issues/3093): Fix stack trace reformatting problem ([@outsideris](https://github.com/outsideris)) ### :nut\_and\_bolt: Other - [#3248](https://github.com/mochajs/mocha/issues/3248): Update `browser-stdout` to v1.3.1 ([@honzajavorek](https://github.com/honzajavorek)) ## 5.0.1 / 2018-02-07 ...your garden-variety patch release. Special thanks to [Wallaby.js](https://wallabyjs.com) for their continued support! :heart: ### :bug: Fixes - [#1838](https://github.com/mochajs/mocha/issues/1838): `--delay` now works with `.only()` ([@silviom](https://github.com/silviom)) - [#3119](https://github.com/mochajs/mocha/issues/3119): Plug memory leak present in v8 ([@boneskull](https://github.com/boneskull)) ### :book: Documentation - [#3132](https://github.com/mochajs/mocha/issues/3132), [#3098](https://github.com/mochajs/mocha/issues/3098): Update `--glob` docs ([@outsideris](https://github.com/outsideris)) - [#3212](https://github.com/mochajs/mocha/pull/3212): Update [Wallaby.js](https://wallabyjs.com)-related docs ([@ArtemGovorov](https://github.com/ArtemGovorov)) - [#3205](https://github.com/mochajs/mocha/pull/3205): Remove outdated cruft ([@boneskull](https://github.com/boneskull)) ### :nut\_and\_bolt: Other - [#3224](https://github.com/mochajs/mocha/pull/3224): Add proper Wallaby.js config ([@ArtemGovorov](https://github.com/ArtemGovorov)) - [#3230](https://github.com/mochajs/mocha/pull/3230): Update copyright year ([@josephlin55555](https://github.com/josephlin55555)) ## 5.0.0 / 2018-01-17 Mocha starts off 2018 right by again dropping support for *unmaintained rubbish*. Welcome [@vkarpov15](https://github.com/vkarpov15) to the team! ### :boom: Breaking Changes - **[#3148](https://github.com/mochajs/mocha/issues/3148): Drop support for IE9 and IE10** ([@Bamieh](https://github.com/Bamieh)) Practically speaking, only code which consumes (through bundling or otherwise) the userland [buffer](https://npm.im/buffer) module should be affected. However, Mocha will no longer test against these browsers, nor apply fixes for them. ### :tada: Enhancements - [#3181](https://github.com/mochajs/mocha/issues/3181): Add useful new `--file` command line argument ([documentation](https://mochajs.org/#--file-file)) ([@hswolff](https://github.com/hswolff)) ### :bug: Fixes - [#3187](https://github.com/mochajs/mocha/issues/3187): Fix inaccurate test duration reporting ([@FND](https://github.com/FND)) - [#3202](https://github.com/mochajs/mocha/pull/3202): Fix bad markup in HTML reporter ([@DanielRuf](https://github.com/DanielRuf)) ### :sunglasses: Developer Experience - [#2352](https://github.com/mochajs/mocha/issues/2352): Ditch GNU Make for [nps](https://npm.im/nps) to manage scripts ([@TedYav](https://github.com/TedYav)) ### :book: Documentation - [#3137](https://github.com/mochajs/mocha/issues/3137): Add missing `--no-timeouts` docs ([@dfberry](https://github.com/dfberry)) - [#3134](https://github.com/mochajs/mocha/issues/3134): Improve `done()` callback docs ([@maraisr](https://github.com/maraisr)) - [#3135](https://github.com/mochajs/mocha/issues/3135): Fix cross-references ([@vkarpov15](https://github.com/vkarpov15)) - [#3163](https://github.com/mochajs/mocha/pull/3163): Fix tpyos ([@tbroadley](https://github.com/tbroadley)) - [#3177](https://github.com/mochajs/mocha/pull/3177): Tweak `README.md` organization ([@xxczaki](https://github.com/xxczaki)) - Misc updates ([@boneskull](https://github.com/boneskull)) ### :nut\_and\_bolt: Other - [#3118](https://github.com/mochajs/mocha/issues/3118): Move TextMate Integration to [its own repo](https://github.com/mochajs/mocha.tmbundle) ([@Bamieh](https://github.com/Bamieh)) - [#3185](https://github.com/mochajs/mocha/issues/3185): Add Node.js v9 to build matrix; remove v7 ([@xxczaki](https://github.com/xxczaki)) - [#3172](https://github.com/mochajs/mocha/issues/3172): Markdown linting ([@boneskull](https://github.com/boneskull)) - Test & Netlify updates ([@Munter](https://github.com/munter), [@boneskull](https://github.com/boneskull)) �����������������������mochajs-mocha-51a0cc5/FUNDING.md��������������������������������������������������������������������0000664�0000000�0000000�00000001545�15257337474�0016270�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Fund Usage Guidelines This project follows [Collective Funds Guidelines 0.1](https://github.com/collective-funds/guidelines) with the below customizations. ## Rates - TSC Members: $75.00 USD/hour - Project Contributors: $50.00 USD/hour ## Additional notes The project funds are collected in the [Mocha collective](https://opencollective.com/mochajs) on [Open Collective](https://opencollective.com/) which is hosted by the [Open Source Collective](https://oscollective.org/). In additions to the [Collective Funds Guidelines](https://github.com/collective-funds/guidelines) this project abides by the [Open Source Collective](https://oscollective.org/)'s [Terms of Fiscal Sponsorship](https://docs.oscollective.org/getting-started/terms-of-fiscal-sponsorship). When/if the two are in conflict, the Terms of Fiscal Sponsorship is the one that will be followed. �����������������������������������������������������������������������������������������������������������������������������������������������������������mochajs-mocha-51a0cc5/LICENSE�����������������������������������������������������������������������0000664�0000000�0000000�00000002143�15257337474�0015654�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������(The MIT License) Copyright (c) 2011-2026 OpenJS Foundation and contributors, https://openjsf.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������mochajs-mocha-51a0cc5/MAINTAINERS.md����������������������������������������������������������������0000664�0000000�0000000�00000055651�15257337474�0016757�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mocha Maintainer's Handbook ## Introduction Hi stranger! We've written this document for: 1. Active maintainers of Mocha 1. Prospective maintainers of Mocha 1. Anyone curious about how Mocha's maintainers maintain Mocha The purpose of this document is to _describe our processes_. We want to avoid conflicts and confusion around "unwritten rules". In our opinion, the most straightforward way to address this is to _write them down_. This _also_ happens to be the most straightforward way to change them! To assist in eliminating ambiguity, we will define some terms. ## Terminology Anyone involved with Mocha will fall into one of these buckets: **user**, **contributor**, and **maintainer**. ### User A "user" for the purpose of this document is any _individual developer_ who consumes Mocha to write and/or execute tests. A user interacts with contributors. A user interacts with the software, web site, documentation, etc., which these contributors provide. As a user, you're expected to follow the [code of conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) when interacting in Mocha's "official" social spaces. This includes: - Any channel under the `mochajs` Discord - Any project under the `mochajs` organization on GitHub - Any future social, in-person, or online events which Mocha might organize ### Contributor This is the most important thing: **You don't have to write code to be a contributor!** A "contributor" is any individual who has _given back_ in some way to the project and its community. Contributions include (but are not limited to): 1. Reporting bugs which follow the reporting guidelines 1. Suggesting and debating enhancements that have wide applicability 1. Helping others with Mocha-related questions on [our Discord](https://discord.gg/KeDn2uXhER), [StackOverflow](https://stackoverflow.com), or other sites 1. Sending pull requests which fix bugs, improve documentation, improve developer experience, improve code quality, and/or implement requested enhancements 1. Reviewing code on pull requests 1. Providing design assets 1. Posting a tutorial on a personal blog or blogging site 1. Suggesting usages for project funds 1. Organizing a "Mocha-branded" event or workshop 1. Recruiting more contributors! Don't spam. 1. Researching the user base, getting feedback, etc. Don't spam. A contributor is _usually_ a user as well, but this isn't a hard-and-fast rule. A contributor is also expected to adhere to the [code of conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) as a user would. As you can see, it's wide open! Think of it another way: if you are _adding value to Mocha_, then you are a contributor. > Due to the nature of GitHub, it's a challenge to recognize those who've made contributions _elsewhere_ on the web, or even contributions of the "non-code" variety. > If you know of any great contributions which have gone unnoticed, please bring them to the maintainers' attention! #### A Note About Donations A [donation](https://opencollective.com/mochajs) is also a great way to help Mocha if you want to help sustain OSS, but can't find time to contribute in other ways, or just want to say "thanks!" We love our backers and sponsors! πŸ’• ### Maintainer A maintainer has certain "rights" (or "permissions") to the Mocha project and other projects under the `mochajs` organization. There's no way to dance around this: with these rights come increased responsibilities. However, **there is no expectation of a standard of technical ability** to be a maintainer of Mocha. This doesn't imply a lack of technical oversight--every pull request will eventually be reviewed. **If you think you aren't experienced enough to maintain a project like Mocha, you are incorrect.** The only requirements are the above responsibilities and a desire to help the project. It bears repeating: **You don't have to write code to be a maintainer!** > Maintainer is synonymous with "Collaborator" and/or "Owner" in GitHub parlance. #### The Responsibilities of a Maintainer As a maintainer, you are expected to _not just_ "follow" the code of conduct, but embody its values. Your public behavior, whether in the physical or virtual world, reflects upon the project and other maintainers. > If you don't understand the code of conduct, or why it exists, it is _your responsibility_ to educate yourself. > This does not imply the CoC is immutable. Furthermore, a maintainer is a contributor who **contributes regularly**. That can be daily, weekly, or even just a few times a month -- as long as it's regular. We are all people with Real Lives, and for many of us, contributing to OSS is just an occasional hobby! Finally, a maintainer must help define what makes Mocha "Mocha". At minimum, a maintainer must _understand_ the current definition (if a maintainer is not interested in decision-making). Some of these questions include: - What's the scope of Mocha? - Where should we focus efforts? - What's urgent, what can wait? - What can we break? What's off-limits? - What user feedback is valuable? What isn't? As maintainers, _we work together_ to learn about the nature of these questions. If we try hard enough, we even come to some answers! A maintainer _must_ also have 2FA enabled on their GitHub account. > If you think that you aren't familiar with mocha's internals enough to contribute, please watch [this walkthrough video](https://youtu.be/zLayCLcIno0)! #### The Rights of a Maintainer You may choose to do zero or more of these _at their discretion_: - Merge pull requests - Modify issues (closing, adding labels, assigning them other maintainers, etc.) - Modify GitHub [Projects](https://github.com/mochajs/mocha/projects) - Cancel builds, restart jobs, or otherwise interact with our CI server(s) - CRUD operations on GitHub integrations - Participate in the decision-making process - Add new maintainers to the team - Tag releases and publish Mocha to npm > While maintainers have the ability to commit directly to the `main` branch, _this is to be avoided_ if any other maintainer could reasonably take issue with the change, or the change affects Mocha's API or output. > For example, a spelling correction in `CHANGELOG.md` may not require a pull request. > A change to a reporter's output most certainly would! Maintainers are trusted to use their best judgement; if unsure, err on the side of caution. #### Expected Activity Levels We generally expect maintainers to average at least: - Multiple contributions of any kind in a week - One meaningful, non-trivial contribution per month These are rough averages, not strict minimums! It's totally fine to skip a week or two here and there, as long as you do a little more before or after. Meaningful, non-trivial contributions can be a well-thought-out comment, sending a non-straightforward pull request, or anything else that adds real value to the project. If you have to step away longer than a couple of weeks, that's totally fine too. Just let the other maintainers know ahead of time. - If you need to step away for up to a month or two, don't sweat it. - If we don't hear from you for a month without prior notice, we'll check in with you to see if you want to remain a maintainer. - After three months of inactivity, or two without prior notice, we'll likely remove you as a maintainer. Again, don't stress about this if you can't always be available. Your boss doesn't work here; contribute as often as you reasonably can. Even if you step down or are removed, if you can come back and be regularly active we'll happily reinstate you. #### About "Owners" Some maintainers will have full admin rights to the [mochajs GitHub org](https://github.com/mochajs) and/or will have access to publish to npm. - Those with publish access must use npm's 2FA. - This level of access will be granted by the current owners to those maintainers who have earned the project's trust. ## Mocha's Decision-Making Process Mocha follows a [consensus-seeking decision-making](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making) process. In other words, all maintainers attempt to come to agreement. If that fails, we decide by a simple vote. Active maintainers will make an effort to solicit feedback from others before making important or potentially controversial decisions. Given the varying geographical distribution and availability of the maintenance team, we resolve to do the best we can to solicit feedback. We will wait at least two weeks for consensus votes in most cases, and a month for especially important decisions. In other words, to have your opinion heard, participate regularly. The rest of the team won't wait on feedback that isn't necessarily forthcoming! ## Communication Maintainers will mainly gather in the [Mocha Discord](https://discord.gg/KeDn2uXhER). This is a _public_ Discord, and _anyone_ can join. Videoconference (or audio) calls may happen on a regular or irregular basis, as schedules allow. This is mainly because we have Real Lives and time zones suck. ## Working with Issues & Pull Requests All new issues will need to be triaged, and pull requests must be examined. Maintainers must understand [Semantic Versioning](http://semver.org) ("SemVer"), as Mocha follows it strictly. > If you see an issue or PR that could use some labels, please add them! ### Semantic Versioning The TL;DR of Semantic Versioning is: - MAJOR version when you make incompatible API changes, - MINOR version when you add functionality in a backwards-compatible manner, and - PATCH version when you make backwards-compatible bug fixes. Pull requests _must_ have one of these three (3) labels: - `semver-patch` for backwards-compatible bug fixes, documentation, or anything which does not affect a "production" (`npm install mocha`) installation of Mocha - `semver-minor` for backwards-compatible new features or usability/interface enhancements - `semver-major` for backwards-incompatible ("breaking") changes to the API A PR which introduces a breaking change is considered to be `semver-major`, _regardless_ of whether it's a bug fix, feature, or whatever. For the purposes of the above definitions, Mocha has some unique considerations, and includes the following in its definition of "API": 1. Mocha's _documented_, programmatic interface which _is not explicitly tagged with `@private`_ 1. Mocha's machine-readable reporter output 1. Mocha's default settings 1. Mocha's command-line options 1. The environments which Mocha supports; this includes: 1. Browser versions 1. Node.js versions 1. Compatibility with popular module loaders (e.g., AMD) **Err on the side of the user; breaking changes to private APIs will be `semver-major`, if and only if they are known to be consumed by actively developed project(s).** Examples of a breaking changes might be: - Throwing an `Error` where one wasn't thrown before - Removing a command-line option or alias - Removing an environment from the CI configuration - Changing the default reporter! - Changing defaults in a way which would cause tests which were previously successful to start failing, or a failing test to start passing - The exception is fixing likely false-positives - A good example would be changing the default `timeout` value ## Issue Triage Issues should be filed according to one of our [GitHub Issue forms](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms). If any required information is missing, add the `status: waiting for author` label and politely ask for the missing information. ### Issue Meta For all issues, apply the following labels based on which area(s) the issue pertains to: - `area: async`: Issues around Mocha's asynchronous usage - `area: browser`: Issues unique to a browser environment - `area: parallel`: Issues around Mocha's parallel mode - `area: reporter`: Usually concerning Mocha's output - `area: repository tooling`: Issues around Mocha's CI, own test suite, or other internal tooling - `area: security`: Involving vulnerabilities, actual or potential - `area: windows`: Windows-specific issues, particularly around path discrepancies Additionally: - `good first issue`: If the implementation is likely doable by someone who's never contributed to Mocha (or potentially any other open source project) before - `status: duplicate`: If an equivalent issue was already filed, add this label, close as not planned, and comment with something like `duplicate of #` - `status: in discussion`: Add this whenever the issue is blocked on community input and/or deeper discussions - `status: in triage`: Added on new issues; re-add this whenever the issue is awaiting maintainer attention - `status: waiting for author`: Add this whenever the issue is blocked on something from the author ### πŸ› Bugs Bug reports should include a way to reproduce the issue that someone who is not deeply familiar with Mocha can work with locally. Depending on that reproduction, remove `status: in triage` and add the following label(s) in addition to the auto-added `type: bug`: - If the bug is valid and reproduction works: add `status: accepting prs` - If the bug might be valid but the reproduction isn't workable: - Add `status: waiting for author` - Politely comment explaining why the reproduction isn't workable - If the bug might be valid but it's not clear whether it's worth it: - Add `status: in discussion` - Explain that it _might_ be worth it and that more community input is needed - If the bug is clearly not worth it or valid, explain why, close the issue as not planned, and: - If it isn't a bug at all: add the `invalid` label - If it is roughly a bug but isn't something that can or should be fixed: add the `status: wontfix` label ### πŸ“ Documentation Documentation reports should clearly indicate a gap or problem that should be addressed in documentation. Triage documentation issues similar to bugs and/or feature requests - documentation is its own form of product area. Remove `status: in triage` and keep the auto-added `area: documentation` label. ### πŸš€ Features Feature requests should include a compelling reason why we should spend the maintenance time on the feature. Given that Mocha is prioritizing stability over growth, this can be a high bar. Depending on the reasoning, remove `status: in triage` and add the following label(s) in addition to the auto-added `type: feature`: - If the reasoning is valid and seems worth the maintenance cost: add `status: accepting prs` - If the reasoning is unclear: - Add `status: waiting for author` - Politely comment explaining what's missing - If the feature might be valid but it's not clear whether it's worth it: - Add `status: in discussion` - Explain that it _might_ be worth it and that more community input is needed - If the feature is not valid, explain why, close the issue as not planned, and: - If it isn't a feature request at all: add the `invalid` label - If it is roughly a feature request but isn't something that can or should be implemented: add the `status: wontfix` label ### πŸ›  Tooling Issues filed about improvements to Mocha's internal development processes. These can be more informally discussed by maintainers. Remove `status: in triage` and keep the auto-added `area: repository tooling`. ### ❓ Questions Our issue tracker is not the right place to ask questions. If an issue is filed that seems like it's more of a question, remove `status: in triage`, add the `type: question` label, politely direct the user to the [❓ Got a Question?](./.github/CONTRIBUTING.md#❓-got-a-question) section, and close the issue as not planned. If it's _not_ a Mocha problem (people tend not to believe this), you may want to show a counter-example. It's often helpful to direct the issue author to the responsible project, if you can determine what that is. If this issue seems to be _repeatedly_ asked, add the `faq` label. This may also apply to questions which receive a lot of πŸ‘ reactions. ### Closing Issues Write "closes #000" (where 000 is the issue number) or "resolves #000" in a commit or PR to have the original issue closed automatically once the PR is merged. For any issue which is a duplicate, write "duplicate of #000" in a new comment, and close the issue. [Read more about marking issues as duplicates](https://help.github.com/articles/about-duplicate-issues-and-pull-requests/). If the issue is a support question, and you believe it has been answered, close the issue. If the issue is not Mocha-related, and/or a bug cannot be confirmed, label it `invalid` and close. ## Commenting on Issues and Reviewing Pull Requests **All maintainers should be courteous and kind.** Thank the external contributor for the pull request, even if it is not merged. If the pull request has been opened (and subsequently closed) without discussion in a corresponding issue, let them know that by creating an issue first, they could have saved wasted effort. _Clearly and objectively_ explain the reasoning for rejecting any PR. If you need more information in an issue, nicely ask the user to provide it. Remind them to use the issue/PR templates if they have not. ### Reviewing Code Use GitHub's code review features. Requesting a review from another maintainer _may or may not_ actually result in a review; don't wait on it. If the PR cannot move forward without input from a certain maintainer, _assign them to the PR_. ### The Part About Jerks There will be jerks. #### Rude or Entitled People These are users who feel the Mocha project and its maintainers _owe them_ time or support. This is incorrect. However, this behavior is often indicative of someone who is "new" to open source. Many just don't know better. It is not your _responsibility_ to educate them (again, you owe them nothing). Here are some suggestions: 1. If u mad, wait 20 minutes before writing a comment. 1. "Kill them with kindness". Explain how they are presenting themselves; maybe link to a good article or two about it. 1. Don't make it about "users vs. maintainers". Treat them like a potential future maintainer. 1. Avoid adding to the drama. You could try to reach out privately; email may be in their GitHub profile. You will likely never hear from that individual again (problem solved) 1. If an issue is getting out of control, lock it. 1. If someone is _repeatedly_ rude and does not correct their mistakes, you may ban them from participating in the `mochajs` org. If you do not have permission to do so, contact one which does (an "owner"). #### Code of Conduct Violations **This section is theoretical, as it's yet to happen**. 1. Inform the individual of the violation; link to the CoC 1. Follow up with OpenJS Foundation for further guidance 1. Repeated violators will be banned inasmuch as that is technically possible 1. No maintainer nor contributor is exempt from the CoC ## Branches `main` is the only maintained branch in `mochajs/mocha` or any of the other repos. **`main` is the only branch to which force-pushing is disallowed.** Maintainers may push new branches to a repo, as long as they remove them when finished (merging a PR will prompt to do so). Please _please_ **_please_** delete old or unused branches. ## Merging PRs We prefer to [squash merge](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#squash-and-merge-your-commits) PRs. Requiring users to keep clean histories for rebasing would be a large ask that we don't feel justifies the benefits. **Upon acceptance of a PR, you must assign it a milestone.** ### Using Milestones If you know that the PR is breaking, assign it to a new or existing milestone correlating with the next major release. For example, if Mocha's current version is v6.5.2, then this milestone would be named `v7.0.0`. Likewise, if the PR is `semver-minor`, create or use a new milestone correlating to the next _minor_ release, e.g., `v6.6.0`. If it's unclear what the next milestone will be, use or create a milestone named `next`. This milestone will be renamed to the new version at release time. By using milestones, we can cherry-pick non-breaking changes into minor or patch releases, and keep `main` as the latest version. **This is subject to change, hopefully.** ## Mocha's Release Process Releases are managed by [Release Please](https://github.com/googleapis/release-please) and require manual approval after tests pass. To create a new release after merging changes, merge the _`chore(main): release...`_ pull request that its automation has created. Doing so will: 1. Create a new GitHub release 2. Cause a CI job to run on `main` that will publish the package to npm You'll then need to go to the `chore(main): release ...` commit _Publish to npm_ job run logs and click the _Review pending deployments_ link. ### Major releases For major releases, we follow an even-odd pattern: - Even versions only update dependencies and avoid breaking functional changes - Odd versions can update dependencies and add breaking functional changes This results in even versions being quite small but easy to migrate to, and odd versions can usually focus on the functional changes. For large releases, we recommend betas, then release candidates (RCs), then a full release. Betas are when most features are available, but more will likely be added before full release. RCs are almost ready for release, but would benefit from user testing before a full release. To start a new major version beta, add `Release-As: 12.0.0-beta.1` to the additional details of your PR commit message. This must be part the last line of the commit message, not the PR description. Release Please respects this property and will update accordingly. You can also set Release Please to prelease mode to increment the beta number. > **Important:** Always use a dot (`.`) as the separator between the pre-release label and the number (e.g. `beta.1`, not `beta-1`). > The `semver` library (used by npm) treats dot-separated numeric identifiers numerically, so `beta.10 > beta.9`. > With a dash separator, `beta-10` is a single string identifier and sorts before `beta-9` alphabetically. To transition to an RC, add `Release-As: 12.0.0-rc.1` at the end of the PR commit message. To transition from betas or RCs to a full release, just change Release Please back to `prerelease: false`. ## About The OpenJS Foundation The [OpenJS Foundation](https://openjsf.org/) retains copyright of all projects underneath the [mochajs org](https://github.com/mochajs). The Foundation does not influence technical decisions nor the project roadmap. It is, however, charged with ensuring the continued vitality and sustainability of projects under its banner. As a maintainer, you have access to the resources the OpenJS Foundation provides. ## About Open Collective Mocha collects donations [via Open Collective](https://opencollective.com/mochajs). As a maintainer, you may help decide how the funds are used. These decisions are made via a consensus-seeking process, much like any other decision. Expense transparency is built in to Open Collective. --- Questions? Ask in the [Mocha Discord](https://discord.gg/KeDn2uXhER)! ���������������������������������������������������������������������������������������mochajs-mocha-51a0cc5/PROJECT_CHARTER.md������������������������������������������������������������0000664�0000000�0000000�00000012755�15257337474�0017461�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Mocha Charter This project charter serves as a statement of scope and objectives for the **Mocha** project. ## Β§1: Guiding Principles The **Mocha** project is part of the [OpenJS Foundation], which operates transparently, openly, collaboratively, and ethically. Project proposals, timelines, and status must not merely be open, but also easily visible to outsiders. ## Β§2: Scope **Mocha** is a unopinionated, _general-purpose testing framework_ for the JavaScript community. **Mocha** favors flexibility over rigidity, stability over disruption, and deliberation over agility. **Mocha** aims to do one thing, and do it well. **Mocha** will strive to evolve with the needs of the community, but will make every effort not to abandon its current users in doing so. ### Β§2.1: In-Scope - APIs ("interfaces") to write and organize tests written in JavaScript or compile-to-JavaScript languages - Command-line executable to run tests in a Node.js-based terminal environment - API to run tests in a browser environment - Output test results and errors (provide "reporters") to: - Terminal - File - Browser - Memory - APIs to extend functionality - File-based and code-based configuration - Internal test coverage for all of the above - Documentation including (but not limited to): - Website ([https://mochajs.org](https://mochajs.org)) contents and design - Test-writing and test-organizing APIs - Reporters - [Extensible APIs](https://mochajs.org/api) - Tutorials and [code samples](https://github.com/mochajs/mocha-examples) - Command-line execution and options - Browser-based execution and options - [Project administration](https://github.com/mochajs/admin) - [Contribution guide](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) - General support for multiple levels of tests, including (but not limited to): - Unit tests - Integration tests - Functional/end-to-end tests - Operational readiness tests - Tool configuration for project tests, build, documentation or website deployment - Bespoke tools, if needed - LTS (long-term support) policies, processes, and release cadence - Third-party service integrations (e.g., bots, CI servers, SCM) - Project-endorsed spaces for collaboration (chat rooms, mailing lists, forums, etc.) - Project-maintained social media, if any ### Β§2.2: Out-of-Scope - [Test assertions](https://wikipedia.org/wiki/Test_assertion) and [mocks](https://en.wikipedia.org/wiki/Mock_object) or related - Compatibility with other 3rd-party libraries not hosted under GitHub's [mochajs organization](https://github.com/mochajs) unless explicitly stated in [Β§2: Scope](#2-scope) - Note: _existence of "official" code samples does not imply explicit support_ - Efforts must be made to retain compatibility with popular libraries, frameworks and tools, but not at the expense of Mocha itself - Use within _unmaintained_ versions of Node.js - Use within browsers not meeting a threshold decided upon by maintainers - Use within non-Node.js or non-browser environments, unless otherwise explicitly stated in [Β§2: Scope](#2-scope) - "Unofficial" collaboration or Q&A spaces (including Stack Overflow and Quora) - Certain classes of contributions: - Bug fixes or enhancements without associated test coverage - Features having limited general-purpose use (as determined by maintainers) - Bug fixes which "break" more users than are affected by the bug itself, _regardless_ of "correctness" - Breaking changes to API without demonstrated need, especially those which would cause correct, currently-passing tests to fail - Changes that significantly negatively impact performance without demonstrated need - Code reviews, issue comments or pull requests which are dogmatic, demanding, or excessively critical as to discourage contributions by others - Those which violate Mocha's [Code of Conduct] ## Β§3: Relationship with OpenJS Foundation CPC Technical leadership for the projects within the [OpenJS Foundation] is delegated to the projects through their project charters by the [OpenJS Foundation Cross-Project Council](https://openjsf.org/about/governance/) (CPC). In the case of the Mocha project, it is delegated exclusively to the maintainers of Mocha. The OpenJS Foundation's business leadership is the Board of Directors. Changes to the following **cannot** unilaterally be applied by project leadership, and must be ratified by the CPC: - Mocha's Project Charter (this document) - Mocha's [Code of Conduct] - Mocha's licenses: [MIT](https://github.com/mochajs/mocha/blob/main/LICENSE) (for code) and [CC-BY-4.0](https://github.com/mochajs/mocha/blob/main/docs/LICENSE-CC-BY-4.0) (for documentation/website) ### Β§3.1: Other Formal Project Relationships Section Intentionally Left Blank ## Β§4: Mocha's Governing Body Mocha is governed by its maintainers. See [MAINTAINERS.md] for more information. ## Β§5: Roles & Responsibilities The roles and responsibilities of Mocha's maintainers are described in [MAINTAINERS.md]. ### Β§5.1: Project Operations & Management Project operations and processes are described in [MAINTAINERS.md]. ### Β§5.2: Decision-making, Voting, and/or Elections Mocha uses a loose consensus-seeking process, described in [MAINTAINERS.md]. ### Β§5.3: Other Project Roles Section Intentionally Left Blank ## Β§6: Definitions Section Intentionally Left Blank [openjs foundation]: https://openjsf.org [maintainers.md]: https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md [code of conduct]: https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md �������������������mochajs-mocha-51a0cc5/README.md���������������������������������������������������������������������0000664�0000000�0000000�00000010754�15257337474�0016135�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Mocha test framework logo

β˜•οΈ Classic, reliable, trusted test framework for Node.js and the browser β˜•οΈ

npm version 12.0.3 Node Version [![GitHub Actions Build Status](https://github.com/mochajs/mocha/actions/workflows/mocha.yml/badge.svg)](https://github.com/mochajs/mocha/actions/workflows/mocha.yml) Codecov Coverage Status
Chat - Discord Open Collective Sponsors Open Collective Backers [![Collective Funds Guidelines v0.1](https://img.shields.io/badge/collective_funds_guidelines-v0.1-D8E8D4?style=flat&labelColor=3A6457)](https://github.com/collective-funds/guidelines)
## Links - **[Documentation](https://mochajs.org)** - **[Release Notes / History / Changes](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md)** - [Code of Conduct](https://github.com/mochajs/mocha/blob/main/.github/CODE_OF_CONDUCT.md) - [Contributing](https://github.com/mochajs/mocha/blob/main/.github/CONTRIBUTING.md) - [Development](https://github.com/mochajs/mocha/blob/main/.github/DEVELOPMENT.md) - [Discord](https://discord.gg/KeDn2uXhER) (ask questions here!) - [Issue Tracker](https://github.com/mochajs/mocha/issues) ## Backers [Become a backer](https://opencollective.com/mochajs) and show your support to our open source project on [our site](https://mochajs.org/#backers). Mocha's backers on Open Collective ## Sponsors Does your company use Mocha? Ask your manager or marketing team if your company would be interested in supporting our project. Support will allow the maintainers to dedicate more time for maintenance and new features for everyone. Also, your company's logo will show [on GitHub](https://github.com/mochajs/mocha#readme) and on [our site](https://mochajs.org#sponsors) - who doesn't want a little extra exposure? [Here's the info](https://opencollective.com/mochajs). [![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/0/avatar)](https://opencollective.com/mochajs/tiers/sponsors/0/website) [![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/1/avatar)](https://opencollective.com/mochajs/tiers/sponsors/1/website) [![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/2/avatar)](https://opencollective.com/mochajs/tiers/sponsors/2/website) [![MochaJS Sponsor](https://opencollective.com/mochajs/tiers/sponsors/3/avatar)](https://opencollective.com/mochajs/tiers/sponsors/3/website) ## Development You might want to know that: - Mocha is one of the _most-depended-upon_ modules on npm (source: [libraries.io](https://libraries.io/search?order=desc&platforms=NPM&sort=dependents_count)), and - Mocha is an _independent_ open-source project, maintained exclusively by volunteers. You might want to help: - New to contributing to Mocha? Check out this list of [good first issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) - Mocha could use a hand with [these issues](https://github.com/mochajs/mocha/issues?q=is%3Aopen+is%3Aissue+label%3A%22status%3A+accepting+prs%22) - The [maintainer's handbook](https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md) explains how things get done Finally, come [chat with the maintainers on Discord](https://discord.gg/KeDn2uXhER) if you want to help with: - Triaging issues, answering questions - Review, merging, and closing pull requests - Other project-maintenance-y things ## License Copyright 2011-2026 OpenJS Foundation and contributors. Licensed [MIT](https://github.com/mochajs/mocha/blob/main/LICENSE). mochajs-mocha-51a0cc5/SECURITY.md000066400000000000000000000011261525733747400164400ustar00rootroot00000000000000# Security Policy ## Security contact information To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. ## Escalation If you do not receive an acknowledgement of your report within 6 business days, or if you cannot find a private security contact for the project, you may escalate to the OpenJS Foundation CNA at `security@lists.openjsf.org`. If the project acknowledges your report but does not provide any further response or engagement within 14 days, escalation is also appropriate. mochajs-mocha-51a0cc5/bin/000077500000000000000000000000001525733747400154175ustar00rootroot00000000000000mochajs-mocha-51a0cc5/bin/mocha.js000077500000000000000000000111031525733747400170430ustar00rootroot00000000000000#!/usr/bin/env node /** * This wrapper executable checks for known node flags and appends them when found, * before invoking the "real" executable (`lib/cli/cli.js`) * * @module bin/mocha * @private */ import d from "debug"; import { spawn } from "node:child_process"; import fs from "node:fs"; import os from "node:os"; import { unparseMochaArgs } from "../lib/cli/unparse-args.js"; import { main } from "../lib/cli/cli.js"; import { loadOptions } from "../lib/cli/options.cjs"; import { unparseNodeFlags, isNodeFlag, impliesNoTimeouts, } from "../lib/cli/node-flags.cjs"; import { fileURLToPath } from "node:url"; const debug = d.debug("mocha:cli:mocha"); const mochaArgs = {}; const nodeArgs = {}; const SIGNAL_OFFSET = 128; let hasInspect = false; const opts = loadOptions(process.argv.slice(2)); debug("loaded opts", opts); /** * Given option/command `value`, disable timeouts if applicable * @param {string} [value] - Value to check * @ignore */ const disableTimeouts = (value) => { if (impliesNoTimeouts(value)) { debug("option %s disabled timeouts", value); mochaArgs.timeout = 0; } }; /** * If `value` begins with `v8-` and is not explicitly `v8-options`, remove prefix * @param {string} [value] - Value to check * @returns {string} `value` with prefix (maybe) removed * @ignore */ const trimV8Option = (value) => value !== "v8-options" && /^v8-/.test(value) ? value.slice(3) : value; // sort options into "node" and "mocha" buckets Object.keys(opts).forEach((opt) => { if (isNodeFlag(opt)) { nodeArgs[trimV8Option(opt)] = opts[opt]; } else { mochaArgs[opt] = opts[opt]; } }); // disable 'timeout' for debugFlags Object.keys(nodeArgs).forEach((opt) => disableTimeouts(opt)); mochaArgs["node-option"] && mochaArgs["node-option"].forEach((opt) => disableTimeouts(opt)); // Native debugger handling // see https://nodejs.org/api/debugger.html#debugger_debugger // look for 'inspect' that would launch this debugger, // remove it from Mocha's opts and prepend it to Node's opts. // A deprecation warning will be printed by node, if applicable. // (mochaArgs._ are "positional" arguments, not prefixed with - or --) if (mochaArgs._) { const i = mochaArgs._.findIndex((val) => val === "inspect"); if (i > -1) { mochaArgs._.splice(i, 1); disableTimeouts("inspect"); hasInspect = true; } } if (mochaArgs["node-option"] || Object.keys(nodeArgs).length || hasInspect) { const mochaPath = fileURLToPath(import.meta.resolve("../lib/cli/cli.js")); const nodeArgv = (mochaArgs["node-option"] && mochaArgs["node-option"].map((v) => "--" + v)) || unparseNodeFlags(nodeArgs); if (hasInspect) nodeArgv.unshift("inspect"); delete mochaArgs["node-option"]; debug("final node argv", nodeArgv); const stdio = ["inherit", "inherit", "inherit"]; mochaArgs._ = mochaArgs._?.map((arg) => { const match = /^\/dev\/fd\/(\d+)$/.exec(arg); if (!match || !fs.existsSync(arg)) { return arg; } stdio.push(Number(match[1])); return `/dev/fd/${stdio.length - 1}`; }); const args = [].concat( nodeArgv, mochaPath, unparseMochaArgs(mochaArgs), ); debug( "forking child process via command: %s %s", process.execPath, args.join(" "), ); const proc = spawn(process.execPath, args, { stdio, }); proc.on("exit", (code, signal) => { process.on("exit", () => { if (signal) { signal = typeof signal === "string" ? os.constants.signals[signal] : signal; if (mochaArgs["posix-exit-codes"] === true) { process.exitCode = SIGNAL_OFFSET + signal; } process.kill(process.pid, signal); } else { process.exit(Math.min(code, mochaArgs["posix-exit-codes"] ? 1 : 255)); } }); }); // terminate children. process.on("SIGINT", () => { // XXX: a previous comment said this would abort the runner, but I can't see that it does // anything with the default runner. debug("main process caught SIGINT"); proc.kill("SIGINT"); // if running in parallel mode, we will have a proper SIGINT handler, so the below won't // be needed. if (!args.parallel || args.jobs < 2) { // win32 does not support SIGTERM, so use next best thing. if (os.platform() === "win32") { proc.kill("SIGKILL"); } else { // using SIGKILL won't cleanly close the output streams, which can result // in cut-off text or a befouled terminal. debug("sending SIGTERM to child process"); proc.kill("SIGTERM"); } } }); } else { debug("running Mocha in-process"); main([], mochaArgs); } mochajs-mocha-51a0cc5/browser-entry.js000066400000000000000000000114431525733747400200320ustar00rootroot00000000000000import BrowserStdout from "browser-stdout"; import { parseQuery } from "./lib/browser/parse-query.js"; import { highlightTags } from "./lib/browser/highlight-tags.js"; import Mocha from "./lib/mocha.cjs"; /** * Shim process.stdout. */ process.stdout = BrowserStdout({ label: false }); /** * Create a Mocha instance. * * @return {undefined} */ var mocha = new Mocha({ reporter: "html" }); /** * Save timer references to avoid Sinon interfering (see GH-237). */ var Date = global.Date; var setTimeout = global.setTimeout; var uncaughtExceptionHandlers = []; var originalOnerrorHandler = global.onerror; /** * Remove uncaughtException listener. * Revert to original onerror handler if previously defined. */ process.removeListener = function (e, fn) { if (e === "uncaughtException") { if (originalOnerrorHandler) { global.onerror = originalOnerrorHandler; } else { global.onerror = function () {}; } var i = uncaughtExceptionHandlers.indexOf(fn); if (i !== -1) { uncaughtExceptionHandlers.splice(i, 1); } } }; /** * Implements listenerCount for 'uncaughtException'. */ process.listenerCount = function (name) { if (name === "uncaughtException") { return uncaughtExceptionHandlers.length; } return 0; }; /** * Implements uncaughtException listener. */ process.on = function (e, fn) { if (e === "uncaughtException") { global.onerror = function (msg, url, line, col, err) { fn(err || new Error(msg + " (" + url + ":" + line + ":" + col + ")")); return !mocha.options.allowUncaught; }; uncaughtExceptionHandlers.push(fn); } }; process.listeners = function (err) { if (err === "uncaughtException") { return uncaughtExceptionHandlers; } return []; }; // The BDD UI is registered by default, but no UI will be functional in the // browser without an explicit call to the overridden `mocha.ui` (see below). // Ensure that this default UI does not expose its methods to the global scope. mocha.suite.removeAllListeners("pre-require"); var immediateQueue = []; var immediateTimeout; function timeslice() { var immediateStart = new Date().getTime(); while (immediateQueue.length && new Date().getTime() - immediateStart < 100) { immediateQueue.shift()(); } if (immediateQueue.length) { immediateTimeout = setTimeout(timeslice, 0); } else { immediateTimeout = null; } } /** * High-performance override of Runner.immediately. */ Mocha.Runner.immediately = function (callback) { immediateQueue.push(callback); if (!immediateTimeout) { immediateTimeout = setTimeout(timeslice, 0); } }; /** * Function to allow assertion libraries to throw errors directly into mocha. * This is useful when running tests in a browser because window.onerror will * only receive the 'message' attribute of the Error. */ mocha.throwError = function (err) { uncaughtExceptionHandlers.forEach(function (fn) { fn(err); }); throw err; }; /** * Override ui to ensure that the ui functions are initialized. * Normally this would happen in Mocha.prototype.loadFiles. */ mocha.ui = function (ui) { Mocha.prototype.ui.call(this, ui); this.suite.emit("pre-require", global, null, this); return this; }; /** * Setup mocha with the given setting options. */ mocha.setup = function (opts) { if (typeof opts === "string") { opts = { ui: opts }; } if (opts.delay === true) { this.delay(); } var self = this; Object.keys(opts) .filter(function (opt) { return opt !== "delay"; }) .forEach(function (opt) { if (Object.prototype.hasOwnProperty.call(opts, opt)) { self[opt](opts[opt]); } }); return this; }; /** * Run mocha, returning the Runner. */ mocha.run = function (fn) { var options = mocha.options; mocha.globals("location"); var query = parseQuery(global.location.search || ""); if (query.grep) { mocha.grep(query.grep); } if (query.fgrep) { mocha.fgrep(query.fgrep); } if (query.invert) { mocha.invert(); } return Mocha.prototype.run.call(mocha, function (err) { // The DOM Document is not available in Web Workers. var document = global.document; if ( document && document.getElementById("mocha") && options.noHighlighting !== true ) { highlightTags("code"); } if (fn) { fn(err); } }); }; /** * Expose the process shim. * https://github.com/mochajs/mocha/pull/916 */ Mocha.process = process; /** * Expose mocha. */ global.Mocha = Mocha; global.mocha = mocha; // for bundlers: enable `import {describe, it} from 'mocha'` // `bdd` interface only // prettier-ignore [ 'describe', 'context', 'it', 'specify', 'xdescribe', 'xcontext', 'xit', 'xspecify', 'before', 'beforeEach', 'afterEach', 'after' ].forEach(function(key) { mocha[key] = global[key]; }); export default mocha; mochajs-mocha-51a0cc5/docs/000077500000000000000000000000001525733747400155775ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/.gitignore000066400000000000000000000000751525733747400175710ustar00rootroot00000000000000.astro/ dist/ node_modules/ src/content/data/supporters.json mochajs-mocha-51a0cc5/docs/.knip.jsonc000066400000000000000000000003661525733747400176610ustar00rootroot00000000000000{ "$schema": "https://unpkg.com/knip@6/schema-jsonc.json", "entry": ["src/content/**/*.{mdx,ts}!"], "project": ["src/**/*.{ts,js,mjs,cjs,astro}"], "astro": { "config": "astro.config.ts", }, "rules": { "exports": "off", }, } mochajs-mocha-51a0cc5/docs/.prettierrc.json000066400000000000000000000000351525733747400207310ustar00rootroot00000000000000{ "bracketSpacing": true } mochajs-mocha-51a0cc5/docs/README.md000066400000000000000000000012071525733747400170560ustar00rootroot00000000000000# Mocha Docs: Built on Astro Starlight This is the current Mocha documentation website, hosted at [mochajs.org](https://mochajs.org) and built with [Astro Starlight](https://starlight.astro.build). > For details on the legacy site, see [https://github.com/mochajs/docs-legacy](mochajs/docs-legacy). ## Preview the new site To run this site: ```shell cd docs npm i npm run generate npm run dev ``` ## Upgrade dependencies To upgrade Astro, use: ```sh npx @astrojs/upgrade ``` To upgrade a particular transitive dependency: ```sh npm update --package-lock-only __package_name__ ``` e.g. ```sh npm update --package-lock-only fast-uri ``` mochajs-mocha-51a0cc5/docs/_data/000077500000000000000000000000001525733747400166475ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/_data/blocklist.json000066400000000000000000000011751525733747400215340ustar00rootroot00000000000000[ "carl-marius", "cheap-writing-service", "coin-master-free-spins", "cyberflix-tv", "device-tricks1", "domywriting", "elfontario", "emailmarketingservices-io", "flybyapis", "hurtiglaan-nu", "hypeproxies", "igor-noskov", "instant_famous", "insviewers", "localcitationservice", "medyamagazacomtr", "mochajs", "my-true-media", "open-apk-file", "piloterr", "rebrowser", "redreply", "scrapfly", "storylooker", "superclones", "tikninja", "tikster", "thetoy", "trust-my-paper", "twtservices", "writemypaper4me", "writerseperhour", "yiannakis-ttafounas-ttafounas", "zenrows" ] mochajs-mocha-51a0cc5/docs/_data/supporters.cjs000077500000000000000000000233621525733747400216070ustar00rootroot00000000000000/** * This script gathers metadata for active supporters of Mocha from Open Collective's * API by aggregating order ("donation") information. * * - Gathers logo/avatar images (they are always pngs) * - Gathers links * - Sorts by tier and total contributions * - Validates images * - Writes images to a temp dir * * We filter out spam based on the code below and these general guidelines: * - Not based on deceiving people * * While we try our best, we cannot guarantee quality in the list of sponsors. * Some non-spam may be blocked, and some spam may be allowed. * Please let us know in the usual places if you feel there is a mistake. * * @see https://docs.opencollective.com/help/contributing/development/api */ "use strict"; const { writeFile, mkdir, rm } = require("node:fs").promises; const { resolve } = require("node:path"); const debug = require("debug")("mocha:docs:data:supporters"); const blocklist = new Set(require("./blocklist.json")); /** * In addition to the blocklist, any account slug matching this regex will not * be displayed on the website. */ const BLOCKED_STRINGS = /(?:[ck]a[sz]ino|seo|slot|gambl(?:e|ing)|crypto|cheap|instagram|hacks|tiktok|likes|subscriber|boost|deposit|mushroom|bingo|broker|promotion|groundskeeping|links|review|refer|promocode|rabattkod|jΓ€mfΓΆr|betting|reddit|hire|fortune|equity|download|marketing|comment|rank|scrapcar|lawyer|celeb|concrete|firestick|playground|betking)/i; /** * Add a few Categories exposed by Open Collective to help moderation */ const BLOCKED_CATEGORIES = [ "adult", "casino", "credit", "gambling", "seo", "writer", "review", ]; /** * The OC API endpoint */ const API_ENDPOINT = "https://api.opencollective.com/graphql/v2"; const SPONSOR_TIER = "sponsors"; const BACKER_TIER = "backers"; // if this percent of fetches completes, the build will pass const PRODUCTION_SUCCESS_THRESHOLD = 0.9; const SUPPORTER_IMAGE_PATH = resolve(__dirname, "../images/supporters"); const SUPPORTER_QUERY = `query account($limit: Int, $offset: Int, $slug: String) { account(slug: $slug) { orders(limit: $limit, offset: $offset, status: ACTIVE, filter: INCOMING) { limit offset totalCount nodes { fromAccount { id name slug website imgUrlMed: imageUrl(height:64) imgUrlSmall: imageUrl(height:32) type categories } tier { slug } totalDonations { value } createdAt } } } }`; const GRAPHQL_PAGE_SIZE = 1000; const invalidSupporters = []; const nodeToSupporter = (node) => ({ id: node.fromAccount.id, name: node.fromAccount.name, slug: node.fromAccount.slug, website: node.fromAccount.website, imgUrlMed: node.fromAccount.imgUrlMed, imgUrlSmall: node.fromAccount.imgUrlSmall, type: node.fromAccount.type, categories: node.fromAccount.categories, tier: (node.tier && node.tier.slug) || BACKER_TIER, totalDonations: node.totalDonations.value * 100, firstDonation: node.createdAt, }); const fetchImage = process.env.MOCHA_DOCS_SKIP_IMAGE_DOWNLOAD ? async (supporter) => { invalidSupporters.push(supporter); } : async (supporter) => { try { const { avatar: url } = supporter; const response = await fetch(url, { signal: AbortSignal.timeout(30000), }); if (response.headers.get("content-type")?.startsWith("text/html")) { throw new TypeError( "received html and expected a png; outage likely", ); } const imageBuf = Buffer.from(await response.arrayBuffer()); debug("fetched %s", url); const filePath = resolve(SUPPORTER_IMAGE_PATH, supporter.id + ".png"); await writeFile(filePath, imageBuf); debug("wrote %s", filePath); } catch (err) { console.error( `failed to load ${supporter.avatar}; will discard ${supporter.tier} "${supporter.name} (${supporter.slug}). reason:\n`, err, ); invalidSupporters.push(supporter); } }; /** * Retrieves donation data from OC * * Handles pagination * @param {string} slug - Collective slug to get donation data from * @returns {Promise} Array of raw donation data */ const getAllOrders = async (slug = "mochajs") => { let allOrders = []; const variables = { limit: GRAPHQL_PAGE_SIZE, offset: 0, slug }; // Handling pagination if necessary (2 pages for ~1400 results in May 2019) while (true) { const response = await fetch(API_ENDPOINT, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ query: SUPPORTER_QUERY, variables: variables, }), }); const result = await response.json(); const orders = result.data.account.orders.nodes; allOrders = [...allOrders, ...orders]; variables.offset += GRAPHQL_PAGE_SIZE; if (orders.length < GRAPHQL_PAGE_SIZE) { debug("retrieved %d orders", allOrders.length); return allOrders; } else { debug( "loading page %d of orders...", Math.floor(variables.offset / GRAPHQL_PAGE_SIZE), ); } } }; const isAllowed = ({ name, slug, website, categories }) => { const blockReasons = []; if (blocklist.has(slug)) blockReasons.push("slug in blocklist"); if (BLOCKED_STRINGS.test(name)) blockReasons.push("name blocked"); if (BLOCKED_STRINGS.test(slug)) blockReasons.push("slug blocked"); if (BLOCKED_STRINGS.test(website)) blockReasons.push("website blocked"); if (categories.some((category) => BLOCKED_CATEGORIES.includes(category))) blockReasons.push("category blocked"); const allowed = blockReasons.length === 0; if (!allowed) { debug("blocking %o", { categories, name, slug, website }); debug(`reason(s): ${blockReasons}`); } else { debug("allowing %o", { categories, name, slug, website }); } return allowed; }; const getSupporters = async () => { const orders = await getAllOrders(); // Deduplicating supporters with multiple orders const uniqueSupporters = new Map(); const supporters = orders // turn raw query result into a better data structure .map(nodeToSupporter) // aggregate total $ donated by unique supporter (using slug) .reduce((supporters, supporter) => { if (uniqueSupporters.has(supporter.slug)) { uniqueSupporters.get(supporter.slug).totalDonations += supporter.totalDonations; return supporters; } uniqueSupporters.set(supporter.slug, supporter); return [...supporters, supporter]; }, []) // discard spammy supporters .filter(isAllowed) // sort by total $ donated, descending .sort((a, b) => b.totalDonations - a.totalDonations) // determine which url to use depending on tier .reduce( (supporters, supporter) => { if (supporter.tier === BACKER_TIER) { if (supporter.name !== "anonymous") { supporters[BACKER_TIER] = [ ...supporters[BACKER_TIER], { ...supporter, avatar: encodeURI(supporter.imgUrlSmall), }, ]; } } else { supporters[SPONSOR_TIER] = [ ...supporters[SPONSOR_TIER], { ...supporter, avatar: encodeURI(supporter.imgUrlMed), }, ]; } return supporters; }, { [SPONSOR_TIER]: [], [BACKER_TIER]: [], }, ); await rm(SUPPORTER_IMAGE_PATH, { recursive: true, force: true }); debug("blasted %s", SUPPORTER_IMAGE_PATH); await mkdir(SUPPORTER_IMAGE_PATH, { recursive: true }); debug("created %s", SUPPORTER_IMAGE_PATH); // Fetch images for sponsors and save their image dimensions await Promise.all([ ...supporters[SPONSOR_TIER].map(fetchImage), ...supporters[BACKER_TIER].map(fetchImage), ]); debug("fetched images"); invalidSupporters.forEach((supporter) => { supporters[supporter.tier].splice( supporters[supporter.tier].indexOf(supporter), 1, ); }); debug("tossed out invalid supporters"); const backerCount = supporters[BACKER_TIER].length; const sponsorCount = supporters[SPONSOR_TIER].length; const totalSupportersCount = backerCount + sponsorCount; const successRate = 1 - invalidSupporters.length / totalSupportersCount; debug( "found %d valid backers and %d valid sponsors (%d total; %d invalid; %d blocked)", backerCount, sponsorCount, totalSupportersCount, invalidSupporters.length, uniqueSupporters.size - totalSupportersCount, ); if (successRate < PRODUCTION_SUCCESS_THRESHOLD) { if (process.env.NETLIFY && process.env.CONTEXT !== "deploy-preview") { throw new Error( `Failed to meet success threshold ${ PRODUCTION_SUCCESS_THRESHOLD * 100 }% (was ${ successRate * 100 }%) for a production deployment; refusing to deploy`, ); } else { console.warn( `WARNING: Success rate of ${ successRate * 100 }% fails to meet production threshold of ${ PRODUCTION_SUCCESS_THRESHOLD * 100 }%; would fail a production deployment!`, ); } } debug("supporter image pull completed"); // TODO: we'll sunset the classic docs and only have docs. // At that point we'll have supporters.js only used for writing files. if (process.argv.includes("--write-supporters-json")) { await mkdir("src/content/data", { recursive: true }); await writeFile( "src/content/data/supporters.json", JSON.stringify(supporters, null, 4), ); } return supporters; }; module.exports = getSupporters; if (require.main === module) { require("debug").enable("mocha:docs:data:supporters"); process.on("unhandledRejection", (err) => { throw err; }); getSupporters(); } mochajs-mocha-51a0cc5/docs/_redirects000066400000000000000000000001301525733747400176370ustar00rootroot00000000000000/api/* https://legacy.mochajs.org/api/:splat 301 /next/* https://mochajs.org/:splat 301 mochajs-mocha-51a0cc5/docs/astro.config.ts000066400000000000000000000156221525733747400205510ustar00rootroot00000000000000import { defineConfig } from "astro/config"; import starlight from "@astrojs/starlight"; import starlightBlog from "starlight-blog"; export default defineConfig({ compressHTML: true, integrations: [ starlight({ components: { Footer: "./src/components/Footer.astro", Head: "./src/components/Head.astro", PageTitle: "./src/components/PageTitle.astro", }, customCss: ["./src/style/custom.css"], logo: { dark: "./src/components/icon-dark.svg", light: "./src/components/icon-light.svg", }, plugins: [starlightBlog()], sidebar: [ { label: "Getting Started", slug: "getting-started" }, { items: [ { label: "Browsers", slug: "running/browsers" }, { label: "CLI", slug: "running/cli" }, { label: "Configuring", slug: "running/configuring" }, { label: "Editor plugins", slug: "running/editor-plugins" }, { label: "Test globs", slug: "running/test-globs" }, ], label: "Running Mocha", }, { items: [ { label: "Dynamic tests", slug: "declaring/dynamic-tests" }, { label: "Exclusive tests", slug: "declaring/exclusive-tests" }, { label: "Inclusive tests", slug: "declaring/inclusive-tests" }, { label: "Pending tests", slug: "declaring/pending-tests" }, { label: "Retrying tests", slug: "declaring/retrying-tests" }, ], label: "Declaring Tests", }, { items: [ { label: "Arrow functions", slug: "features/arrow-functions" }, { label: "Assertions", slug: "features/assertions" }, { label: "Asynchronous code", slug: "features/asynchronous-code" }, { label: "Diffs", slug: "features/diffs" }, { label: "Error codes", slug: "features/error-codes" }, { label: "Global fixtures", slug: "features/global-fixtures" }, { label: "Hooks", slug: "features/hooks" }, { label: "Parallel mode", slug: "features/parallel-mode" }, { label: "Root hook plugins", slug: "features/root-hook-plugins" }, { label: "Timeouts", slug: "features/timeouts" }, ], label: "Features", }, { collapsed: true, items: [ { label: "About", slug: "interfaces/about" }, { label: "BDD (default)", slug: "interfaces/bdd" }, { label: "Exports", slug: "interfaces/exports" }, { label: "QUnit", slug: "interfaces/qunit" }, { label: "Require", slug: "interfaces/require" }, { label: "TDD", slug: "interfaces/tdd" }, { label: "Third-Party", slug: "interfaces/third-party" }, ], label: "Interfaces", }, { collapsed: true, items: [ { label: "About", slug: "reporters/about" }, { label: "Doc", slug: "reporters/doc" }, { label: "Dot", slug: "reporters/dot" }, { label: "GitHub Actions", slug: "reporters/github-actions" }, { label: "HTML", slug: "reporters/html" }, { label: "JSON Stream", slug: "reporters/json-stream" }, { label: "JSON", slug: "reporters/json" }, { label: "Landing", slug: "reporters/landing" }, { label: "List", slug: "reporters/list" }, { label: "Markdown", slug: "reporters/markdown" }, { label: "Min", slug: "reporters/min" }, { label: "Nyan", slug: "reporters/nyan" }, { label: "Progress", slug: "reporters/progress" }, { label: "Spec (default)", slug: "reporters/spec" }, { label: "Tap", slug: "reporters/tap" }, { label: "Third-Party", slug: "reporters/third-party" }, { label: "XUnit", slug: "reporters/xunit" }, ], label: "Reporters", }, { collapsed: true, items: [ { label: "Compilers deprecation", slug: "explainers/compilers-deprecation", }, { label: "Counting assertions", slug: "explainers/count-assertions", }, { label: "Detecting multiple calls to done()", slug: "explainers/detecting-multiple-calls-to-done", }, { label: "Environment variables", slug: "explainers/environment-variables", }, { label: "Find global leaks", slug: "explainers/find-global-leaks", }, { label: "Global variables", slug: "explainers/global-variables", }, { label: "Node.js native ESM support", slug: "explainers/nodejs-native-esm-support", }, { label: "Programmatic usage", slug: "explainers/programmatic-usage", }, { label: "Related tools", slug: "explainers/related-tools", }, { label: "Run cycle overview", slug: "explainers/run-cycle-overview", }, { label: "Security vulnerability reports", slug: "explainers/security-vulnerability-reports", }, { label: "Shared behaviours", slug: "explainers/shared-behaviours", }, { label: "Spies", slug: "explainers/spies", }, { label: "Stub stdout", slug: "explainers/stub-stdout", }, { label: "Tagging with --grep", slug: "explainers/tagging", }, { label: "Test duration", slug: "explainers/test-duration" }, { label: "Test fixture decision tree", slug: "explainers/test-fixture-decision-tree", }, { label: "Third party reporters", slug: "explainers/third-party-reporters", }, { label: "Third party UIs", slug: "explainers/third-party-uis", }, { label: "TypeScript", slug: "explainers/typescript", }, ], label: "Explainers", }, { label: "API", link: "https://mochajs.org/api", }, ], social: [ { icon: "discord", label: "Discord", href: "https://discord.gg/KeDn2uXhER", }, { icon: "github", label: "GitHub", href: "https://github.com/mochajs/mocha", }, ], title: "Mocha", }), ], redirects: { "/blog/community-contributions": "/blog/2026-community-sponsorships", }, }); mochajs-mocha-51a0cc5/docs/netlify.toml000066400000000000000000000003151525733747400201450ustar00rootroot00000000000000[build] command = "npm run docs" publish = "docs/dist/" [build.environment] DEBUG = "mocha:docs*" NODE_VERSION = "24" [context.deploy-preview] command = "npm run docs" publish = "docs/dist/" mochajs-mocha-51a0cc5/docs/package-lock.json000066400000000000000000012100731525733747400210170ustar00rootroot00000000000000{ "name": "docs", "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "docs", "version": "0.0.1", "dependencies": { "@astrojs/check": "^0.9.10", "@astrojs/starlight": "^0.42.0", "astro": "^7.3.2", "starlight-blog": "^0.29.0", "starlight-package-managers": "^0.12.0", "typescript": "^5.9.3" }, "devDependencies": { "debug": "^4.4.3", "knip": "^6.0.0" } }, "node_modules/@astrojs/check": { "version": "0.9.10", "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.10.tgz", "integrity": "sha512-zgx/UQMozdjOa3bOxjgeCFdtpE3c9rRX6xHwa+2QXvy8z8Akifu2AtubHyv/zzC2znO8dl8fFWL4K+Ba9kS8HQ==", "license": "MIT", "dependencies": { "@astrojs/language-server": "^2.16.7", "chokidar": "^4.0.3", "kleur": "^4.1.5", "yargs": "^18.0.0" }, "bin": { "astro-check": "bin/astro-check.js" }, "peerDependencies": { "typescript": "^5.0.0 || ^6.0.0" } }, "node_modules/@astrojs/compiler": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz", "integrity": "sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==", "license": "MIT" }, "node_modules/@astrojs/compiler-binding": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding/-/compiler-binding-0.4.0.tgz", "integrity": "sha512-x2RjDUuWfwLNtc3mjAdSRInwqh/rqbLar9cm/5FOMbHvmYZB7yfKewzSclAxWjIZsypJDXv1lhaP2WG+P8TK3g==", "license": "MIT", "engines": { "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { "@astrojs/compiler-binding-darwin-arm64": "0.4.0", "@astrojs/compiler-binding-darwin-x64": "0.4.0", "@astrojs/compiler-binding-linux-arm64-gnu": "0.4.0", "@astrojs/compiler-binding-linux-arm64-musl": "0.4.0", "@astrojs/compiler-binding-linux-x64-gnu": "0.4.0", "@astrojs/compiler-binding-linux-x64-musl": "0.4.0", "@astrojs/compiler-binding-wasm32-wasi": "0.4.0", "@astrojs/compiler-binding-win32-arm64-msvc": "0.4.0", "@astrojs/compiler-binding-win32-x64-msvc": "0.4.0" } }, "node_modules/@astrojs/compiler-binding-darwin-arm64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-arm64/-/compiler-binding-darwin-arm64-0.4.0.tgz", "integrity": "sha512-ZVUwHundaQyFNjE6uoa0usaC0WOCitDCLS/4mdb4rOiJXwVUuKJBMxI5WMzXLWmamsXtK/Z//ifLXvV5Yeh4Hw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-darwin-x64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-darwin-x64/-/compiler-binding-darwin-x64-0.4.0.tgz", "integrity": "sha512-FI6G8AY8u6fR1SI/QRR5yGMwtvZwP34CDmZpZ5HwJGa50UM1VISTLhqkhV4a476pmgd25X1Aur2dqw6hUnrlKA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-linux-arm64-gnu": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-gnu/-/compiler-binding-linux-arm64-gnu-0.4.0.tgz", "integrity": "sha512-lB9gLFJK7m82EnjaU8nlRBEfcwGNeHidW3sSjODTUjMNaoewVuUz9fwwdY5M4jiSXIqWLH3yl6TX8FTDKA74Sw==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-linux-arm64-musl": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-arm64-musl/-/compiler-binding-linux-arm64-musl-0.4.0.tgz", "integrity": "sha512-HPbvWqbxFxyaoQJhLxCaSjtYBx9KBo7JGVzEFZCmMl968a2PsSH0UfiODYgYPXofTOIsIH2aoCcrHXML0IA3ig==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-linux-x64-gnu": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-gnu/-/compiler-binding-linux-x64-gnu-0.4.0.tgz", "integrity": "sha512-tQKolMxoJ/+0AmLWm1PmJ/i+z3i10ZU1bNuVjEDulCf48azEMtUNjTZgHJ5MPtpYRNc7dlETr8QujUfduzoC7Q==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-linux-x64-musl": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-linux-x64-musl/-/compiler-binding-linux-x64-musl-0.4.0.tgz", "integrity": "sha512-5v5YymudsxMHp3NBLCS8BUlu5CRqeLtWD9cKS/4nIhIEHCbpz9okmVV6I0HWqmBAPhWYcDa3vw/vltYPrOQCTA==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-wasm32-wasi": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-wasm32-wasi/-/compiler-binding-wasm32-wasi-0.4.0.tgz", "integrity": "sha512-m/phuH3x3PREvv1OnkM44NoPh4MatUadix1fB1u5SvMLCyDTUZykDJbKnWf1cjnYmHdlB8HcjTjl6JrCqAIXcw==", "cpu": [ "wasm32" ], "license": "MIT", "optional": true, "dependencies": { "@napi-rs/wasm-runtime": "^1.2.2" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@astrojs/compiler-binding-win32-arm64-msvc": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-arm64-msvc/-/compiler-binding-win32-arm64-msvc-0.4.0.tgz", "integrity": "sha512-B9zYf3okEY83kM8gydlpH2BHP00w4ifxPqlYlWrgTwuD6wnkrJDCwBlgy1q31cERjCJRXN1lrE2VmkLvFjv/6g==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-binding-win32-x64-msvc": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-binding-win32-x64-msvc/-/compiler-binding-win32-x64-msvc-0.4.0.tgz", "integrity": "sha512-zB0Nrv0dGc0zZWPGDRmmETTPhDRqyZjAjk+gWMlVrJX5U89obpB3VUUE1ZiHxOCN5LQojeLK6O8L/dnoHolvNQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@astrojs/compiler-rs": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@astrojs/compiler-rs/-/compiler-rs-0.4.0.tgz", "integrity": "sha512-koVikeon1kreEy+/JzLQRy3vzHHQVOjycs4degg4vFufKApZOwMZvSSAEztYNhmcQVfNVsVZZI4cEge3cexAbQ==", "license": "MIT", "dependencies": { "@astrojs/compiler-binding": "0.4.0" }, "engines": { "node": ">=22.12.0" } }, "node_modules/@astrojs/internal-helpers": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.10.1.tgz", "integrity": "sha512-5phcroT/vmOOrYuuAxtkbPixy5hePtlz9i8K4OeDv3dNK6/UQRuXPOSRTxIOBbUY5Sonw2UaxjbuVc43Mcir6Q==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "js-yaml": "^4.1.1", "picomatch": "^4.0.4", "retext-smartypants": "^6.2.0", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "unified": "^11.0.5" } }, "node_modules/@astrojs/language-server": { "version": "2.16.10", "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.16.10.tgz", "integrity": "sha512-87VQ/5GSdHlRnUA+hGuerYyIGAj+9RbZmATyuKLEUePinUXhQ5YkRnRrHhOD9sSi5JOErLjrLkHnfZFEvGrV8w==", "license": "MIT", "dependencies": { "@astrojs/compiler": "^2.13.1", "@astrojs/yaml2ts": "^0.2.4", "@jridgewell/sourcemap-codec": "^1.5.5", "@volar/kit": "~2.4.28", "@volar/language-core": "~2.4.28", "@volar/language-server": "~2.4.28", "@volar/language-service": "~2.4.28", "muggle-string": "^0.4.1", "tinyglobby": "^0.2.16", "volar-service-css": "0.0.70", "volar-service-emmet": "0.0.70", "volar-service-html": "0.0.70", "volar-service-prettier": "0.0.70", "volar-service-typescript": "0.0.70", "volar-service-typescript-twoslash-queries": "0.0.70", "volar-service-yaml": "0.0.70", "vscode-html-languageservice": "^5.6.2", "vscode-uri": "^3.1.0" }, "bin": { "astro-ls": "bin/nodeServer.js" }, "peerDependencies": { "prettier": "^3.0.0", "prettier-plugin-astro": ">=0.11.0" }, "peerDependenciesMeta": { "prettier": { "optional": true }, "prettier-plugin-astro": { "optional": true } } }, "node_modules/@astrojs/markdown-remark": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.3.1.tgz", "integrity": "sha512-QCjsjZQl0+Cgb91+T3Ip9hyUe1r5aLm4udi584rML9YO3syupbAYE+jWpAxYg+z4lFLNUugPrylFxZ+8qFTClg==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.11.0", "@astrojs/prism": "4.0.2", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.16.0", "estree-util-visit": "^2.0.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-html": "^9.0.5", "hast-util-to-text": "^4.0.2", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "node_modules/@astrojs/markdown-remark/node_modules/@astrojs/internal-helpers": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.11.0.tgz", "integrity": "sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "js-yaml": "^4.3.0", "picomatch": "^4.0.4", "retext-smartypants": "^6.2.0", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "unified": "^11.0.5" } }, "node_modules/@astrojs/mdx": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-7.0.3.tgz", "integrity": "sha512-RxyIwU0uFam5ftwqKOjpIdhnFxZ/kEikeimLyQy3eGXbHT8WgRGzzesOIHVU8+m9TY8ag5WVOyvV24/GyqPdPQ==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.10.1", "@astrojs/markdown-remark": "7.2.1", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.16.0", "es-module-lexer": "^2.0.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "piccolore": "^0.1.3", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "engines": { "node": ">=22.12.0" }, "peerDependencies": { "@astrojs/markdown-satteri": "^0.3.1", "astro": "^7.0.0" }, "peerDependenciesMeta": { "@astrojs/markdown-satteri": { "optional": true } } }, "node_modules/@astrojs/mdx/node_modules/@astrojs/markdown-remark": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-7.2.1.tgz", "integrity": "sha512-jPVNIqTvk+yKviikszv/Y1U4jGUSKpp/Nw48QZV4qjWgp70j4Lkq3lhSDRbWwCfgKvEyO9GHuVbV1dM2WYXy1w==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.10.1", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.1.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "node_modules/@astrojs/prism": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-4.0.2.tgz", "integrity": "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==", "license": "MIT", "dependencies": { "prismjs": "^1.30.0" }, "engines": { "node": ">=22.12.0" } }, "node_modules/@astrojs/rss": { "version": "4.0.18", "resolved": "https://registry.npmjs.org/@astrojs/rss/-/rss-4.0.18.tgz", "integrity": "sha512-wc5DwKlbTEdgVAWnHy8krFTeQ42t1v/DJqeq5HtulYK3FYHE4krtRGjoyhS3eXXgfdV6Raoz2RU3wrMTFAitRg==", "license": "MIT", "dependencies": { "fast-xml-parser": "^5.5.7", "piccolore": "^0.1.3", "zod": "^4.3.6" } }, "node_modules/@astrojs/sitemap": { "version": "3.7.4", "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.7.4.tgz", "integrity": "sha512-LbKNC24bdUWcQf/pThB6qLlSqHojxGjZDURIzFocY8rlWnAn2t74nnhnK6S5x0NHriHoAduLEpVjRykmeGiVvA==", "license": "MIT", "dependencies": { "sitemap": "^9.0.0", "zod": "^4.3.6" } }, "node_modules/@astrojs/starlight": { "version": "0.42.0", "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.42.0.tgz", "integrity": "sha512-EVsGnyGJ6rRNwGRZFYmGABo0qTQ55F7OSmfSL0VK+5lsqD+u6GWcB8tFqXETcUvP8kyn90W+QBLSL2aer9jNJQ==", "license": "MIT", "dependencies": { "@astrojs/markdown-satteri": "^0.4.0", "@astrojs/mdx": "^8.0.0", "@astrojs/sitemap": "^3.7.3", "@pagefind/default-ui": "^1.3.0", "@types/hast": "^3.0.5", "@types/js-yaml": "^4.0.9", "@types/mdast": "^4.0.4", "astro-expressive-code": "^0.44.0", "bcp-47": "^2.1.0", "hast-util-format": "^1.1.0", "hast-util-select": "^6.0.4", "hast-util-to-html": "^9.0.5", "hast-util-to-string": "^3.0.1", "hastscript": "^9.0.1", "i18next": "^26.0.7", "js-yaml": "^4.1.1", "klona": "^2.0.6", "magic-string": "^1.2.3", "mdast-util-directive": "^3.1.0", "mdast-util-to-markdown": "^2.1.2", "mdast-util-to-string": "^4.0.0", "pagefind": "^1.5.2", "remark-directive": "^4.0.0", "satteri": "^0.10.3", "ultrahtml": "^1.6.0", "unified": "^11.0.5", "unist-util-visit": "^5.1.0", "vfile": "^6.0.3" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0", "astro": "^7.2.10" }, "peerDependenciesMeta": { "@astrojs/markdown-remark": { "optional": true } } }, "node_modules/@astrojs/starlight/node_modules/@astrojs/internal-helpers": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.11.0.tgz", "integrity": "sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "js-yaml": "^4.3.0", "picomatch": "^4.0.4", "retext-smartypants": "^6.2.0", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "unified": "^11.0.5" } }, "node_modules/@astrojs/starlight/node_modules/@astrojs/markdown-satteri": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.4.1.tgz", "integrity": "sha512-EniHbFNa6SQHDih7JnpPos3NWXO6hdt4raBcOosfGmlfc3gP9CI/sESA3VOf1PgJZ7SFfewlZW9Livn0JugEZg==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.11.0", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", "satteri": "^0.10.3" } }, "node_modules/@astrojs/starlight/node_modules/@astrojs/mdx": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-8.0.1.tgz", "integrity": "sha512-VKodp/f3+XE6L0950K+ZOAolY47vdt0R78Ao+L2RdJ1hfAdYffL7IEjc/MsoyuS7CPVvCsd5/I3RP0ZyAIewdQ==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.11.0", "@astrojs/markdown-satteri": "0.4.1", "es-module-lexer": "^2.0.0" }, "engines": { "node": ">=22.12.0" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0", "@astrojs/markdown-satteri": "^0.4.0", "astro": "^7.2.6" }, "peerDependenciesMeta": { "@astrojs/markdown-remark": { "optional": true } } }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-darwin-arm64": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz", "integrity": "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-darwin-x64": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz", "integrity": "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-linux-arm64-gnu": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz", "integrity": "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-linux-arm64-musl": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz", "integrity": "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-linux-x64-gnu": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz", "integrity": "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-linux-x64-musl": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz", "integrity": "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-wasm32-wasi": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz", "integrity": "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw==", "cpu": [ "wasm32" ], "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.2.3" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-win32-arm64-msvc": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz", "integrity": "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@astrojs/starlight/node_modules/@bruits/satteri-win32-x64-msvc": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz", "integrity": "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@astrojs/starlight/node_modules/satteri": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz", "integrity": "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.5", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.10.5", "@bruits/satteri-darwin-x64": "0.10.5", "@bruits/satteri-linux-arm64-gnu": "0.10.5", "@bruits/satteri-linux-arm64-musl": "0.10.5", "@bruits/satteri-linux-x64-gnu": "0.10.5", "@bruits/satteri-linux-x64-musl": "0.10.5", "@bruits/satteri-wasm32-wasi": "0.10.5", "@bruits/satteri-win32-arm64-msvc": "0.10.5", "@bruits/satteri-win32-x64-msvc": "0.10.5" } }, "node_modules/@astrojs/telemetry": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.3.3.tgz", "integrity": "sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ==", "license": "MIT", "dependencies": { "ci-info": "^4.4.0", "dset": "^3.1.4", "is-docker": "^4.0.0", "package-manager-detector": "^1.6.0" }, "engines": { "node": "18.20.8 || ^20.3.0 || >=22.0.0" } }, "node_modules/@astrojs/yaml2ts": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz", "integrity": "sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==", "license": "MIT", "dependencies": { "yaml": "^2.8.3" } }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/types": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.29.7", "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@bruits/satteri-darwin-arm64": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.9.5.tgz", "integrity": "sha512-iw4nZgx9v30lWo/MTngQqi1pI78KI0DnkSm+lVJGYdmPLgAyDNJigVhpG42/Iq55A6c1Ll8q66ljyyRiQUxwow==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@bruits/satteri-darwin-x64": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.9.5.tgz", "integrity": "sha512-6T26Z5Kf3cFW2PSlk9p7zT7yVxvuBSiJvYyz9u8KjYwMTqZyIDOj2wDyNpxKV4+6yUVG7rddq2QwvG/8LJA2+Q==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@bruits/satteri-linux-arm64-gnu": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.9.5.tgz", "integrity": "sha512-u51id17uJwNEMK9nBlICsq6U31c+XVqQueVBkwRIzZG+gMpS8TOJctt5h5Wz33Z8xnMdTd+adtACVz0yHgGuOA==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@bruits/satteri-linux-arm64-musl": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.9.5.tgz", "integrity": "sha512-v39HxiwGC5Rqm01HksP6+5Y+xKLPlsuVFgIgpEAo+SiQ22c+mJVhS3u7Z6ePAKdhL5NJoK1xq70kLz3L13AhpQ==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@bruits/satteri-linux-x64-gnu": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.9.5.tgz", "integrity": "sha512-F3uO8uFp3pAP5ZGXttwvh57GS7s0lL953tnNdyI2gRyP4kOOkp6pyGojNJzCjkDvWI2Cvb9iNrKok3aqQPauAw==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@bruits/satteri-linux-x64-musl": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.9.5.tgz", "integrity": "sha512-bicEqglLlz++mWyADaZoP0JY20s4vDfLjaPYgQqC+NI4zZLTOOg1T4GB8aqtc822Pqji8SQBmSrTb7CrP8i08Q==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@bruits/satteri-wasm32-wasi": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.9.5.tgz", "integrity": "sha512-zauAuMwfPnKPUkd4AFixRFpXdgKwP2mKgxrIIo2gJzW0/ZneF9dbHnLkojSpaBnCCp7VUL1hIi5WWZvB1CqmAQ==", "cpu": [ "wasm32" ], "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@bruits/satteri-win32-arm64-msvc": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.9.5.tgz", "integrity": "sha512-SrfE7NEsgZjBvU3c+RR6oQRu0ToXY5uVJEbieXEF0YTctIV2zAVlbaMjWLts074QCgh3a+XHWkR/lWh2VH2LUg==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@bruits/satteri-win32-x64-msvc": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.9.5.tgz", "integrity": "sha512-5Kw9ZAtTGS8WHizyn+CJhjjfIQrw+7jcZodpmpXJjefnO15M8UexIi6JR2E5thyvsmHyhL6ZDDMUNR4bKJPd4g==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@capsizecss/unpack": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@capsizecss/unpack/-/unpack-4.0.1.tgz", "integrity": "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==", "license": "MIT", "dependencies": { "fontkitten": "^1.0.3" }, "engines": { "node": ">=18" } }, "node_modules/@clack/core": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.4.1.tgz", "integrity": "sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw==", "license": "MIT", "dependencies": { "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" }, "engines": { "node": ">= 20.12.0" } }, "node_modules/@clack/prompts": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.5.1.tgz", "integrity": "sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw==", "license": "MIT", "dependencies": { "@clack/core": "1.4.1", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" }, "engines": { "node": ">= 20.12.0" } }, "node_modules/@ctrl/tinycolor": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/@emmetio/abbreviation": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", "license": "MIT", "dependencies": { "@emmetio/scanner": "^1.0.4" } }, "node_modules/@emmetio/css-abbreviation": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", "license": "MIT", "dependencies": { "@emmetio/scanner": "^1.0.4" } }, "node_modules/@emmetio/css-parser": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.1.tgz", "integrity": "sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==", "license": "MIT", "dependencies": { "@emmetio/stream-reader": "^2.2.0", "@emmetio/stream-reader-utils": "^0.1.0" } }, "node_modules/@emmetio/html-matcher": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", "license": "ISC", "dependencies": { "@emmetio/scanner": "^1.0.0" } }, "node_modules/@emmetio/scanner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", "license": "MIT" }, "node_modules/@emmetio/stream-reader": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", "license": "MIT" }, "node_modules/@emmetio/stream-reader-utils": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", "license": "MIT" }, "node_modules/@emnapi/core": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", "license": "MIT", "optional": true, "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@esbuild/aix-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-arm": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/android-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/netbsd-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/openbsd-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/openharmony-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "openharmony" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": ">=18" } }, "node_modules/@expressive-code/core": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.44.0.tgz", "integrity": "sha512-xgiF2P6tYUbrhi3+x0S8xHZWT1t3Bvb3U91tAtRbLb9HLejLvYc5GZUqKICKLaUN4iSGhhNJu2fM/aH8e5yCMg==", "license": "MIT", "dependencies": { "@ctrl/tinycolor": "^4.0.4", "hast-util-select": "^6.0.2", "hast-util-to-html": "^9.0.1", "hast-util-to-text": "^4.0.1", "hastscript": "^9.0.0", "postcss": "^8.4.38", "postcss-nested": "^6.0.1", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1" } }, "node_modules/@expressive-code/plugin-frames": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.44.0.tgz", "integrity": "sha512-V6M6+zVc1GzqCvXkQHc2m5rcFOIVzJgMq5gnfrMnVf2gwtj/sg4H93c1f/mGeqHycubwkHFUDyParAOiGeDZeA==", "license": "MIT", "dependencies": { "@expressive-code/core": "^0.44.0" } }, "node_modules/@expressive-code/plugin-shiki": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.44.0.tgz", "integrity": "sha512-RZsdaqlbGqyAQKuoX4myQXxjmiE2l5KBpJ/gKPh62tCdIdpWyjbzVqSo8+5XsezZxkfi8AJ/J6EUaBTPROFX/Q==", "license": "MIT", "dependencies": { "@expressive-code/core": "^0.44.0", "shiki": "^4.0.2" } }, "node_modules/@expressive-code/plugin-text-markers": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.44.0.tgz", "integrity": "sha512-0/m3A5b+lz2upyNq+wzZ1S69HRoJmyFs5LsR42lVZ9pmGRlBiSBYQpvqlji4DBj1+Riamxc0AvcCr5kuzOQeWA==", "license": "MIT", "dependencies": { "@expressive-code/core": "^0.44.0" } }, "node_modules/@img/colour": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", "license": "MIT", "optional": true, "engines": { "node": ">=18" } }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.4.tgz", "integrity": "sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==", "cpu": [ "arm64" ], "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.3" } }, "node_modules/@img/sharp-darwin-x64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.4.tgz", "integrity": "sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==", "cpu": [ "x64" ], "license": "Apache-2.0", "optional": true, "os": [ "darwin" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.3" } }, "node_modules/@img/sharp-freebsd-wasm32": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.4.tgz", "integrity": "sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==", "license": "Apache-2.0", "optional": true, "os": [ "freebsd" ], "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.3.tgz", "integrity": "sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==", "cpu": [ "arm64" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-darwin-x64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.3.tgz", "integrity": "sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==", "cpu": [ "x64" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-arm": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.3.tgz", "integrity": "sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==", "cpu": [ "arm" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-arm64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.3.tgz", "integrity": "sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-ppc64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.3.tgz", "integrity": "sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==", "cpu": [ "ppc64" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-riscv64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.3.tgz", "integrity": "sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==", "cpu": [ "riscv64" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-s390x": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.3.tgz", "integrity": "sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==", "cpu": [ "s390x" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linux-x64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.3.tgz", "integrity": "sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.3.tgz", "integrity": "sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.3.tgz", "integrity": "sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" ], "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-linux-arm": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.4.tgz", "integrity": "sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==", "cpu": [ "arm" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.3" } }, "node_modules/@img/sharp-linux-arm64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.4.tgz", "integrity": "sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.3" } }, "node_modules/@img/sharp-linux-ppc64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.4.tgz", "integrity": "sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==", "cpu": [ "ppc64" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.3" } }, "node_modules/@img/sharp-linux-riscv64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.4.tgz", "integrity": "sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==", "cpu": [ "riscv64" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.3" } }, "node_modules/@img/sharp-linux-s390x": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.4.tgz", "integrity": "sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==", "cpu": [ "s390x" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.3" } }, "node_modules/@img/sharp-linux-x64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.4.tgz", "integrity": "sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-arm64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.4.tgz", "integrity": "sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.3" } }, "node_modules/@img/sharp-linuxmusl-x64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.4.tgz", "integrity": "sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "Apache-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.3" } }, "node_modules/@img/sharp-wasm32": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.4.tgz", "integrity": "sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==", "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { "@emnapi/runtime": "^1.11.3" }, "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-wasm32/node_modules/@emnapi/runtime": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@img/sharp-webcontainers-wasm32": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.4.tgz", "integrity": "sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==", "cpu": [ "wasm32" ], "license": "Apache-2.0", "optional": true, "dependencies": { "@img/sharp-wasm32": "0.35.4" }, "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-arm64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.4.tgz", "integrity": "sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==", "cpu": [ "arm64" ], "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-ia32": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.4.tgz", "integrity": "sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==", "cpu": [ "ia32" ], "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@img/sharp-win32-x64": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.4.tgz", "integrity": "sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==", "cpu": [ "x64" ], "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" ], "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "license": "MIT" }, "node_modules/@mdx-js/mdx": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", "recma-build-jsx": "^1.0.0", "recma-jsx": "^1.0.0", "recma-stringify": "^1.0.0", "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", "source-map": "^0.7.0", "unified": "^11.0.0", "unist-util-position-from-estree": "^2.0.0", "unist-util-stringify-position": "^4.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", "license": "MIT", "optional": true, "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "engines": { "node": "^20.19.0 || ^22.13.0 || >=23.5.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, "node_modules/@nodable/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@nodable/entities/-/entities-2.2.0.tgz", "integrity": "sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/nodable" } ], "license": "MIT" }, "node_modules/@oslojs/encoding": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", "license": "MIT" }, "node_modules/@oxc-parser/binding-android-arm-eabi": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.148.0.tgz", "integrity": "sha512-pHASv9g5pASxb7akHERZNSkrEqPhFaUix98o7d9hbTpolnnFWl7UiRrcMhCsV1+iVO4/cJwKsbKRJTFNs2tdBQ==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-android-arm64": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.148.0.tgz", "integrity": "sha512-sg/6Ez0KdAygsu0POELux9wN1Po2CP93WY8eNl4DBKIGprsd4QSHBXOb471Pu9i2OCD5sLkISSb2agZEhVn2Zw==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-darwin-arm64": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.148.0.tgz", "integrity": "sha512-yiSJmzGUvCUaJT8X3j40gVcX+ckuHQMuiOtF8DvzTs5+JtB/7XuHFPp4M+vv5u+HlBtDUd4Ks5pyHpWz8mfnkg==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-darwin-x64": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.148.0.tgz", "integrity": "sha512-6ZeklaamrMy4H2JmhvcJg6iip59tYILtuLaILxyAHT3l5FDxnI5ihVievAft5ZmAbqtlWHErOi1OpJK8gy1wcA==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-freebsd-x64": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.148.0.tgz", "integrity": "sha512-vFsPx+a/qFECPnz/H8nC6x6MDvnWscLTCo/5muojEF54ERUq1kdgbvnWo95YnkhjF9sTIcG/uDxQBh1gffaufQ==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.148.0.tgz", "integrity": "sha512-eOr3M+6iGbbxNL4PSS0VtsyQ2eOUxSBh00BqO22SbolDimPSYsBuLr/LCrZBkiqW2BoabhR6V4R8jrRAay7hjg==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.148.0.tgz", "integrity": "sha512-58ZKDw0mQRbCNfrd2IDyV4o8T7enzGERJn41BH2tjrZVGyiKiFzcfDicuB7Zcpb/1xIOrObovr8Dja6lZi8dLw==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-arm64-gnu": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.148.0.tgz", "integrity": "sha512-Fnu95O4eZ5i++GPvIzBEZ8y4ddTLR+D9paYa8JRaRk6ZK7nHQiWP5xtrhcPQsXqgat1d7sU/d5rbbI0p1FTHSQ==", "cpu": [ "arm64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-arm64-musl": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.148.0.tgz", "integrity": "sha512-3CQy/BMdx7N7H3qrcPxUL+a2CwUZodUcf6oq8iJuNZ9C6Ol1aq3mcWzsgySJ7CHFLvpX21ZDPp1r1X0QLbu/AQ==", "cpu": [ "arm64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.148.0.tgz", "integrity": "sha512-9LkaYvfiF8hMOw900csAvkf1oxE8XlmMeGowu5BcastSSwV8mKvKRMNU7HsV+ycyj1dQD8pX5qgOw8ja6SJacg==", "cpu": [ "ppc64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.148.0.tgz", "integrity": "sha512-2GBiM9h26dR4WJfhoMvnFMnFLf7m/kYs4UMqjvrOfQG4BV1nuTJDH22Zc2MQr3INZF7nSKYQ6xlhD3hQ7A6gug==", "cpu": [ "riscv64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-riscv64-musl": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.148.0.tgz", "integrity": "sha512-uPqZexvKJmEgq4mAu36qe2xTfXZE7oyik1R7KtZ5tl8qKlq1U1fIqTFRUEBZqRGvforoTrGIpatRzcoPKO66RA==", "cpu": [ "riscv64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-s390x-gnu": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.148.0.tgz", "integrity": "sha512-9oUHvnTbp7ZraFsTC8PN6XhdhPSSxZumYvixWl7Smi353gEULvK6yV0sXNVrdFMHQeaDKFCi8TgDhNK7/A+Y+Q==", "cpu": [ "s390x" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-x64-gnu": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.148.0.tgz", "integrity": "sha512-2qhDSJwKzbSZzF7lDqqk8sr/yXsmwr3PeUa4/nazIF+zFAYz1gVPEfC34GQtGxzJUUmklaYAL63368LEfrMeyw==", "cpu": [ "x64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-linux-x64-musl": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.148.0.tgz", "integrity": "sha512-qQoPDZUFV0bh9xA09XydmkjMBpgc1ukJuhMvzQ9QeVmFaHTS9W5TE5CoLmSl3QQyUP9OuHO3x/WPZTIIZPWR3Q==", "cpu": [ "x64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-openharmony-arm64": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.148.0.tgz", "integrity": "sha512-1UGbaQWEXUCLqAmaR5kwRDjx/R4S5LQKZkM9CHmaHkuKhriOF32aRLfS0jCRNE2yGQJLMEA1z9UucbBVqjXnDw==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-win32-arm64-msvc": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.148.0.tgz", "integrity": "sha512-pWKdzRDNG2+NK4h/V6U/CYERcfYD6u28h5IB/VJVsrZaD3muvE58tUj22lieL5vLZ+XFi1GPv9YXckZbJZ9BLA==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-win32-ia32-msvc": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.148.0.tgz", "integrity": "sha512-i3p4x+mvwtjcE1J5HM6V7ggsbXiznExN/4MkNyOy3dfXrVV3bnkSfmZxvo6/84qCVX4ShkpNE1SKt9biIF31GQ==", "cpu": [ "ia32" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-parser/binding-win32-x64-msvc": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.148.0.tgz", "integrity": "sha512-Ye6vB7VQulghWYkYkECOBYFRVEizz4XyRTUAv+t8BuyurhKU7uD0P9eowL+mKG5Mf8MSYx+DI3Cm8SKZvYG7bQ==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@oxc-project/types": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.148.0.tgz", "integrity": "sha512-Nm4s/jB+4FpFsPhWGEC4h7rzksesmtnMXomo6rCMcg/b8zLQuOziRgkCS1fxDCXOlJB/6Q8oABOZ/OP6RIPj9A==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/oxc-project" } }, "node_modules/@oxc-resolver/binding-android-arm-eabi": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.24.2.tgz", "integrity": "sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@oxc-resolver/binding-android-arm64": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.24.2.tgz", "integrity": "sha512-cl4icWaZFnLdg8m6qtnh5rBMuGbxc/ptStFHLeCNwr+2cZjkjNwQu/jYRS0CHlnPecOJMpuS5M6/BH+0J/YkEg==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@oxc-resolver/binding-darwin-arm64": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.24.2.tgz", "integrity": "sha512-At29QEMF6HajbQvgY8K6OXnHD1x9rad74xBEfmCB6ZqCGsdq75aK7tOYcTbOanMy8qdIBrfL3SMr3p/lfSlb9w==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@oxc-resolver/binding-darwin-x64": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.24.2.tgz", "integrity": "sha512-A5Kqr1EUj4oIL5CF4WRssq/o5P0Y11cwoFouMRmQ7YnC/A8V93nv1nb7aSU8HwcgmXropjLNkVTl4MN87cu28Q==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@oxc-resolver/binding-freebsd-x64": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.24.2.tgz", "integrity": "sha512-R5xkRBRRz7ceH/P5Jrc6G7FmdUdgpLYyESFAUDVTNQ9K0sGPxcp4ljiwEwEqsvNcQ4sYbMRrWcHHBCu7ksAJVw==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.24.2.tgz", "integrity": "sha512-k/RuYL4L/R58IBn3wT5ma3Wh4k62bp1eYCFRWCmMsasUOqL+H6sW0VGFadEzKWXFFlz+2uIMoeMk9ySSZJHgbg==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-arm-musleabihf": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.24.2.tgz", "integrity": "sha512-bnHAak3ujYfH5pKk4NieFNbvYvernfoQDgwLddbZ3OtMYrem87/qjlA+u+aKG0oZcqSLGCful/6/CEA+aeAgaA==", "cpu": [ "arm" ], "dev": true, "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-arm64-gnu": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.24.2.tgz", "integrity": "sha512-vDT3KHgzYp47gmtNOqL2VNhCyl5Zv643eyxm//A68J8DeUGXrvD1pZFiaT4jSfe+RInfnn1R2yVHye4enx6RnA==", "cpu": [ "arm64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-arm64-musl": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.24.2.tgz", "integrity": "sha512-+kMlQvbzfyEYtu5FcjE4p+ttBLpKW4d/AsAsuE69BxV6V4twZJeIQZFfD8gh/wqglY0MkPSezWXQH0jBV13MUw==", "cpu": [ "arm64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-ppc64-gnu": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.24.2.tgz", "integrity": "sha512-shjfMhmZ3gq9fv/w7bi3PnZlgOPG+2QAOFf0BJF0EgBSIGZ6PMLN2zbGEblTUYB/NKVDRyYhE2ff3dJ1QqNPkA==", "cpu": [ "ppc64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-gnu": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.24.2.tgz", "integrity": "sha512-zGelwFR5oRo+b69k8Lrzun86DyUHzfKN6cnjbR9l7Z7NIRznOE/2ZvPa1IUKqAL2PzAXOdwkfVqNvO1H2RlpAw==", "cpu": [ "riscv64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-riscv64-musl": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.24.2.tgz", "integrity": "sha512-qxZ1SWCXJY0eyhAlP6Lmo9F2Nrtx7EkYj9oCgL8apDPCwXwCEDA2U697bbT81JIc2IrVjxO4KX6WU2N+oN9Z4w==", "cpu": [ "riscv64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-s390x-gnu": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.24.2.tgz", "integrity": "sha512-sGCecF3cx2DFlH4t/z7ApnOnXqN48p5p5mlHDEnHTAukQa2P+qMVE4CwyWE9W+q/m3QJ7kKfGrIjax31f44oFQ==", "cpu": [ "s390x" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-x64-gnu": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.24.2.tgz", "integrity": "sha512-k/VlMMcSzMlahb3/fENM4rTlsJ0s3fFROA0KXPBmKggqmTSaE383sl8F3KCOXPLmVsYfW6hCitMhXCEtNeZxxg==", "cpu": [ "x64" ], "dev": true, "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-linux-x64-musl": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.24.2.tgz", "integrity": "sha512-8hbnZyNi97b/8wapYaIF9+t9GmZKBW2vunaOc3h9HGJptH7b7XpvZqOTBSm/MpTjr7H497BlgOaSfLUdhmy2bw==", "cpu": [ "x64" ], "dev": true, "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@oxc-resolver/binding-openharmony-arm64": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.24.2.tgz", "integrity": "sha512-MvyGik3a6pVgZ0t/kWlbmFxFLmXQJwgLsY2eYFHLpy0wGwRbfzeIGgDwQ3kXqE30z+kSXennRkCrT7TUvkptNg==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "openharmony" ] }, "node_modules/@oxc-resolver/binding-wasm32-wasi": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.24.2.tgz", "integrity": "sha512-vHcssMPwO08RTvj/c0iOBz90attxyG3wQJ0dTcyEQK43LRpcdLWZlV5feBhv6Isn6ahbQIzHbCgfa81+RiML0Q==", "cpu": [ "wasm32" ], "dev": true, "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "1.11.2", "@emnapi/runtime": "1.11.2", "@napi-rs/wasm-runtime": "^1.1.6" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/core": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.2.tgz", "integrity": "sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==", "dev": true, "license": "MIT", "optional": true, "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "node_modules/@oxc-resolver/binding-wasm32-wasi/node_modules/@emnapi/runtime": { "version": "1.11.2", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz", "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==", "dev": true, "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@oxc-resolver/binding-win32-arm64-msvc": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.24.2.tgz", "integrity": "sha512-uokJqro2iBqkFvJdKQLP7d8/BUmFwESQFVmIJUQKj1Xn1a/LysJoe1vmeECLF5b3jsV8CAL5sEMJXX6SdK9Nhg==", "cpu": [ "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@oxc-resolver/binding-win32-x64-msvc": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.24.2.tgz", "integrity": "sha512-UqGPmo56KDfLlfXFAFIrNflHT8tFxWGEivWg3Zeyp4Uy2NlKN1FGPr6/BxcLGG3+kZ6Wp14g5Uj+n71boqZfiw==", "cpu": [ "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@pagefind/darwin-arm64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", "integrity": "sha512-MXpI+7HsAdPkvJ0gk9xj9g541BCqBZOBbdwj9g6lB5LCj6kSV6nqDSjzcAJwvOsfu0fjwvC8hQU+ecfhp+MpiQ==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@pagefind/darwin-x64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.5.2.tgz", "integrity": "sha512-IojxFWMEJe0RQ7PQ3KXQsPIImNsbpPYpoZ+QUDrL8fAl/O27IX+LVLs74/UzEZy5uA2LD8Nz1AiwKr72vrkZQw==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@pagefind/default-ui": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@pagefind/default-ui/-/default-ui-1.4.0.tgz", "integrity": "sha512-wie82VWn3cnGEdIjh4YwNESyS1G6vRHwL6cNjy9CFgNnWW/PGRjsLq300xjVH5sfPFK3iK36UxvIBymtQIEiSQ==", "license": "MIT" }, "node_modules/@pagefind/freebsd-x64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/freebsd-x64/-/freebsd-x64-1.5.2.tgz", "integrity": "sha512-7EVzo9+0w+2cbe671BtMj10UlNo83I+HrLVLfRxO731svHRJKUfJ/mo05gU14pe9PCfpKNQT8FS3Xc/oDN6pOA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "freebsd" ] }, "node_modules/@pagefind/linux-arm64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.5.2.tgz", "integrity": "sha512-Ovt9+K35sqzn8H3ZMXGwls4TD/wMJuvRtShHIsmUQREmaxjrDEX7gHckRCrwYJ4XE1H1p6HkLz3wukrAnsfXQw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@pagefind/linux-x64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.5.2.tgz", "integrity": "sha512-V+tFqHKXhQKq/WqPBD67AFy7scn1/aZID00ws4fSDd+1daSi5UHR9VVlRrOUYKxn3VuFQYRD7lYXdZK1WED1YA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@pagefind/windows-arm64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/windows-arm64/-/windows-arm64-1.5.2.tgz", "integrity": "sha512-hN9Nh90fNW61nNRCW9ZyQrAj/mD0eRvmJ8NlTUzkbuW8kIzGJUi3cxjFkEcMZ5h/8FsKWD/VcouZl4yo1F7B6g==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@pagefind/windows-x64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.5.2.tgz", "integrity": "sha512-Fa2Iyw7kaDRzGMfNYNUXNW2zbL5FQVDgSOcbDHdzBrDEdpqOqg8TcZ68F22ol6NJ9IGzvUdmeyZypLW5dyhqsg==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "android" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-arm64": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-darwin-x64": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-freebsd-x64": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", "cpu": [ "arm" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-arm64-musl": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", "cpu": [ "ppc64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", "cpu": [ "s390x" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-gnu": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-linux-x64-musl": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-openharmony-arm64": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "openharmony" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-wasm32-wasi": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", "cpu": [ "wasm32" ], "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/binding-win32-x64-msvc": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/@rolldown/pluginutils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "license": "MIT" }, "node_modules/@shikijs/core": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-4.2.0.tgz", "integrity": "sha512-Hc87Ab1Ld/vEbZRCbwx344I5v+4RU8CVToUTRkqXL1+TjbuOp9U5Xa0M23V4GEWHxVn+yO5otb+HkQVm3ptWQQ==", "license": "MIT", "dependencies": { "@shikijs/primitive": "4.2.0", "@shikijs/types": "4.2.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/engine-javascript": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-4.2.0.tgz", "integrity": "sha512-fjETeq1k5ffyXqRgS6+3hpvqseLalp1kjNfRbXpUgWR8FpZ1CmQfiNHovc5lncYjt/Vg5JK/WJEmLahjwMa0og==", "license": "MIT", "dependencies": { "@shikijs/types": "4.2.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/engine-oniguruma": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-4.2.0.tgz", "integrity": "sha512-hTorK1dffPkpbMUk6Z+828PgRo7d07HbnizoP0hNPFjhxMHctj0Px/qoHeGMYafc6ju+u9iMldN4JbVzNQM++g==", "license": "MIT", "dependencies": { "@shikijs/types": "4.2.0", "@shikijs/vscode-textmate": "^10.0.2" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/langs": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-4.2.0.tgz", "integrity": "sha512-bwrVRlJ0wUhZxAbVdvBbv2TTC9yLsh4C/IO5Ofz0T8MQntgDvyVnkbjw9vi50r1kx7RCIJdnJnjZAwmAsXFLZQ==", "license": "MIT", "dependencies": { "@shikijs/types": "4.2.0" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/primitive": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/primitive/-/primitive-4.2.0.tgz", "integrity": "sha512-NOq+DtUkVBJtZMVXL5A0vI0Xk8nvDYaXetFHSJFlOqjDZIVhIPRYFdGkSoElDqNuegikcc3A76SNUa8dTqtAYA==", "license": "MIT", "dependencies": { "@shikijs/types": "4.2.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/themes": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-4.2.0.tgz", "integrity": "sha512-RX8IHYeLv8Cu2W6ruc3RxUqWn0IYCqSrMBzi/uRGAmfyDNOnNO5BF/Px7o97n4XTpmFTo5GbRaazuOWj+2ak2w==", "license": "MIT", "dependencies": { "@shikijs/types": "4.2.0" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/types": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-4.2.0.tgz", "integrity": "sha512-VT/MKtlpOhEPZloSH3Pb9WCZEBDoQVMa9jedp5UAwmJOar1DVc9DRODAxmYPW9M93IK4ryuqRejFfmlvlVDemw==", "license": "MIT", "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" }, "engines": { "node": ">=20" } }, "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "license": "MIT" }, "node_modules/@tybys/wasm-util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/hast": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/js-yaml": { "version": "4.0.9", "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", "license": "MIT" }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/mdx": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", "license": "MIT" }, "node_modules/@types/nlcst": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", "license": "MIT", "dependencies": { "@types/unist": "*" } }, "node_modules/@types/node": { "version": "24.12.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", "license": "MIT", "dependencies": { "undici-types": "~7.16.0" } }, "node_modules/@types/sax": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, "node_modules/@ungap/structured-clone": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz", "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==", "license": "ISC" }, "node_modules/@volar/kit": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.28.tgz", "integrity": "sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==", "license": "MIT", "dependencies": { "@volar/language-service": "2.4.28", "@volar/typescript": "2.4.28", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "typescript": "*" } }, "node_modules/@volar/language-core": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", "license": "MIT", "dependencies": { "@volar/source-map": "2.4.28" } }, "node_modules/@volar/language-server": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.28.tgz", "integrity": "sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==", "license": "MIT", "dependencies": { "@volar/language-core": "2.4.28", "@volar/language-service": "2.4.28", "@volar/typescript": "2.4.28", "path-browserify": "^1.0.1", "request-light": "^0.7.0", "vscode-languageserver": "^9.0.1", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/language-service": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.28.tgz", "integrity": "sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==", "license": "MIT", "dependencies": { "@volar/language-core": "2.4.28", "vscode-languageserver-protocol": "^3.17.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" } }, "node_modules/@volar/source-map": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", "license": "MIT" }, "node_modules/@volar/typescript": { "version": "2.4.28", "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", "license": "MIT", "dependencies": { "@volar/language-core": "2.4.28", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vscode/emmet-helper": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz", "integrity": "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==", "license": "MIT", "dependencies": { "emmet": "^2.4.3", "jsonc-parser": "^2.3.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.15.1", "vscode-uri": "^3.0.8" } }, "node_modules/@vscode/emmet-helper/node_modules/jsonc-parser": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", "license": "MIT" }, "node_modules/@vscode/l10n": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", "license": "MIT" }, "node_modules/acorn": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "license": "MIT", "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "8.20.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-draft-04": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", "license": "MIT", "peerDependencies": { "ajv": "^8.5.0" }, "peerDependenciesMeta": { "ajv": { "optional": true } } }, "node_modules/am-i-vibing": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz", "integrity": "sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg==", "license": "MIT", "dependencies": { "process-ancestry": "^0.1.0" }, "bin": { "am-i-vibing": "dist/cli.mjs" } }, "node_modules/ansi-regex": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/anymatch/node_modules/picomatch": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/anynum": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/anynum/-/anynum-1.0.1.tgz", "integrity": "sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT" }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, "node_modules/array-iterate": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/astring": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", "license": "MIT", "bin": { "astring": "bin/astring" } }, "node_modules/astro": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/astro/-/astro-7.3.2.tgz", "integrity": "sha512-ysTcdpGP61XZpHoMRYC/CK19DQ94qkBvzXMtXEo0gEqPNkmOU/Tv++CtWmzaI4nF2Ck8RXFdiWvdlTWa2oOr9w==", "license": "MIT", "dependencies": { "@astrojs/compiler-rs": "^0.4.0", "@astrojs/internal-helpers": "0.11.0", "@astrojs/markdown-satteri": "0.4.1", "@astrojs/telemetry": "3.3.3", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", "@oslojs/encoding": "^1.1.0", "am-i-vibing": "^0.4.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^2.0.1", "devalue": "^5.8.1", "diff": "^9.0.0", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.28.0", "find-proc": "0.1.0", "flattie": "^1.1.1", "fontace": "~0.4.1", "get-tsconfig": "5.0.0-beta.4", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.3.0", "jsonc-parser": "^3.3.1", "magic-string": "^1.0.0", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^1.0.1", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.4", "semver": "^7.7.4", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "svgo": "^4.0.1", "tinyclip": "^0.1.12", "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "ultrahtml": "^1.6.0", "unifont": "~0.7.5", "unstorage": "^1.17.5", "vite": "^8.0.13", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.5.4" }, "bin": { "astro": "bin/astro.mjs" }, "engines": { "node": ">=22.12.0", "npm": ">=9.6.5", "pnpm": ">=7.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/astrodotbuild" }, "optionalDependencies": { "sharp": "^0.35.4" }, "peerDependencies": { "@astrojs/markdown-remark": "^7.3.0" }, "peerDependenciesMeta": { "@astrojs/markdown-remark": { "optional": true } } }, "node_modules/astro-expressive-code": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.44.0.tgz", "integrity": "sha512-b1wN/ZvbJprzxlGKIpIes2kQrCY5KRLwys2tWbZAZyjGZcW5ZtgneZnBwzNRiBna9/48d4mQl19KLjcRuhO1hw==", "license": "MIT", "dependencies": { "rehype-expressive-code": "^0.44.0", "url-extras": "^0.1.0" }, "peerDependencies": { "astro": "^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta || ^7.0.0" } }, "node_modules/astro/node_modules/@astrojs/internal-helpers": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.11.0.tgz", "integrity": "sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "js-yaml": "^4.3.0", "picomatch": "^4.0.4", "retext-smartypants": "^6.2.0", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "unified": "^11.0.5" } }, "node_modules/astro/node_modules/@astrojs/markdown-satteri": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.4.1.tgz", "integrity": "sha512-EniHbFNa6SQHDih7JnpPos3NWXO6hdt4raBcOosfGmlfc3gP9CI/sESA3VOf1PgJZ7SFfewlZW9Livn0JugEZg==", "license": "MIT", "dependencies": { "@astrojs/internal-helpers": "0.11.0", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", "satteri": "^0.10.3" } }, "node_modules/astro/node_modules/@bruits/satteri-darwin-arm64": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-arm64/-/satteri-darwin-arm64-0.10.5.tgz", "integrity": "sha512-27KTVl4TJkVahMy/ohyA7qd4938G5UNneFUz/PsScYfpIhj0IVAS23mpcJXdPF44sa6nva198lmV/cKIb2YPyA==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/astro/node_modules/@bruits/satteri-darwin-x64": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-darwin-x64/-/satteri-darwin-x64-0.10.5.tgz", "integrity": "sha512-IjnLe3nKspq6qaeqGgjT7MT8VrTV74yWRlaag7ZdNsI8TDAYZ0iPxMCo+9KQZHUk5EyVB+reBI/PFWL5KuFw9Q==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/astro/node_modules/@bruits/satteri-linux-arm64-gnu": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-gnu/-/satteri-linux-arm64-gnu-0.10.5.tgz", "integrity": "sha512-glkYXZCJywjP13v67eAyAMSJdF+ncvEbYvgi/wOtffL9tQ27lr/zsyzUfgs+ovjJ9d8JNQKiXeiArJcX8PJL9w==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/astro/node_modules/@bruits/satteri-linux-arm64-musl": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-arm64-musl/-/satteri-linux-arm64-musl-0.10.5.tgz", "integrity": "sha512-yWdgG1g17Nh2QyGVlFUxGRa3FEFwiMcpZEyMNWkbM3deC94cmVc+/i9OuyFpdKuWo3GkgoCtYVOoxk1uCnCZIA==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/astro/node_modules/@bruits/satteri-linux-x64-gnu": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-gnu/-/satteri-linux-x64-gnu-0.10.5.tgz", "integrity": "sha512-FVaLoPT1fBgGl0J+AYebyyXJYBachGl8Oyyrf1lye4RTqCB4S0Gwkj1uM9RJyThUOvx5VUmAT1CnNh1SFHA+kw==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/astro/node_modules/@bruits/satteri-linux-x64-musl": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-linux-x64-musl/-/satteri-linux-x64-musl-0.10.5.tgz", "integrity": "sha512-EHpVAx2bqW3GINHTKkljtxVfQmVDGWIuwOYOP5YghTj+0PkBa2o8oKPRtQ9Kbsr1Fye8jtUcDjhwj2jMNugZKg==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/astro/node_modules/@bruits/satteri-wasm32-wasi": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-wasm32-wasi/-/satteri-wasm32-wasi-0.10.5.tgz", "integrity": "sha512-ypz8c/Zmipxp4IoeDa228Gstv6TLzVmNs3yC6wKCoNSOjx1iwpgzu87Y3hTkXFdwChVGU85qeUDuOIarGUZQLw==", "cpu": [ "wasm32" ], "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.2.3" }, "engines": { "node": ">=14.0.0" } }, "node_modules/astro/node_modules/@bruits/satteri-win32-arm64-msvc": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-arm64-msvc/-/satteri-win32-arm64-msvc-0.10.5.tgz", "integrity": "sha512-siTV88nb0LRqNpkL2gXboqCwVdq95sLtzMHS1/3eONV2gLbB3NAK46wmSMvCO/yquBvI2lvaFIfd8P12ecsxBw==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/astro/node_modules/@bruits/satteri-win32-x64-msvc": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/@bruits/satteri-win32-x64-msvc/-/satteri-win32-x64-msvc-0.10.5.tgz", "integrity": "sha512-C3IfPvfvMXmlzBxaMPKFS1XiuV9pu2mC7YqkPk7PSvTgPZ8gbdASIpHpztDLvTTQjqZ0z1Ol8tK5X+V6XXC0wQ==", "cpu": [ "x64" ], "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/astro/node_modules/get-tsconfig": { "version": "5.0.0-beta.4", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", "integrity": "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ==", "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, "engines": { "node": ">=20.20.0" }, "funding": { "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/astro/node_modules/satteri": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.10.5.tgz", "integrity": "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.5", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.10.5", "@bruits/satteri-darwin-x64": "0.10.5", "@bruits/satteri-linux-arm64-gnu": "0.10.5", "@bruits/satteri-linux-arm64-musl": "0.10.5", "@bruits/satteri-linux-x64-gnu": "0.10.5", "@bruits/satteri-linux-x64-musl": "0.10.5", "@bruits/satteri-wasm32-wasi": "0.10.5", "@bruits/satteri-win32-arm64-msvc": "0.10.5", "@bruits/satteri-win32-x64-msvc": "0.10.5" } }, "node_modules/axobject-query": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/bcp-47": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz", "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==", "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/bcp-47-match": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "license": "ISC" }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-html4": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-legacy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chokidar": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, "engines": { "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/ci-info": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/sibiraj-s" } ], "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cliui": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", "license": "ISC", "dependencies": { "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "wrap-ansi": "^9.0.0" }, "engines": { "node": ">=20" } }, "node_modules/cliui/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/collapse-white-space": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/comma-separated-tokens": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "license": "MIT", "engines": { "node": ">=16" } }, "node_modules/common-ancestor-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz", "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==", "license": "BlueOak-1.0.0", "engines": { "node": ">= 18" } }, "node_modules/cookie": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-2.0.1.tgz", "integrity": "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w==", "license": "MIT", "engines": { "node": ">=22" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/express" } }, "node_modules/cookie-es": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz", "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==", "license": "MIT" }, "node_modules/crossws": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", "license": "MIT", "dependencies": { "uncrypto": "^0.1.3" } }, "node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css-selector-parser": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.3.0.tgz", "integrity": "sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/mdevils" }, { "type": "patreon", "url": "https://patreon.com/mdevils" } ], "license": "MIT" }, "node_modules/css-tree": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "license": "MIT", "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/csso": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", "npm": ">=7.0.0" } }, "node_modules/csso/node_modules/css-tree": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", "npm": ">=7.0.0" } }, "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "license": "CC0-1.0" }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/decode-named-character-reference": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/defu": { "version": "6.1.7", "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", "license": "MIT" }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/destr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", "license": "MIT" }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/devalue": { "version": "5.8.1", "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz", "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==", "license": "MIT" }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/diff": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz", "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==", "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/direction": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", "license": "MIT", "bin": { "direction": "cli.js" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/dom-serializer/node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } ], "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" }, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/domutils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dset": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/emmet": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", "license": "MIT", "workspaces": [ "./packages/scanner", "./packages/abbreviation", "./packages/css-abbreviation", "./" ], "dependencies": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" } }, "node_modules/emoji-regex": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "license": "MIT" }, "node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/es-module-lexer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", "license": "MIT" }, "node_modules/esast-util-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/esast-util-from-js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/esbuild": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "hasInstallScript": true, "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { "node": ">=18" }, "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/estree-util-attach-comments": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-build-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "estree-walker": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-is-identifier-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-scope": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-to-js": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", "source-map": "^0.7.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-visit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } }, "node_modules/eventemitter3": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", "license": "MIT" }, "node_modules/expressive-code": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.44.0.tgz", "integrity": "sha512-JXVWVNCKlLuZLMQH8cOiDUSosT0Bb+elwE/dbAkpwFwDFmyFyWlECoWZIohh2FkIF1iI67TQJ+Ts9k7oNDh2qA==", "license": "MIT", "dependencies": { "@expressive-code/core": "^0.44.0", "@expressive-code/plugin-frames": "^0.44.0", "@expressive-code/plugin-shiki": "^0.44.0", "@expressive-code/plugin-text-markers": "^0.44.0" } }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "license": "MIT" }, "node_modules/fast-string-truncated-width": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==", "license": "MIT" }, "node_modules/fast-string-width": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz", "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==", "license": "MIT", "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "node_modules/fast-uri": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz", "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/fastify" }, { "type": "opencollective", "url": "https://opencollective.com/fastify" } ], "license": "BSD-3-Clause" }, "node_modules/fast-wrap-ansi": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==", "license": "MIT", "dependencies": { "fast-string-width": "^3.0.2" } }, "node_modules/fast-xml-builder": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", "integrity": "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT", "dependencies": { "path-expression-matcher": "^1.5.0", "xml-naming": "^0.1.0" } }, "node_modules/fast-xml-parser": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.9.3.tgz", "integrity": "sha512-brCNCeScma/kqa54J4PIDriSSSLssRkuYaUCpvHJulGc3HGI/xxKUCTDcYkAdqJsyb//ydpbxecjC3hB9+tb/g==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT", "dependencies": { "@nodable/entities": "^2.2.0", "fast-xml-builder": "^1.2.0", "is-unsafe": "^1.0.1", "path-expression-matcher": "^1.5.0", "strnum": "^2.4.1", "xml-naming": "^0.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "node_modules/fd-package-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-2.0.0.tgz", "integrity": "sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==", "dev": true, "license": "MIT", "dependencies": { "walk-up-path": "^4.0.0" } }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "license": "MIT", "engines": { "node": ">=12.0.0" }, "peerDependencies": { "picomatch": "^3 || ^4" }, "peerDependenciesMeta": { "picomatch": { "optional": true } } }, "node_modules/find-proc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/find-proc/-/find-proc-0.1.0.tgz", "integrity": "sha512-OaOpEYv2PiQ7SQ5LIrl+deA1XaWcxEjnpM6VuWXTUvn+teIXxeFTLDmu18/zDQpFmHN4o3oDBX+BT0AGwEhemg==", "license": "MIT", "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/flattie": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/fontace": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/fontace/-/fontace-0.4.1.tgz", "integrity": "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw==", "license": "MIT", "dependencies": { "fontkitten": "^1.0.2" } }, "node_modules/fontkitten": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fontkitten/-/fontkitten-1.0.3.tgz", "integrity": "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==", "license": "MIT", "dependencies": { "tiny-inflate": "^1.0.3" }, "engines": { "node": ">=20" } }, "node_modules/formatly": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/formatly/-/formatly-0.7.0.tgz", "integrity": "sha512-7CXJtIIA0zy/u12StsYk25qVKxvdLA2ep2sTNxK3ov0mGNIIDqIvAXDSgTnAfDJFsPfWjuz0WjfYSdpvnLA5Tg==", "dev": true, "license": "MIT", "dependencies": { "fd-package-json": "^2.0.0", "package-manager-detector": "^1.8.0" }, "bin": { "formatly": "bin/index.mjs" }, "engines": { "node": ">=18.3.0" } }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-east-asian-width": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", "license": "MIT", "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-tsconfig": { "version": "4.14.3", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.3.tgz", "integrity": "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==", "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, "funding": { "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "license": "ISC" }, "node_modules/h3": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==", "license": "MIT", "dependencies": { "cookie-es": "^1.2.3", "crossws": "^0.3.5", "defu": "^6.1.6", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "node_modules/hast-util-embedded": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-is-element": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-format": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hast-util-format/-/hast-util-format-1.1.0.tgz", "integrity": "sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-minify-whitespace": "^1.0.0", "hast-util-phrasing": "^3.0.0", "hast-util-whitespace": "^3.0.0", "html-whitespace-sensitive-tag-names": "^3.0.0", "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-from-html": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-from-parse5": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-has-property": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-is-body-ok-link": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.1.tgz", "integrity": "sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-is-element": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-minify-whitespace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hast-util-minify-whitespace/-/hast-util-minify-whitespace-1.0.1.tgz", "integrity": "sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-is-element": "^3.0.0", "hast-util-whitespace": "^3.0.0", "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-parse-selector": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-phrasing": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-embedded": "^3.0.0", "hast-util-has-property": "^3.0.0", "hast-util-is-body-ok-link": "^3.0.0", "hast-util-is-element": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-raw": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-select": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.4.tgz", "integrity": "sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "bcp-47-match": "^2.0.0", "comma-separated-tokens": "^2.0.0", "css-selector-parser": "^3.0.0", "devlop": "^1.0.0", "direction": "^2.0.0", "hast-util-has-property": "^3.0.0", "hast-util-to-string": "^3.0.0", "hast-util-whitespace": "^3.0.0", "nth-check": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-estree": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-attach-comments": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-html": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-jsx-runtime": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-string": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-text": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "hast-util-is-element": "^3.0.0", "unist-util-find-after": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-whitespace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hastscript": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/html-escaper": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", "license": "MIT" }, "node_modules/html-void-elements": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/html-whitespace-sensitive-tag-names": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-3.0.1.tgz", "integrity": "sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==", "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/http-cache-semantics": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "license": "BSD-2-Clause" }, "node_modules/i18next": { "version": "26.0.10", "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.0.10.tgz", "integrity": "sha512-k3yGPAlWR2RdMYoVXJoDZDT87qeHIWKH7gVksdZMpRty7QX/D9QZeYGvN08KGbKHke9wn01eYT+EEsrqX/YTlw==", "funding": [ { "type": "individual", "url": "https://www.locize.com/i18next" }, { "type": "individual", "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" }, { "type": "individual", "url": "https://www.locize.com" } ], "license": "MIT", "peerDependencies": { "typescript": "^5 || ^6" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/inline-style-parser": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", "license": "MIT" }, "node_modules/iron-webcrypto": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/brc-dd" } }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumerical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-docker": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-4.0.0.tgz", "integrity": "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA==", "license": "MIT", "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-hexadecimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-unsafe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-unsafe/-/is-unsafe-1.0.1.tgz", "integrity": "sha512-CLK2+VdgERgD96EYm5lUQssZYlRg2tkZnbsxZoacmSiRxiFJ4Nk4SzjCl+Ur+v3kXIY9dTIdb3IH22y1mZ56LA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT" }, "node_modules/jiti": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", "devOptional": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" } }, "node_modules/js-yaml": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/puzrin" }, { "type": "github", "url": "https://github.com/sponsors/nodeca" } ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, "node_modules/jsonc-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "license": "MIT" }, "node_modules/kleur": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/knip": { "version": "6.35.0", "resolved": "https://registry.npmjs.org/knip/-/knip-6.35.0.tgz", "integrity": "sha512-eER1hSyi47lJTO9MTnEoJspEscPaVuFtFkHsGbuCmhjDlphzvg2xxcweNg1NCeylo9ERSkb/NzAo7sAcT9gLmA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/webpro" }, { "type": "opencollective", "url": "https://opencollective.com/knip" } ], "license": "ISC", "dependencies": { "fdir": "^6.5.0", "formatly": "^0.7.0", "get-tsconfig": "4.14.3", "jiti": "^2.7.0", "oxc-parser": "^0.148.0", "oxc-resolver": "11.24.2", "picomatch": "^4.0.7", "smol-toml": "^1.8.0", "strip-json-comments": "5.0.3", "tinyglobby": "^0.2.17", "unbash": "^4.0.11", "yaml": "^2.9.0", "zod": "^4.4.3" }, "bin": { "knip": "bin/knip.js", "knip-bun": "bin/knip-bun.js" }, "engines": { "node": "^20.19.0 || >=22.12.0" } }, "node_modules/lightningcss": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" }, "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "node_modules/lightningcss-android-arm64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", "cpu": [ "arm64" ], "license": "MPL-2.0", "optional": true, "os": [ "android" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-darwin-arm64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", "cpu": [ "arm64" ], "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-darwin-x64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", "cpu": [ "x64" ], "license": "MPL-2.0", "optional": true, "os": [ "darwin" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-freebsd-x64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", "cpu": [ "x64" ], "license": "MPL-2.0", "optional": true, "os": [ "freebsd" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-arm-gnueabihf": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", "cpu": [ "arm" ], "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-arm64-gnu": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", "cpu": [ "arm64" ], "libc": [ "glibc" ], "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-arm64-musl": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", "cpu": [ "arm64" ], "libc": [ "musl" ], "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-x64-gnu": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", "cpu": [ "x64" ], "libc": [ "glibc" ], "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-linux-x64-musl": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", "cpu": [ "x64" ], "libc": [ "musl" ], "license": "MPL-2.0", "optional": true, "os": [ "linux" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-win32-arm64-msvc": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", "cpu": [ "arm64" ], "license": "MPL-2.0", "optional": true, "os": [ "win32" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", "cpu": [ "x64" ], "license": "MPL-2.0", "optional": true, "os": [ "win32" ], "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/lru-cache": { "version": "11.5.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" } }, "node_modules/magic-string": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.3.1.tgz", "integrity": "sha512-rm91zr2Ou+XueDTohjQQjdQEcYM6zVi8KVUCG8Ec3vHwUEKrhSdCNyfuIywkA6hcCAteIn0ZOtAHA6eGpiX+Pg==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.6.0" } }, "node_modules/magicast": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.3.tgz", "integrity": "sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==", "license": "MIT", "dependencies": { "@babel/parser": "^7.29.3", "@babel/types": "^7.29.0", "source-map-js": "^1.2.1" } }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", "license": "MIT", "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/mdast-util-definitions": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-directive": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-find-and-replace": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-from-markdown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-autolink-literal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-footnote": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-strikethrough": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-mdx": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-mdx-expression": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-mdx-jsx": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-mdxjs-esm": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-phrasing": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast": { "version": "13.2.1", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-markdown": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdn-data": { "version": "2.27.1", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "license": "CC0-1.0" }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-directive": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "parse-entities": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-autolink-literal": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-strikethrough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-table": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-gfm-task-list-item": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-mdx-expression": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-jsx": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-mdx-md": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-mdxjs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", "license": "MIT", "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", "micromark-extension-mdx-expression": "^3.0.0", "micromark-extension-mdx-jsx": "^3.0.0", "micromark-extension-mdx-md": "^2.0.0", "micromark-extension-mdxjs-esm": "^3.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-extension-mdxjs-esm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/micromark-factory-destination": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-label": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-mdx-expression": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-position-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "node_modules/micromark-factory-space": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-character": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-chunked": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-classify-character": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-string": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-encode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" } }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-resolve-all": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-subtokenize": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-symbol": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT" }, "node_modules/micromark-util-types": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", "url": "https://github.com/sponsors/unifiedjs" }, { "type": "OpenCollective", "url": "https://opencollective.com/unified" } ], "license": "MIT" }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, "node_modules/muggle-string": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.16", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, "node_modules/neotraverse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-1.0.1.tgz", "integrity": "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w==", "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/nlcst-to-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/node-fetch-native": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", "license": "MIT" }, "node_modules/node-mock-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, "funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/obug": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", "funding": [ "https://github.com/sponsors/sxzz", "https://opencollective.com/debug" ], "license": "MIT", "engines": { "node": ">=12.20.0" } }, "node_modules/ofetch": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", "license": "MIT", "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "node_modules/ohash": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", "license": "MIT" }, "node_modules/oniguruma-parser": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz", "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==", "license": "MIT" }, "node_modules/oniguruma-to-es": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz", "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==", "license": "MIT", "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "node_modules/oxc-parser": { "version": "0.148.0", "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.148.0.tgz", "integrity": "sha512-syxUKHeUll89RIABQADcI7sikYrwyssvA6gj4phSSIPezKVM8yMaLAiLLSc7fmzVvrwybfFGFbW5zme9sX87rg==", "dev": true, "license": "MIT", "dependencies": { "@oxc-project/types": "^0.148.0" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/sponsors/oxc-project" }, "optionalDependencies": { "@oxc-parser/binding-android-arm-eabi": "0.148.0", "@oxc-parser/binding-android-arm64": "0.148.0", "@oxc-parser/binding-darwin-arm64": "0.148.0", "@oxc-parser/binding-darwin-x64": "0.148.0", "@oxc-parser/binding-freebsd-x64": "0.148.0", "@oxc-parser/binding-linux-arm-gnueabihf": "0.148.0", "@oxc-parser/binding-linux-arm-musleabihf": "0.148.0", "@oxc-parser/binding-linux-arm64-gnu": "0.148.0", "@oxc-parser/binding-linux-arm64-musl": "0.148.0", "@oxc-parser/binding-linux-ppc64-gnu": "0.148.0", "@oxc-parser/binding-linux-riscv64-gnu": "0.148.0", "@oxc-parser/binding-linux-riscv64-musl": "0.148.0", "@oxc-parser/binding-linux-s390x-gnu": "0.148.0", "@oxc-parser/binding-linux-x64-gnu": "0.148.0", "@oxc-parser/binding-linux-x64-musl": "0.148.0", "@oxc-parser/binding-openharmony-arm64": "0.148.0", "@oxc-parser/binding-win32-arm64-msvc": "0.148.0", "@oxc-parser/binding-win32-ia32-msvc": "0.148.0", "@oxc-parser/binding-win32-x64-msvc": "0.148.0" } }, "node_modules/oxc-resolver": { "version": "11.24.2", "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.24.2.tgz", "integrity": "sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { "@oxc-resolver/binding-android-arm-eabi": "11.24.2", "@oxc-resolver/binding-android-arm64": "11.24.2", "@oxc-resolver/binding-darwin-arm64": "11.24.2", "@oxc-resolver/binding-darwin-x64": "11.24.2", "@oxc-resolver/binding-freebsd-x64": "11.24.2", "@oxc-resolver/binding-linux-arm-gnueabihf": "11.24.2", "@oxc-resolver/binding-linux-arm-musleabihf": "11.24.2", "@oxc-resolver/binding-linux-arm64-gnu": "11.24.2", "@oxc-resolver/binding-linux-arm64-musl": "11.24.2", "@oxc-resolver/binding-linux-ppc64-gnu": "11.24.2", "@oxc-resolver/binding-linux-riscv64-gnu": "11.24.2", "@oxc-resolver/binding-linux-riscv64-musl": "11.24.2", "@oxc-resolver/binding-linux-s390x-gnu": "11.24.2", "@oxc-resolver/binding-linux-x64-gnu": "11.24.2", "@oxc-resolver/binding-linux-x64-musl": "11.24.2", "@oxc-resolver/binding-openharmony-arm64": "11.24.2", "@oxc-resolver/binding-wasm32-wasi": "11.24.2", "@oxc-resolver/binding-win32-arm64-msvc": "11.24.2", "@oxc-resolver/binding-win32-x64-msvc": "11.24.2" } }, "node_modules/p-limit": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-7.3.0.tgz", "integrity": "sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==", "license": "MIT", "dependencies": { "yocto-queue": "^1.2.1" }, "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-queue": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.3.0.tgz", "integrity": "sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==", "license": "MIT", "dependencies": { "eventemitter3": "^5.0.4", "p-timeout": "^7.0.0" }, "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-timeout": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", "license": "MIT", "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/package-manager-detector": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", "license": "MIT" }, "node_modules/pagefind": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.5.2.tgz", "integrity": "sha512-XTUaK0hXMCu2jszWE584JGQT7y284TmMV9l/HX3rnG5uo3rHI/uHU56XTyyyPFjeWEBxECbAi0CaFDJOONtG0Q==", "license": "MIT", "bin": { "pagefind": "lib/runner/bin.cjs" }, "optionalDependencies": { "@pagefind/darwin-arm64": "1.5.2", "@pagefind/darwin-x64": "1.5.2", "@pagefind/freebsd-x64": "1.5.2", "@pagefind/linux-arm64": "1.5.2", "@pagefind/linux-x64": "1.5.2", "@pagefind/windows-arm64": "1.5.2", "@pagefind/windows-x64": "1.5.2" } }, "node_modules/parse-entities": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", "license": "MIT" }, "node_modules/parse-latin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "@types/unist": "^3.0.0", "nlcst-to-string": "^4.0.0", "unist-util-modify-children": "^4.0.0", "unist-util-visit-children": "^3.0.0", "vfile": "^6.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/parse5": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "license": "MIT", "dependencies": { "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "license": "MIT" }, "node_modules/path-expression-matcher": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.5.0.tgz", "integrity": "sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/piccolore": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/piccolore/-/piccolore-0.1.3.tgz", "integrity": "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw==", "license": "ISC" }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/postcss": { "version": "8.5.19", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-nested": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "funding": [ { "type": "opencollective", "url": "https://opencollective.com/postcss/" }, { "type": "github", "url": "https://github.com/sponsors/ai" } ], "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-selector-parser": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" }, "engines": { "node": ">=4" } }, "node_modules/prettier": { "version": "3.8.4", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.4.tgz", "integrity": "sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==", "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/process-ancestry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/process-ancestry/-/process-ancestry-0.1.0.tgz", "integrity": "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg==", "license": "MIT", "engines": { "node": ">=18.0.0" } }, "node_modules/property-information": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/radix3": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", "license": "MIT" }, "node_modules/readdirp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "license": "MIT", "engines": { "node": ">= 14.18.0" }, "funding": { "type": "individual", "url": "https://paulmillr.com/funding/" } }, "node_modules/recma-build-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/recma-jsx": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", "license": "MIT", "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", "recma-parse": "^1.0.0", "recma-stringify": "^1.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" }, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/recma-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/recma-stringify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/regex/-/regex-6.1.0.tgz", "integrity": "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==", "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } }, "node_modules/regex-recursion": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", "license": "MIT", "dependencies": { "regex-utilities": "^2.3.0" } }, "node_modules/regex-utilities": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", "license": "MIT" }, "node_modules/rehype-expressive-code": { "version": "0.44.0", "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.44.0.tgz", "integrity": "sha512-5r74C5F2sMR3X+QJH8OKWgZBO/cqRw5W1fLT6GVlSfLqepk+4j8tGFkyPqZYWjwntsBHzKPDH2zI68sZ7ScLfA==", "license": "MIT", "dependencies": { "expressive-code": "^0.44.0" } }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/rehype-recma": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "hast-util-to-estree": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/rehype-stringify": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-to-html": "^9.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-directive": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-4.0.0.tgz", "integrity": "sha512-7sxn4RfF1o3izevPV1DheyGDD6X4c9hrGpfdUpm7uC++dqrnJxIZVkk7CoKqcLm0VUMAuOol7Mno3m6g8cfMuA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", "micromark-extension-directive": "^4.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-gfm": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-mdx": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-rehype": { "version": "11.1.2", "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-smartypants": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", "license": "MIT", "dependencies": { "retext": "^9.0.0", "retext-smartypants": "^6.0.0", "unified": "^11.0.4", "unist-util-visit": "^5.0.0" }, "engines": { "node": ">=16.0.0" } }, "node_modules/remark-stringify": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/request-light": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", "license": "MIT" }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-pkg-maps": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/retext": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "retext-latin": "^4.0.0", "retext-stringify": "^4.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/retext-latin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "parse-latin": "^7.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/retext-smartypants": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/retext-stringify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", "license": "MIT", "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/rolldown": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", "license": "MIT", "dependencies": { "@oxc-project/types": "=0.139.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { "rolldown": "bin/cli.mjs" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.1.5", "@rolldown/binding-darwin-arm64": "1.1.5", "@rolldown/binding-darwin-x64": "1.1.5", "@rolldown/binding-freebsd-x64": "1.1.5", "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", "@rolldown/binding-linux-arm64-gnu": "1.1.5", "@rolldown/binding-linux-arm64-musl": "1.1.5", "@rolldown/binding-linux-ppc64-gnu": "1.1.5", "@rolldown/binding-linux-s390x-gnu": "1.1.5", "@rolldown/binding-linux-x64-gnu": "1.1.5", "@rolldown/binding-linux-x64-musl": "1.1.5", "@rolldown/binding-openharmony-arm64": "1.1.5", "@rolldown/binding-wasm32-wasi": "1.1.5", "@rolldown/binding-win32-arm64-msvc": "1.1.5", "@rolldown/binding-win32-x64-msvc": "1.1.5" } }, "node_modules/rolldown/node_modules/@oxc-project/types": { "version": "0.139.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" } }, "node_modules/satteri": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/satteri/-/satteri-0.9.5.tgz", "integrity": "sha512-ZuWVl+vnM64y+/TtX8Kosv2c00W+hLQiiwnEL6H0UKVVrxFqMw4D2CJHHQaouVd89OAhtBBfjWLqhKi3TVUV4w==", "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.9.5", "@bruits/satteri-darwin-x64": "0.9.5", "@bruits/satteri-linux-arm64-gnu": "0.9.5", "@bruits/satteri-linux-arm64-musl": "0.9.5", "@bruits/satteri-linux-x64-gnu": "0.9.5", "@bruits/satteri-linux-x64-musl": "0.9.5", "@bruits/satteri-wasm32-wasi": "0.9.5", "@bruits/satteri-win32-arm64-msvc": "0.9.5", "@bruits/satteri-win32-x64-msvc": "0.9.5" } }, "node_modules/sax": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" } }, "node_modules/schema-dts": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-2.0.0.tgz", "integrity": "sha512-t7NoCy3Rn5GHGx6p7s1qIYK/AeIb8ZxJNR9WUNFkwMv2CiiGZBmqqYWc2FlZVm5ZbiHMY4OvBWhj7QtyrFO2Jw==", "license": "Apache-2.0", "dependencies": { "schema-dts-lib": "^1.0.0" } }, "node_modules/schema-dts-lib": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-dts-lib/-/schema-dts-lib-1.0.0.tgz", "integrity": "sha512-9MEO5vpQH9JdBioUupqluzxSYxPLjhmqRUudk15adUl/ypnRsM2/M1kN3AmVJQeG7nZqcL68H8JlGqQQT6vy9A==", "license": "Apache-2.0", "engines": { "node": ">=14.0.0" }, "peerDependencies": { "typescript": ">=4.9.5" } }, "node_modules/semver": { "version": "7.8.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/sharp": { "version": "0.35.4", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.4.tgz", "integrity": "sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==", "license": "Apache-2.0", "optional": true, "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "engines": { "node": ">=20.9.0" }, "funding": { "url": "https://opencollective.com/libvips" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.4", "@img/sharp-darwin-x64": "0.35.4", "@img/sharp-freebsd-wasm32": "0.35.4", "@img/sharp-libvips-darwin-arm64": "1.3.3", "@img/sharp-libvips-darwin-x64": "1.3.3", "@img/sharp-libvips-linux-arm": "1.3.3", "@img/sharp-libvips-linux-arm64": "1.3.3", "@img/sharp-libvips-linux-ppc64": "1.3.3", "@img/sharp-libvips-linux-riscv64": "1.3.3", "@img/sharp-libvips-linux-s390x": "1.3.3", "@img/sharp-libvips-linux-x64": "1.3.3", "@img/sharp-libvips-linuxmusl-arm64": "1.3.3", "@img/sharp-libvips-linuxmusl-x64": "1.3.3", "@img/sharp-linux-arm": "0.35.4", "@img/sharp-linux-arm64": "0.35.4", "@img/sharp-linux-ppc64": "0.35.4", "@img/sharp-linux-riscv64": "0.35.4", "@img/sharp-linux-s390x": "0.35.4", "@img/sharp-linux-x64": "0.35.4", "@img/sharp-linuxmusl-arm64": "0.35.4", "@img/sharp-linuxmusl-x64": "0.35.4", "@img/sharp-webcontainers-wasm32": "0.35.4", "@img/sharp-win32-arm64": "0.35.4", "@img/sharp-win32-ia32": "0.35.4", "@img/sharp-win32-x64": "0.35.4" }, "peerDependenciesMeta": { "@types/node": { "optional": true } } }, "node_modules/shiki": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/shiki/-/shiki-4.2.0.tgz", "integrity": "sha512-hjNax6o/ylDy9lefQEaSDtzaT3iVNtZ3WmpQnbuQNoG4xvnSKf2kSKbihZVO4JRG1TTMejs7CmNRYlWgAL66pQ==", "license": "MIT", "dependencies": { "@shikijs/core": "4.2.0", "@shikijs/engine-javascript": "4.2.0", "@shikijs/engine-oniguruma": "4.2.0", "@shikijs/langs": "4.2.0", "@shikijs/themes": "4.2.0", "@shikijs/types": "4.2.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" }, "engines": { "node": ">=20" } }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "license": "MIT" }, "node_modules/sitemap": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-9.0.1.tgz", "integrity": "sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==", "license": "MIT", "dependencies": { "@types/node": "^24.9.2", "@types/sax": "^1.2.1", "arg": "^5.0.0", "sax": "^1.4.1" }, "bin": { "sitemap": "dist/esm/cli.js" }, "engines": { "node": ">=20.19.5", "npm": ">=10.8.2" } }, "node_modules/smol-toml": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz", "integrity": "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ==", "license": "BSD-3-Clause", "engines": { "node": ">= 18" }, "funding": { "url": "https://github.com/sponsors/cyyynthia" } }, "node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "license": "BSD-3-Clause", "engines": { "node": ">= 12" } }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/starlight-blog": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/starlight-blog/-/starlight-blog-0.29.0.tgz", "integrity": "sha512-Pdv5I84ux0109Zt23TbpCfuRZ8ioWvjmwVnmeYD2h0OH2bgVzo7cKsblzMolkaGc1QDnSX8985xaM1QJvcOhqQ==", "license": "MIT", "dependencies": { "@astrojs/markdown-remark": "^7.2.0", "@astrojs/mdx": "^7.0.0", "@astrojs/rss": "^4.0.18", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-html": "^9.0.5", "hast-util-to-string": "^3.0.1", "mdast-util-mdx-expression": "^2.0.1", "satteri": "^0.9.3", "schema-dts": "^2.0.0", "unist-util-is": "^6.0.1", "unist-util-remove": "^4.0.0", "unist-util-visit": "^5.1.0" }, "engines": { "node": ">=22.12.0" }, "peerDependencies": { "@astrojs/starlight": ">=0.41.0" } }, "node_modules/starlight-package-managers": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/starlight-package-managers/-/starlight-package-managers-0.12.0.tgz", "integrity": "sha512-hAIVzOT0/Git+T2Uwckh2rs51fYiDM6/X+Z2f3LtKMSwOwm+nSUAX2Ilp7k+07LDtxYjmvfTCxhfIBt0PgOF5g==", "license": "MIT", "engines": { "node": ">=18.17.1" }, "peerDependencies": { "@astrojs/starlight": ">=0.22.0" } }, "node_modules/string-width": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", "license": "MIT", "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" }, "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/strip-ansi": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-json-comments": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.3.tgz", "integrity": "sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==", "dev": true, "license": "MIT", "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/strnum": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.4.1.tgz", "integrity": "sha512-M9eUSMT2dCB2cTNPG7UYj6KuK7RJR2SN2+yCV/fTW3xzTCS6EaGZ5pSMgDIjB7r8zSfTGk+dvvn9rTjpVS9Mwg==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT", "dependencies": { "anynum": "^1.0.1" } }, "node_modules/style-to-js": { "version": "1.1.21", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", "license": "MIT", "dependencies": { "style-to-object": "1.0.14" } }, "node_modules/style-to-object": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", "license": "MIT", "dependencies": { "inline-style-parser": "0.2.7" } }, "node_modules/svgo": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", "license": "MIT", "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo.js" }, "engines": { "node": ">=16" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/svgo" } }, "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "license": "MIT" }, "node_modules/tinyclip": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.14.tgz", "integrity": "sha512-F1oWdz8tjT17qe1d5JgDK6z03WGOhYYAN0lK3/D/fzNiy93xswLLEw7pk+3g05onhAy6Bsc6PLNUGhdgVjemMQ==", "license": "MIT", "engines": { "node": "^16.14.0 || >= 17.3.0" } }, "node_modules/tinyexec": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/tinyglobby": { "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" }, "funding": { "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/trough": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD", "optional": true }, "node_modules/typesafe-path": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", "license": "MIT" }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=14.17" } }, "node_modules/typescript-auto-import-cache": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz", "integrity": "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==", "license": "MIT", "dependencies": { "semver": "^7.3.8" } }, "node_modules/ufo": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", "license": "MIT" }, "node_modules/ultrahtml": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", "license": "MIT" }, "node_modules/unbash": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/unbash/-/unbash-4.0.11.tgz", "integrity": "sha512-FoSOKV7NEofQSkAefMVHam4ZPKYMxjAydxiV72UFEDNV/YofxjGfiZ2A9pZjdL/lRJzTjcu4PABo1JYJX8N5iQ==", "dev": true, "license": "ISC", "engines": { "node": ">=14" } }, "node_modules/uncrypto": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", "license": "MIT" }, "node_modules/undici": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", "license": "MIT", "engines": { "node": ">=22.19.0" } }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "license": "MIT" }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unifont": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/unifont/-/unifont-0.7.5.tgz", "integrity": "sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==", "license": "MIT", "dependencies": { "css-tree": "^3.1.0", "ohash": "^2.0.11", "undici": "^8.0.0" } }, "node_modules/unist-util-find-after": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-modify-children": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "array-iterate": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-position-from-estree": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-4.0.0.tgz", "integrity": "sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove-position": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit-children": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit-parents": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unstorage": { "version": "1.17.5", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz", "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.10", "lru-cache": "^11.2.7", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "peerDependenciesMeta": { "@azure/app-configuration": { "optional": true }, "@azure/cosmos": { "optional": true }, "@azure/data-tables": { "optional": true }, "@azure/identity": { "optional": true }, "@azure/keyvault-secrets": { "optional": true }, "@azure/storage-blob": { "optional": true }, "@capacitor/preferences": { "optional": true }, "@deno/kv": { "optional": true }, "@netlify/blobs": { "optional": true }, "@planetscale/database": { "optional": true }, "@upstash/redis": { "optional": true }, "@vercel/blob": { "optional": true }, "@vercel/functions": { "optional": true }, "@vercel/kv": { "optional": true }, "aws4fetch": { "optional": true }, "db0": { "optional": true }, "idb-keyval": { "optional": true }, "ioredis": { "optional": true }, "uploadthing": { "optional": true } } }, "node_modules/unstorage/node_modules/chokidar": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", "license": "MIT", "dependencies": { "readdirp": "^5.0.0" }, "engines": { "node": ">= 20.19.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/unstorage/node_modules/readdirp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", "license": "MIT", "engines": { "node": ">= 20.19.0" }, "funding": { "type": "individual", "url": "https://paulmillr.com/funding/" } }, "node_modules/url-extras": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/url-extras/-/url-extras-0.1.0.tgz", "integrity": "sha512-8tzwTeXFPuX/5PHuCDQE5Dd9Ts4rwoq2t9aIT+HS4iAVpmj5l4Ao7Q+BuuFjvWRqrLswBhQDk8O96ZicgCqQqw==", "license": "MIT", "engines": { "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-location": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-message": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vite": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.5", "postcss": "^8.5.17", "rolldown": "~1.1.5", "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" }, "engines": { "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.3.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, "@vitejs/devtools": { "optional": true }, "esbuild": { "optional": true }, "jiti": { "optional": true }, "less": { "optional": true }, "sass": { "optional": true }, "sass-embedded": { "optional": true }, "stylus": { "optional": true }, "sugarss": { "optional": true }, "terser": { "optional": true }, "tsx": { "optional": true }, "yaml": { "optional": true } } }, "node_modules/vitefu": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", "license": "MIT", "workspaces": [ "tests/deps/*", "tests/projects/*", "tests/projects/workspace/packages/*" ], "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "vite": { "optional": true } } }, "node_modules/volar-service-css": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.70.tgz", "integrity": "sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==", "license": "MIT", "dependencies": { "vscode-css-languageservice": "^6.3.0", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/volar-service-emmet": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.70.tgz", "integrity": "sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==", "license": "MIT", "dependencies": { "@emmetio/css-parser": "^0.4.1", "@emmetio/html-matcher": "^1.3.0", "@vscode/emmet-helper": "^2.9.3", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/volar-service-html": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.70.tgz", "integrity": "sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==", "license": "MIT", "dependencies": { "vscode-html-languageservice": "^5.3.0", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/volar-service-prettier": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.70.tgz", "integrity": "sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0", "prettier": "^2.2 || ^3.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true }, "prettier": { "optional": true } } }, "node_modules/volar-service-typescript": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.70.tgz", "integrity": "sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==", "license": "MIT", "dependencies": { "path-browserify": "^1.0.1", "semver": "^7.6.2", "typescript-auto-import-cache": "^0.3.5", "vscode-languageserver-textdocument": "^1.0.11", "vscode-nls": "^5.2.0", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/volar-service-typescript-twoslash-queries": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.70.tgz", "integrity": "sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/volar-service-yaml": { "version": "0.0.70", "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.70.tgz", "integrity": "sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==", "license": "MIT", "dependencies": { "vscode-uri": "^3.0.8", "yaml-language-server": "~1.20.0" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "peerDependenciesMeta": { "@volar/language-service": { "optional": true } } }, "node_modules/vscode-css-languageservice": { "version": "6.3.10", "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.10.tgz", "integrity": "sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==", "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.1.0" } }, "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", "license": "MIT" }, "node_modules/vscode-html-languageservice": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz", "integrity": "sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==", "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "^3.17.5", "vscode-uri": "^3.1.0" } }, "node_modules/vscode-json-languageservice": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", "license": "MIT", "dependencies": { "jsonc-parser": "^3.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.16.0", "vscode-nls": "^5.0.0", "vscode-uri": "^3.0.2" }, "engines": { "npm": ">=7.0.0" } }, "node_modules/vscode-jsonrpc": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0.tgz", "integrity": "sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/vscode-languageserver": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", "license": "MIT", "dependencies": { "vscode-languageserver-protocol": "3.17.5" }, "bin": { "installServerIntoExtension": "bin/installServerIntoExtension" } }, "node_modules/vscode-languageserver-protocol": { "version": "3.18.0", "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.0.tgz", "integrity": "sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q==", "license": "MIT", "dependencies": { "vscode-jsonrpc": "9.0.0", "vscode-languageserver-types": "3.18.0" } }, "node_modules/vscode-languageserver-textdocument": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", "license": "MIT" }, "node_modules/vscode-languageserver-types": { "version": "3.18.0", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.0.tgz", "integrity": "sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==", "license": "MIT" }, "node_modules/vscode-languageserver/node_modules/vscode-jsonrpc": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", "license": "MIT", "dependencies": { "vscode-jsonrpc": "8.2.0", "vscode-languageserver-types": "3.17.5" } }, "node_modules/vscode-languageserver/node_modules/vscode-languageserver-types": { "version": "3.17.5", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", "license": "MIT" }, "node_modules/vscode-nls": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", "license": "MIT" }, "node_modules/vscode-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", "license": "MIT" }, "node_modules/walk-up-path": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "dev": true, "license": "ISC", "engines": { "node": "20 || >=22" } }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/wrap-ansi": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "license": "MIT", "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" }, "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/xml-naming": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/xml-naming/-/xml-naming-0.1.0.tgz", "integrity": "sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], "license": "MIT", "engines": { "node": ">=16.0.0" } }, "node_modules/xxhash-wasm": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yaml": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14.6" }, "funding": { "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yaml-language-server": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.20.0.tgz", "integrity": "sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==", "license": "MIT", "dependencies": { "@vscode/l10n": "^0.0.18", "ajv": "^8.17.1", "ajv-draft-04": "^1.0.0", "prettier": "^3.5.0", "request-light": "^0.5.7", "vscode-json-languageservice": "4.1.8", "vscode-languageserver": "^9.0.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.16.0", "vscode-uri": "^3.0.2", "yaml": "2.7.1" }, "bin": { "yaml-language-server": "bin/yaml-language-server" } }, "node_modules/yaml-language-server/node_modules/request-light": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==", "license": "MIT" }, "node_modules/yaml-language-server/node_modules/yaml": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { "node": ">= 14" } }, "node_modules/yargs": { "version": "18.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.1.0.tgz", "integrity": "sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==", "license": "MIT", "dependencies": { "cliui": "^9.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "string-width": "^8.2.1", "y18n": "^5.0.5", "yargs-parser": "^22.0.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yargs-parser": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==", "license": "ISC", "engines": { "node": "^20.19.0 || ^22.12.0 || >=23" } }, "node_modules/yocto-queue": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", "license": "MIT", "engines": { "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/zod": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.2.tgz", "integrity": "sha512-lh5RCAGFa1Cm2hjtNwLQhSs/AsqdWnTQaBER9fEwN/88pSh7KOtJavtBx/0VlkN/uFd61SwYmljLMDAsHlvzBQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } } } } mochajs-mocha-51a0cc5/docs/package.json000066400000000000000000000014151525733747400200660ustar00rootroot00000000000000{ "name": "docs", "type": "module", "version": "0.0.1", "scripts": { "astro": "astro", "build": "astro check && astro build", "dev": "astro dev", "docs": "cd .. && npm i && cd docs && npm i && npm run generate && npm run build && cp _redirects dist/_redirects", "generate": "node _data/supporters.cjs --write-supporters-json", "prelint:knip": "npm install", "lint:knip": "knip --cache", "preview": "astro preview", "start": "astro dev" }, "dependencies": { "@astrojs/check": "^0.9.10", "@astrojs/starlight": "^0.42.0", "astro": "^7.3.2", "starlight-blog": "^0.29.0", "starlight-package-managers": "^0.12.0", "typescript": "^5.9.3" }, "devDependencies": { "debug": "^4.4.3", "knip": "^6.0.0" } } mochajs-mocha-51a0cc5/docs/public/000077500000000000000000000000001525733747400170555ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/public/example/000077500000000000000000000000001525733747400205105ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/public/example/Array.js000066400000000000000000000035661525733747400221360ustar00rootroot00000000000000describe("Array", function () { describe(".push()", function () { it("should append a value", function () { var arr = []; arr.push("foo"); arr.push("bar"); expect(arr[0]).to.equal("foo"); expect(arr[1]).to.equal("bar"); }); it("should return the length", function () { var arr = []; var n = arr.push("foo"); expect(n).to.equal(1); n = arr.push("bar"); expect(n).to.equal(2); }); describe("with many arguments", function () { it("should add the values", function () { var arr = []; arr.push("foo", "bar"); expect(arr[0]).to.equal("foo"); expect(arr[1]).to.equal("bar"); }); }); }); describe(".unshift()", function () { it("should prepend a value", function () { var arr = [1, 2, 3]; arr.unshift("foo"); expect(arr[0]).to.equal("foo"); expect(arr[1]).to.equal(1); }); it("should return the length", function () { var arr = []; var n = arr.unshift("foo"); expect(n).to.equal(1); n = arr.unshift("bar"); expect(n).to.equal(2); }); describe("with many arguments", function () { it("should add the values", function () { var arr = []; arr.unshift("foo", "bar"); expect(arr[0]).to.equal("foo"); expect(arr[1]).to.equal("bar"); }); }); }); describe(".pop()", function () { it("should remove and return the last value", function () { var arr = [1, 2, 3]; expect(arr.pop()).to.equal(3); expect(arr.pop()).to.equal(2); expect(arr).to.have.length(1); }); }); describe(".shift()", function () { it("should remove and return the first value", function () { var arr = [1, 2, 3]; expect(arr.shift()).to.equal(1); expect(arr.shift()).to.equal(2); expect(arr).to.have.length(1); }); }); }); mochajs-mocha-51a0cc5/docs/public/example/tests.html000066400000000000000000000011331525733747400225360ustar00rootroot00000000000000 Mocha
mochajs-mocha-51a0cc5/docs/public/favicon.svg000066400000000000000000000032261525733747400212260ustar00rootroot00000000000000 Mocha Icon mochajs-mocha-51a0cc5/docs/src/000077500000000000000000000000001525733747400163665ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/components/000077500000000000000000000000001525733747400205535ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/components/Badges.astro000066400000000000000000000020121525733747400230050ustar00rootroot00000000000000--- import { Image } from "astro:assets"; import Discord from "./discord.svg"; const badges = [ { href: "http://npmjs.com/package/mocha", alt: "npm version", src: "https://img.shields.io/npm/v/mocha", }, { href: "https://discord.gg/KeDn2uXhER", alt: "Chat - Discord", src: Discord, }, { href: "#sponsors", alt: "Open Collective sponsors", src: "https://opencollective.com/mochajs/tiers/sponsors/badge.svg", }, { href: "#backers", alt: "Open Collective backers", src: "https://opencollective.com/mochajs/tiers/backers/badge.svg", }, ]; ---
{ badges.map((badge) => ( {typeof badge.src === "string" ? ( {badge.alt} ) : ( {badge.alt} )} )) }
mochajs-mocha-51a0cc5/docs/src/components/ClientRedirects.astro000066400000000000000000000240011525733747400247050ustar00rootroot00000000000000 mochajs-mocha-51a0cc5/docs/src/components/FixtureWizard.astro000066400000000000000000000255471525733747400244510ustar00rootroot00000000000000
Mocha Fixture Wizard My tests need setup! Setup MUST run once and only once Setup MUST share state with tests YES Use Root Hooks and Avoid Parallel Mode Use Global Fixtures Should setup affect tests across ALL files? Use Root Hooks Use Plain Hooks YES NO NO YES NO
mochajs-mocha-51a0cc5/docs/src/components/Footer.astro000066400000000000000000000117001525733747400230620ustar00rootroot00000000000000--- import { Image } from "astro:assets"; import openJsfLogo from "./openjsf-logo.svg"; --- mochajs-mocha-51a0cc5/docs/src/components/Head.astro000066400000000000000000000004211525733747400224630ustar00rootroot00000000000000--- import Default from '@astrojs/starlight/components/Head.astro' import thumbnail from "./mocha-thumbnail.svg"; --- mochajs-mocha-51a0cc5/docs/src/components/HomepagePageTitle.astro000066400000000000000000000022331525733747400251510ustar00rootroot00000000000000--- import { Image } from "astro:assets"; import logo from "./mocha-logo.svg"; ---

classic, reliable, trusted

mochajs-mocha-51a0cc5/docs/src/components/PageTitle.astro000066400000000000000000000003701525733747400235030ustar00rootroot00000000000000--- import Default from "@astrojs/starlight/components/PageTitle.astro"; import HomepagePageTitle from "./HomepagePageTitle.astro"; const isHomepage = Astro.locals.starlightRoute.id === ""; --- {isHomepage ? : } mochajs-mocha-51a0cc5/docs/src/components/Supporters.astro000066400000000000000000000024541525733747400240200ustar00rootroot00000000000000--- interface Supporter { imgUrlMed: string; imgUrlSmall: string; name: string; website: string; } interface Props { data: Supporter[]; size: "small" | "medium"; } const { size, data } = Astro.props; ---
{ data.map((supporter) => ( {supporter.name} )) }
mochajs-mocha-51a0cc5/docs/src/components/discord.svg000066400000000000000000000021561525733747400227270ustar00rootroot00000000000000chat: DiscordchatDiscordmochajs-mocha-51a0cc5/docs/src/components/icon-dark.svg000066400000000000000000000032261525733747400231460ustar00rootroot00000000000000 Mocha Icon mochajs-mocha-51a0cc5/docs/src/components/icon-light.svg000066400000000000000000000032261525733747400233340ustar00rootroot00000000000000 Mocha Icon mochajs-mocha-51a0cc5/docs/src/components/mocha-logo.svg000066400000000000000000000155501525733747400233270ustar00rootroot00000000000000 mochajs-mocha-51a0cc5/docs/src/components/mocha-thumbnail.svg000066400000000000000000000752041525733747400243540ustar00rootroot00000000000000 mochajs-mocha-51a0cc5/docs/src/components/openjsf-logo.svg000066400000000000000000000135621525733747400237050ustar00rootroot00000000000000 mochajs-mocha-51a0cc5/docs/src/content.config.ts000066400000000000000000000006431525733747400216570ustar00rootroot00000000000000import { defineCollection } from "astro:content"; import { docsSchema } from "@astrojs/starlight/schema"; import { glob } from "astro/loaders"; import { blogSchema } from "starlight-blog/schema"; export const collections = { docs: defineCollection({ loader: glob({ base: "./src/content/docs", pattern: "**/*.{md,mdx}" }), schema: docsSchema({ extend: (context) => blogSchema(context), }), }), }; mochajs-mocha-51a0cc5/docs/src/content/000077500000000000000000000000001525733747400200405ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/content/docs/000077500000000000000000000000001525733747400207705ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/content/docs/blog/000077500000000000000000000000001525733747400217135ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/content/docs/blog/2026-community-sponsorships.mdx000066400000000000000000000112361525733747400276130ustar00rootroot00000000000000--- description: Today, we are happy to announce that Mocha will be donating $5,000 each to four different community projects, for a total of $20,000 donated to the modern JavaScript community. title: 2026 Community Sponsorships date: 2026-07-24T02:45:00Z excerpt: "Today, we are happy to announce that Mocha will be donating $5,000 each to four different community projects, for a total of $20,000 donated to the modern JavaScript community. This works to match our [Collective Funds Guidelines](https://github.com/collective-funds/guidelines/blob/v0.1.1/GUIDELINES.md) recommendation of donating 20% to dependencies and community projects." --- Mocha has been a staple of the web development ecosystem for over a decade. Over those years, it's received over $200,000 in financial contributions, and continues to receive tens of thousands of dollars a year from its many generous donors. We are grateful to have been able to pay our maintainers well, and we recognize that very few open-source projects are in this position. However, the Mocha project is no longer cutting edge or under significant feature development. We believe the approximately $90,000 in our Open Collective balance would be better spent on more modern, active projects that don't receive consistent donations the way Mocha does. Today, we are happy to announce that Mocha will be donating $5,000 each to four different community projects, for a total of $20,000 donated to the modern JavaScript community. This works to match our [Collective Funds Guidelines](https://github.com/collective-funds/guidelines/blob/v0.1.1/GUIDELINES.md) recommendation of donating 20% to dependencies and community projects. We made these donations a few days ago, and all have now been fully processed. ## Projects We're Sponsoring Our criteria for sponsoring a project were projects that: - Mocha and its users directly benefit from - Have been under active development and maintenance for >1 year - Are not already funding us or any projects our maintainers are receiving sponsorship from - Are truly independent and open source (not primarily backed or owned by a company) Additionally, we ensured that each project could significantly benefit from more funding, and we were happy to find that all candidates used Open Collective for transparency. Mocha has directly benefited from the contributions of each of these projects, and we're proud to support their ongoing development. ### [Knip](https://knip.dev) Knip has become _the_ standard tool in web development for decluttering JavaScript and TypeScript projects. It's helped us as well as many other projects catch all sorts of unused code and dependencies. In doing so, Knip both improved our ease of developing Mocha as well as reduced the amount of code we ship to users. ### [Node.js](https://nodejs.org) Node.js is the most popular JavaScript runtime and the primary way users run Mocha. It is mature and stable, as well as the only major JavaScript runtime that is truly independent (its financial entity is the [OpenJS Foundation](https://openjsf.org), a 501(c)(6) nonprofit). Node.js sets the standard for how server-side users run JavaScript, and we're happy to have collaborated with them on recent changes such as `require(ESM)`. ### [Prettier](https://prettier.io) Prettier is the de facto standard for formatting in JavaScript. We use it in Mocha on all of our source files to eliminate time wasted debating or manually applying whitespace preferences. Prettier continues to lead the ecosystem for research and development into how to properly format web code. ### [unified](https://unifiedjs.com) The unified collective manages a large suite of packages and specifications for managing content and structured data. This includes [MDX](https://mdxjs.com), the language powering the content of mochajs.org and many other sites, as well as assorted tools such as [remark](https://remark.js.org) that process Markdown for other tools. Much of the modern Markdown tool chain is powered by unified. ## More Sponsorships To Come This will not be the only set of community sponsorships to come out of Mocha over the next few years. After Mocha 12 finishes releasing this fall, we plan on taking another look at the ecosystem and setting up larger and/or recurring sponsorships. We look forward to "paying it forward"--both figuratively and literally--to help other projects push forward the practice of web development. ## Conclusion Thank you, as always, for your continued financial contributions that have made this donation possible. We encourage you to support any of the projects above directly, as they all do amazing work. For any and all feedback, please reach out on [Discord](https://discord.gg/KeDn2uXhER) 🀎 mochajs-mocha-51a0cc5/docs/src/content/docs/blog/maintenance-reboot.mdx000066400000000000000000000140331525733747400262000ustar00rootroot00000000000000--- date: 2023-11-14T09:01:00Z description: πŸ‘‹ Hi all! @Uzlopak, @voxpelli, and I (@JoshuaKGoldberg) are happy to announce that we’ve picked up maintenance of the Mocha organization and packages. That primarily includes the mocha test framework. excerpt: πŸ‘‹ Hi all! @Uzlopak, @voxpelli, and I (@JoshuaKGoldberg) are happy to announce that we’ve picked up maintenance of the Mocha organization and packages. That primarily includes the mocha test framework. We aim to keep Mocha positioned as a stable test framework, minimizing breaking changes or significant new feature additions. Our priority is for the existing users who do not want to be broken by or have to spend time reacting to changes. title: Maintenance Reboot --- :::tip[Repost] This was originally posted as GitHub issue [#5027 πŸ“Œ Project Status: Maintenance Reboot](https://github.com/mochajs/mocha/issues/5027). ::: πŸ‘‹ Hi all! [@Uzlopak](https://github.com/Uzlopak), [@voxpelli](https://github.com/voxpelli), and I ([@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg)) are happy to announce that we've picked up maintenance of the Mocha organization and packages. That primarily includes the [`mocha`](https://www.npmjs.com/package/mocha) test framework. Shoutout and thanks to [@boneskull](https://github.com/boneskull) for inviting us on and helping set up many of the documentation and processes still in use today, as well as the other recent Mocha core team members: [@giltayar](https://github.com/giltayar), [@juergba](https://github.com/juergba), [@Munter](https://github.com/Munter), and [@outsideris](https://github.com/outsideris). ## Context Mocha was not actively maintained for most of 2023. It was maintained off-and-on through 2022. This is natural in open source projects: because they are run by volunteers, maintenance often is dependent on personal voluntary availability in out-of-work hours. The three of us "reboot" maintainers are joining on to: - Get the project back into active maintenance, including regularly triaged issues and reviewed pull requests - Update the project's tooling to reduce the overhead of maintenance - Update Mocha as needed to stay up-to-date with the surrounding JavaScript ecosystem ### Project Charter Mocha has been a core part of the JavaScript ecosystem for over a decade. Per its [`PROJECT_CHARTER.md`](https://github.com/mochajs/mocha/blob/ee2b70e8e82b0b67347d41028fa45521d43633d9/PROJECT_CHARTER.md): > **Mocha** is a unopinionated, general-purpose testing framework for the JavaScript community. **Mocha** favors flexibility over rigidity, stability over disruption, and deliberation over agility. **Mocha** aims to do one thing, and do it well. **Mocha** will strive to evolve with the needs of the community, but will make every effort not to abandon its current users in doing so. We intend to keep to this project charter. Mocha is positioned differently from other popular test frameworks in the ecosystem. Notably: - Higher-level frameworks [Jest](https://jestjs.io) and [Vitest](https://vitest.dev) provide more abstractions and utilities on top of testing - [Node's built-in runner](https://nodejs.org/api/test.html) integrates closely with Node itself at a lower level We aim to keep Mocha positioned as a stable test framework, minimizing breaking changes or significant new feature additions. Our priority is for the existing users who do not want to be broken by or have to spend time reacting to changes. ## Next Steps Our current plan is to: - [x] Discuss this pinned issue and announce it - [x] Tidy up the existing contributing and maintenance documentation and processes, such as issue and PR templates: [#5038](https://github.com/mochajs/mocha/pull/5038) - [x] Migrate https://gitter.im/mochajs/contributors to a new Mocha Discord server with a `#help` Q&A channel - [x] Review and triage existing issues and PRs - [x] Align existing issues and PRs to the new templates - [x] Close out duplicate, stale, or clearly wontfix-level issues - [x] Triage pending bug reports and feature requests - [x] Review open PRs - [x] Add tooling such as automatic security updates and static analysis to help with long-term maintenance - [x] Refreshed linting, such as a new ESLint configuration: [#5058]([https://github.com/mochajs/mocha/issues/5058) -> [#5060]([https://github.com/mochajs/mocha/pulls/5060) - [x] Unused code detection with Knip: [#5041]([https://github.com/mochajs/mocha/issues/5041) -> [#5042]([https://github.com/mochajs/mocha/pulls/5042) - [x] Automatic security updates with Renovate: [#5055]([https://github.com/mochajs/mocha/issues/5055) - [x] Make a new release with no new features to test the release pipeline: [#5081](https://github.com/mochajs/mocha/issues/5081) - [x] Merge a small `chore` refactor: [#5056]([https://github.com/mochajs/mocha/pulls/5056) - [x] Ship a pre-release minor version on npm - [x] Ship a true minor version release on npm - [x] Publicly propose and get approved an invoicing system for https://opencollective.com/mochajs, then reach out to previous maintainers to compensate them for their time > _Updated January 8th, 2024 with more detail._ Items might be tackled out of order. You can see the full list of work items and their statuses on the [public Maintenance Reboot project board](https://github.com/orgs/mochajs/projects/6). ### Out of Scope Note also that we're new to maintaining this project. We'll need to ramp up over the next few months. Don't expect any major overhauls anytime soon. We don't intend to make any major breaking changes unless absolutely necessary for the project. We will drop support for [EOL Node versions](https://github.com/nodejs/release#release-schedule) in occasional breaking changes well after those Node versions go EOL. We don't intend to overhaul any currently-useful resources such as https://mochajs.org or https://github.com/mochajs/mocha/wiki. Though, we will happily accept issue reports if those resources need improvement. --- We're excited to help keep Mocha going forward as a project. Please do post feedback if you have any questions or suggestions. Cheers all! ❀️ mochajs-mocha-51a0cc5/docs/src/content/docs/blog/mocha-12-rc-1.mdx000066400000000000000000000156111525733747400245000ustar00rootroot00000000000000--- description: Notable changes between Mocha 12 RC 1 and 11.7.4. title: Mocha 12 RC 1 is here! date: 2026-06-20T16:00:00Z excerpt: "Mocha 12 is the first release to follow our [even-odd major release pattern](https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md#major-releases). As an even release, Mocha 12 introduces very few breaking changes: We've bumped our Node floor, removed some long-deprecated features, and modernized a bit, but everything else works just as before." --- import { PackageManagers } from "starlight-package-managers"; Mocha 12 is the first release to follow our [even-odd major release pattern](https://github.com/mochajs/mocha/blob/main/MAINTAINERS.md#major-releases). As an even release, Mocha 12 introduces very few breaking changes: We've bumped our Node floor, removed some long-deprecated features, and modernized a bit, but everything else works just as before. These notes cover all changes in our first release candidate, `12.0.0-rc.1`. The baseline is `11.7.4`, after which we started releasing betas. To view the full changelog, see [CHANGELOG.md on Github](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md). As a release candidate, RC 1 contains all the features that will be in `12.0.0`. We will work to fix bugs for future release candidates, then release a stable `12.0.0` when it's ready. We will continue to support critical bugfixes in Mocha 11 while customers upgrade to Mocha 12. We've also deployed [v11.mochajs.org](https://v11.mochajs.org) for users that may rely on Mocha 11 in the long-term. You can try the RC now with a standard install: ## Breaking changes - [Bump minimum Node.js version from 18.18.0 to 20.19.0 and 22.12.0 (#5477)](https://github.com/mochajs/mocha/issues/5477): We know that Node 20 is now EOL, but we didn't want to jump 2 LTS versions in one release. Mocha 13 will drop support for Node 20. The new minimum versions are the lowest Node versions that support `require(esm)` (see [internal modernization](#internal-modernization)). - [Remove `util.inherits` / convert to classes (#5025)](https://github.com/mochajs/mocha/issues/5025): Through Mocha 11, reporters inherited behavior through `util.inherits`. This was deprecated a long time ago. Reporters now inherit through canonical `class` syntax. This means that the syntax for custom reporters has changed, but the core behavior is the same. See the updated [third-party reporters](https://mochajs.org/explainers/third-party-reporters/) page for details. - [Remove `bin/_mocha` and convert `bin/` and entry points to ESM (#6017)](https://github.com/mochajs/mocha/pull/6017): The `_mocha` entry point had been kept as a workaround for old coverage providers. Swapping `path/to/_mocha` with `mocha` should work without issue. - [Change root `package.json` type to `module` (#6078)](https://github.com/mochajs/mocha/pull/6078): This should not be a breaking change for the vast majority of users, see [internal modernization](#internal-modernization). - [Change the default of `--forbid-only` to check for process.env.CI (#5496)](https://github.com/mochajs/mocha/issues/5496): This should improve CI runs, but rare use-cases may need to explicitly set `--no-forbid-only` to restore the previous default behavior. - [Remove unused legacy `errors.js` functions (#5835)](https://github.com/mochajs/mocha/pull/5835): The public function `createInvalidPluginError` has been deprecated for years. Callers should use `createInvalidLegacyPluginError` instead, which has the exact same contract and behavior. - [Cleanup references of `--compilers` (#5403)](https://github.com/mochajs/mocha/issues/5403): This flag had been deprecated for a long time. It had not had any impact on behavior for years. It is now removed from the codebase. ## Notable new features - [Allow FIFOs as test files (#5512)](https://github.com/mochajs/mocha/issues/5512) - [Add mocha.mjs export (#5527)](https://github.com/mochajs/mocha/issues/5527): This has since been renamed `mocha.js` but it still works for use in the browser! - [Add `--fail-hook-affected-tests` option to report skipped tests as failed (#5519)](https://github.com/mochajs/mocha/issues/5519) ## Notable fixes - [Allow importing ESM interface and reporters (#5563)](https://github.com/mochajs/mocha/issues/5563) - [Support file: URLs in loadFilesAsync (#5833)](https://github.com/mochajs/mocha/pull/5833) - [Support modern RegExp flags in Mocha#grep (#5825)](https://github.com/mochajs/mocha/pull/5825) - [Prevent diff hang on large/complex objects (#5898)](https://github.com/mochajs/mocha/pull/5898) - [Surface global setup/teardown errors with a non-zero exit code (#5994)](https://github.com/mochajs/mocha/pull/5994) ## Internal modernization - As mentioned in [breaking changes](#breaking-changes), Mocha is now an ESM-first package, using `"type": "module"` instead of `"type": "commonjs"` in `package.json`. This should not be a breaking change for the vast majority of users; CJS consumers can still `require('mocha')` just as before, thanks to new support in Node 20.19.0 and 22.12.0. We've marked it as "breaking" for users that depend on Mocha's internal structure for any reason. ESM is the modern, canonical way of managing modules, supported officially by the ECMAScript spec. CJS was always a placeholder approach until a better solution came along. ([#5400](https://github.com/mochajs/mocha/issues/5400)) - Mocha now uses Playwright instead of Karma for its internal tests. This is not a user-facing change in any way, but it means that Mocha contributors can now use a modern browser automation library instead of the long-deprecated Karma approach. This will help us better support browser-based testing in the future. ([#6031](https://github.com/mochajs/mocha/pull/6031)) ## Thank you! Mocha development could not continue without the support of contributors who have opened issues, submitted PRs, and commented in discussions. 98 merged PRs for Mocha 12 were [opened by community members](https://github.com/search?q=repo%3Amochajs%2Fmocha+is%3Apr+is%3Amerged+merged%3A2025-10-02..2026-06-18+-author%3Amark-wiemer+-author%3Ajoshuakgoldberg+-author%3Avoxpelli+-author%3Arenovate%5Bbot%5D+-author%3Agithub-actions%5Bbot%5D+-author%3Adependabot%5Bbot%5D&type=pullrequests&s=updated&o=desc)! We are also very grateful to our many [financial donors](https://opencollective.com/mochajs). Mocha continues to thrive thanks to all of these generous contributions. Thank you. ## Questions, comments, concerns? As always, you can [open an issue on GitHub](https://github.com/mochajs/mocha/issues?q=sort%3Aupdated-desc+is%3Aissue+state%3Aopen+) or [message us on Discord](https://discord.gg/KeDn2uXhER) for support 🀎 ## References - [CHANGELOG.md](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md) mochajs-mocha-51a0cc5/docs/src/content/docs/blog/mocha-12-stable.mdx000066400000000000000000000356561525733747400252230ustar00rootroot00000000000000--- date: 2026-08-31T15:20:00Z description: Notable changes in Mocha 12 excerpt: "Mocha 12 is ready for use in production environments. Below is a migration guide, including breaking changes, notable new features, and some bugfixes we're proud of." title: Mocha 12 is now available --- import { PackageManagers } from "starlight-package-managers"; Mocha 12 is ready for use in production environments. Below is a migration guide, including breaking changes, notable new features, and some bugfixes we're proud of. We will continue to support critical bugfixes in Mocha 11 while customers upgrade to Mocha 12. We've also deployed [v11.mochajs.org](https://v11.mochajs.org) for users who rely on Mocha 11 in the long-term. ## Breaking changes The changes in Mocha 12 should require few, if any, changes in user applications. Most end-users should not be affected by Mocha 12's breaking changes. A small subset of programmatic integrators may need to perform small updates to work with some API updates. :::tip If you have questions or otherwise need assistance updating an application to Mocha 12, please feel free to ask for help on our [community Discord server](https://discord.com/invite/KeDn2uXhER). ::: ### Minimum Node.js version increases Mocha 12 updates the minimum Node.js versions supported to `^20.19.0 || >=22.12.0`. Those new minimum versions are intentionally the lowest Node.js versions that support `require(esm)`. We intentionally chose those versions so that programmatic integrators can continue to `require("mocha")`, though we do recommend updating to ECMAScript Modules (ESM) if possible. Accordingly, Mocha's minimum supported browser versions are those that were stable as of [Node.js 20.0.0](https://nodejs.org/en/blog/release/v20.0.0)'s release on April 18, 2023: [Chrome 112](https://developer.chrome.com/blog/new-in-chrome-112), [Edge 112](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-archive-stable-channel#version-1120172248-april-14-2023), [Firefox 112](https://www.mozilla.org/en-US/firefox/112.0/releasenotes/), and [Safari 16.4](https://developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes). We know that Node 20 is now EOL, but we didn't want to jump 2 LTS versions in one release. Mocha 13 will drop support for Node 20. See [#5358 🧹 Versioning: Bump minimum Node.js version from 18.18.0 to 20.19.0](https://github.com/mochajs/mocha/issues/5358) and [feat!: bump minimum Node.js version from 18.18.0 to 20.19.0 (#5477)](https://github.com/mochajs/mocha/pull/5477) for more details. ### ECMAScript Modules (ESM) package Mocha is now an ECMAScript Modules (ESM) package. Moving to ESM allows the internal code to integrate better with more modern dev tooling. For example, static analysis tools such as ESLint, Knip, and TypeScript are better able to analyze ESM, which will help us detect bugs and unused code in future versions of Mocha. Most users should not see any change from the ESM migration. We have identified some edge cases from programmatic usage of Mocha that require some changes. See [#5400 πŸ› οΈ Repo: Switch from CJS to ESM internally ](https://github.com/mochajs/mocha/issues/5400) for more details. #### Removed legacy entrypoint One `_mocha` entry point had been kept in older versions of Mocha as a workaround for old coverage providers. It is now removed. Swapping `path/to/bin/_mocha` with `mocha` should work the same: ```diff - node path/to/bin/_mocha + node path/to/bin/mocha ``` Other package entrypoints for Mocha should work as before. Mocha 12's `package.json` uses [`"main"`](https://nodejs.org/api/packages.html#main) to allow users to continue importing all source files. In Mocha 13, we will switch to the modern [`"exports"`](https://nodejs.org/api/packages.html#exports) field and limit our API to relevant files for a clearer contract with users. See [#5970 πŸ› οΈ Repo: Convert bin/ and top-level entry points to ESM](https://github.com/mochajs/mocha/issues/5970) and [#6017 feat!: remove bin/\_mocha and convert bin/ and entry points to ESM](https://github.com/mochajs/mocha/pull/6017) for more details. #### `require('mocha')` now returns an object Running `require('mocha')` in CommonJS (CJS) code used to return the `Mocha` function directly. It now returns an object, with a `Mocha` property. To work around this, change: ```diff - const Mocha = require('mocha'); + const { Mocha } = require ('mocha'); ``` See [#6245 πŸ› Bug: require('mocha') now returns an object, not a function (12.0.0-rc.6)](https://github.com/mochajs/mocha/issues/6245) for more details. ### Native Node.js CLI parsing Through Mocha 11, [`yargs`](https://www.npmjs.com/package/yargs) and its related packages parsed command-line input to Mocha. Mocha now uses native [Node.js `util.parseArgs`](https://nodejs.org/api/util.html#utilparseargsconfig). The new approach should be functionally the same, with potential minor formatting differences in human-facing output like `--help`. These were marked as breaking changes out of an abundance of caution. - [feat!: replace yargs-parser in CLI option loading (#6124)](https://github.com/mochajs/mocha/pull/6124) - [feat!: replace yargs-unparser in CLI respawn paths (#6125)](https://github.com/mochajs/mocha/pull/6125) - [refactor!: replace yargs with Node.js util.parseArgs (#6164)](https://github.com/mochajs/mocha/pull/6164) ### `--forbid-only` defaults to `process.env.CI` Mocha's [`--forbid-only` CLI flag](/running/cli/#--forbid-only) fails test runs if an [exclusive test (`.only`)](/declaring/exclusive-tests/#_top) is declared. Using the flag is useful to make sure exclusive tests aren't accidentally kept in changes. `--forbid-only` previously defaulted to `false`. Its new default is whether an environment variable named `CI` is truthy. This matches other test runner behaviors such as [Vitest's `allowOnly`](https://vitest.dev/config/allowonly). If you intentionally want to use `.only` in CI, explicitly set `--no-forbid-only` to restore the previous default behavior. ```shell npx mocha --no-forbid-only ``` See [#5299 πŸš€ Feature: Exit with code 1 when .only is used by default in CI (--forbid-only)](https://github.com/mochajs/mocha/issues/5299) and [feat!: change the default of --forbid-only to check for process.env.CI- #5496](https://github.com/mochajs/mocha/pull/5496) for more details. ### Replacing `util.inherits` with classes Through Mocha 11, reporters inherited behavior from a base object through the legacy [Node.js `util.inherits`](https://nodejs.org/api/util.html#utilinheritsconstructor-superconstructor). `util.inherits` has subtly different behavior from ES2015 JavaScript classes and was deprecated in Node.js many years ago. Reporters now inherit through canonical JavaScript `class` syntax. This means that the syntax for custom reporters has changed, but the core behavior is the same. See [third-party reporters](/explainers/third-party-reporters/) for updated instructions. See [#5025 πŸ› Remove `util.inherits` / convert to classes](https://github.com/mochajs/mocha/issues/5025) for more details. ### Internal cleanups The following cleanups should be functionally the same for users, but are marked as breaking changes out of an abundance of caution. - [Replace `he` dependency with manual HTML encoding (#6129)](https://github.com/mochajs/mocha/issues/6129): `he` was used for HTML encoding in some reporters, and in the exported `escape` function. - [Remove unused legacy `errors.js` functions (#5835)](https://github.com/mochajs/mocha/pull/5835): The public function `createInvalidPluginError` had been deprecated for years. Callers should use `createInvalidLegacyPluginError` instead, which has the same contract and behavior. ### Deprecated CLI flag removals The following two flags have both been deprecated for a long time. They have not had any impact on behavior for years. They are now removed from the codebase. - [Cleanup references of `--compilers` (#5403)](https://github.com/mochajs/mocha/issues/5403) - [Cleanup references of `--opts` (#5243)](https://github.com/mochajs/mocha/issues/5243) ## Notable new features ### Executing FIFOs as test files A "FIFO" (first-in, first-out) is a file piped directly to a command in a terminal. It's also referred to as a "named pipe." This can be convenient for quickly running small pieces of code in Mocha: ```shell npx mocha --preserve-symlinks <(echo 'it("t", () => require("node:assert").equal(1, 1))') ``` See [#5511 πŸš€ Feature: execute tests from FIFOs](https://github.com/mochajs/mocha/issues/5511) and [feat: allow FIFOs as test files](https://github.com/mochajs/mocha/pull/5512) for more details. ### ESM export for browsers Mocha has long supported working in browsers. But until recently, users did not have a canonical way to `import` from within a ` ``` See [#5211 πŸš€ Feature: Ability to import mocha from ESM in the browser](https://github.com/mochajs/mocha/issues/5211) and [feat: add mocha.mjs export (#5527)](https://github.com/mochajs/mocha/pull/5527) for more details. ### Added `--fail-hook-affected-tests` CLI flag Mocha allows declaring "hooks" like `before()` and `afterEach()` to run logic before and/or after tests. Through Mocha 11, by default, thrown errors in those hooks didn't fail their related tests. This sometimes masked important failures in shared test logic. Mocha 12 introduces a new [`--fail-hook-affected-tests` CLI flag](running/cli/#--fail-hook-affected-tests) that causes failures in hooks to fail their affected tests: ```shell npx mocha --fail-hook-affected-tests ``` We recommend enabling this flag. It will be enabled by default in a future major version of Mocha. See [#4392 πŸš€ Feature: Failures in before() and beforeAll() should cause all impacted tests to be reported as failed](https://github.com/mochajs/mocha/issues/4392) and [feat: add --fail-hook-affected-tests option to report skipped tests as failed (#5519)](https://github.com/mochajs/mocha/pull/5519) for more details. ## Notable fixes ### Default imported interfaces and reporters Mocha allows users to load in custom [interfaces](/interfaces/about) and [reporters](/reporters/about) for test runs. Previously they had to be exported with CommonJS (CJS) semantics. However, ECMAScript Modules (ESM) semantics prefer `export default ...` (`module.exports.default = ...`). This use case is now supported for both interfaces and reporters. See [#5562 πŸ› Bug: Can't ESM (default) import custom interfaces and reporters](https://github.com/mochajs/mocha/issues/5562) and [fix: allow importing ESM interface and reporters](https://github.com/mochajs/mocha/pull/5563) for more details. ### Adding URLs with `loadFilesAsync` Mocha's Node.js API includes a [`loadFilesAsync` method](https://legacy.mochajs.org/api/mocha#loadFilesAsync) to import and run specified test files. It previously only supported local pathnames of files as added by the [`addFile` method](https://legacy.mochajs.org/api/mocha#addFile). Attempting to load in a file with a standard `file://...` URL would throw an error. This is now corrected to work as expected. See [#4993 πŸ› Bug: esm-utils (mocha.addFile) should support URL](https://github.com/mochajs/mocha/issues/4993) and [fix: support file: URLs in loadFilesAsync (#5833)](https://github.com/mochajs/mocha/pull/5833) for more details. ### Grepping with modern RegExp flags Mocha supports a [`grep` CLI flag](https://mochajs.org/running/cli/#--grep-regexp--g-regexp) and [`grep` Node.js API method](https://legacy.mochajs.org/api/mocha#grep) for matching files on disk with regular expressions. Mocha's internal logic validates those regular expressions, but only supported a few flags. JavaScript now supports [`u`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicode "RegExp unicode flag"), [`s`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll "RegExp dotAll flag"), and [`v`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicodeSets "RegExp unicodeSets flag") RegExp flags. The validation logic now supports those flags. See [#5826 πŸ› Bug: Mocha#grep fails to parse modern RegExp flags (u, s, v) from string input](https://github.com/mochajs/mocha/issues/5826) and [fix: support modern RegExp flags in Mocha (#5825)](https://github.com/mochajs/mocha/pull/5825) for more details. ### Diff hangs on large object comparisons If a thrown error in a test contains `.actual` and `.expected` properties, Mocha will show a rich stringified diff of the differences. This is implemented by common assertion libraries such as [Chai](https://www.chaijs.com). Previously, if one or both of those properties contained very complex and/or large objects, Mocha's diff generation could hang indefinitely during stringification. Mocha 12 fixes this. See [#1624 πŸ› Bug: Comparing buffers hangs when computing the diff report](https://github.com/mochajs/mocha/issues/1624) and [fix: prevent diff hang on large/complex objects (#5898)](https://github.com/mochajs/mocha/pull/5898) for more details. ### Non-zero exit codes on setup and teardown errors Mocha provides [global fixtures](https://mochajs.org/features/global-fixtures) so that test suites may run code once on setup or teardown. Previously, if an error was thrown in a global fixture, it would be ignored and Mocha would continue to run tests. This could mask important failures in shared test logic. Mocha 12 will now exit with a non-zero status code on global fixture errors. See [#5208 πŸ› Bug: Error in mochaGlobalTeardown is swallowed and exits with code 0](https://github.com/mochajs/mocha/issues/5208) and [fix: surface global setup/teardown errors with a non-zero exit code (#5994)](https://github.com/mochajs/mocha/pull/5994) for more details. ## Thank you! Mocha development could not continue without the support of contributors who have opened issues, submitted PRs, and commented in discussions. During development of Mocha 12, we merged [100+ PRs from community members](https://github.com/search?q=repo%3Amochajs%2Fmocha+is%3Apr+is%3Amerged+merged%3A2025-10-02..2026-08-27+-author%3Amark-wiemer+-author%3Ajoshuakgoldberg+-author%3Avoxpelli+-author%3Arenovate%5Bbot%5D+-author%3Agithub-actions%5Bbot%5D+-author%3Adependabot%5Bbot%5D&type=pullrequests&s=updated&o=desc)! We are also very grateful to our many [financial donors](https://opencollective.com/mochajs). Mocha continues to thrive thanks to all of these generous contributions. Thank you. ## Questions, comments, concerns? As always, you can [open an issue on GitHub](https://github.com/mochajs/mocha/issues?q=sort%3Aupdated-desc+is%3Aissue+state%3Aopen+) or [message us on Discord](https://discord.gg/KeDn2uXhER) for support. 🀎 ## References - [CHANGELOG.md](https://github.com/mochajs/mocha/blob/main/CHANGELOG.md) mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/000077500000000000000000000000001525733747400227205ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/dynamic-tests.mdx000066400000000000000000000051031525733747400262150ustar00rootroot00000000000000--- description: Describing tests cases based on dynamic data. title: Dynamic Tests --- Given Mocha's use of function expressions to define suites and test cases, it's straightforward to generate your tests dynamically. No special syntax is required--plain old JavaScript can be used to achieve functionality similar to "parameterized" tests, which you may have seen in other frameworks. Take the following example: ```js import assert from "node:assert"; function add(args) { return args.reduce((prev, curr) => prev + curr, 0); } describe("add()", function () { const tests = [ { args: [1, 2], expected: 3 }, { args: [1, 2, 3], expected: 6 }, { args: [1, 2, 3, 4], expected: 10 }, ]; tests.forEach(({ args, expected }) => { it(`correctly adds ${args.length} args`, function () { const res = add(args); assert.strictEqual(res, expected); }); }); }); ``` The above code will produce a suite with three specs: ```bash $ mocha add() βœ“ correctly adds 2 args βœ“ correctly adds 3 args βœ“ correctly adds 4 args ``` Tests added inside a `.forEach` handler often don't play well with editor plugins, especially with "right-click run" features. Another way to parameterize tests is to generate them with a closure. This following example is equivalent to the one above: ```js describe("add()", function () { const testAdd = ({ args, expected }) => function () { const res = add(args); assert.strictEqual(res, expected); }; it("correctly adds 2 args", testAdd({ args: [1, 2], expected: 3 })); it("correctly adds 3 args", testAdd({ args: [1, 2, 3], expected: 6 })); it("correctly adds 4 args", testAdd({ args: [1, 2, 3, 4], expected: 10 })); }); ``` With `top-level await` you can collect your test data in a dynamic and asynchronous way while the test file is being loaded. See also [`--delay`](/features/hooks#delayed-root-suite) for CommonJS modules without `top-level await`. ```js // testfile.mjs import assert from "node:assert"; // top-level await: requires ESM test files (.mjs or "type": "module" in package.json) const tests = await new Promise((resolve) => { setTimeout(resolve, 5000, [ { args: [1, 2], expected: 3 }, { args: [1, 2, 3], expected: 6 }, { args: [1, 2, 3, 4], expected: 10 }, ]); }); // in suites, async callbacks are **not** supported describe("add()", function () { tests.forEach(({ args, expected }) => { it(`correctly adds ${args.length} args`, function () { const res = args.reduce((sum, curr) => sum + curr, 0); assert.strictEqual(res, expected); }); }); }); ``` mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/exclusive-tests.mdx000066400000000000000000000055241525733747400266070ustar00rootroot00000000000000--- description: Describing test cases that should be run to the exclusion of other tests. title: Exclusive Tests --- :::caution Exclusive tests are incompatible with [parallel mode](/features/parallel-mode). ::: The exclusivity feature allows you to run _only_ the specified suite or test-case by appending `.only()` to the function. Here's an example of executing only a particular suite: ```js describe("Array", function () { describe.only("#indexOf()", function () { // ... }); }); ``` _Note_: All nested suites will still be executed. Here's an example of executing an individual test case: ```js describe("Array", function () { describe("#indexOf()", function () { it.only("should return -1 unless present", function () { // ... }); it("should return the index when present", function () { // ... }); }); }); ``` Previous to v3.0.0, `.only()` used string matching to decide which tests to execute; this is no longer the case. In v3.0.0 or newer, `.only()` can be used multiple times to define a subset of tests to run: ```js describe("Array", function () { describe("#indexOf()", function () { it.only("should return -1 unless present", function () { // this test will be run }); it.only("should return the index when present", function () { // this test will also be run }); it("should return -1 if called with a non-Array context", function () { // this test will not be run }); }); }); ``` You may also choose multiple suites: ```js describe("Array", function () { describe.only("#indexOf()", function () { it("should return -1 unless present", function () { // this test will be run }); it("should return the index when present", function () { // this test will also be run }); }); describe.only("#concat()", function () { it("should return a new Array", function () { // this test will also be run }); }); describe("#slice()", function () { it("should return a new Array", function () { // this test will not be run }); }); }); ``` But _tests will have precedence_: ```js describe("Array", function () { describe.only("#indexOf()", function () { it.only("should return -1 unless present", function () { // this test will be run }); it("should return the index when present", function () { // this test will not be run }); }); }); ``` :::note Hooks, if present, will still be executed. ::: :::tip Be mindful not to commit usages of `.only()` to version control, unless you really mean it! Since v12, Mocha guards against this by default in continuous integration: [`--forbid-only`](/running/cli#--forbid-only) defaults to `true` when the `CI` environment variable is set. On older versions or outside of CI (for example in a git precommit hook), pass `--forbid-only` explicitly. ::: mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/inclusive-tests.mdx000066400000000000000000000063171525733747400266020ustar00rootroot00000000000000--- description: Describing test cases that should not be run yet. title: Inclusive Tests --- This feature is the inverse of `.only()`. By appending `.skip()`, you may tell Mocha to ignore test case(s). Anything skipped will be marked as [pending](/declaring/pending-tests) and reported as such. Here's an example of skipping an individual test: ```js describe("Array", function () { describe("#indexOf()", function () { it.skip("should return -1 unless present", function () { // this test will not be run }); it("should return the index when present", function () { // this test will be run }); }); }); ``` You can also put `.skip()` on an entire suite. This is equivalent to appending `.skip()` onto all tests in the suite. Hooks in the suite are also skipped. ```js describe("Array", function () { describe.skip("#indexOf()", function () { it("should return -1 unless present", function () { // this test will not be run }); }); }); ``` _Note_: Code in skipped suites that is placed outside of hooks or tests is still executed, as Mocha will still invoke the suite function to build up the suite structure for visualization. :::tip[Best practice] Use `.skip()` instead of commenting tests out. ::: You may also skip _at runtime_ using `this.skip()`. If a test needs an environment or configuration which cannot be detected beforehand, a runtime skip is appropriate. For example: ```js it("should only test in the correct environment", function () { if (/* check test environment */) { // make assertions } else { this.skip(); } }); ``` The above test will be reported as [pending](/declaring/pending-tests). It's also important to note that calling `this.skip()` will effectively _abort_ the test. :::tip[Best practice] To avoid confusion, do not execute further instructions in a test or hook after calling `this.skip()`. ::: Contrast the above test with the following code: ```js it("should only test in the correct environment", function () { if (/* check test environment */) { // make assertions } else { // do nothing } }); ``` Because this test _does nothing_, it will be reported as _passing_. :::tip[Best practice] Don't do nothing! A test should make an assertion or use `this.skip()`. ::: To skip _multiple_ tests in this manner, use `this.skip()` in a "before all" hook: ```js before(function () { if (/* check test environment */) { // setup code } else { this.skip(); } }); ``` This will skip all `it`, `beforeEach/afterEach`, and `describe` blocks within the suite. `before/after` hooks are skipped unless they are defined at the same level as the hook containing `this.skip()`. ```js describe("outer", function () { before(function () { this.skip(); }); after(function () { // will be executed }); describe("inner", function () { before(function () { // will be skipped }); after(function () { // will be skipped }); }); }); ``` :::note[Updated in v7.0.0] Skipping a test within an "after all" hook is disallowed and will throw an exception. Use a return statement or other means to abort hook execution. ::: Before Mocha v3.0.0, `this.skip()` was not supported in asynchronous tests and hooks. mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/pending-tests.mdx000066400000000000000000000012321525733747400262140ustar00rootroot00000000000000--- description: Describing test cases with names that don't yet have a callback. title: Pending Tests --- "Pending" β€” as in "someone should write these test cases eventually" β€” test-cases are those _without_ a callback: ```js describe("Array", function () { describe("#indexOf()", function () { // pending test below it("should return -1 when the value is not present"); }); }); ``` Pending tests will be included in the test results and marked as pending. A pending test is not considered a failed test. Read the [inclusive tests section](/declaring/inclusive-tests) for an example of conditionally marking a test as pending via `this.skip()`. mochajs-mocha-51a0cc5/docs/src/content/docs/declaring/retrying-tests.mdx000066400000000000000000000022321525733747400264340ustar00rootroot00000000000000--- description: Describing test cases that should retry on failure. title: Retry Tests --- You can choose to retry failed tests up to a certain number of times. This feature is designed to handle end-to-end tests (functional tests/Selenium...) where resources cannot be easily mocked/stubbed. **It's not recommended to use this feature for unit tests**. This feature does re-run a failed test and its corresponding `beforeEach/afterEach` hooks, but not `before/after` hooks. `this.retries()` has no effect on failing hooks. :::note The example below was written using Selenium webdriver (which [overwrites global Mocha hooks](https://github.com/SeleniumHQ/selenium/blob/c10e8a955883f004452cdde18096d70738397788/javascript/node/selenium-webdriver/testing/index.js) for `Promise` chain). ::: ```js describe("retries", function () { // Retry all tests in this suite up to 4 times this.retries(4); beforeEach(function () { browser.get("http://www.yahoo.com"); }); it("should succeed by the 3rd try", function () { // Specify this test to only retry up to 2 times this.retries(2); expect($(".foo").isDisplayed()).to.eventually.be.true; }); }); ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/000077500000000000000000000000001525733747400231425ustar00rootroot00000000000000mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/compilers-deprecation.mdx000066400000000000000000000050271525733747400301500ustar00rootroot00000000000000--- description: Moving off the removed `--compilers` option. title: Compilers deprecation --- `--compilers` was deprecated in v4.0.0 and removed in v6.0.0. As of v12.0.0, Mocha treats it as normal text, not as an option. ## ... but why? `--compilers` is redundant; we've yet to encounter a real-world situation in which the solution couldn't be expressed using `--require`. ## What should I use instead then? Let's say you want to compile using CoffeeScript. Ensure that you have the coffeescript package installed as a dev dependency: `npm install coffeescript --save-dev` Then update your package.json with the relevant require statement: `--require coffeescript/register`. Here's a list of popular compilers/transpilers: - CoffeeScript: `--compilers coffee:coffee-script/register` becomes `--require coffeescript/register` - Babel 6: `--compilers js:babel-core/register` becomes `--require babel-core/register` - Babel 7: `--require babel-core/register` used if you are using Babel v6 becomes `--require @babel/register` with Babel v7. - TypeScript: `--compilers ts:ts-node/register` becomes `--require ts-node/register` - LiveScript: `--compilers ls:livescript` becomes `--require livescript` - (feel free to add more examples!) You'll have to handle file extensions as well. Mocha, by default, only loads `.js`, `.cjs`, and `.mjs` files when given a directory (and the default directory is `test`). Therefore, to use a _different_ file extension (such as `.coffee` or `.ts`), you will need to supply a _glob_ instead of simply a directory. If this was how you ran Mocha pre-v4: ```bash $ mocha --compilers coffee:coffee-script/register --recursive ./test ``` Then this is how you'd accomplish the same thing (`**` roughly means "recursive") in v4 and later: ```bash $ mocha --require coffeescript/register "test/**/*.js" ``` When you wrap a glob in quotes, file discovery is handed to the [glob](https://npm.im/glob) package. It's _recommended_ to wrap in double-quotes, because the result should be the same regardless of your shell or environment (Windows/Linux/macOS, etc.). [glob](https://npm.im/glob) is powerful. For instance, if your `test` dir has tests written in _both_ JS _and_ CoffeeScript, you could do this: ```bash $ mocha --require coffeescript/register "test/**/*.{js,coffee}" ``` ## How do I use this with `--watch`? When using `--watch`, you will also need to specify the extension(s) to watch via `--watch-extensions`, e.g.: ```bash $ mocha --require coffeescript/register --watch --watch-extensions js,coffee "test/**/*.{js,coffee}" ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/count-assertions.mdx000066400000000000000000000020171525733747400271740ustar00rootroot00000000000000--- description: How to count assertions. title: Counting assertions --- While Mocha itself does not provide an assertion layer and cannot provide assertion counting, it's relatively easy to integrate this behavior using hooks. The following is a simplified version of an assertion counter: ```js var expected = 0; var actual = 0; function assert(expr, msg) { if (!expr) throw new Error(msg || "assertion failed"); actual++; } function expect(n) { expected = n; } function reset() { expected = 0; actual = 0; } function check() { if (!expected || expected == actual) return; var err = new Error("expected " + expected + " assertions, got " + actual); this.currentTest.emit("error", err); } beforeEach(reset); afterEach(check); describe("something", function () { it("should work", function (done) { expect(2); setTimeout(function () { assert("wahoo"); }, 50); setTimeout(function () { assert("hey"); }, 50); setTimeout(function () { done(); }, 100); }); }); ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/detecting-multiple-calls-to-done.mdx000066400000000000000000000016071525733747400321160ustar00rootroot00000000000000--- description: Why Mocha determines if the done() callback in a test was called multiple times. title: Detecting Multiple Calls to done() --- If you use callback-based async tests, Mocha will throw an error if `done()` is called multiple times. This is handy for catching accidental double callbacks. ```javascript it("double done", function (done) { // Calling `done()` twice is an error setImmediate(done); setImmediate(done); }); ``` Running the above test will give you the below error message: ```bash $ ./node_modules/.bin/mocha.js mocha.test.js βœ“ double done 1) double done 1 passing (6ms) 1 failing 1) double done: Error: done() called multiple times at Object. (mocha.test.js:1:63) at require (internal/module.js:11:18) at Array.forEach () at startup (bootstrap_node.js:187:16) at bootstrap_node.js:608:3 ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/environment-variables.mdx000066400000000000000000000021371525733747400301710ustar00rootroot00000000000000--- description: Learn how to use environment variables in Mocha tests title: "Environment variables" --- Sometimes you might want your test to make use of variables set on an environment level. Common reasons for this include: - Flagging a run as CI - Setting the domain of an application - Pointing to a test database - Setting a key which you want to remain secure The best way to do this is to use NodeJS's native environment variables. ## Example In your `package.json` or directly in a terminal set your variable name and value. ```bash env CI=STAGE mocha ``` Then in your test or code reference it via `process.env.CI`. e.g. ```javascript if (process.env.CI === "STAGE") { // do something } ``` The value is available from anywhere in a spec file allowing you to set values from it before the tests run. e.g. ```javascript import { equal } from "node:assert"; import { loadPage } from "your-code"; const URL = `${process.env.APP_HOST}/${process.env.APP_URI}`; describe("Test the page loads", () => { it("goes to URL", () => { const page = loadPage(URL); equal(page.url, URL); }); }); ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/find-global-leaks.mdx000066400000000000000000000010021525733747400271200ustar00rootroot00000000000000--- description: How to find a global leak. title: Find global leaks --- Detecting which module is causing a global leak can be tedious. Add these lines at the very beginning of your tests, or in a file which is included via `--require`: ```javascript Object.defineProperty(global, "name_of_leaking_property", { set: function (value) { throw new Error("Found the leak!"); }, }); ``` This will print a stacktrace that shows which module caused the leak. And if it's not yours--go open a pull request! :) mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/global-variables.mdx000066400000000000000000000032211525733747400270600ustar00rootroot00000000000000--- description: How to work with global variables in Mocha tests title: "Global variables" --- Related issue [#1582](https://github.com/mochajs/mocha/issues/1582) If your test manipulates global variables, a reasonable expectation is that you will clean up after yourself. This includes commonly called methods such as `process.stdout.write()` or `console.log()`. ```js import { expect } from "chai"; describe("my nice test", function () { let write, log, output = ""; // restore process.stdout.write() and console.log() to their previous glory const cleanup = function () { process.stdout.write = write; console.log = log; output = ""; }; beforeEach(function () { // store these functions to restore later because we are messing with them write = process.stdout.write; log = console.log; // our stub will concatenate any output to a string process.stdout.write = console.log = function (s) { output += s; }; }); // restore after each test afterEach(cleanup); it("should suppress all output if a non-AssertionError was thrown", function () { process.stdout.write("foo"); console.log("bar"); // uncomment below line to suppress output, which is bad // expect(output).to.equal(foobar); expect(output).to.equal("foobar"); }); it("should not suppress any output", function () { try { process.stdout.write("foo"); console.log("bar"); // uncomment below line to just throw an AssertionError // expect(output).to.equal('barfoo'); expect(output).to.equal(foobar); // ReferenceError } catch (e) { cleanup(); throw e; } }); }); ``` mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/nodejs-native-esm-support.mdx000066400000000000000000000030061525733747400307150ustar00rootroot00000000000000--- description: Writing your tests as ES modules instead of CommonJS. title: Node.js Native ESM Support --- :::note[New in v7.1.0] ::: Mocha supports writing your tests as ES modules, and not just using CommonJS. For example: ```js // test.mjs import { add } from "./add.mjs"; import assert from "node:assert"; it("should add to numbers from an es module", () => { assert.equal(add(3, 5), 8); }); ``` To enable this you don't need to do anything special. Write your test file as an ES module. In Node.js this means either ending the file with a `.mjs` extension, or, if you want to use the regular `.js` extension, by adding `"type": "module"` to your `package.json`. More information can be found in the [Node.js documentation](https://nodejs.org/api/esm.html). ### Current Limitations - [Watch mode](/running/cli#--watch--w) does not support ES Module test files - [Custom reporters](/reporters/third-party) and [custom interfaces](/interfaces/third-party) can be ES modules but Mocha loads them with `require` so they cannot use top-level `await` - Mocha in Node.js version 24.4.0 or older [silently ignored top level errors in ESM files](https://github.com/mochajs/mocha/issues/5396). If you cannot upgrade to a newer Node.js version, you can add `--no-experimental-require-module` to the `NODE_OPTIONS` environment variable. - When using module-level mocks via libs like `proxyquire`, `rewiremock` or `rewire`, hold off on using ES modules for your test files. You can switch to using `testdouble`, which does support ESM. mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/programmatic-usage.mdx000066400000000000000000000053721525733747400274520ustar00rootroot00000000000000--- description: Using Mocha programmatically title: Programmatic usage --- There are a lot of reasons why you might want to automate running the tests using Mocha. Using the command-line can run into some problems if you want to load specific files, for example. Here is an example of using Mocha programmatically: ```javascript import Mocha from "mocha"; import fs from "node:fs"; import path from "node:path"; // Instantiate a Mocha instance. const mocha = new Mocha(); const testDir = "some/dir/test"; // Add each .js file to the mocha instance fs.readdirSync(testDir) .filter(function (file) { // Only keep the .js files return file.endsWith(".js"); }) .forEach(function (file) { mocha.addFile(path.join(testDir, file)); }); // Run the tests. mocha.run(function (failures) { process.exitCode = failures ? 1 : 0; // exit with non-zero status if there were failures }); ``` `mocha.run()` returns a `Runner` instance which emits many [events](https://github.com/mochajs/mocha/blob/main/lib/runner.js) of interest, exposed as `Mocha.Runner.constants` (e.g. `EVENT_TEST_PASS`, `EVENT_TEST_FAIL`, `EVENT_RUN_END`). Note that `run` (via `loadFiles`, which it calls) relies on Node's `require` to execute the test interface functions. Thus, files loaded by Mocha will be stored in Node's `require` cache and therefore tests in these files will not be re-run if `mocha.run()` is called again. If you want to run tests multiple times, you may need to clear Node's `require` cache before subsequent calls in whichever manner best suits your needs. `Mocha#unloadFiles` is also available and will remove all files loaded by `Mocha#loadFiles`. Unfortunately, event listeners in multiple places are not yet configured for restartability; for now, we recommend recreating the `mocha` instance before rerunning to _ensure_ everything gets reset properly. Find a fully [working example here](https://github.com/mochajs/mocha-examples/tree/main/packages/programmatic-usage). ## Set options There are two ways to set the options to run the tests. Firstly, you can set these options in the constructor object: ```javascript const mocha = new Mocha({ ui: "tdd", reporter: "list", }); ``` Please check our [API documentation](https://mochajs.org/api/mocha) for a complete list of these options. Secondly, on the `mocha` object, there are some chainable methods allowing you to change some more options. Here is an example: ```javascript // Change the reporter to "list" before running the tests mocha.reporter("list").run(); // Change the UI to "tdd" before running the tests mocha.ui("tdd").run(); // Or do both changes before running the tests mocha.reporter("list").ui("tdd").run(); ``` Please check our [API documentation](https://mochajs.org/api/mocha) for more information. mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/related-tools.mdx000066400000000000000000000011201525733747400264240ustar00rootroot00000000000000--- description: External tools and libraries that work well with Mocha title: Related tools --- # Related Tools ## Assertion Libraries - [chai](http://chaijs.com/) (recommended): expect(), assert(), and should style assertions - [earl](https://earl.fun/): ergonomic, modern and type-safe assertion library for TypeScript - [unexpected](https://unexpectedjs.github.io/): extensible BDD assertion toolkit ## Mocks, Stubs & Spies - [sinon.js](https://sinonjs.org/): Test spies, stubs and mocks for JavaScript. - [nock](https://github.com/nock/nock): HTTP mocking and expectations library. mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/reporter-spec-duration.png000066400000000000000000000130321525733747400302640ustar00rootroot00000000000000‰PNG  IHDRœδΊαPLTEυυυττττττςςςτττυυυνννςςςφφφ³³³ΧΧΧτττ˜˜˜ΩΩΩιιιάά܁ƒƒύύύκκκΫΫΫδδδίίίΨΨΨΎΎΎλλλμμμΪΪΪθθθζζζεεεγγγήήήαααΰΰΰψψψςςςνννϋϋϋυυυχχχωωωόόό%Ό$���Β6!­­'ΦΦΥ–––```|||“““ΤΤΤΠΠΟέέήΑΑΑ°±±ΌΌΌΘΘΘ^^]���1η"XXXΕΖΕΡΡΡ[[[πππΆΆΆŽ‚^^ΛΛΛ›››¬ΙΨΨΨΠ���ηγΠ³³―§¨¨ΰέΚΟΞΞƒ¬Ι°ΞίqqqΰΰΩγβ⟞žιζ∈ˆήΪΘδίΝ‹]*αεηζβά«««TTTΔΔΓ²]Ϊΰΰ£’€))W‰^^_–ΊΊΉΉ‘^^―^ΟΚΎζδαϊϊϊΛ―€^‚�αΣΉΗΪβ]]**)ΝΝΝηιιg.ΨΟ·«ΜήέαδιΰΙβαίΓΦέιιε₯§₯Ψγε%%%ZƒŸ_x±Œ__x¦ΕΚΣΩΫάέ]^xΛΰη³€’zzz»Σβεηιβήά*ZƒΪΘͺ�ΩΧ’„\ΜΙΚ�Δ�++hu]\•·�Wx˜ΧήΰΈΝΦ\]]ž°΄]**ƒ``μλιYб΄°’βγέ^^„Α§†..-�εθ£ΓΨ‘]].aš�Ώ’κιη²ΊΐήΫΠ„†„g--ΌΜΘήέΧΓ―ŸβδζΧΫέ–kƒ£ΨΨΪΫΨΧ—ˆy½›^fffœ²ΓΖΟΠ^^ž\[s,,-ΞΕ±)Fc,dŒ(H€‡”’–Κ­‹ΠΪί©†Ο³‘²°·Š__€½Ν—€²₯ΉΑ‰©ΏΨΊ”QQQR))-N‘,,‘‘‘nmlΨΠΘ_ΕΊΊαίί˜³·ƒ_“vS^‘ΔΛΣΝh‹’G''‹ «Κ΅™Š€kx^^yw`Ÿh. ‹p½Ÿ…κννΪΫά^w¬Ά˜rdw‰ηκξ˜t\C(Zrg–M-„}z{S*8q“`K,O.-t]–~[[•^^―__€±©₯Os,-Žhb%Φڌ tRNSσ†0ΧΐΨ1Ω‡ˆ`=^υΎIDATxμΐΑ ΐC"bΖΟKΚΡOʐΗ-΄–ΎˆώkΣ&7ˆ2Έbπ8D9„cl’,ϋe�ΖΖρϋί`zΠ{«šά τοθL/šγ­3u 1‘d©A‡q¨Ρ Iˆψ^i՚bΔ9©΅΅«EEη˜vν@6₯΅λVΆŒvkιΓ±­{)e{φάyΡΤ& JΕδΏδy>ΏηΉψBτΰm 4¬ώυάββΒΧυ¬¦`Μ}VΖ'³dyaD╆ ŠΩJJlNJ)B“(O$‘―Αδ Efξ·S_$·Yž €@  m₯š­(΅RĎ̡•VΈ\–R[ξ�4€΄ΈX»"Σ λ'Ε…―Œ₯žxζͺw«ϋi‘ϊ"΅γ^‹ΕξBx;LΌ©?s6φλΤv=qmΎ A4 –/KΒz ³„JΎ΄μJSXςϊ°ιiiΧ£0)Λ4£ώ›mrξ„ν`ͺ Ο…š½Κ:€¨ΤΙm2nS]EΝušή¦‹―Ά†ζnzοM½κΖδ²)Ρd ˆV‘₯ΔhΫυz{Ψl,iIφ#:έϋΣ2l―ΠλΨΓ’L34?>|η| μ½ιƒCΓ‰ΎΌΌχΚz‘F›\Π©m�Ÿcφ·;£Aν­ω‚ή’m}Kh�WƒZ�o³`¦₯Ξ[Šh3W(£Βφ#KČ*Kΰΐ&Θƒ<(Jπ4€ύT|z&ΕΝ)�ξώš8μΉϊξ€Ψρ¦W αž«5p>ŸOqλ'’τΓ“βzϋ±x�§ΧDqvύOQ¬+o§XΉΠγ’ξKގ+8ώ ™Γ4N_ΰZι‰Σ0t«θύ«<Ah…2“”<Nʞ©lWJN² �X!9ΩA¦GšΆ.67~·ΩOίBοΟx|ΒGΧ·ΔϋmΎ‡΄§²›†ώ‹Ά!νωτf@ϊ•˜ϋΌmhcπ�ΪωΥυAϐγ�[7γΫ)V.LΣt hϊRλCš†PF!Rέ΄Δε’1ΈŽM[οι aʌ2R­&u:HY‚T©1L­J9fŠ)Ys›†΄ŸjdΩ αΆ�kk½Šhό՟-,[}Γ³~oGcue[ύΩτ¬φΑ0{倡ΥΑJ θk£ ;Μ€€Ήξεθ„0ΖvΊ™υP°ΪχνˆΖ/oϋ�v°wwW¨Ω¬oήΎήT4νlfYηβΕF6Ψz2:ζ–ίp#Άΰf=‹<χ"l‚p GMz‰ρ<–―�›Ž*2Η€Wε£ ƒJ2'>iTεc<Γ00jlα�Θ#Ηu ‚(ŽΦpν`ͺ+»Ήκ&ηάΞ#τ5œ³ΥΑΥώ >œ€η―ΗΉ”Œ|œgΔΝοCΑž�JψυήΩ–X:Ύ³rόΆlΦΞkΩͺqΆ67ΚογΈ+λB3-ΏΰΘ%ΗMsΏΏ$lVq™B(Ju<Žcψ|]©A‘HžcYN’T|’"aΠεbž4ΐdϊy$ˆ ‘&//ΟΏέ@�Θ#‘δQξ!QŒwcώΠ‡άJtά₯O<‚X NΔΖςξ„‚Δ•CΚζψ6!Qwhgγ[6\4oφΞh?±ώs#±²8ό5±κ ™|gΰκΗΉˆΎVL—Gί½Id£ k1ησRΚΜά’‹Λ£fŒ`iZ’Gwd©'\8ξβx{)Θτ£ύΤ Γ8Cηum#ΫMmeSΫδ`V½3r ~¨ή—bΝ²Jμ\ΉϋΈ£qI˜jσΝυΧ~:²²Ψίf’sw»~vΈ 9/ ύΜΚd(’νυΌΙLΔ:(j„ιΡjρΐά|“y ¨i¦,rΚ e&γ�Έ+δ£qœζt˜LCnt|€’ΌuR,«Π[?CSΫT…Φώε@W½?k8¨Σ][εηΞΓR› ˜{―Όό\]™Ε*Cίψ λo£Ιi//ΏΐQ΄gI,u£]DΖΡFλΥσθ„τ'„Έ€Jt…ϊΡ ΑH΅™²“(CΪ f5Ή#T"G†)c‚4&ӐΊ ΰ£.Ά³~»α‘ΰ;έΨ£θ€\Kητ=nv9ΚΉ€6)<όΓΓŒc§;ϋ’Z?KtΊΨερνν¨;ΥΫΗα±rQ�a<·60Ψ}@B~Τ`3$_AMͺU¦£±Α€‚2A &“Απ΄„I“I™LcPτ?G‘0†₯ΎΗδ †P¨ΰό'§yT)˜=OΞ‚¨γ*2εy4ŠηY²Ό„š$U {™%Λ !�?dΙ‚¨ώ?dΙ‚ ϋ^΅?ΰΡ Ιέ?¨φΉ™ ’³oΨ7yΜΙ`ώe―Ž_šˆ8€�76¬Bρ?πρ6uwάؘhG‡ηΥ–;\(Μ’ΨΆτΐζ -0dZˆ(:˜Σi0§  ͺ‰ P₯ϊS�s μΗχ€ΕϋΒ½w|ώπΎΤ#υH=V˜Gκ‘z€©ΗHzstt3©tόFZ–Σ<υXΡ}ς‚lšθπ1x�2�Α]Ύ#κ‘σ@ΥιT‘‡Γ$Δ]•ο¨Gr#¦ K‘Ν&?Vάε;’y§ JQ<&?ΧΚwΤ#9JvHPφ`ς,ίυΨͺηj+&Η±rIΤc„Š·£Γ«@X…Νγ‘‘;`N CΫcZχ -ΊCΤτh@pqœKΐŽΙcχς‰žϋl{­λΪ›�cA·β¨ΛλΉab©GBYρzB—G}0Ώo%”΅₯S+Υ—§7κVζυ‚¨‚Λ%¨8qyLE/нογΕήΩ‰ΨΦκσ©1’ιϋC<‚ίǕ̝€–ΰζ7Ο΅ΔxRΎ*ΆŠΣKΙ~‚}F’tωpy\ο{zŒήΔθ―s+ή3•ϊ><ηο.ΎΉ7ΥIΜ#υ脍5šlΈ<.£O‹$΅ƒ-1žί7φΠ^3γD=  ±F“ €€ΛγDΜίmM_Z‰—V|ζaώ"ϋμͺλ!θ‘z AˆΖM6„!\΅Ω|aeΌ02~ͺ­Fg§ΏιύΘ£›¬Gδ5šlδ—Gmρkr½'9hΓK‹}S€=R’.ΘΚ Π'βς˜+֚Έ£kGϊYΤ0ŒΑΙ’Η)’›`ͺ¨&`šqyΜ%³Φ}�ο”v˜{›Υ³Λ½%—Τ#Ad)>Qdπ$ΣΠΐοn}Κ ν>αΓ“ C^©‹ΙHΜδέ0A¬Δ€R‰Ε#„ ΦΤ4ί±ΑνΰΝΖνW5Ϋ·ΪηΨ`;;Sσˆz$ζ‘ιβ{:mΈ._ΔλγκFΞ Ζ^oϋ›Ϋ6ή­(nύΰ‹γϊp°θC7©P�"6ρ’Δ7UCά# [ΧV[ΫVΗΪ*1υΤγ�;η¨ΎQι©vpΚvΝ`5a(ˆ’³·7Pb• ΆP’»± m±άΈ©ΛϊύX?¨›ΠKŸˆΑ’}ΉŒŽΜΩ^ˆ(ƒ [GAΥΪΗΫΛA‹.!μœΡXεy§=Ύzi5σ^~oηDˆι²—Œ’ΞC7β―܈ςQΘΗΩl³έn6³°|ςζ°*tΓΒE>ξ“h±;ΰ#PΩGAΥEAΈ+£ΙΣb}π|DEq²ˆ|$Ί_ΓCρ‘xƒ ¬sψΙαwe⌽8Šξq‡ΉΒCη#¬€κ/°ƒΆ`?ΐ^PΔ*ίNJΐόD |4Vζ#ΖCS*ΩζΏt7ˆΰξΧ0Γι|δ•ΝGψψ»Ό›EXΏ‡Wπ%>‚Κ–ψΘώ8Κ}Τύϊ_2ΞΣ$ν^άυ‘’{θi¬ΌΟ34 n’sfγN„΅η"ΐ‡9„ώOAP!PKDφ9mdΩ|ϊϊΆZŽ—οφ7ΊkˆΈi·šύή0Δqό8J­φ|³wG9nγ@EW ­Γp€Y@φΏ¬1σ>@h8pd·`γ\·Θͺ"ι―‹nuΚΰ#ΐGπΰ#ψπ|ψ>|>βzψπ|ψ>|>‚ΑG€ΑG€ΰ#ΐGπΰ#ψπ||ώ ά€k|d"ψ>N_.³΄ΕA*ƒ£Πμ•€±ΣΦ,«ΆΌπ1Ε•™β%p½-ΌπqΫ:΅Έπ±Σkϋ˜±,$K0}'�dŸ<Ÿψ>|>‚ΫrΥΣλ+α£?ύΑΗ-?Σί”% )ΦΗ‘υάkσͺcΣƒνr5Λ‹οqΫͺeˆž|Ό>¦š¬$αγ{αcΥ[ωΈυšΌ π1Χρύz›'>Βσπΰ#ψπ|>ΧΗύ¨Ά·:G›τΐΌVΦΥυ�ϋ=CβŒ™K–πi>ήnk=ΒΒΗ°”΄΅KΦ>ή3dJš°΄„ς1:~”χΞΉξΝ ωι>Ξwεύ17λ•-©†μ•�υxJGk{²°ηžzƜ˜«χTώχ$# δ‡ω8λνβX³.4 Ω9­MΕƒ΅δ%Iך₯Πiαc Œ‘]αγGωX+Αδΐ�Ηƒ΅Ή8―-|œή:Σ`νcŒLžW?Ιπρ£|ΌέκγlΨε>vZϋ)λc>~œΥρXΔόT‡‘-|ά>ξη|ά>V½Όά―?ΟΗωn=}‚I–βAwΞΕ£΅κΥ-³!χ믐ΣογcR:z>³/Χ^ΖύόN|»ϋƒυΪyΦ^<Ÿα#ΐGπΰ#τοy’νϊ†h|쌯…Πί,Ωτ₯4Νz kΝ^ήΙϊ›um1ΟΥηΡί¬Ρ΄6β…€ΉzξE@³»ΦhνcΖύΝζi[ά½·wϊύΝem·ψΚΝ8Ω΅ž;|ψ>|ψ>ϊ›εΝ2­ψυλq —�ΏθoVΉ:fHœ`†ϊ›ύ”Ώ26}Πί,WVgσ^ω©i™$H2ζ„<ώf�Χ (―ΙΗ†ρ1"&ζγσθoΦb~g|L2¬δ£ώf§|lᴏI3γIτ7KήΒZηοΧΠί¬ϋζΆΝσZ˜ρA¦ΗœWR:>‡ώf'ΆΗ΅[V@³ΕφΥσ™sλŸ>‚‘ΟυOΐΗΕ’�W >B³”RνtYWθo–°k™2ό,Πίlφ1²^ε#τ7›}μxΠί¬ώmWί―‘ΏYΒΉ±Yr<>|>‚€ώfτ7ƒώf|„ώf₯ζ~ΩyΠί,ΕdSρ§€ώf=lΠ)kΠίμ§ιΗ}„ώf=p½Πί¬’eΟEχkθov½sΠίl:>|>‚ΑG€ΑG€ΰ#ΐGπΰγλ>‚ΑG€ΰ#ΐGπΰ#ψπΰ#ψπ|ψ>|oš½„Ύγ’}ϐ8ΙΰhΎήΗί £Ο/‹knΛ4μ2Νυy'ΎέΗίϋΈw^λHΘ―χ±:†[£Aζ€IZ,-fψ“<’Ύακψή _’™tΔ#K‘_νcLΜPif7γV¦ΉΨ}-£\·­ŽΟ>FΚΙΞ\|ό~£γβ~έ�Zlvθc’^}—ι=|LP“ +ωψυ>šϋΨ4c³g|~ΏΝ–>�οΧ/σ1Γμ£ϋυ—ϋX!—Ώό“ΞA֟gκcj)6ν{ΞBξƒΜ•³χλ3:Βσ™ΫλΏ“Žο†aί�fψπ|ψ>|>|>‚ΑG€ΰ#ΐΗB’«;βα#ψΈύW}^(λέ|δγ §ΆgΚa[ωΘΗ΅:ΟοΨNYϋ>nΫ6ς™Ά±£Ωt¬²Άe4ΛΖ™\΅hαcκ“lρq84δc)|Œh/σ±cC>β]>n ·*»πquΏ#N³ΓΟ35ir«²–sΙ{|:ΒG>Ύƒντσ>‚žΟψϋπρίvιΰD ` 4 άgΨLbςOIEόχp[Cψ>β#ψH ΑG|ρ|ΔGπΑG|ΑG|ρ|ΔGπΑG|Ήρ|ΔGπΑG|ρ|ρ|ΔGπΑG|ρρzπ|ΔGπΑG|ρ|ΔGπ|ΔGπΑG|ρ|ΔΗ«ΒGπΑG|ρ|ΔGπΑGπΑG|ρ|ΔGπΑG�ΗG|ρ|ΔGπΑG|ΑG|ρ|ΔGπΑG|ωΟ|ΔGπΑG|ρ|„\tΚZψ?>°ΛΗcVΐ&�樀NΉt¬€->ζuTΐoώ³:ε§γ9GtΚ₯c΄ΌΏ:žΠύρ|wœ Ώ;ŽŠN΅x”PΑ.fL IEND�B`‚mochajs-mocha-51a0cc5/docs/src/content/docs/explainers/run-cycle-overview.mdx000066400000000000000000000101201525733747400274130ustar00rootroot00000000000000--- description: A mid-level outline of Mocha's "flow of execution". title: Run Cycle Overview --- The following is a mid-level outline of Mocha’s "flow of execution" when run in Node.js; the "less important" details have been omitted. In a browser, test files are loaded by ` ``` Mocha supports the latest major versions of evergreen browsers available when Mocha's oldest supported Node.js major version was released. As of Mocha v12.0.0, that includes the following browser versions that were stable as of [Node.js 20.0.0](https://nodejs.org/en/blog/release/v20.0.0)'s release on April 18, 2023: - [Chrome 112](https://developer.chrome.com/blog/new-in-chrome-112) - [Edge 112](https://learn.microsoft.com/en-us/deployedge/microsoft-edge-relnote-archive-stable-channel#version-1120172248-april-14-2023) - [Firefox 112](https://www.mozilla.org/en-US/firefox/112.0/releasenotes/) - [Safari 16.4](https://developer.apple.com/documentation/safari-release-notes/safari-16_4-release-notes) ## Grep The browser may use the `--grep` as functionality. Append a query-string to your URL: `?grep=api`. ## Browser Configuration Mocha options can be set via `mocha.setup()`. Examples: ```js // Use "tdd" interface. This is a shortcut to setting the interface; // any other options must be passed via an object. mocha.setup("tdd"); // This is equivalent to the above. mocha.setup({ ui: "tdd", }); // Examples of options: mocha.setup({ allowUncaught: true, asyncOnly: true, bail: true, checkLeaks: true, dryRun: true, failZero: true, forbidOnly: true, forbidPending: true, global: ["MyLib"], retries: 3, rootHooks: { beforeEach(done) { // your setup here done(); }, }, slow: "100", timeout: "2000", ui: "bdd", }); ``` ## Browser-Specific Options Browser Mocha supports many, but not all [CLI options](/running/configuring). To use a CLI option that contains a "-", please convert the option to camelCase, (eg. `check-leaks` to `checkLeaks`). ### Options That Differ Slightly From [CLI Options](/running/configuring) > `reporter` _`string|constructor`_ You can pass a reporter's name or a custom reporter's constructor. You can find **recommended** reporters for the browser [here](#reporting). It is possible to use [built-in reporters](/reporters/spec) as well. Their employment in browsers is neither recommended nor supported, open the console to see the test results. ### Options That _Only_ Function In Browser Context > `noHighlighting` _`boolean`_ If set to `true`, do not attempt to use syntax highlighting on output test code. ## Reporting The HTML reporter is the default reporter when running Mocha in the browser. It looks like this: ![HTML test reporter](./reporter-html.png) [Mochawesome](https://npm.im/mochawesome) is a great alternative to the default HTML reporter. mochajs-mocha-51a0cc5/docs/src/content/docs/running/cli.mdx000066400000000000000000000555421525733747400237440ustar00rootroot00000000000000--- title: Command-Line Usage description: Running Mocha in your terminal. --- Running `npx mocha --help` will show the full list of available commands: {/* This output is defined in lib/cli/cli.js and lib/cli/run-option-metadata.cjs */} ```plaintext Usage: mocha [spec..] mocha init Commands: init create a client-side Mocha setup at Options: --extension File extension(s) to load --file Specify file(s) to be loaded prior to root suite execution --global, --globals List of allowed global variables --ignore, --exclude Ignore file(s) or glob pattern(s) --node-option, -n Node or V8 option (no leading "--") --reporter-option, --reporter-options, -O Reporter-specific options () --require, -r Require module --watch-files List of paths or globs to watch --watch-ignore List of paths or globs to exclude from watching --allow-uncaught Allow uncaught errors to propagate --async-only, -A Require all tests to use a callback (async) or return a Promise --bail, -b Abort ("bail") after first test failure --check-leaks Check for global variable leaks --color, -c, --colors Force-enable color output --delay Delay initial execution of root suite --diff Show diff on failure --dry-run Report tests without executing them --exit Force Mocha to quit after tests complete --fail-hook-affected-tests Report tests as failed when affected by hook failures (before/beforeEach) --pass-on-failing-test-suite Not fail test run if tests were failed --fail-zero Fail test run if no test(s) encountered --forbid-only Fail if exclusive test(s) encountered --forbid-pending Fail if pending test(s) encountered --full-trace Display full stack traces --inline-diffs Display actual/expected differences inline within each string --invert, -i Inverts --grep and --fgrep matches --list-interfaces List built-in user interfaces & exit --list-reporters List built-in reporters & exit --no-colors, -C Force-disable color output --parallel, -p Run tests in parallel --posix-exit-codes Use POSIX and UNIX shell exit codes as Mocha's return value --recursive Look for tests in subdirectories --sort, -S Sort test files --watch, -w Watch files in the current working directory for changes --retries Retry failed tests this many times --jobs, -j Number of concurrent jobs for --parallel; use 1 to run in serial --config Path to config file --fgrep, -f Only run tests containing this string --grep, -g Only run tests matching this string or regexp --package Path to package.json for config --reporter, -R Specify reporter to use --ui, -u Specify user interface --slow, -s Specify "slow" test threshold (in milliseconds) --timeout, -t, --timeouts Specify test timeout threshold (in milliseconds) --help, -h Show usage information & exit --version, -V Show version number & exit Mocha Resources Chat: https://discord.gg/KeDn2uXhER GitHub: https://github.com/mochajs/mocha.git Docs: https://mochajs.org/ ``` ## Rules & Behavior ### `--allow-uncaught` By default, Mocha will attempt to trap uncaught exceptions thrown from running tests and report these as test failures. Use `--allow-uncaught` to disable this behavior and allow uncaught exceptions to propagate. Will typically cause the process to crash. This flag is useful when debugging particularly difficult-to-track exceptions. ### `--async-only, -A` Enforce a rule that tests must be written in "async" style, meaning each test provides a `done` callback or returns a `Promise`. Non-compliant tests will be marked as failures. ### `--bail, -b` Causes Mocha to stop running tests after the first test failure it encounters. Corresponding "after each" and "after all" hooks are executed for potential cleanup. `--bail` does _not_ imply `--exit`. ### `--check-leaks` Use this option to have Mocha check for global variables that are leaked while running tests. Specify globals that are acceptable via the `--global` option (for example: `--check-leaks --global jQuery --global MyLib`). ### `--compilers` :::note `--compilers` was removed in v6.0.0. See [Compilers deprecation](/explainers/compilers-deprecation) for workarounds. ::: ### `--delay` Delay running of tests until you call `run()` in your test files. Use this when you need to perform asynchronous setup before registering suites and tests. See [Delayed Root Suite](/features/hooks#delayed-root-suite). ### `--dry-run` :::note[New in v9.0.0] ::: Report tests without executing any of them, neither tests nor hooks. ### `--exit` :::note[Updated in v4.0.0] TL;DR: If your tests hang after an upgrade to Mocha v4.0.0 or newer, use `--exit` for a quick (though not necessarily recommended) fix. ::: _Prior to_ version v4.0.0, _by default_, Mocha would force its own process to exit once it was finished executing all tests. This behavior enables a set of potential problems: it's indicative of tests (or fixtures, harnesses, code under test, etc.) which don't clean up after themselves properly. Ultimately, "dirty" tests can (but not always) lead to _false positive_ or _false negative_ results. "Hanging" most often manifests itself if a server is still listening on a port, or a socket is still open, etc. It can also be something like a runaway `setInterval()`, or even an errant `Promise` that never fulfilled. The _default behavior_ in v4.0.0 (and newer) is `--no-exit`, where previously it was `--exit`. **The easiest way to "fix" the issue is to pass `--exit` to the Mocha process.** It _can_ be time-consuming to debug--because it's not always obvious where the problem is--but it _is_ recommended to do so. To ensure your tests aren't leaving messes around, here are some ideas to get started: - See the [Node.js guide to debugging](https://nodejs.org/en/learn/getting-started/debugging) - Use the new [`async_hooks`](https://github.com/nodejs/node/blob/master/doc/api/async_hooks.md) API ([example](https://gist.github.com/boneskull/7fe75b63d613fa940db7ec990a5f5843)) - Try something like [wtfnode](https://npm.im/wtfnode) - Use [`.only`](/declaring/exclusive-tests) until you find the test that causes Mocha to hang ### `--pass-on-failing-test-suite` :::note[New in v10.7.0] ::: If set to `true`, Mocha returns exit code `0` even if there are failed tests during the run. ### `--fail-hook-affected-tests` :::note[New in v12.0.0] ::: When a `before` or `beforeEach` hook fails, Mocha skips the tests affected by that hook; only the hook itself is reported as a failure. Use `--fail-hook-affected-tests` to also report each affected test as failed. ### `--fail-zero` :::note[New in v9.1.0] ::: Fail test run with `exit-code: 1` if no tests are encountered. ### `--forbid-only` Enforce a rule that tests may not be exclusive (use of e.g., `describe.only()` or `it.only()` is disallowed). `--forbid-only` causes Mocha to fail when an exclusive ("only'd") test or suite is encountered, and it will abort further test execution. :::note[Updated in v12.0.0] Before v12, `--forbid-only` defaulted to `false`. Since v12, it defaults to `true` when the `CI` environment variable is set, and `false` otherwise. Most CI providers, like GitHub Actions and GitLab, set `CI` automatically. Use `--no-forbid-only` to allow exclusive tests in CI. ::: ### `--forbid-pending` Enforce a rule that tests may not be skipped (use of e.g., `describe.skip()`, `it.skip()`, or `this.skip()` anywhere is disallowed). `--forbid-pending` causes Mocha to fail when a skipped ("pending") test or suite is encountered, and it will abort further test execution. ### `--global ` :::note[Updated in v6.0.0] The option is `--global` and `--globals` is now an alias. ::: Define a global variable name. For example, suppose your app deliberately exposes a global named `app` and `YUI`, you may want to add `--global app --global YUI`. `--global` accepts wildcards. You could do `--global '*bar'` and it would match `foobar`, `barbar`, etc. You can also pass in `'*'` to ignore all globals. `--global` can accept a comma-delimited list; `--global app,YUI` is equivalent to `--global app --global YUI`. By using this option in conjunction with `--check-leaks`, you can specify an allowlist of known global variables that you _expect_ to leak into global scope. ### `--jobs , -j ` :::note[New in v8.0.0] ::: Use `--jobs ` to specify the _maximum_ number of processes in the worker pool. The default value is the _number of CPU cores_ less 1. :::tip Use `--jobs 0` or `--jobs 1` to temporarily disable `--parallel`. ::: Has no effect unless used with [`--parallel`](#--parallel--p). ### `--parallel, -p` :::note[New in v8.0.0] ::: Use the `--parallel` flag to run tests in a worker pool. Each test file will be put into a queue and executed as workers become available. :::caution `--parallel` has certain implications for Mocha's behavior which you must be aware of. Read more about [running tests in parallel](/features/parallel-mode). ::: ### `--posix-exit-codes` :::note[New in v11.3.0] ::: Exits with standard POSIX exit codes instead of the number of failed tests. Those exit codes are: - `0`: if all tests passed - `1`: if any test failed - `128 + ` if given a signal, such as: - 134: `SIGABRT` (`128 + 6`) - 143: `SIGTERM` (`128 + 15`) ### `--retries ` Retries failed tests `n` times. Mocha does not retry test failures by default. ### `--slow , -s ` Specify the "slow" test threshold in milliseconds. Mocha uses this to highlight test cases that are taking too long. "Slow" tests are not considered failures. :::note A test that executes for _half_ of the "slow" time will be highlighted _in yellow_ with the default `spec` reporter; a test that executes for entire "slow" time will be highlighted _in red_. ::: ### `--timeout , -t ` :::note[Updated in v6.0.0] `--timeout 0` is implied when invoking Mocha using inspect flags. `--timeout 99999999` is no longer needed. ::: Specifies the test case timeout, defaulting to two (2) seconds (2000 milliseconds). Tests taking longer than this amount of time will be marked as failed. To override you may pass the timeout in milliseconds, or a value with the `s` suffix, e.g., `--timeout 2s` and `--timeout 2000` are equivalent. To disable timeouts, use `--timeout 0`. :::note Synchronous (blocking) tests are also bound by the timeout, but they will not complete until the code stops blocking. Infinite loops will still be infinite loops! ::: ### `--ui , -u ` The `--ui` option lets you specify the interface to use, defaulting to `bdd`. ## Reporting & Output ### `--color, -c, --colors` :::note[Updated in v6.0.0] `--colors` is now an alias for `--color`. ::: "Force" color output to be enabled, or alternatively force it to be disabled via `--no-color`. By default, Mocha uses the [supports-color](https://npm.im/supports-color) module to decide. In some cases, color output will be explicitly suppressed by certain reporters outputting in a machine-readable format. ### `--diff` When possible, show the difference between expected and actual values when an assertion failure is encountered. This flag is unusual in that it **defaults to `true`**; use `--no-diff` to suppress Mocha's own diff output. Some assertion libraries will supply their own diffs, in which case Mocha's will not be used, regardless of the default value. Mocha's own diff output does not conform to any known standards, and is designed to be human-readable. :::note[New in v9.2.1] ::: By default strings are truncated to 8192 characters before generating a diff. This is to prevent performance problems with large strings. It can however make the output harder to interpret when comparing large strings. Therefore it is possible to configure this value using `--reporter-option maxDiffSize=[number]`. A value of 0 indicates no limit, default is 8192 characters. ### `--full-trace` Enable "full" stack traces. By default, Mocha attempts to distill stack traces into less noisy (though still useful) output. This flag is helpful when debugging a suspected issue within Mocha or Node.js itself. ### `--inline-diffs` Enable "inline" diffs, an alternative output for diffing strings. Useful when working with large strings. Does nothing if an assertion library supplies its own diff output. ### `--reporter , -R ` Specify the reporter that will be used, defaulting to `spec`. Allows use of third-party reporters. For example, [mocha-lcov-reporter](https://npm.im/mocha-lcov-reporter) may be used with `--reporter mocha-lcov-reporter` after it has been installed. ### `--reporter-option