diff --git a/.config/forest.dic b/.config/forest.dic index 97ab337d0a7f..d5a82d414844 100644 --- a/.config/forest.dic +++ b/.config/forest.dic @@ -1,21 +1,35 @@ -78 +258 Algorand/M -API/M +API's +API/SM APIs -aria2c args +aria2c arities arity async attoFIL +autogenerated +automagically +backend/S +backfill +backport +behaviour benchmark/GD +benchmarking +Beryx bitfield bitswap BLAKE2b blockchain/M +Blockscout blockstore/SM BLS +bootnode/S +bootstrapper/S +BuildKit butterflynet +bytecode calibnet calldata callee @@ -24,116 +38,200 @@ CAR/SM CARv1/SM CARv2/SM CBOR +Chainlist +chainsafe +ChainSafe/M +CHANGELOG +changelog/S CID/SM CIDs -ChainSafe/M +CLA CLI -Cloudflare +clippy clonable +Cloudflare codebase codec +config/S cron crypto -CurrentEpoch daemon daemonize Datacap -devnet DB/S +DDL deduplicates +dep/S deserialize/D destructuring +devnet +Devs +DHT +DigitalOcean +Diátaxis DNS +Dockerfile/S +Docusaurus +Drand durations +EAM EIP EIP155 -enum Enum +enum +enums +env EOF -Ethereum eth -exa +Ethereum EVM -f4 +exa F3 +f3 +f4 FFI FIL Filecoin/M Filfox Filops -FIP +FilOz +FIP/S FVM GC +Geth/M +GH +Ghostty GiB +GitHub +Glif +Grafana +GraphQL HAMT +hardcoded hasher healthcheck +hotfix +IaC +implementer/S implementor/SM -IPFS +infeasible +interop/S ip +IPFS IPLD JSON jsonrpc jsonrpsee -JWT +JWT/S Kademlia +keypair/S +keystore/S Kubernetes +LetsEncrypt libp2p +linter/S liveness -localhost +localhost/M +lookups +LRU +LTO +macOS mainnet MD5 +MDBX MDNS +MDX mempool Merkle +MetaMask MiB middleware +migrator/S milliGas multiaddr/SM +multiaddress +multiaddresses multihash multisig mutex +namespace/S +Neo4j +NVMe +NVXX +onwards +OOM/S Open +OpenEthereum OpenRPC +orchestrator/S overallocation P2P +p2p param/SM -ParityDb ParityDB +ParityDb parsable +peerstore/S performant +pnpm PoC pointer/SM PoSt precommit +preloaded +pubsub R2 +README +repo/S +retag +Reth RLP +RNG +roadmap/S RPC +Rusqlite +rustup +sccache schema/SM schemas SECP SECP256k1 seekable +semver serializable serializer/SM -serde_json +serverless skippable +Sqlx statediff stateful +stateroots stderr stdout struct/SM +subcall/S +subcommand/S +submodule/S +swappiness synchronizer syscall/S +TabItem +TBD TCP +teardown +Terraform testnet +TiB tipset/SM tipsetkey/S +Tokio TOML +toolchain/S trie truthy TTY UI +unclutter uncompress unrepresentable untrusted @@ -144,12 +242,18 @@ v1 v2 validator/S varint +vendored verifier verifreg +virtualized VM/SM +VPS VRF +WASM +webapp/S WebAssembly WebSocket -WPoStProvingPeriodDeadlines +WIP YAML +YugabyteDB zstd diff --git a/.config/spellcheck.md b/.config/spellcheck.md index eff81b740180..cd37be33643b 100644 --- a/.config/spellcheck.md +++ b/.config/spellcheck.md @@ -1,15 +1,17 @@ # Spellcheck We run spellchecks using -[`cargo-spellcheck`](https://crates.io/crates/cargo-spellcheck). +[`cargo-spellcheck`](https://crates.io/crates/cargo-spellcheck) with the +[Hunspell](https://github.com/hunspell/hunspell) backend. -It delegates to a program called -[`Hunspell`](https://github.com/hunspell/hunspell). +This is used for **both** Rust doc comments and Markdown files across the entire +repository. A single dictionary file (`forest.dic`) is shared between all +checks. -Hunspell accepts uses `dictionary` files for words and `affix` files to define +Hunspell uses `dictionary` files for words and `affix` files to define acceptable modifications to those words. -Note that cargo-spellcheck comes with +Note that `cargo-spellcheck` comes with [default dictionary and affix files](https://github.com/drahnr/cargo-spellcheck/blob/dff48db8ca954fce14a0cd5aea127ce59a929624/src/checker/hunspell.rs#L32). Our vendored `en_US.dic` is larger than theirs. @@ -70,3 +72,11 @@ For more information see ## Tips - Include symbols in `backticks` - they won't have to be added to the dictionary +- Wrap code identifiers (struct names, variable names, crate names) in backticks + rather than adding them to the dictionary +- Only add common IT terms, proper nouns, and domain-specific terminology to the + dictionary +- Use `` autolink syntax for bare URLs in Markdown files so they are skipped + by the checker +- Run `mise run lint:spellcheck` for Rust code and + `mise run lint:spellcheck-markdown` for Markdown files diff --git a/.config/spellcheck.toml b/.config/spellcheck.toml index b7de9b332d93..cc56a4533a6b 100644 --- a/.config/spellcheck.toml +++ b/.config/spellcheck.toml @@ -11,8 +11,25 @@ extra_dictionaries = ["forest.dic", "en_US.dic"] [hunspell.quirks] transform_regex = [ - # 10.7% - "^[0-9_]+(?:\\.[0-9]*)?%$", + # 10.7%, 30_000 + "^[0-9_]+(?:\\.[0-9]*)?%?$", + # Words containing underscores (e.g., sidebar_position in YAML frontmatter) + "^[a-zA-Z0-9]*_[a-zA-Z0-9_]*$", + # Template braces {{ }} + "^\\{+$", + "^\\}+$", + # Short tokens (1-2 chars) that are almost always noise from markdown parsing + "^.{1,2}$", + # Version references like NV17, NV23, v21, FVM2 + "^[a-zA-Z]+[0-9]+$", + # @-prefixed tokens (e.g., @theme imports in MDX) + "^@", + # Approximate values like ~14, ~80 + "^~", + # URLs that slip through markdown parsing + "^https?:", + # Common abbreviations with special characters (e.g., Q&A) + "^Q&A$", ] allow_concatenation = false allow_dashes = false diff --git a/.github/ISSUE_TEMPLATE/1-bug_report.md b/.github/ISSUE_TEMPLATE/1-bug_report.md index c85e33093950..044f8002f59c 100644 --- a/.github/ISSUE_TEMPLATE/1-bug_report.md +++ b/.github/ISSUE_TEMPLATE/1-bug_report.md @@ -1,6 +1,6 @@ --- name: Bug report -about: Provide a report of unexpected behaviour +about: Provide a report of unexpected behavior title: "" labels: "Type: Bug" assignees: "" diff --git a/.github/workflows/docs-check.yml b/.github/workflows/docs-check.yml index 766760b06996..77ea3849c403 100644 --- a/.github/workflows/docs-check.yml +++ b/.github/workflows/docs-check.yml @@ -12,6 +12,8 @@ on: paths: - "**.md" - "docs/**" + - ".config/forest.dic" + - ".config/spellcheck.toml" - ".github/workflows/docs-check.yml" merge_group: pull_request: @@ -20,6 +22,8 @@ on: paths: - "**.md" - "docs/**" + - ".config/forest.dic" + - ".config/spellcheck.toml" - ".github/workflows/docs-check.yml" jobs: @@ -32,6 +36,16 @@ jobs: steps: - uses: actions/checkout@v6 - uses: jdx/mise-action@v3 - - run: mise run docs:format-spellcheck-dictionary-check + - name: Check spellcheck dictionary format + working-directory: . + run: mise run format-spellcheck-dictionary-check + - name: Install cargo-spellcheck + working-directory: . + run: | + sudo apt-get install -y libclang-dev + cargo binstall --no-confirm cargo-spellcheck + - name: Spellcheck Markdown files + working-directory: . + run: mise run lint:spellcheck-markdown - run: mise run docs:lint - run: mise run docs:build diff --git a/AGENTS.md b/AGENTS.md index 468fe3f65c8f..101e3826c21c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -113,9 +113,9 @@ mise clean - **`chain_sync/`** - Chain synchronization, consensus (`ChainFollower`, `ChainMuxer`) - **`state_manager/`** - State tree management and FVM execution coordinator - **`rpc/`** - JSON-RPC API server with authentication and filtering middleware -- **`libp2p/`** - P2P networking (peer discovery, chain exchange, gossipsub) +- **`libp2p/`** - P2P networking (peer discovery, chain exchange, `gossipsub`) - **`message_pool/`** - Transaction pool for pending messages -- **`db/`** - Database abstraction layer (ParityDb, MemoryDB, CAR format) +- **`db/`** - Database abstraction layer (ParityDb, `MemoryDB`, CAR format) - **`interpreter/`** - Filecoin Virtual Machine (FVM) integration (multi-version) - **`blocks/`** - Block and tipset structures - **`shim/`** - Filecoin protocol primitives (actors, crypto, addresses, state tree) @@ -136,7 +136,7 @@ pub struct ChainStore where DB: Blockstore { ... } **State Management**: `StateManager` is the central coordinator for state transitions, actor queries, and FVM execution. It caches state roots and receipts in `TipsetStateCache`. -**Multi-version FVM**: Supports FVM2, FVM3, and FVM4 for different network versions. Stack size management with `stacker::grow()` is required for WASM execution. +**Multi-version FVM**: Supports `FVM2`, `FVM3`, and `FVM4` for different network versions. Stack size management with `stacker::grow()` is required for WASM execution. ### Daemon Startup Flow @@ -152,7 +152,7 @@ pub struct ChainStore where DB: Blockstore { ... } ### Chain Synchronization -**ChainFollower** orchestrates synchronization: +**`ChainFollower`** orchestrates synchronization: - Receives tipsets from network peers - Validates blocks via `TipsetSyncer` and `TipsetValidator` @@ -174,7 +174,7 @@ Major RPC namespaces: `auth::`, `chain::`, `state::`, `mpool::`, `eth::`, `net:: ### FVM Integration -**Version Selection**: Network version determines FVM version (FVM2 for v1-v15, FVM3 for v16-v20, FVM4 for v21+) +**Version Selection**: Network version determines FVM version (`FVM2` for v1-v15, `FVM3` for v16-v20, `FVM4` for v21+) **VM Execution Flow**: @@ -200,10 +200,10 @@ Libp2p protocols: - **Chain Exchange** - Fetch blocks and messages during sync - **Hello** - Exchange peer info and genesis CID -- **Gossipsub** - Broadcast new blocks and messages +- **`Gossipsub`** - Broadcast new blocks and messages - **Bitswap** - IPLD block exchange (legacy) - **Kademlia DHT** - Peer discovery -- **mDNS** - Local network discovery +- **`mDNS`** - Local network discovery **Peer Manager** tracks peer quality, manages connections, and scores peers based on message validity. @@ -232,7 +232,7 @@ Special stores: Supports legacy transactions, EIP-155, and EIP-1559. Provides standard Ethereum RPC methods (`eth_call`, `eth_sendTransaction`, `eth_getTransactionReceipt`, `eth_subscribe`, etc.) -**Address Mapping**: EVM addresses map to Filecoin f4 (delegated) addresses. Precompiles provide Filecoin-specific operations. +**Address Mapping**: EVM addresses map to Filecoin f4 (delegated) addresses. `Precompiles` provide Filecoin-specific operations. ## Project-Specific Patterns @@ -246,9 +246,9 @@ some_operation().context("Failed to execute VM")? ### Async/Await -- Tokio runtime for async execution +- `Tokio` runtime for async execution - Use `tokio::task::spawn_blocking` for CPU-intensive work (VM execution, cryptography) -- Channel-based communication between tasks (flume, tokio channels) +- Channel-based communication between tasks (flume, `tokio` channels) ### Module Organization @@ -262,7 +262,7 @@ Each module has: - **No indexing** - Use `.get()` instead of `[index]` (enforced by clippy) - **No unwrap in production** - Use `?` or `expect()` with descriptive messages -- **No dbg! or todo!** - Enforced in non-test code +- **No `dbg!` or `todo!`** - Enforced in non-test code - Use `strum` for enum string conversions - Use `derive_more` for common trait implementations diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c68a3986f4f..86dd53221fce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2115,7 +2115,7 @@ Notable updates: ### Changed -- Replace async_std with tokio. +- Replace async_std with `tokio`. - Significantly improve tracked performance metrics. - Gracefully shutdown the database on sigterm and sighup. - Fix gas charging issue that caused state-root mismatches on mainnet. @@ -2950,7 +2950,7 @@ All initial change sets: ([#732](https://github.com/ChainSafe/forest/pull/732)) (Eric Tu) - `ef2583db` Use concrete implementations ([#842](https://github.com/ChainSafe/forest/pull/842)) (Volker Mische) -- `3c8a57b7` Fix gossipsub handling to process only when in follow state +- `3c8a57b7` Fix `gossipsub` handling to process only when in follow state ([#845](https://github.com/ChainSafe/forest/pull/845)) (Austin Abell) - `c53a5b82` Fix bug with import and cleanup ([#844](https://github.com/ChainSafe/forest/pull/844)) (Austin Abell) @@ -2968,7 +2968,7 @@ All initial change sets: ([#834](https://github.com/ChainSafe/forest/pull/834)) (Austin Abell) - `a86f0056` CircleCI updates, removal of github actions ([#813](https://github.com/ChainSafe/forest/pull/813)) (Dustin Brickwood) -- `d74b34ee` Add Gossipsub chain messages to MPool in the ChainSyncer instead of +- `d74b34ee` Add `Gossipsub` chain messages to MPool in the ChainSyncer instead of Libp2p Service ([#833](https://github.com/ChainSafe/forest/pull/833)) (Eric Tu) - `bbdddf9d` Fix block messages generation for sequence edge case diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 660960bcb5fb..72f239506183 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ forward to your contributions. 🎉 > > - Star the project > - Tweet about it -> - Refer this project in your project's readme +> - Refer this project in your project's README > - Mention it to your Filecoin/IPFS/Rust friends diff --git a/docs/.spellcheck.yml b/docs/.spellcheck.yml deleted file mode 100644 index 8719feae8287..000000000000 --- a/docs/.spellcheck.yml +++ /dev/null @@ -1,18 +0,0 @@ -matrix: - - name: Markdown - aspell: - lang: en - dictionary: - wordlists: - - .wordlist.txt - encoding: utf-8 - pipeline: - - pyspelling.filters.markdown: - - pyspelling.filters.html: - comments: false - ignores: - - code - - pre - sources: - - "**/*.md" - default_encoding: utf-8 diff --git a/docs/README.md b/docs/README.md index 68def9c635e3..e8d44a4ad850 100644 --- a/docs/README.md +++ b/docs/README.md @@ -44,7 +44,7 @@ pnpm typecheck # Validate typescript files ### Deployment -The documentation site is continuously deployed to CloudFlare Pages, triggered on every commit to `main`. [This workflow](/.github/workflows/docs-deploy.yml) defines the deployment process. +The documentation site is continuously deployed to Cloudflare Pages, triggered on every commit to `main`. [This workflow](/.github/workflows/docs-deploy.yml) defines the deployment process. ## Site Structure @@ -76,7 +76,7 @@ Available at `/developers`, source code is located in `docs/developers`. Compris ### Useful Features -- Admonitions (eg. Info, Warning, etc): https://docusaurus.io/docs/markdown-features/admonitions +- Admonitions (e.g. Info, Warning, etc): https://docusaurus.io/docs/markdown-features/admonitions - Mermaid Diagrams: https://docusaurus.io/docs/markdown-features/diagrams - MDX (embedding JavaScript): https://docusaurus.io/docs/markdown-features/react - Code Blocks: https://docusaurus.io/docs/markdown-features/code-blocks diff --git a/docs/dictionary.txt b/docs/dictionary.txt deleted file mode 100644 index 4a4190eb96ca..000000000000 --- a/docs/dictionary.txt +++ /dev/null @@ -1,175 +0,0 @@ -2k -APIs -backend -backfill -backport -benchmarking -Beryx -Blockscout -blockstore -BLS -BuildKit -Butterflynet -bytecode -Calibnet -calibnet -calibnet-related -Calldata -cardinality -Chainlist -ChainSafe -chainsafe -ChainSafe's -CHANGELOG -changelog -CID -CIDs -CLI -cli -Cloudflare -codebase -config -Datacap -datacap -DDL -Devnet -devnet -Devops -Devs -DHT -DigitalOcean -Drand -EAM -enums -ETH -Eth -Ethereum -EVM -F3 -f3 -f3-sidecar -f4 -FFI -FIL -fil -FIL-RetroPGF -Filecoin -filecoin-project -Filfox -FilOz -FIP -FIPs -FVM -GC -Geth -Geth's -GH -GiB -Github -Grafana -GraphQL -hardcoded -hotfix -Hypercerts -ie. -Implementers -implementers -io -IPFS -JSON -JSON-RPC -JWT -JWTs -keypair -keystore -Kubernetes -kubernetes -LetsEncrypt -libp2p -Linux -Liveness -liveness -localhost -localhost's -lookups -LRU -M1 -M2 -macOS -Mainnet -mainnet -MDBX -MetaMask -migrator -migrators -mise-en-place -multiaddress -Namespace -namespace -Neo4j -NetworkEvents -NV17 -NV18 -NV19 -NV22 -NV23 -NV24 -NVMe -NVXX -onwards -OOMs -OpenEthereum -orchestrator -Organisation -P2P -p2p -performant -pre-compiled -Pre-deployed -pre-deployed -Pre-funded -pre-migrations -preload -preloaded -pubsub -Q4 -README -retag -Reth -reth -Reth-like -RNG -Roadmap -roadmap -RPC -Rusqlite -rustup -S3-compatible -sccache -SecP256k1 -semver -serverless -Sqlx -Stateful -stateful -stateroots -struct -subcommands -swappiness -SyncStateMachine -TabItem -TBD -Terraform -testnet -TiB -Tipset -tipset -tipsets -URL -Verifier -verifier -virtualized -VPS -WebSocket -WIP -zstd diff --git a/docs/docs/developers/deep_dives/chain_follower.md b/docs/docs/developers/deep_dives/chain_follower.md index 98bd799a987c..a4d542dddda4 100644 --- a/docs/docs/developers/deep_dives/chain_follower.md +++ b/docs/docs/developers/deep_dives/chain_follower.md @@ -81,7 +81,7 @@ graph TD The `ChainFollower` struct spawns 4 concurrent tasks to sync the chain and track its progress: -1. **Forward tipsets from peers to the SyncStateMachine**: Listens for [NetworkEvents](https://github.com/ChainSafe/forest/blob/main/src/libp2p/service.rs), processes incoming blocks from gossip, fetches the `FullTipset` if necessary, and submits it to the state machine. +1. **Forward tipsets from peers to the `SyncStateMachine`**: Listens for [`NetworkEvents`](https://github.com/ChainSafe/forest/blob/main/src/libp2p/service.rs), processes incoming blocks from gossip, fetches the `FullTipset` if necessary, and submits it to the state machine. 2. **Forward tipsets from miners to the `SyncStateMachine`**: Listens on a dedicated channel for locally-produced tipsets submitted via the API. 3. **Execute `SyncStateMachine` tasks**: Manages the main event loop, taking tasks generated by the `SyncStateMachine` struct (like fetching or validating) and spawning them for execution. It also updates the node's overall sync status. 4. **Periodically report sync progress**: Logs the current sync status at regular intervals, providing visibility into how far behind the network head the node is. @@ -101,7 +101,7 @@ New tipsets are introduced to the `ChainFollower` from two main sources: ### The `SyncStateMachine` -Once a `FullTipset` struct is acquired, it's handed over to the `SyncStateMachine` struct. This is the core of the chain follower, managing all candidate tipsets and deciding what to do next. +Once a `FullTipset` struct is acquired, it's handed over to the `SyncStateMachine` struct. This is the core of the `ChainFollower`, managing all candidate tipsets and deciding what to do next. - **State:** The state machine maintains a `tipsets` field (a `HashMap`) of all tipsets it is currently aware of but has not yet fully validated. @@ -122,7 +122,7 @@ When a `SyncTask::ValidateTipset` task is executed, it kicks off a comprehensive 2. **Message Validation**: The `check_block_messages` function performs several checks: - The aggregate BLS signature for all BLS messages in the block is verified. - - The individual signature of every SecP256k1 message is verified against the sender's key. + - The individual signature of every `SecP256k1` message is verified against the sender's key. - The `nonce` (sequence number) of each message is checked against the sender's current nonce in the parent state. - The `gas_limit` of all messages is summed to ensure it does not exceed the `BLOCK_GAS_LIMIT`. - The message root (`TxMeta` struct) is re-computed from all messages and compared to the `messages` CID in the block header. diff --git a/docs/docs/developers/guides/chain_index_spike.md b/docs/docs/developers/guides/chain_index_spike.md index 40c9291fd2d5..8cbb7c557650 100644 --- a/docs/docs/developers/guides/chain_index_spike.md +++ b/docs/docs/developers/guides/chain_index_spike.md @@ -28,9 +28,9 @@ indexing intent). #### EVM Events documentation: -https://docs.soliditylang.org/en/v0.8.27/contracts.html#events +[Solidity Events](https://docs.soliditylang.org/en/v0.8.27/contracts.html#events) -https://github.com/filecoin-project/lotus/blob/master/chain/types/event.go +[Lotus event.go](https://github.com/filecoin-project/lotus/blob/master/chain/types/event.go) #### Ethereum LOG opcodes implementation: diff --git a/docs/docs/developers/guides/local_actions.md b/docs/docs/developers/guides/local_actions.md index 9815bc034b94..141ad85f82c3 100644 --- a/docs/docs/developers/guides/local_actions.md +++ b/docs/docs/developers/guides/local_actions.md @@ -1,13 +1,13 @@ There are often cases where the jobs fail at the CI and not locally, which tends to be cumbersome to debug. Also, when developing an integration test, it is -useful to get immediate feedback instead of relying on Github Actions (which, on +useful to get immediate feedback instead of relying on GitHub Actions (which, on a side note, are sometimes down). There is a [tool called Act](https://github.com/nektos/act) that allows you to -run Github Actions locally. Given the complexity of Forest's CI, it is difficult +run GitHub Actions locally. Given the complexity of Forest's CI, it is difficult to run the whole CI locally, but it is feasible to run a single or set of jobs. This is useful to debug a failing job, or to run an integration test locally. -Note that while Github Actions are run in fully virtualized environments, Act +Note that while GitHub Actions are run in fully virtualized environments, Act runs them in Docker containers. This means that the environment is not exactly the same, but it is close enough to be useful. In practice, we need some _tricks_ to make it work. @@ -215,7 +215,7 @@ INFO[0000] Start server on http://192.168.1.10:34567 ## Privileges -By default, `act` runs jobs as `root`. Github Actions run under a regular +By default, `act` runs jobs as `root`. GitHub Actions run under a regular account (with `sudo` privileges). Use `sudo` for installing dependencies, even if locally it works without it. diff --git a/docs/docs/developers/guides/state_migration_guide.md b/docs/docs/developers/guides/state_migration_guide.md index 9e7252c58660..666e22fcbf83 100644 --- a/docs/docs/developers/guides/state_migration_guide.md +++ b/docs/docs/developers/guides/state_migration_guide.md @@ -300,7 +300,7 @@ reasonable amount of time. ### Future considerations - Grab the actor bundles from the IPFS. This would make Forest less dependent on - the Github infrastructure. + the GitHub infrastructure. [Issue #2765](https://github.com/ChainSafe/forest/issues/2765) - Consider pre-migrations as Lotus does. It is not needed at the moment (the mainnet upgrade takes several seconds at most) but may become a bottleneck if diff --git a/docs/docs/users/getting_started/install.md b/docs/docs/users/getting_started/install.md index a34fee59b315..b90450396ac7 100644 --- a/docs/docs/users/getting_started/install.md +++ b/docs/docs/users/getting_started/install.md @@ -32,14 +32,14 @@ forest-filecoin 0.19.0+git.671c30c

Images

-Images are available via Github Container Registry: +Images are available via GitHub Container Registry: ```shell ghcr.io/chainsafe/forest ``` :::tip -If you have trouble using the Github Container Registry, make sure you are [authenticated with your Github account](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry). +If you have trouble using the GitHub Container Registry, make sure you are [authenticated with your GitHub account](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry). ::: You will find tagged images following these conventions: diff --git a/docs/docs/users/guides/proxies/running_with_gateway.md b/docs/docs/users/guides/proxies/running_with_gateway.md index fc88b8ef74a3..a8c219ea8512 100644 --- a/docs/docs/users/guides/proxies/running_with_gateway.md +++ b/docs/docs/users/guides/proxies/running_with_gateway.md @@ -30,7 +30,7 @@ That's it! Forest should now be available only through the Lotus Gateway. You ca curl http://localhost:5432/rpc/v1 -X POST -H "Content-Type: application/json" --data '{"method":"Filecoin.ChainHead","params":[], "id":1,"jsonrpc":"2.0"}' ``` -## 🌲Forest + 🪷 Lotus Gateway + 🐳 Docker Compose = ❤️ +## 🌲 Forest + 🪷 Lotus Gateway + 🐳 Docker Compose = ❤️ If you want to run Forest and Lotus Gateway in a Docker container, you can use Docker Compose. Ensure you have [docker](https://www.docker.com/) installed. This will: diff --git a/docs/docs/users/introduction.md b/docs/docs/users/introduction.md index 0ba521626b46..32a0052ae59f 100644 --- a/docs/docs/users/introduction.md +++ b/docs/docs/users/introduction.md @@ -44,14 +44,14 @@ Check out the [CLI docs](./reference/cli) for more details. ## Roadmap Updates -Checkout [Github Discussions](https://github.com/ChainSafe/forest/discussions/categories/announcements) for monthly updates and roadmap announcements. +Checkout [GitHub Discussions](https://github.com/ChainSafe/forest/discussions/categories/announcements) for monthly updates and roadmap announcements. ## Connect with Us -- Bug reports and feature requests: [Open an issue on Github](https://github.com/ChainSafe/forest/issues/new/choose) +- Bug reports and feature requests: [Open an issue on GitHub](https://github.com/ChainSafe/forest/issues/new/choose) - Questions, Comments, Feedback: - [Filecoin Slack](https://filecoin.io/slack): `#fil-forest-help`, `#fil-forest-dev` or `#fil-forest-announcements` - - [Forest Github Discussions](https://github.com/ChainSafe/forest/discussions) + - [Forest GitHub Discussions](https://github.com/ChainSafe/forest/discussions) - Partnerships or Hand-on Support: forest (at) chainsafe [dot] io ## Contributing diff --git a/docs/docs/users/knowledge_base/docker_tips.md b/docs/docs/users/knowledge_base/docker_tips.md index 5d0487262dde..bea4223f737c 100644 --- a/docs/docs/users/knowledge_base/docker_tips.md +++ b/docs/docs/users/knowledge_base/docker_tips.md @@ -3,7 +3,7 @@ title: Docker Tips & Tricks sidebar_position: 3 --- -# Forest in Docker🌲❤️🐋 +# Forest in Docker 🌲 ❤️ 🐋 ## Prerequisites diff --git a/docs/docs/users/knowledge_base/rpc/trace_call.md b/docs/docs/users/knowledge_base/rpc/trace_call.md index 5df1a153a1cf..bebc289e4dce 100644 --- a/docs/docs/users/knowledge_base/rpc/trace_call.md +++ b/docs/docs/users/knowledge_base/rpc/trace_call.md @@ -1,6 +1,6 @@ # trace_call API Guide -This guide explains the `trace_call` RPC method implemented in Forest, which follows the **[Parity/OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_call) and [reth](https://reth.rs/jsonrpc/trace#trace-format-specification) trace format**. +This guide explains the `trace_call` RPC method implemented in Forest, which follows the **[Parity/OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_call) and [Reth](https://reth.rs/jsonrpc/trace#trace-format-specification) trace format**. ## Overview diff --git a/docs/docs/users/reference/json-rpc/overview.md b/docs/docs/users/reference/json-rpc/overview.md index c11b5d5b3b47..d9afc5a4ad0e 100644 --- a/docs/docs/users/reference/json-rpc/overview.md +++ b/docs/docs/users/reference/json-rpc/overview.md @@ -8,7 +8,7 @@ sidebar_position: 0 :::note Need a specific method? Let us know on -[Github](https://github.com/ChainSafe/forest/issues) or Filecoin Slack +[GitHub](https://github.com/ChainSafe/forest/issues) or Filecoin Slack (`#fil-forest-help`) 🙏 ::: diff --git a/docs/package.json b/docs/package.json index 78c4f2a8166e..df3a4e276f9a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -17,7 +17,6 @@ "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", "typecheck": "tsc", - "spellcheck": "spellchecker -f \"./docs/**/*.md\" -l en-US -q -d ./dictionary.txt", "format-check": "prettier --check .", "format": "prettier --write .", "generate:rpc-reference": "tsx scripts/generate-rpc-reference.ts" @@ -40,7 +39,6 @@ "@docusaurus/tsconfig": "^3.9.2", "@docusaurus/types": "^3.9.2", "@types/node": "^25.3.2", - "spellchecker-cli": "^7.0.2", "tsx": "^4.21.0", "typescript": "^5.9.3" }, diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 1c96b8338ee6..d4a3fc23d10b 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -57,9 +57,6 @@ importers: '@types/node': specifier: ^25.3.2 version: 25.3.2 - spellchecker-cli: - specifier: ^7.0.2 - version: 7.0.2 tsx: specifier: ^4.21.0 version: 4.21.0 @@ -2078,12 +2075,6 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/nlcst@1.0.4': - resolution: {integrity: sha512-ABoYdNQ/kBSsLvZAekMhIPMQ3YUZvavStpKYs7BjLLuKVmIMA0LUgZ7b54zzuWJRbHF80v1cNf4r90Vd6eMQDg==} - - '@types/nlcst@2.0.3': - resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} @@ -2296,10 +2287,6 @@ packages: resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -2321,20 +2308,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-back@2.0.0: - resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} - engines: {node: '>=4'} - - array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -2561,10 +2537,6 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -2656,16 +2628,10 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2685,14 +2651,6 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - - command-line-usage@5.0.5: - resolution: {integrity: sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==} - engines: {node: '>=4.0.0'} - commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -3094,10 +3052,6 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - date-format@4.0.3: - resolution: {integrity: sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==} - engines: {node: '>=4.0'} - dayjs@1.11.19: resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} @@ -3201,24 +3155,6 @@ packages: devtools-protocol@0.0.1312386: resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==} - dictionary-en-au@2.4.0: - resolution: {integrity: sha512-SEETr3rqt26/Umc43gemwaH/ez4gPv7I4alifu/QLi8uxiCm6a7cn3wKb22HNB5l6j/R7/Sfkq9NTKk/QRVUHw==} - - dictionary-en-ca@2.4.0: - resolution: {integrity: sha512-uDoOe7/dz1XD3niVpOroSo3Pas7cdsAp+NSwfan30MGzzeXaD04lQuTRDqHpsXuP8fq3U7f9v8Iaiyk5q/kgzw==} - - dictionary-en-gb@2.4.0: - resolution: {integrity: sha512-zwc7e6CM/+Em+v74a5/ia6663nwR9vvtEayaX5WkgvHD99al1qm/RbcdLludqX3mggYxXXFN1zN5hzyREW/DXg==} - - dictionary-en-za@2.2.0: - resolution: {integrity: sha512-YFod3pshfaecqCe221rczW5lVWn4ZhfFH6E395DN1bEbL4dUndGm9Bn/zxMOU2w9imYKwptYalO23hetwUx+OA==} - - dictionary-en@3.2.0: - resolution: {integrity: sha512-oujbJhuplUTlDntmOoultEcNyk8ge7cFI6yXNn7eJvpbBJOhGNhWtK0XjOJsiwl4EfIeyvDKwGB95vJXv1d+lQ==} - - dictionary-vi@2.2.0: - resolution: {integrity: sha512-WDCaSzHMtayCIEa2hPq0rL8ds603SKNzMzNXU0kbLM7kzXoaXaKeHgPXJHKjKMxxnozKLMsg+rES7hC6Lxe7iA==} - diff@5.2.2: resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} @@ -3283,9 +3219,6 @@ packages: electron-to-chromium@1.5.302: resolution: {integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==} - emoji-regex@10.6.0: - resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3508,9 +3441,6 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} @@ -3553,10 +3483,6 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} - find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} - find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3601,9 +3527,6 @@ packages: resolution: {integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==} engines: {node: '>=14.14'} - fs-extra@6.0.1: - resolution: {integrity: sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3612,12 +3535,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gemoji@7.1.0: - resolution: {integrity: sha512-wI0YWDIfQraQMDs0yXAVQiVBZeMm/rIYssf8LZlMDdssKF19YqJKOHkv4zvwtVQTBJ0LNmErv1S+DqlVUudz8g==} - - gemoji@8.1.0: - resolution: {integrity: sha512-HA4Gx59dw2+tn+UAa7XEV4ufUKI4fH1KgcbenVA9YKSj1QJTT0xh5Mwv5HMFNN3l2OtUe3ZIfuRwSyZS5pLIWw==} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3712,10 +3629,6 @@ packages: handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -3735,39 +3648,21 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-embedded@3.0.0: - resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} - hast-util-from-html@1.0.2: resolution: {integrity: sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A==} - hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - hast-util-from-parse5@7.1.2: resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} - - hast-util-is-body-ok-link@3.0.1: - resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@3.1.1: resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-phrasing@3.0.1: - resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} - hast-util-raw@9.1.0: resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} @@ -3777,21 +3672,12 @@ packages: hast-util-to-estree@3.1.3: resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - hast-util-to-nlcst@4.0.0: - resolution: {integrity: sha512-+YxIJMLJe+2AEhJeJHXZu1VuhApzjD9dLlWOLTS9kUusHfxKsyqRSnSF/YEu4h0uvzwSC0wPqFwIb9GSnK/chQ==} - hast-util-to-parse5@8.0.1: resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} - hast-util-to-string@2.0.0: - resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} - hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} @@ -4171,9 +4057,6 @@ packages: json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -4188,20 +4071,9 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc@2.0.0: - resolution: {integrity: sha512-B281bLCT2TRMQa+AQUQY5AGcqSOXBOKaYGP4wDzoA/+QswUfN8sODektbPEs9Baq7LGKun5jQbNFpzwGuVYKhw==} - engines: {node: '>=8'} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - junit-report-builder@3.2.1: - resolution: {integrity: sha512-IMCp5XyDQ4YESDE4Za7im3buM0/7cMnRfe17k2X8B05FnUl9vqnaliX6cgOEmPIeWKfJrEe/gANRq/XgqttCqQ==} - engines: {node: '>=8'} - katex@0.16.28: resolution: {integrity: sha512-YHzO7721WbmAL6Ov1uzN/l5mY5WWWhJBSW+jq4tkfZfsxmo1hu6frS0EOswvjBUnWE6NtjEs48SFn5CQESRLZg==} hasBin: true @@ -4270,18 +4142,12 @@ packages: lodash-es@4.17.23: resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.padend@4.6.1: - resolution: {integrity: sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==} - lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -4315,10 +4181,6 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} @@ -4353,9 +4215,6 @@ packages: mdast-util-from-markdown@2.0.3: resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} - mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} - mdast-util-frontmatter@2.0.1: resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} @@ -4416,9 +4275,6 @@ packages: mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - mdast-util-to-nlcst@5.2.1: - resolution: {integrity: sha512-Xznpj85MsJnLQjBboajOovT2fAAvbbbmYutpFgzLi9pjZEOkgGzjq+t6fHcge8uzZ5uEkj5pigzw2QrnIVq/kw==} - mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} @@ -4473,9 +4329,6 @@ packages: micromark-extension-directive@3.0.2: resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} - micromark-extension-frontmatter@1.1.1: - resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} - micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} @@ -4725,10 +4578,6 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} @@ -4770,24 +4619,6 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} - nlcst-affix-emoticon-modifier@2.1.1: - resolution: {integrity: sha512-0kOpSNwB6pFMoe5tWFZ3KrvW6ftVqvnXW+jQw3EJnXkzXdAmdhbcoG9r+NMvJ0nc37BLYlEy5A+FGlB8IOfq5A==} - - nlcst-emoji-modifier@5.2.0: - resolution: {integrity: sha512-bxgOEDWN2hz6/JN0uiIww+28Ssktq9FRctHq3bxiBi/8G/mb72cQ99vhzrZMWZe8tKD3YYckVH1bEkzcxTJFxg==} - - nlcst-emoticon-modifier@2.1.1: - resolution: {integrity: sha512-fDfvvmA6ziUQC+I3BYLNZ7lq0rIG3Uz6IsmhTAkdB8d9UyI5LPz1uvmk+W7fKkX1mVWGJw0PeOT9VtXISrPFbg==} - - nlcst-is-literal@2.1.1: - resolution: {integrity: sha512-/PyEKNHN+SrcrmnZRwszzZYbvZSN2AVD506+rfMUzyFHB0PtUmqZOdUuXmQxQeZXv6o29pT5chLjQJdC9weOCQ==} - - nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} - - nlcst-to-string@4.0.0: - resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} - no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -4813,9 +4644,6 @@ packages: nprogress@0.2.0: resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - nspell@2.1.5: - resolution: {integrity: sha512-PSStyugKMiD9mHmqI/CR5xXrSIGejUXPlo88FBRq5Og1kO5QwQ5Ilu8D8O5I/SHpoS+mibpw6uKA8rd3vXd2Sg==} - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -4825,9 +4653,6 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - number-to-words@1.2.4: - resolution: {integrity: sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4931,20 +4756,10 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} - - parse-latin@7.0.0: - resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - parse-numeric-range@1.3.0: resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} @@ -5007,10 +4822,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pkg-dir@6.0.1: - resolution: {integrity: sha512-C9R+PTCKGA32HG0n5I4JMYkdLL58ZpayVuncQHQrGeKa8o26A4o2x0u6BKekHG+Au0jv5ZW7Xfq1Cj6lm9Ag4w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - pkg-dir@7.0.0: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} @@ -5513,9 +5324,6 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - quotation@2.0.3: - resolution: {integrity: sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -5604,10 +5412,6 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - reduce-flatten@1.0.1: - resolution: {integrity: sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==} - engines: {node: '>=0.10.0'} - reflect-metadata@0.2.2: resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} @@ -5637,24 +5441,12 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true - rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} - rehype-retext@5.0.1: - resolution: {integrity: sha512-YJqcKZJh/sYCfLd89yzuWo5GI5TzELr0N/OLHac6fDzKmp5Yk8pj8ePU2HFgmtk5O7GmGVuYXJo35YIrGtyL0g==} - - rehype-stringify@10.0.1: - resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} - - rehype@13.0.2: - resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} - relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} @@ -5666,9 +5458,6 @@ packages: resolution: {integrity: sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} - remark-frontmatter@5.0.0: resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} @@ -5678,27 +5467,15 @@ packages: remark-mdx@3.1.1: resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==} - remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} - remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} remark-rehype@11.1.2: resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - remark-retext@5.0.1: - resolution: {integrity: sha512-h3kOjKNy7oJfohqXlKp+W4YDigHD3rw01x91qvQP/cUkK5nJrDl6yEYwTujQCAXSLZrsBxywlK3ntzIX6c29aA==} - - remark-stringify@10.0.3: - resolution: {integrity: sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==} - remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - remark@14.0.3: - resolution: {integrity: sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==} - renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -5706,10 +5483,6 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} - replace-ext@1.0.0: - resolution: {integrity: sha512-vuNYXC7gG7IeVNBC1xUllqCcZKRbJoSPOBhnTEcAIiKCsbuef6zO3F0Rve3isPMMoNoQRWjQwbAgAjHUHniyEA==} - engines: {node: '>= 0.10'} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -5746,33 +5519,6 @@ packages: resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} engines: {node: '>=14.16'} - retext-emoji@8.1.0: - resolution: {integrity: sha512-cvT53Ttn6XXgNprhmI8p4qtwujxNwoHW8hHe2B0JLEMxrMzGTbxwKqnwGslLk/FDsH4dSYStmqnpE20auNSrNg==} - - retext-indefinite-article@4.3.0: - resolution: {integrity: sha512-NdVOT0pR68ZhC/Eph/eg2z92zwC9H3DzXkEaiaIs0aDAnNBVzJT/DeRFYDTEMDWINnEVTApuGoCl9mqciUUsAw==} - - retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} - - retext-repeated-words@4.2.0: - resolution: {integrity: sha512-Tle40/5Xy6KxI94s4XRqGXcj6aWUeCoQZUGQto8OjZP98t4tKVDRVG3QGodF633hVOEiN1vYqj0Zegqoe8XOaw==} - - retext-spell@5.3.0: - resolution: {integrity: sha512-b4LLp5S7ScmE+qJ2gu7FKfJICcfIK/UYIn1L84gJNRjDJyVIXWgdqQ7kgoqduP1mH3fFiKz3YVyNS4hD3XTlWw==} - - retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} - - retext-syntax-mentions@3.1.0: - resolution: {integrity: sha512-xcHHHOm3coErzrxtXN3S75UJ1S+WUJXKes5Mpu8WyVmMMYVC5qjSoBlYLHx1+jztq+KmYYkG3rbM3it2J4y7jA==} - - retext-syntax-urls@3.1.2: - resolution: {integrity: sha512-CFuqX1x7GPFQRMPTA88bjrD0l8jTN7Y5Zp8QVr9ToWyJRChIMqUlPq4HfOJbKdDfcwhTVZvh/jRyxLc/K6Tc4g==} - - retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} - retry@0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} @@ -5994,10 +5740,6 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} - spellchecker-cli@7.0.2: - resolution: {integrity: sha512-MpkyP1xAUlEkcx7RWvuMI3GBS25df9AvErZy8GTMvFsuIxi+Cy3ptD4CbMih9/A0rBInYEHvNI03oudFVOqvdQ==} - hasBin: true - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -6052,10 +5794,6 @@ packages: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -6086,14 +5824,6 @@ packages: stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@6.1.0: - resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} - engines: {node: '>=6'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -6114,10 +5844,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - table-layout@0.4.5: - resolution: {integrity: sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==} - engines: {node: '>=4.0.0'} - tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -6189,9 +5915,6 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} - totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} @@ -6251,13 +5974,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - typical@2.6.1: - resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} - - typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} @@ -6271,9 +5987,6 @@ packages: resolution: {integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==} engines: {node: '>=20.18.1'} - unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -6294,9 +6007,6 @@ packages: resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} engines: {node: '>=4'} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -6304,24 +6014,12 @@ packages: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} - unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} - - unist-util-is@3.0.0: - resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} - unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} - unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} - - unist-util-modify-children@4.0.0: - resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - unist-util-position-from-estree@1.1.2: resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} @@ -6337,46 +6035,24 @@ packages: unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} - unist-util-stringify-position@1.1.2: - resolution: {integrity: sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==} - - unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} - unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} - - unist-util-visit-children@3.0.0: - resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} - - unist-util-visit-parents@2.1.2: - resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} - unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@1.4.1: - resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} - unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} unist-util-visit@5.1.0: resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -6451,27 +6127,12 @@ packages: vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@1.1.1: - resolution: {integrity: sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==} - vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} vfile-message@4.0.3: resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - vfile-reporter@6.0.2: - resolution: {integrity: sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==} - - vfile-sort@2.2.2: - resolution: {integrity: sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==} - - vfile-statistics@1.1.4: - resolution: {integrity: sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==} - - vfile@3.0.1: - resolution: {integrity: sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==} - vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} @@ -6592,10 +6253,6 @@ packages: wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} - wordwrapjs@3.0.0: - resolution: {integrity: sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==} - engines: {node: '>=4.0.0'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6646,10 +6303,6 @@ packages: resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} hasBin: true - xmlbuilder@15.1.1: - resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} - engines: {node: '>=8.0'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -9561,6 +9214,7 @@ snapshots: '@types/hast@2.3.10': dependencies: '@types/unist': 2.0.11 + optional: true '@types/hast@3.0.4': dependencies: @@ -9593,6 +9247,7 @@ snapshots: '@types/mdast@3.0.15': dependencies: '@types/unist': 2.0.11 + optional: true '@types/mdast@4.0.4': dependencies: @@ -9604,14 +9259,6 @@ snapshots: '@types/ms@2.1.0': {} - '@types/nlcst@1.0.4': - dependencies: - '@types/unist': 2.0.11 - - '@types/nlcst@2.0.3': - dependencies: - '@types/unist': 3.0.3 - '@types/node@17.0.45': {} '@types/node@25.3.2': @@ -9870,10 +9517,6 @@ snapshots: ansi-regex@6.2.2: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -9893,16 +9536,8 @@ snapshots: argparse@2.0.1: {} - array-back@2.0.0: - dependencies: - typical: 2.6.1 - - array-back@3.1.0: {} - array-flatten@1.1.1: {} - array-iterate@2.0.1: {} - array-union@2.1.0: {} asn1js@3.0.7: @@ -10165,12 +9800,6 @@ snapshots: ccount@2.0.1: {} - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -10290,16 +9919,10 @@ snapshots: collapse-white-space@2.1.0: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} colord@2.9.3: {} @@ -10312,20 +9935,6 @@ snapshots: comma-separated-tokens@2.0.3: {} - command-line-args@5.2.1: - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - - command-line-usage@5.0.5: - dependencies: - array-back: 2.0.0 - chalk: 2.4.2 - table-layout: 0.4.5 - typical: 2.6.1 - commander@10.0.1: {} commander@2.20.3: {} @@ -10771,8 +10380,6 @@ snapshots: data-uri-to-buffer@6.0.2: optional: true - date-format@4.0.3: {} - dayjs@1.11.19: {} debounce@1.2.1: {} @@ -10857,19 +10464,8 @@ snapshots: devtools-protocol@0.0.1312386: optional: true - dictionary-en-au@2.4.0: {} - - dictionary-en-ca@2.4.0: {} - - dictionary-en-gb@2.4.0: {} - - dictionary-en-za@2.2.0: {} - - dictionary-en@3.2.0: {} - - dictionary-vi@2.2.0: {} - - diff@5.2.2: {} + diff@5.2.2: + optional: true dir-glob@3.0.1: dependencies: @@ -10944,8 +10540,6 @@ snapshots: electron-to-chromium@1.5.302: {} - emoji-regex@10.6.0: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -11237,8 +10831,6 @@ snapshots: fast-json-stable-stringify@2.1.0: {} - fast-safe-stringify@2.1.1: {} - fast-uri@3.1.0: {} fastq@1.20.1: @@ -11293,10 +10885,6 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-replace@3.0.0: - dependencies: - array-back: 3.1.0 - find-up@6.3.0: dependencies: locate-path: 7.2.0 @@ -11330,21 +10918,11 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-extra@6.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fsevents@2.3.3: optional: true function-bind@1.1.2: {} - gemoji@7.1.0: {} - - gemoji@8.1.0: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: @@ -11462,8 +11040,6 @@ snapshots: handle-thing@2.0.1: {} - has-flag@3.0.0: {} - has-flag@4.0.0: {} has-property-descriptors@1.0.2: @@ -11478,11 +11054,6 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-embedded@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-is-element: 3.0.0 - hast-util-from-html@1.0.2: dependencies: '@types/hast': 2.3.10 @@ -11492,15 +11063,6 @@ snapshots: vfile-message: 3.1.4 optional: true - hast-util-from-html@2.0.3: - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.3 - parse5: 7.3.0 - vfile: 6.0.3 - vfile-message: 4.0.3 - hast-util-from-parse5@7.1.2: dependencies: '@types/hast': 2.3.10 @@ -11523,18 +11085,6 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 - hast-util-has-property@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-body-ok-link@3.0.1: - dependencies: - '@types/hast': 3.0.4 - - hast-util-is-element@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-parse-selector@3.1.1: dependencies: '@types/hast': 2.3.10 @@ -11544,14 +11094,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-phrasing@3.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-embedded: 3.0.0 - hast-util-has-property: 3.0.0 - hast-util-is-body-ok-link: 3.0.1 - hast-util-is-element: 3.0.0 - hast-util-raw@9.1.0: dependencies: '@types/hast': 3.0.4 @@ -11610,20 +11152,6 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.5: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.8 @@ -11644,21 +11172,6 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-nlcst@4.0.0: - dependencies: - '@types/hast': 3.0.4 - '@types/nlcst': 2.0.3 - '@types/unist': 3.0.3 - hast-util-embedded: 3.0.0 - hast-util-is-element: 3.0.0 - hast-util-phrasing: 3.0.1 - hast-util-to-string: 2.0.0 - hast-util-whitespace: 3.0.0 - nlcst-to-string: 4.0.0 - unist-util-position: 5.0.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - hast-util-to-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 @@ -11669,10 +11182,6 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-string@2.0.0: - dependencies: - '@types/hast': 2.3.10 - hast-util-whitespace@2.0.1: optional: true @@ -11916,7 +11425,8 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-buffer@2.0.5: {} + is-buffer@2.0.5: + optional: true is-ci@3.0.1: dependencies: @@ -12044,8 +11554,6 @@ snapshots: json-buffer@3.0.1: {} - json-parse-better-errors@1.0.2: {} - json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -12054,32 +11562,12 @@ snapshots: json5@2.2.3: {} - jsonc@2.0.0: - dependencies: - fast-safe-stringify: 2.1.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - parse-json: 4.0.0 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - junit-report-builder@3.2.1: - dependencies: - date-format: 4.0.3 - lodash: 4.17.23 - make-dir: 3.1.0 - xmlbuilder: 15.1.1 - katex@0.16.28: dependencies: commander: 8.3.0 @@ -12098,7 +11586,8 @@ snapshots: kleur@3.0.3: {} - kleur@4.1.5: {} + kleur@4.1.5: + optional: true langium@4.2.1: dependencies: @@ -12141,14 +11630,10 @@ snapshots: lodash-es@4.17.23: {} - lodash.camelcase@4.3.0: {} - lodash.debounce@4.0.8: {} lodash.memoize@4.1.2: {} - lodash.padend@4.6.1: {} - lodash.uniq@4.5.0: {} lodash@4.17.23: {} @@ -12176,10 +11661,6 @@ snapshots: lunr@2.3.9: {} - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - mark.js@8.11.1: {} markdown-extensions@2.0.0: {} @@ -12231,6 +11712,7 @@ snapshots: uvu: 0.5.6 transitivePeerDependencies: - supports-color + optional: true mdast-util-from-markdown@2.0.3: dependencies: @@ -12249,12 +11731,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@1.0.1: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.1.1 - mdast-util-frontmatter@2.0.1: dependencies: '@types/mdast': 4.0.4 @@ -12427,6 +11903,7 @@ snapshots: dependencies: '@types/mdast': 3.0.15 unist-util-is: 5.2.1 + optional: true mdast-util-phrasing@4.1.0: dependencies: @@ -12455,6 +11932,7 @@ snapshots: micromark-util-decode-string: 1.1.0 unist-util-visit: 4.1.2 zwitch: 2.0.4 + optional: true mdast-util-to-markdown@2.1.2: dependencies: @@ -12468,19 +11946,10 @@ snapshots: unist-util-visit: 5.1.0 zwitch: 2.0.4 - mdast-util-to-nlcst@5.2.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/nlcst': 1.0.4 - '@types/unist': 2.0.11 - nlcst-to-string: 3.1.1 - unist-util-position: 4.0.4 - vfile: 5.3.7 - vfile-location: 4.1.0 - mdast-util-to-string@3.2.0: dependencies: '@types/mdast': 3.0.15 + optional: true mdast-util-to-string@4.0.0: dependencies: @@ -12581,6 +12050,7 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 + optional: true micromark-core-commonmark@2.0.3: dependencies: @@ -12611,13 +12081,6 @@ snapshots: micromark-util-types: 2.0.2 parse-entities: 4.0.2 - micromark-extension-frontmatter@1.1.1: - dependencies: - fault: 2.0.1 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 @@ -12795,6 +12258,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + optional: true micromark-factory-destination@2.0.1: dependencies: @@ -12808,6 +12272,7 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 + optional: true micromark-factory-label@2.0.1: dependencies: @@ -12856,6 +12321,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + optional: true micromark-factory-title@2.0.1: dependencies: @@ -12870,6 +12336,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + optional: true micromark-factory-whitespace@2.0.1: dependencies: @@ -12891,6 +12358,7 @@ snapshots: micromark-util-chunked@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + optional: true micromark-util-chunked@2.0.1: dependencies: @@ -12901,6 +12369,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 + optional: true micromark-util-classify-character@2.0.1: dependencies: @@ -12912,6 +12381,7 @@ snapshots: dependencies: micromark-util-chunked: 1.1.0 micromark-util-types: 1.1.0 + optional: true micromark-util-combine-extensions@2.0.1: dependencies: @@ -12921,6 +12391,7 @@ snapshots: micromark-util-decode-numeric-character-reference@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + optional: true micromark-util-decode-numeric-character-reference@2.0.2: dependencies: @@ -12932,6 +12403,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-decode-numeric-character-reference: 1.1.0 micromark-util-symbol: 1.1.0 + optional: true micromark-util-decode-string@2.0.1: dependencies: @@ -12940,7 +12412,8 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-encode@1.1.0: {} + micromark-util-encode@1.1.0: + optional: true micromark-util-encode@2.0.1: {} @@ -12966,13 +12439,15 @@ snapshots: micromark-util-types: 2.0.2 vfile-message: 4.0.3 - micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@1.2.0: + optional: true micromark-util-html-tag-name@2.0.1: {} micromark-util-normalize-identifier@1.1.0: dependencies: micromark-util-symbol: 1.1.0 + optional: true micromark-util-normalize-identifier@2.0.1: dependencies: @@ -12981,6 +12456,7 @@ snapshots: micromark-util-resolve-all@1.1.0: dependencies: micromark-util-types: 1.1.0 + optional: true micromark-util-resolve-all@2.0.1: dependencies: @@ -12991,6 +12467,7 @@ snapshots: micromark-util-character: 1.2.0 micromark-util-encode: 1.1.0 micromark-util-symbol: 1.1.0 + optional: true micromark-util-sanitize-uri@2.0.1: dependencies: @@ -13004,6 +12481,7 @@ snapshots: micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 uvu: 0.5.6 + optional: true micromark-util-subtokenize@2.1.0: dependencies: @@ -13041,6 +12519,7 @@ snapshots: uvu: 0.5.6 transitivePeerDependencies: - supports-color + optional: true micromark@4.0.2: dependencies: @@ -13112,10 +12591,6 @@ snapshots: mitt@3.0.1: optional: true - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - mlly@1.8.0: dependencies: acorn: 8.16.0 @@ -13123,7 +12598,8 @@ snapshots: pkg-types: 1.3.1 ufo: 1.6.3 - mri@1.2.0: {} + mri@1.2.0: + optional: true mrmime@2.0.1: {} @@ -13147,46 +12623,6 @@ snapshots: netmask@2.0.2: optional: true - nlcst-affix-emoticon-modifier@2.1.1: - dependencies: - '@types/nlcst': 1.0.4 - '@types/unist': 2.0.11 - nlcst-emoticon-modifier: 2.1.1 - unist-util-modify-children: 3.1.1 - - nlcst-emoji-modifier@5.2.0: - dependencies: - '@types/nlcst': 1.0.4 - emoji-regex: 10.6.0 - gemoji: 8.1.0 - nlcst-emoticon-modifier: 2.1.1 - nlcst-to-string: 3.1.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - - nlcst-emoticon-modifier@2.1.1: - dependencies: - '@types/nlcst': 1.0.4 - '@types/unist': 2.0.11 - emoticon: 4.1.0 - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - - nlcst-is-literal@2.1.1: - dependencies: - '@types/nlcst': 1.0.4 - '@types/unist': 2.0.11 - nlcst-to-string: 3.1.1 - - nlcst-to-string@3.1.1: - dependencies: - '@types/nlcst': 1.0.4 - - nlcst-to-string@4.0.0: - dependencies: - '@types/nlcst': 2.0.3 - no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -13211,10 +12647,6 @@ snapshots: nprogress@0.2.0: {} - nspell@2.1.5: - dependencies: - is-buffer: 2.0.5 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -13225,8 +12657,6 @@ snapshots: schema-utils: 3.3.0 webpack: 5.105.2 - number-to-words@1.2.4: {} - object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -13353,11 +12783,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@4.0.0: - dependencies: - error-ex: 1.3.4 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.29.0 @@ -13365,21 +12790,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-latin@5.0.1: - dependencies: - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - unist-util-visit-children: 2.0.2 - - parse-latin@7.0.0: - dependencies: - '@types/nlcst': 2.0.3 - '@types/unist': 3.0.3 - nlcst-to-string: 4.0.0 - unist-util-modify-children: 4.0.0 - unist-util-visit-children: 3.0.0 - vfile: 6.0.3 - parse-numeric-range@1.3.0: {} parse5-htmlparser2-tree-adapter@7.1.0: @@ -13431,10 +12841,6 @@ snapshots: picomatch@2.3.1: {} - pkg-dir@6.0.1: - dependencies: - find-up: 6.3.0 - pkg-dir@7.0.0: dependencies: find-up: 6.3.0 @@ -14022,8 +13428,6 @@ snapshots: quick-lru@5.1.1: {} - quotation@2.0.3: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -14146,8 +13550,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - reduce-flatten@1.0.1: {} - reflect-metadata@0.2.2: {} regenerate-unicode-properties@10.2.2: @@ -14179,12 +13581,6 @@ snapshots: dependencies: jsesc: 3.1.0 - rehype-parse@9.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-from-html: 2.0.3 - unified: 11.0.5 - rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 @@ -14199,28 +13595,6 @@ snapshots: transitivePeerDependencies: - supports-color - rehype-retext@5.0.1: - dependencies: - '@types/hast': 3.0.4 - '@types/nlcst': 2.0.3 - hast-util-to-nlcst: 4.0.0 - parse-latin: 7.0.0 - unified: 11.0.5 - vfile: 6.0.3 - - rehype-stringify@10.0.1: - dependencies: - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 - unified: 11.0.5 - - rehype@13.0.2: - dependencies: - '@types/hast': 3.0.4 - rehype-parse: 9.0.1 - rehype-stringify: 10.0.1 - unified: 11.0.5 - relateurl@0.2.7: {} remark-directive@3.0.1: @@ -14240,13 +13614,6 @@ snapshots: node-emoji: 2.2.0 unified: 11.0.5 - remark-frontmatter@4.0.1: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.1.1 - unified: 10.1.2 - remark-frontmatter@5.0.0: dependencies: '@types/mdast': 4.0.4 @@ -14274,14 +13641,6 @@ snapshots: transitivePeerDependencies: - supports-color - remark-parse@10.0.2: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 @@ -14299,34 +13658,12 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - remark-retext@5.0.1: - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.11 - mdast-util-to-nlcst: 5.2.1 - unified: 10.1.2 - - remark-stringify@10.0.3: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - unified: 10.1.2 - remark-stringify@11.0.0: dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - remark@14.0.3: - dependencies: - '@types/mdast': 3.0.15 - remark-parse: 10.0.2 - remark-stringify: 10.0.3 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - renderkid@3.0.0: dependencies: css-select: 4.3.0 @@ -14337,8 +13674,6 @@ snapshots: repeat-string@1.6.1: {} - replace-ext@1.0.0: {} - require-directory@2.1.1: optional: true @@ -14366,83 +13701,6 @@ snapshots: dependencies: lowercase-keys: 3.0.0 - retext-emoji@8.1.0: - dependencies: - '@types/nlcst': 1.0.4 - emoticon: 4.1.0 - gemoji: 7.1.0 - nlcst-affix-emoticon-modifier: 2.1.1 - nlcst-emoji-modifier: 5.2.0 - nlcst-emoticon-modifier: 2.1.1 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-visit: 4.1.2 - - retext-indefinite-article@4.3.0: - dependencies: - '@types/nlcst': 1.0.4 - format: 0.2.2 - nlcst-to-string: 3.1.1 - number-to-words: 1.2.4 - unified: 10.1.2 - unist-util-visit: 4.1.2 - - retext-latin@3.1.0: - dependencies: - '@types/nlcst': 1.0.4 - parse-latin: 5.0.1 - unherit: 3.0.1 - unified: 10.1.2 - - retext-repeated-words@4.2.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - - retext-spell@5.3.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-is-literal: 2.1.1 - nlcst-to-string: 3.1.1 - nspell: 2.1.5 - quotation: 2.0.3 - unified: 10.1.2 - unist-util-visit: 4.1.2 - - retext-stringify@3.1.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - - retext-syntax-mentions@3.1.0: - dependencies: - '@types/nlcst': 1.0.4 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - - retext-syntax-urls@3.1.2: - dependencies: - '@types/nlcst': 1.0.4 - '@types/unist': 2.0.11 - ccount: 2.0.1 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-modify-children: 3.1.1 - unist-util-position: 4.0.4 - - retext@8.1.0: - dependencies: - '@types/nlcst': 1.0.4 - retext-latin: 3.1.0 - retext-stringify: 3.1.0 - unified: 10.1.2 - retry@0.13.1: {} reusify@1.1.0: {} @@ -14474,6 +13732,7 @@ snapshots: sade@1.8.1: dependencies: mri: 1.2.0 + optional: true safe-buffer@5.1.2: {} @@ -14718,43 +13977,6 @@ snapshots: transitivePeerDependencies: - supports-color - spellchecker-cli@7.0.2: - dependencies: - chalk: 2.4.2 - command-line-args: 5.2.1 - command-line-usage: 5.0.5 - dictionary-en: 3.2.0 - dictionary-en-au: 2.4.0 - dictionary-en-ca: 2.4.0 - dictionary-en-gb: 2.4.0 - dictionary-en-za: 2.2.0 - dictionary-vi: 2.2.0 - fs-extra: 6.0.1 - globby: 11.1.0 - js-yaml: 4.1.1 - jsonc: 2.0.0 - junit-report-builder: 3.2.1 - lodash: 4.17.23 - pkg-dir: 6.0.1 - rehype: 13.0.2 - rehype-retext: 5.0.1 - remark: 14.0.3 - remark-frontmatter: 4.0.1 - remark-retext: 5.0.1 - retext: 8.1.0 - retext-emoji: 8.1.0 - retext-indefinite-article: 4.3.0 - retext-repeated-words: 4.2.0 - retext-spell: 5.3.0 - retext-syntax-mentions: 3.1.0 - retext-syntax-urls: 3.1.2 - toml: 3.0.0 - unist-util-visit: 1.4.1 - vfile: 3.0.1 - vfile-reporter: 6.0.2 - transitivePeerDependencies: - - supports-color - sprintf-js@1.0.3: {} srcset@4.0.0: {} @@ -14816,8 +14038,6 @@ snapshots: strip-bom-string@1.0.0: {} - strip-bom@4.0.0: {} - strip-final-newline@2.0.0: {} strip-json-comments@2.0.1: {} @@ -14845,14 +14065,6 @@ snapshots: stylis@4.3.6: {} - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@6.1.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -14875,14 +14087,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - table-layout@0.4.5: - dependencies: - array-back: 2.0.0 - deep-extend: 0.6.0 - lodash.padend: 4.6.1 - typical: 2.6.1 - wordwrapjs: 3.0.0 - tapable@2.3.0: {} tar-fs@3.1.1: @@ -14962,8 +14166,6 @@ snapshots: toidentifier@1.0.1: {} - toml@3.0.0: {} - totalist@3.0.1: {} tree-dump@1.1.0(tslib@2.8.1): @@ -15008,10 +14210,6 @@ snapshots: typescript@5.9.3: {} - typical@2.6.1: {} - - typical@4.0.0: {} - ufo@1.6.3: {} unbzip2-stream@1.4.3: @@ -15024,8 +14222,6 @@ snapshots: undici@7.22.0: {} - unherit@3.0.1: {} - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-emoji-modifier-base@1.0.0: {} @@ -15039,16 +14235,6 @@ snapshots: unicode-property-aliases-ecmascript@2.2.0: {} - unified@10.1.2: - dependencies: - '@types/unist': 2.0.11 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 5.3.7 - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -15063,28 +14249,15 @@ snapshots: dependencies: crypto-random-string: 4.0.0 - unist-util-generated@2.0.1: {} - - unist-util-is@3.0.0: {} - unist-util-is@5.2.1: dependencies: '@types/unist': 2.0.11 + optional: true unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 - unist-util-modify-children@3.1.1: - dependencies: - '@types/unist': 2.0.11 - array-iterate: 2.0.1 - - unist-util-modify-children@4.0.0: - dependencies: - '@types/unist': 3.0.3 - array-iterate: 2.0.1 - unist-util-position-from-estree@1.1.2: dependencies: '@types/unist': 2.0.11 @@ -15097,6 +14270,7 @@ snapshots: unist-util-position@4.0.4: dependencies: '@types/unist': 2.0.11 + optional: true unist-util-position@5.0.0: dependencies: @@ -15108,51 +14282,32 @@ snapshots: unist-util-visit: 4.1.2 optional: true - unist-util-stringify-position@1.1.2: {} - - unist-util-stringify-position@2.0.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-stringify-position@3.0.3: dependencies: '@types/unist': 2.0.11 + optional: true unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-visit-children@2.0.2: - dependencies: - '@types/unist': 2.0.11 - - unist-util-visit-children@3.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@2.1.2: - dependencies: - unist-util-is: 3.0.0 - unist-util-visit-parents@5.1.3: dependencies: '@types/unist': 2.0.11 unist-util-is: 5.2.1 + optional: true unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 - unist-util-visit@1.4.1: - dependencies: - unist-util-visit-parents: 2.1.2 - unist-util-visit@4.1.2: dependencies: '@types/unist': 2.0.11 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 + optional: true unist-util-visit@5.1.0: dependencies: @@ -15160,8 +14315,6 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - universalify@0.1.2: {} - universalify@2.0.1: {} unpipe@1.0.0: {} @@ -15223,6 +14376,7 @@ snapshots: diff: 5.2.2 kleur: 4.1.5 sade: 1.8.1 + optional: true value-equal@1.0.1: {} @@ -15232,52 +14386,31 @@ snapshots: dependencies: '@types/unist': 2.0.11 vfile: 5.3.7 + optional: true vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 vfile: 6.0.3 - vfile-message@1.1.1: - dependencies: - unist-util-stringify-position: 1.1.2 - vfile-message@3.1.4: dependencies: '@types/unist': 2.0.11 unist-util-stringify-position: 3.0.3 + optional: true vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 - vfile-reporter@6.0.2: - dependencies: - repeat-string: 1.6.1 - string-width: 4.2.3 - supports-color: 6.1.0 - unist-util-stringify-position: 2.0.3 - vfile-sort: 2.2.2 - vfile-statistics: 1.1.4 - - vfile-sort@2.2.2: {} - - vfile-statistics@1.1.4: {} - - vfile@3.0.1: - dependencies: - is-buffer: 2.0.5 - replace-ext: 1.0.0 - unist-util-stringify-position: 1.1.2 - vfile-message: 1.1.1 - vfile@5.3.7: dependencies: '@types/unist': 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + optional: true vfile@6.0.3: dependencies: @@ -15464,11 +14597,6 @@ snapshots: wildcard@2.0.1: {} - wordwrapjs@3.0.0: - dependencies: - reduce-flatten: 1.0.1 - typical: 2.6.1 - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -15505,8 +14633,6 @@ snapshots: dependencies: sax: 1.4.4 - xmlbuilder@15.1.1: {} - y18n@5.0.8: optional: true diff --git a/f3-sidecar/README.md b/f3-sidecar/README.md index 19739287ff16..84f5cb3ed0a9 100644 --- a/f3-sidecar/README.md +++ b/f3-sidecar/README.md @@ -3,8 +3,8 @@ In addition to the Rust toolchain, Go toolchain is required to build the `f3-sidecar`. The Go version is specified in `go.mod`. -Follow https://go.dev/doc/install or use one of the version managers of Go. -(e.g. https://github.com/voidint/g?tab=readme-ov-file#installation) +Follow or use one of the version managers of Go. +(e.g. ) ### EC tests @@ -13,7 +13,7 @@ Follow https://go.dev/doc/install or use one of the version managers of Go. ### Run sidecar -- run a forest node on calibnet (make sure to save jwt token with +- run a forest node on calibnet (make sure to save JWT token with `--save-token jwt_path`) - import a shared miner key for testing `forest-wallet --remote-wallet import` (the shared miner worker key can be found in `scripts/tests/api_compare/.env`) diff --git a/mise-tasks/lint/spellcheck-markdown.sh b/mise-tasks/lint/spellcheck-markdown.sh new file mode 100755 index 000000000000..3a9a0bb4361a --- /dev/null +++ b/mise-tasks/lint/spellcheck-markdown.sh @@ -0,0 +1,31 @@ +#!/bin/bash +#MISE description="Run cargo-spellcheck to check for spelling errors in Markdown files." + +# cargo-spellcheck has a bug where leading HTML blocks cause the rest of the +# file to be silently skipped. Work around this by stripping leading HTML +# before checking. See https://github.com/drahnr/cargo-spellcheck/issues/357 +set -euo pipefail + +TMPDIR=$(mktemp -d) +trap "rm -rf $TMPDIR" EXIT + +FILES=$(find . -name "*.md" \ + -not -path "*/node_modules/*" \ + -not -path "*/target/*" \ + -not -path "*/.git/*" \ + -not -path "*/CHANGELOG.md") + +for f in $FILES; do + DEST="$TMPDIR/$f" + mkdir -p "$(dirname "$DEST")" + # Strip leading HTML blocks (lines starting with < or blank, before first non-HTML line) + awk ' + BEGIN { in_leading_html = 1 } + in_leading_html && /^[[:space:]]*$/ { next } + in_leading_html && /^[[:space:]]* "$DEST" +done + +cargo spellcheck check --code 1 $TMPDIR/*.md $TMPDIR/**/*.md \ + || (echo "See .config/spellcheck.md for tips"; false) diff --git a/mise.toml b/mise.toml index 6223231eddcc..e3455b3186bb 100644 --- a/mise.toml +++ b/mise.toml @@ -30,11 +30,14 @@ cargo deny check bans licenses sources || (echo "See deny.toml"; false) ''' [tasks."lint:spellcheck"] -description = "Run cargo-spellcheck to check for spelling errors." +description = "Run cargo-spellcheck to check for spelling errors in Rust code." run = ''' cargo spellcheck --code 1 || (echo "See .config/spellcheck.md for tips"; false) ''' + + + [tasks."lint:toml"] description = "Run taplo-cli to check TOML files." run = ''' @@ -137,7 +140,6 @@ run = ''' pnpm i --frozen-lockfile pnpm generate:rpc-reference pnpm typecheck -pnpm spellcheck pnpm format-check ''' @@ -212,23 +214,30 @@ run = ''' cargo llvm-cov -p forest-filecoin --codecov --no-default-features --features "test cargo-test" --output-path lcov.info ''' -[tasks."docs:format-spellcheck-dictionary"] +[tasks."format-spellcheck-dictionary"] description = "Format and deduplicate the spellcheck dictionary." -dir = "docs" run = ''' TMPFILE=$(mktemp) -cat dictionary.txt | sort --ignore-case | uniq > "$TMPFILE" -mv "$TMPFILE" dictionary.txt +# Skip first line (word count), sort, deduplicate, then re-add count +tail -n +2 .config/forest.dic | sort --ignore-case | uniq > "$TMPFILE" +COUNT=$(wc -l < "$TMPFILE") +{ echo "$COUNT"; cat "$TMPFILE"; } > .config/forest.dic +rm "$TMPFILE" ''' -[tasks."docs:format-spellcheck-dictionary-check"] +[tasks."format-spellcheck-dictionary-check"] description = "Check if spellcheck dictionary is properly formatted." -dir = "docs" run = ''' TMPFILE=$(mktemp) trap "rm -f $TMPFILE" EXIT -cat dictionary.txt | sort --ignore-case | uniq > "$TMPFILE" -diff dictionary.txt "$TMPFILE" +tail -n +2 .config/forest.dic | sort --ignore-case | uniq > "$TMPFILE" +COUNT=$(wc -l < "$TMPFILE") +EXPECTED=$(head -1 .config/forest.dic) +if [ "$COUNT" != "$EXPECTED" ]; then + echo "Word count mismatch: expected $EXPECTED, got $COUNT" + exit 1 +fi +tail -n +2 .config/forest.dic | diff - "$TMPFILE" ''' [tools] diff --git a/src/rpc/error.rs b/src/rpc/error.rs index 68125b83f828..42397c031d63 100644 --- a/src/rpc/error.rs +++ b/src/rpc/error.rs @@ -60,7 +60,7 @@ impl ServerError { pub fn known_code(&self) -> ErrorCode { self.inner.code().into() } - /// We are only including this method to get the JSON Schemas for our OpenRPC + /// We are only including this method to get the JSON schemas for our OpenRPC /// machinery pub fn stubbed_for_openrpc() -> Self { Self::new( diff --git a/src/shim/actors/builtin/miner/mod.rs b/src/shim/actors/builtin/miner/mod.rs index 1293069f7691..cc4e49f18a00 100644 --- a/src/shim/actors/builtin/miner/mod.rs +++ b/src/shim/actors/builtin/miner/mod.rs @@ -1215,11 +1215,11 @@ impl From for SectorOnChainInfo { pub struct DeadlineInfo { /// Epoch at which this info was calculated. pub current_epoch: ChainEpoch, - /// First epoch of the proving period (<= CurrentEpoch). + /// First epoch of the proving period (<= `CurrentEpoch`). pub period_start: ChainEpoch, - /// Current deadline index, in [0..WPoStProvingPeriodDeadlines). + /// Current deadline index, in \[0..`WPoStProvingPeriodDeadlines`). pub index: u64, - /// First epoch from which a proof may be submitted (>= CurrentEpoch). + /// First epoch from which a proof may be submitted (>= `CurrentEpoch`). pub open: ChainEpoch, /// First epoch from which a proof may no longer be submitted (>= Open). pub close: ChainEpoch,