diff --git a/docs/HyperIndex/Guides/configuration-file.mdx b/docs/HyperIndex/Guides/configuration-file.mdx
index 6088904d..a4e6bef2 100644
--- a/docs/HyperIndex/Guides/configuration-file.mdx
+++ b/docs/HyperIndex/Guides/configuration-file.mdx
@@ -27,17 +27,17 @@ name: Greeter
description: Greeter Indexer Example
contracts:
- - name: Greeter
- abi:
- - event: "NewGreeting(address user, string greeting)"
- - event: "ClearGreeting(address user)"
+ - name: Greeter
+ abi:
+ - event: "NewGreeting(address user, string greeting)"
+ - event: "ClearGreeting(address user)"
networks:
- - id: 1 # ethereum-mainnet
- start_block: 12345678
- contracts:
- - name: Greeter
- address: 0x9D02A17dE4E68545d3a58D3a20BbBE0399E05c9c
+ - id: 1 # ethereum-mainnet
+ start_block: 12345678
+ contracts:
+ - name: Greeter
+ address: 0x9D02A17dE4E68545d3a58D3a20BbBE0399E05c9c
```
---
@@ -63,10 +63,10 @@ address: 0xContractAddress
```yaml
contracts:
- - name: MyContract
- address:
- - 0xAddress1
- - 0xAddress2
+ - name: MyContract
+ address:
+ - 0xAddress1
+ - 0xAddress2
```
:::tip
@@ -78,14 +78,14 @@ You can also avoid repeating addresses by using global contract definitions:
```yaml
contracts:
- - name: Greeter
- abi: greeter.json
+ - name: Greeter
+ abi: greeter.json
networks:
- - id: ethereum-mainnet
- contracts:
- - name: Greeter
- address: 0xProxyAddressHere
+ - id: ethereum-mainnet
+ contracts:
+ - name: Greeter
+ address: 0xProxyAddressHere
```
---
@@ -94,26 +94,26 @@ networks:
By default, contracts use the network `start_block`. Starting from `envio@2.27`, you can set a per-contract `start_block` to override it. Handy when:
-- Contracts were deployed at different blocks
-- You only need data from a contract starting at a specific block
-- You want to skip unnecessary historical data for some contracts
-- Works nicely with [Dynamic Contract Registration](/docs/HyperIndex/dynamic-contracts)
+- Contracts were deployed at different blocks
+- You only need data from a contract starting at a specific block
+- You want to skip unnecessary historical data for some contracts
+- Works nicely with [Dynamic Contract Registration](/docs/HyperIndex/dynamic-contracts)
**Example with optional per-contract start_block override:**
```yaml
networks:
- - id: 1 # ethereum-mainnet
- start_block: 18000000 # Default start block for all contracts on this network
- contracts:
- - name: ERC20Token
- address:
- - 0x1111111111111111111111111111111111111111
- - 0x2222222222222222222222222222222222222222
- start_block: 18500000 # Override for this contract
- - name: Greeter
- address: 0x9D02A17dE4E68545d3a58D3a20BbBE0399E05c9c
- # Uses network default (18000000)
+ - id: 1 # ethereum-mainnet
+ start_block: 18000000 # Default start block for all contracts on this network
+ contracts:
+ - name: ERC20Token
+ address:
+ - 0x1111111111111111111111111111111111111111
+ - 0x2222222222222222222222222222222222222222
+ start_block: 18500000 # Override for this contract
+ - name: Greeter
+ address: 0x9D02A17dE4E68545d3a58D3a20BbBE0399E05c9c
+ # Uses network default (18000000)
```
---
@@ -124,8 +124,8 @@ Define specific events to index in a human-readable format:
```yaml
events:
- - event: "NewGreeting(address user, string greeting)"
- - event: "ClearGreeting(address user)"
+ - event: "NewGreeting(address user, string greeting)"
+ - event: "ClearGreeting(address user)"
```
By default, all events defined in the contract are indexed, but you can selectively disable them by removing them from this list.
@@ -138,9 +138,9 @@ a more descriptive name in your Envio project.
```yaml
events:
- - event: Assigned(address indexed recipientId, uint256 amount, address token)
- - event: Assigned(address indexed recipientId, uint256 amount, address token, address sender)
- name: AssignedWithSender
+ - event: Assigned(address indexed recipientId, uint256 amount, address token)
+ - event: Assigned(address indexed recipientId, uint256 amount, address token, address sender)
+ name: AssignedWithSender
```
---
@@ -157,9 +157,9 @@ raw_events: true
When enabled, all indexed events will be stored in the `raw_events` table in the database, which you can view through the Hasura interface. This is particularly useful for:
-- Debugging event processing issues
-- Verifying that events are being captured correctly
-- Creating custom queries against raw blockchain data
+- Debugging event processing issues
+- Verifying that events are being captured correctly
+- Creating custom queries against raw blockchain data
Note that enabling this option will increase database storage requirements and may slightly impact indexing performance.
@@ -173,15 +173,15 @@ To access fields that are not provided by default, specify them using the `field
```yaml
events:
- - event: "Assigned(address indexed user, uint256 amount)"
- field_selection:
- transaction_fields:
- - transactionIndex
- block_fields:
- - timestamp
+ - event: "Assigned(address indexed user, uint256 amount)"
+ field_selection:
+ transaction_fields:
+ - transactionIndex
+ block_fields:
+ - timestamp
```
-See all possible options in the [Config File Reference](/docs/HyperIndex/config-schema-reference#transactionfield) or use IDE autocomplete for your help.
+See all possible options in the [Config File Reference](/docs/HyperIndex/config-schema-reference#fieldselection) or use IDE autocomplete for your help.
#### Global Field Selection
@@ -189,11 +189,11 @@ You can also specify fields globally for all events in the root of the config fi
```yaml
field_selection:
- transaction_fields:
- - hash
- - gasUsed
- block_fields:
- - parentHash
+ transaction_fields:
+ - hash
+ - gasUsed
+ block_fields:
+ - parentHash
```
Try to use this option sparingly as it can cause redundant Data Source calls and increased credits usage.
@@ -242,9 +242,9 @@ preload_handlers: true # default is false
Be aware of:
-- [Double-Run Footgun](/docs/HyperIndex/preload-optimization#double-run-footgun)
-- [Effect API for External Calls](/docs/HyperIndex/effect-api)
-- [Migrating from Loaders](/docs/HyperIndex/preload-optimization#migrating-from-loaders) (recommended)
+- [Double-Run Footgun](/docs/HyperIndex/preload-optimization#double-run-footgun)
+- [Effect API for External Calls](/docs/HyperIndex/effect-api)
+- [Migrating from Loaders](/docs/HyperIndex/preload-optimization#migrating-from-loaders) (recommended)
---
@@ -254,10 +254,10 @@ Since `envio@2.9.0`, environment variable interpolation is supported for flexibi
```yaml
networks:
- - id: ${ENVIO_CHAIN_ID:-ethereum-mainnet}
- contracts:
- - name: Greeter
- address: ${ENVIO_GREETER_ADDRESS}
+ - id: ${ENVIO_CHAIN_ID:-ethereum-mainnet}
+ contracts:
+ - name: Greeter
+ address: ${ENVIO_GREETER_ADDRESS}
```
Run your indexer with custom environment variables:
@@ -268,8 +268,8 @@ ENVIO_CHAIN_ID=optimism ENVIO_GREETER_ADDRESS=0xYourContractAddress pnpm dev
**Interpolation syntax:**
-- `${ENVIO_VAR}` – Use the value of `ENVIO_VAR`
-- `${ENVIO_VAR:-default}` – Use `ENVIO_VAR` if set, otherwise use `default`
+- `${ENVIO_VAR}` – Use the value of `ENVIO_VAR`
+- `${ENVIO_VAR:-default}` – Use `ENVIO_VAR` if set, otherwise use `default`
For more detailed information about environment variables, see our [Environment Variables Guide](./environment-variables).
@@ -312,44 +312,44 @@ name: envio-indexer
unordered_multichain_mode: true
preload_handlers: true
contracts:
- - name: PoolManager
- handler: src/EventHandlers.ts
- events:
- - event: Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)
- - name: PositionManager
- handler: src/EventHandlers.ts
- events:
- - event: Transfer(address indexed from, address indexed to, uint256 indexed id)
+ - name: PoolManager
+ handler: src/EventHandlers.ts
+ events:
+ - event: Swap(bytes32 indexed id, address indexed sender, int128 amount0, int128 amount1, uint160 sqrtPriceX96, uint128 liquidity, int24 tick, uint24 fee)
+ - name: PositionManager
+ handler: src/EventHandlers.ts
+ events:
+ - event: Transfer(address indexed from, address indexed to, uint256 indexed id)
networks:
- - id: 1
- # Keep it 0 and HyperSync will automatically find the first block for your contracts
- start_block: 0
- contracts:
- - name: PositionManager
- address:
- - 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e
- start_block: 18500000 # OPTIONAL: Override for contract deployed later
- - name: PoolManager
- address:
- - "0x000000000004444c5dc75cB358380D2e3dE08A90"
- - id: 10
- start_block: 0
- contracts:
- - name: PositionManager
- address:
- - 0x3C3Ea4B57a46241e54610e5f022e5c45859A1017
- - name: PoolManager
- address:
- - 0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3
- - id: 42161
- start_block: 0
- contracts:
- - name: PositionManager
- address:
- - 0xd88f38f930b7952f2db2432cb002e7abbf3dd869
- - name: PoolManager
- address:
- - 0x360e68faccca8ca495c1b759fd9eee466db9fb32
+ - id: 1
+ # Keep it 0 and HyperSync will automatically find the first block for your contracts
+ start_block: 0
+ contracts:
+ - name: PositionManager
+ address:
+ - 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e
+ start_block: 18500000 # OPTIONAL: Override for contract deployed later
+ - name: PoolManager
+ address:
+ - "0x000000000004444c5dc75cB358380D2e3dE08A90"
+ - id: 10
+ start_block: 0
+ contracts:
+ - name: PositionManager
+ address:
+ - 0x3C3Ea4B57a46241e54610e5f022e5c45859A1017
+ - name: PoolManager
+ address:
+ - 0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3
+ - id: 42161
+ start_block: 0
+ contracts:
+ - name: PositionManager
+ address:
+ - 0xd88f38f930b7952f2db2432cb002e7abbf3dd869
+ - name: PoolManager
+ address:
+ - 0x360e68faccca8ca495c1b759fd9eee466db9fb32
```
---
@@ -358,7 +358,7 @@ networks:
Explore detailed configuration schema parameters here:
-- See the full, deep-linkable reference: [Config Schema Reference](/docs/HyperIndex/config-schema-reference)
+- See the full, deep-linkable reference: [Config Schema Reference](/docs/HyperIndex/config-schema-reference)
:::info For AI/LLM Systems
**Recommended**: Use the [Config Schema Reference](/docs/HyperIndex/config-schema-reference) for programmatic access to schema information. The interactive viewer below is optimized for human users.
diff --git a/docusaurus.config.js b/docusaurus.config.js
index d20123ae..2f1cc753 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -3,231 +3,231 @@ const lightCodeTheme = themes.github;
const darkCodeTheme = themes.dracula;
const redirectsList = [
- {
- from: "/docs",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/quickstart",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/overview",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/getting-started",
- to: "/docs/HyperIndex/getting-started",
- },
- {
- from: "/docs/contract-import",
- to: "/docs/HyperIndex/contract-import",
- },
- {
- from: "/docs/configuration-file",
- to: "/docs/HyperIndex/configuration-file",
- },
- {
- from: "/docs/schema",
- to: "/docs/HyperIndex/schema",
- },
- {
- from: "/docs/event-handlers",
- to: "/docs/HyperIndex/event-handlers",
- },
- {
- from: "/docs/testing",
- to: "/docs/HyperIndex/testing",
- },
- {
- from: "/docs/running-locally",
- to: "/docs/HyperIndex/running-locally",
- },
- {
- from: "/docs/navigating-hasura",
- to: "/docs/HyperIndex/navigating-hasura",
- },
- {
- from: "/docs/cli-commands",
- to: "/docs/HyperIndex/cli-commands",
- },
- {
- from: "/docs/hosted-service",
- to: "/docs/HyperIndex/hosted-service",
- },
- {
- from: "/docs/hosted-service-deployment",
- to: "/docs/HyperIndex/hosted-service-deployment",
- },
- {
- from: "/docs/hosted-service-billing",
- to: "/docs/HyperIndex/hosted-service-billing",
- },
- {
- from: "/docs/licensing",
- to: "/docs/HyperIndex/licensing",
- },
- {
- from: "/docs/fuel",
- to: "/docs/HyperIndex/fuel",
- },
- {
- from: "/docs/tutorial-op-bridge-deposits",
- to: "/docs/HyperIndex/tutorial-op-bridge-deposits",
- },
- {
- from: "/docs/tutorial-erc20-token-transfers",
- to: "/docs/HyperIndex/tutorial-erc20-token-transfers",
- },
- {
- from: "/docs/tutorial-indexing-fuel",
- to: "/docs/HyperIndex/tutorial-indexing-fuel",
- },
- {
- from: "/docs/greeter-tutorial",
- to: "/docs/HyperIndex/greeter-tutorial",
- },
- {
- from: "/docs/linked-entity-loaders",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/HyperIndex/v2/migration-guide-v1-v2",
- to: "/docs/HyperIndex/migration-guide-v1-v2",
- },
- {
- from: "/docs/HyperIndex/linked-entity-loaders",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/dynamic-contracts",
- to: "/docs/HyperIndex/dynamic-contracts",
- },
- {
- from: "/docs/multichain-indexing",
- to: "/docs/HyperIndex/multichain-indexing",
- },
- {
- from: "/docs/hypersync/",
- to: "/docs/HyperIndex/hypersync",
- },
- {
- from: "/docs/rpc-sync",
- to: "/docs/HyperIndex/rpc-sync",
- },
- {
- from: "/docs/persisted_files",
- to: "/docs/HyperIndex/persisted_files",
- },
- {
- from: "/docs/generated-files",
- to: "/docs/HyperIndex/generated-files",
- },
- {
- from: "/docs/terminology",
- to: "/docs/HyperIndex/terminology",
- },
- {
- from: "/docs/async-mode",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/HyperIndex/async-mode",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/labels",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/HyperIndex/labels",
- to: "/docs/HyperIndex/overview",
- },
- {
- from: "/docs/performance",
- to: "/docs/HyperIndex/performance",
- },
- {
- from: "/docs/example-sablier-v2",
- to: "/docs/HyperIndex/example-sablier",
- },
- {
- from: "/docs/example-liquidation-metrics",
- to: "/docs/HyperIndex/example-liquidation-metrics",
- },
- {
- from: "/docs/example-uniswap-v3",
- to: "/docs/HyperIndex/example-uniswap-v4-multi-chain-indexer",
- },
- {
- from: "/docs/example-uniswap-v4",
- to: "/docs/HyperIndex/example-uniswap-v4-multi-chain-indexer",
- },
- {
- from: "/docs/example-ens",
- to: "/docs/HyperIndex/example-ens",
- },
- {
- from: "/docs/logging",
- to: "/docs/HyperIndex/logging",
- },
- {
- from: "/docs/common-issues",
- to: "/docs/HyperIndex/common-issues",
- },
- {
- from: "/docs/error-codes",
- to: "/docs/HyperIndex/error-codes",
- },
- {
- from: "/docs/reserved-words",
- to: "/docs/HyperIndex/reserved-words",
- },
- {
- from: "/docs/hyperfuel",
- to: "/docs/HyperIndex/fuel",
- },
- //// HyperSync
- {
- from: "/docs/overview-hypersync",
- to: "/docs/HyperSync/overview",
- },
- {
- from: "/docs/hypersync-usage",
- to: "/docs/HyperSync/hypersync-usage",
- },
- {
- from: "/docs/hypersync-query",
- to: "/docs/HyperSync/hypersync-query",
- },
- {
- from: "/docs/hypersync-clients",
- to: "/docs/HyperSync/hypersync-clients",
- },
- {
- from: "/docs/hypersync-curl-example",
- to: "/docs/HyperSync/hypersync-curl-examples",
- },
- {
- from: "/docs/hypersync-url-endpoints",
- to: "/docs/HyperSync/hypersync-supported-networks",
- },
- {
- from: "/docs/HyperSync/hypersync-url-endpoints",
- to: "/docs/HyperSync/hypersync-supported-networks",
- },
- {
- from: "/docs/HyperSync/hyperrpc-url-endpoints",
- to: "/docs/HyperRPC/hyperrpc-supported-networks",
- },
- {
- from: "/docs/hyperfuel-query",
- to: "/docs/HyperSync/hyperfuel-query",
- },
- {
- from: "/docs/overview-hyperrpc",
- to: "/docs/HyperRPC/overview-hyperrpc",
- },
+ {
+ from: "/docs",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/quickstart",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/overview",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/getting-started",
+ to: "/docs/HyperIndex/getting-started",
+ },
+ {
+ from: "/docs/contract-import",
+ to: "/docs/HyperIndex/contract-import",
+ },
+ {
+ from: "/docs/configuration-file",
+ to: "/docs/HyperIndex/configuration-file",
+ },
+ {
+ from: "/docs/schema",
+ to: "/docs/HyperIndex/schema",
+ },
+ {
+ from: "/docs/event-handlers",
+ to: "/docs/HyperIndex/event-handlers",
+ },
+ {
+ from: "/docs/testing",
+ to: "/docs/HyperIndex/testing",
+ },
+ {
+ from: "/docs/running-locally",
+ to: "/docs/HyperIndex/running-locally",
+ },
+ {
+ from: "/docs/navigating-hasura",
+ to: "/docs/HyperIndex/navigating-hasura",
+ },
+ {
+ from: "/docs/cli-commands",
+ to: "/docs/HyperIndex/cli-commands",
+ },
+ {
+ from: "/docs/hosted-service",
+ to: "/docs/HyperIndex/hosted-service",
+ },
+ {
+ from: "/docs/hosted-service-deployment",
+ to: "/docs/HyperIndex/hosted-service-deployment",
+ },
+ {
+ from: "/docs/hosted-service-billing",
+ to: "/docs/HyperIndex/hosted-service-billing",
+ },
+ {
+ from: "/docs/licensing",
+ to: "/docs/HyperIndex/licensing",
+ },
+ {
+ from: "/docs/fuel",
+ to: "/docs/HyperIndex/fuel",
+ },
+ {
+ from: "/docs/tutorial-op-bridge-deposits",
+ to: "/docs/HyperIndex/tutorial-op-bridge-deposits",
+ },
+ {
+ from: "/docs/tutorial-erc20-token-transfers",
+ to: "/docs/HyperIndex/tutorial-erc20-token-transfers",
+ },
+ {
+ from: "/docs/tutorial-indexing-fuel",
+ to: "/docs/HyperIndex/tutorial-indexing-fuel",
+ },
+ {
+ from: "/docs/greeter-tutorial",
+ to: "/docs/HyperIndex/greeter-tutorial",
+ },
+ {
+ from: "/docs/linked-entity-loaders",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/HyperIndex/v2/migration-guide-v1-v2",
+ to: "/docs/HyperIndex/migration-guide-v1-v2",
+ },
+ {
+ from: "/docs/HyperIndex/linked-entity-loaders",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/dynamic-contracts",
+ to: "/docs/HyperIndex/dynamic-contracts",
+ },
+ {
+ from: "/docs/multichain-indexing",
+ to: "/docs/HyperIndex/multichain-indexing",
+ },
+ {
+ from: "/docs/hypersync/",
+ to: "/docs/HyperIndex/hypersync",
+ },
+ {
+ from: "/docs/rpc-sync",
+ to: "/docs/HyperIndex/rpc-sync",
+ },
+ {
+ from: "/docs/persisted_files",
+ to: "/docs/HyperIndex/persisted_files",
+ },
+ {
+ from: "/docs/generated-files",
+ to: "/docs/HyperIndex/generated-files",
+ },
+ {
+ from: "/docs/terminology",
+ to: "/docs/HyperIndex/terminology",
+ },
+ {
+ from: "/docs/async-mode",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/HyperIndex/async-mode",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/labels",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/HyperIndex/labels",
+ to: "/docs/HyperIndex/overview",
+ },
+ {
+ from: "/docs/performance",
+ to: "/docs/HyperIndex/performance",
+ },
+ {
+ from: "/docs/example-sablier-v2",
+ to: "/docs/HyperIndex/example-sablier",
+ },
+ {
+ from: "/docs/example-liquidation-metrics",
+ to: "/docs/HyperIndex/example-liquidation-metrics",
+ },
+ {
+ from: "/docs/example-uniswap-v3",
+ to: "/docs/HyperIndex/example-uniswap-v4-multi-chain-indexer",
+ },
+ {
+ from: "/docs/example-uniswap-v4",
+ to: "/docs/HyperIndex/example-uniswap-v4-multi-chain-indexer",
+ },
+ {
+ from: "/docs/example-ens",
+ to: "/docs/HyperIndex/example-ens",
+ },
+ {
+ from: "/docs/logging",
+ to: "/docs/HyperIndex/logging",
+ },
+ {
+ from: "/docs/common-issues",
+ to: "/docs/HyperIndex/common-issues",
+ },
+ {
+ from: "/docs/error-codes",
+ to: "/docs/HyperIndex/error-codes",
+ },
+ {
+ from: "/docs/reserved-words",
+ to: "/docs/HyperIndex/reserved-words",
+ },
+ {
+ from: "/docs/hyperfuel",
+ to: "/docs/HyperIndex/fuel",
+ },
+ //// HyperSync
+ {
+ from: "/docs/overview-hypersync",
+ to: "/docs/HyperSync/overview",
+ },
+ {
+ from: "/docs/hypersync-usage",
+ to: "/docs/HyperSync/hypersync-usage",
+ },
+ {
+ from: "/docs/hypersync-query",
+ to: "/docs/HyperSync/hypersync-query",
+ },
+ {
+ from: "/docs/hypersync-clients",
+ to: "/docs/HyperSync/hypersync-clients",
+ },
+ {
+ from: "/docs/hypersync-curl-example",
+ to: "/docs/HyperSync/hypersync-curl-examples",
+ },
+ {
+ from: "/docs/hypersync-url-endpoints",
+ to: "/docs/HyperSync/hypersync-supported-networks",
+ },
+ {
+ from: "/docs/HyperSync/hypersync-url-endpoints",
+ to: "/docs/HyperSync/hypersync-supported-networks",
+ },
+ {
+ from: "/docs/HyperSync/hyperrpc-url-endpoints",
+ to: "/docs/HyperRPC/hyperrpc-supported-networks",
+ },
+ {
+ from: "/docs/hyperfuel-query",
+ to: "/docs/HyperSync/hyperfuel-query",
+ },
+ {
+ from: "/docs/overview-hyperrpc",
+ to: "/docs/HyperRPC/overview-hyperrpc",
+ },
];
/** @type {import('@docusaurus/types').Config} */
const config = {
@@ -268,236 +268,354 @@ const config = {
],
],
- stylesheets: [
- {
- href: "/custom.css",
- type: "text/css",
- },
- ],
-
- themeConfig:
- /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
-
- ({
- image: "img/preview-banner.png",
- colorMode: {
- defaultMode: "dark",
- disableSwitch: false,
- respectPrefersColorScheme: true,
- },
- announcementBar: {
- id: "support_us",
- content:
- 'If you like Envio, give us a star on GitHub ⭐️',
- backgroundColor: "#fafbfc",
- textColor: "#091E42",
- isCloseable: true,
- },
- // Add custom CSS for smaller sidebar text
stylesheets: [
- {
- href: "/custom.css",
- type: "text/css",
- },
+ {
+ href: "/custom.css",
+ type: "text/css",
+ },
],
- navbar: {
- title: "",
- logo: {
- alt: "Envio Logo",
- src: "img/envio-logo.png",
- srcDark: "img/envio-logo.png",
- style: {
- maxWidth: 200,
- maxHeight: 40,
- },
- href: "https://envio.dev",
- },
- items: [
- {
- to: "docs/HyperIndex/overview",
- label: "HyperIndex Docs",
- position: "left",
- },
- {
- to: "docs/HyperSync/overview",
- label: "HyperSync Docs",
- position: "left",
- },
- {
- to: "docs/HyperRPC/overview-hyperrpc",
- label: "HyperRPC Docs",
- position: "left",
- },
- {
- to: "showcase",
- label: "Showcase",
- position: "left",
- },
- {
- to: "blog",
- label: "Blog",
- position: "left",
- },
- {
- href: "https://github.com/enviodev",
- label: "GitHub",
- position: "right",
- },
- ],
- },
- algolia: {
- apiKey: "0f966036bca0e26d512dc59f023d64c5",
- indexName: "envio",
- appId: "584MK2OMPZ",
- contextualSearch: true, // algolia prioritizes results that are more related to the current section of the docs.
- },
- footer: {
- style: "dark",
- links: [
- {
- title: "Community",
- items: [
- { label: "Discord", href: "https://discord.gg/Q9qt8gZ2fX" },
- { label: "Twitter", href: "https://twitter.com/envio_indexer" },
- { label: "Lens", href: "https://lenster.xyz/u/envio.lens" },
+
+ themeConfig:
+ /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
+
+ ({
+ image: "img/preview-banner.png",
+ colorMode: {
+ defaultMode: "dark",
+ disableSwitch: false,
+ respectPrefersColorScheme: true,
+ },
+ announcementBar: {
+ id: "support_us",
+ content:
+ 'If you like Envio, give us a star on GitHub ⭐️',
+ backgroundColor: "#fafbfc",
+ textColor: "#091E42",
+ isCloseable: true,
+ },
+ // Add custom CSS for smaller sidebar text
+ stylesheets: [
+ {
+ href: "/custom.css",
+ type: "text/css",
+ },
],
- },
- {
- title: "More",
- items: [
- {
- label: "Blog",
- to: "blog",
- },
- {
- label: "GitHub",
- href: "https://github.com/enviodev",
- },
+ navbar: {
+ title: "",
+ logo: {
+ alt: "Envio Logo",
+ src: "img/envio-logo.png",
+ srcDark: "img/envio-logo.png",
+ style: {
+ maxWidth: 200,
+ maxHeight: 40,
+ },
+ href: "https://envio.dev",
+ },
+ items: [
+ {
+ to: "docs/HyperIndex/overview",
+ label: "HyperIndex Docs",
+ position: "left",
+ },
+ {
+ to: "docs/HyperSync/overview",
+ label: "HyperSync Docs",
+ position: "left",
+ },
+ {
+ to: "docs/HyperRPC/overview-hyperrpc",
+ label: "HyperRPC Docs",
+ position: "left",
+ },
+ {
+ to: "showcase",
+ label: "Showcase",
+ position: "left",
+ },
+ {
+ to: "blog",
+ label: "Blog",
+ position: "left",
+ },
+ {
+ href: "https://github.com/enviodev",
+ label: "GitHub",
+ position: "right",
+ },
+ ],
+ },
+ algolia: {
+ apiKey: "0f966036bca0e26d512dc59f023d64c5",
+ indexName: "envio",
+ appId: "584MK2OMPZ",
+ contextualSearch: true, // algolia prioritizes results that are more related to the current section of the docs.
+ },
+ footer: {
+ style: "dark",
+ links: [
+ {
+ title: "Community",
+ items: [
+ {
+ label: "Discord",
+ href: "https://discord.gg/Q9qt8gZ2fX",
+ },
+ {
+ label: "Twitter",
+ href: "https://twitter.com/envio_indexer",
+ },
+ {
+ label: "Lens",
+ href: "https://lenster.xyz/u/envio.lens",
+ },
+ ],
+ },
+ {
+ title: "More",
+ items: [
+ {
+ label: "Blog",
+ to: "blog",
+ },
+ {
+ label: "GitHub",
+ href: "https://github.com/enviodev",
+ },
+ ],
+ },
+ ],
+ copyright: `Copyright © ${new Date().getFullYear()} Envio`,
+ },
+ prism: {
+ theme: lightCodeTheme,
+ darkTheme: darkCodeTheme,
+ additionalLanguages: [
+ "rescript",
+ "bash",
+ "diff",
+ "json",
+ "javascript",
+ "typescript",
+ ],
+ },
+ metadata: [
+ { name: "twitter:card", content: "summary_large_image" },
+ { name: "twitter:site", content: "@envio_indexer" },
+ { property: "og:type", content: "website" },
+ { property: "og:locale", content: "en" },
],
- },
+ }),
+ plugins: [
+ [
+ require.resolve("./plugins/plugin-generate-llms"),
+ {
+ filesConfigs: [
+ {
+ main: true, // this will become llms.txt
+ name: "envio",
+ root: `
+# Envio: Fast, Multi-Chain Blockchain Indexer
+
+> Envio.dev is a high-performance, multi-chain blockchain indexing framework designed for developers. It offers real-time and historical data querying via GraphQL APIs, supports automatic reorg handling, and enables rapid deployment with zero-downtime rollbacks. Built for EVM-compatible chains and Fuel, Envio empowers developers to build scalable blockchain applications efficiently.
+
+
+This file contains links to documentation sections following the llmstxt.org standard.
+`,
+ includeOrder: [
+ "docs/HyperIndex/overview.md",
+ "docs/HyperIndex/getting-started.md",
+ "docs/HyperIndex/contract-import.md",
+ "docs/HyperIndex/benchmarks.md",
+ "docs/HyperIndex/migration-guide.md",
+ "docs/HyperIndex/Guides/**",
+ "docs/HyperIndex/Examples/**",
+ "docs/HyperIndex/Hosted_Service/**",
+ "docs/HyperIndex/Tutorials/**",
+ "docs/HyperIndex/Advanced/**",
+ "docs/HyperIndex/Troubleshoot/**",
+ "docs/HyperIndex/supported-networks/**",
+ "docs/HyperIndex/fuel/**",
+ "docs/HyperSync/overview.md",
+ "docs/HyperSync/quickstart.md",
+ "docs/HyperSync/hypersync-usage.md",
+ "docs/HyperSync/hypersync-clients.md",
+ "docs/HyperSync/hypersync-query.md",
+ "docs/HyperSync/hypersync-presets.md",
+ "docs/HyperSync/hypersync-curl-examples.md",
+ "docs/HyperSync/api-tokens.mdx",
+ "docs/HyperSync/hypersync-supported-networks.md",
+ "docs/HyperSync/tutorial-address-transactions.md",
+ "docs/HyperSync/HyperFuel/**",
+ "docs/HyperRPC/overview-hyperrpc.md",
+ "docs/HyperRPC/hyperrpc-supported-networks.md",
+ ],
+ },
+ {
+ name: "hyperindex",
+ root: `
+# HyperIndex Docs
+
+> HyperIndex is a complete indexing framework with schema management, event handling, and GraphQL APIs.
+
+This file contains links to documentation sections following the llmstxt.org standard.
+`,
+ includeOrder: [
+ "docs/HyperIndex/overview.md",
+ "docs/HyperIndex/getting-started.md",
+ "docs/HyperIndex/contract-import.md",
+ "docs/HyperIndex/benchmarks.md",
+ "docs/HyperIndex/migration-guide.md",
+ "docs/HyperIndex/Guides/**",
+ "docs/HyperIndex/Examples/**",
+ "docs/HyperIndex/Hosted_Service/**",
+ "docs/HyperIndex/Tutorials/**",
+ "docs/HyperIndex/Advanced/**",
+ "docs/HyperIndex/Troubleshoot/**",
+ "docs/HyperIndex/supported-networks/**",
+ "docs/HyperIndex/fuel/**",
+ ],
+ },
+ {
+ name: "hypersync",
+ root: `
+# HyperSync Docs
+
+> HyperSync is Envio's high-performance blockchain data engine that serves as a direct replacement for traditional RPC endpoints, delivering up to 2000x faster data access.
+
+This file contains links to documentation sections following the llmstxt.org standard.
+`,
+ includeOrder: [
+ "docs/HyperSync/overview.md",
+ "docs/HyperSync/quickstart.md",
+ "docs/HyperSync/hypersync-usage.md",
+ "docs/HyperSync/hypersync-clients.md",
+ "docs/HyperSync/hypersync-query.md",
+ "docs/HyperSync/hypersync-presets.md",
+ "docs/HyperSync/hypersync-curl-examples.md",
+ "docs/HyperSync/api-tokens.mdx",
+ "docs/HyperSync/hypersync-supported-networks.md",
+ "docs/HyperSync/tutorial-address-transactions.md",
+ "docs/HyperSync/HyperFuel/**",
+ ],
+ },
+ {
+ name: "hyperrpc",
+ root: `
+# HyperRPC Docs
+
+> HyperRPC is an extremely fast read-only RPC designed specifically for data-intensive blockchain tasks. It provides simple drop-in replacement for existing RPC-based code.
+
+This file contains links to documentation sections following the llmstxt.org standard.
+`,
+ includeOrder: [
+ "docs/HyperRPC/overview-hyperrpc.md",
+ "docs/HyperRPC/hyperrpc-supported-networks.md",
+ ],
+ },
+ ],
+ },
],
- copyright: `Copyright © ${new Date().getFullYear()} Envio`,
- },
- prism: {
- theme: lightCodeTheme,
- darkTheme: darkCodeTheme,
- additionalLanguages: [
- "rescript",
- "bash",
- "diff",
- "json",
- "javascript",
- "typescript",
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperSync",
+ path: "docs/HyperSync",
+ routeBasePath: "docs/HyperSync",
+ sidebarPath: require.resolve("./sidebarsHyperSync.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ // versions: {
+ // current: {
+ // label: 'latest(4.0.0)',
+ // path: '4.0.0',
+ // },
+ // },
+ },
+ ],
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperIndex",
+ path: "docs/HyperIndex",
+ routeBasePath: "docs/HyperIndex",
+ sidebarPath: require.resolve("./sidebarsHyperIndex.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ disableVersioning: true,
+ // versions: {
+ // current: {
+ // label: "v2",
+ // path: "",
+ // },
+ // },
+ },
+ ],
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperRPC",
+ path: "docs/HyperRPC",
+ routeBasePath: "docs/HyperRPC",
+ sidebarPath: require.resolve("./sidebarsHyperRPC.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ //disableVersioning: true,
+ // versions: {
+ // current: {
+ // label: "v2",
+ // path: "",
+ // },
+ // },
+ },
+ ],
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperIndex-LLM",
+ path: "docs/HyperIndex-LLM",
+ routeBasePath: "docs/HyperIndex-LLM",
+ sidebarPath: require.resolve("./sidebarsHyperIndexLLM.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ },
+ ],
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperSync-LLM",
+ path: "docs/HyperSync-LLM",
+ routeBasePath: "docs/HyperSync-LLM",
+ sidebarPath: require.resolve("./sidebarsHyperSyncLLM.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ },
+ ],
+ [
+ "@docusaurus/plugin-content-docs",
+ {
+ id: "HyperRPC-LLM",
+ path: "docs/HyperRPC-LLM",
+ routeBasePath: "docs/HyperRPC-LLM",
+ sidebarPath: require.resolve("./sidebarsHyperRPCLLM.js"),
+ editUrl: "https://github.com/enviodev/docs/edit/main/",
+ showLastUpdateAuthor: false,
+ showLastUpdateTime: false,
+ },
+ ],
+ [
+ "@docusaurus/plugin-client-redirects",
+ {
+ redirects: redirectsList,
+ },
],
- },
- metadata: [
- { name: "twitter:card", content: "summary_large_image" },
- { name: "twitter:site", content: "@envio_indexer" },
- { property: "og:type", content: "website" },
- { property: "og:locale", content: "en" },
- ],
- }),
- plugins: [
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperSync",
- path: "docs/HyperSync",
- routeBasePath: "docs/HyperSync",
- sidebarPath: require.resolve("./sidebarsHyperSync.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- // versions: {
- // current: {
- // label: 'latest(4.0.0)',
- // path: '4.0.0',
- // },
- // },
- },
- ],
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperIndex",
- path: "docs/HyperIndex",
- routeBasePath: "docs/HyperIndex",
- sidebarPath: require.resolve("./sidebarsHyperIndex.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- disableVersioning: true,
- // versions: {
- // current: {
- // label: "v2",
- // path: "",
- // },
- // },
- },
- ],
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperRPC",
- path: "docs/HyperRPC",
- routeBasePath: "docs/HyperRPC",
- sidebarPath: require.resolve("./sidebarsHyperRPC.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- //disableVersioning: true,
- // versions: {
- // current: {
- // label: "v2",
- // path: "",
- // },
- // },
- },
- ],
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperIndex-LLM",
- path: "docs/HyperIndex-LLM",
- routeBasePath: "docs/HyperIndex-LLM",
- sidebarPath: require.resolve("./sidebarsHyperIndexLLM.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- },
- ],
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperSync-LLM",
- path: "docs/HyperSync-LLM",
- routeBasePath: "docs/HyperSync-LLM",
- sidebarPath: require.resolve("./sidebarsHyperSyncLLM.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- },
- ],
- [
- "@docusaurus/plugin-content-docs",
- {
- id: "HyperRPC-LLM",
- path: "docs/HyperRPC-LLM",
- routeBasePath: "docs/HyperRPC-LLM",
- sidebarPath: require.resolve("./sidebarsHyperRPCLLM.js"),
- editUrl: "https://github.com/enviodev/docs/edit/main/",
- showLastUpdateAuthor: false,
- showLastUpdateTime: false,
- },
- ],
- [
- "@docusaurus/plugin-client-redirects",
- {
- redirects: redirectsList,
- },
],
- ],
- themes: ["docusaurus-json-schema-plugin"],
+ themes: ["docusaurus-json-schema-plugin"],
};
module.exports = config;
diff --git a/package.json b/package.json
index cb10283e..e854c525 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
"clsx": "^1.2.1",
"docusaurus": "^1.14.7",
"docusaurus-json-schema-plugin": "^1.12.2",
+ "minimatch": "^10.0.3",
"prism-react-renderer": "^2.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
diff --git a/plugins/plugin-generate-llms.js b/plugins/plugin-generate-llms.js
new file mode 100644
index 00000000..c7dcd88b
--- /dev/null
+++ b/plugins/plugin-generate-llms.js
@@ -0,0 +1,217 @@
+const fs = require("fs");
+const path = require("path");
+const matter = require("gray-matter");
+const glob = require("glob");
+const { minimatch } = require("minimatch");
+
+// Docusaurus Plugin: Generate LLMS files
+// --------------------------------------
+// This plugin generates `llms.txt` (and optional variants) during the Docusaurus build.
+// It is designed for integrating with LLMs or tools that need a structured list of docs
+// in text/Markdown format.
+//
+// What it does:
+// 1. Scans all docs from `@docusaurus/plugin-content-docs`.
+// 2. Collects metadata (title, slug, description, URL).
+// 3. Orders docs according to `includeOrder` patterns (glob-like).
+// 4. Writes an `llms.txt` file (or multiple) into the build output folder.
+// 5. Optionally writes stripped-down `.md` copies of the docs (without frontmatter).
+//
+// How to use:
+// -----------
+// In your `docusaurus.config.js`, add the plugin with configuration:
+//
+// plugins: [
+// [
+// require.resolve("./plugins/generate-llms"), // path to this plugin file
+// {
+// filesConfigs: [
+// {
+// main: true, // Marks this as the main config
+// name: "default", // Identifier (used for filename if not main)
+// root: "Welcome to the docs!",// Text that appears at the top of llms.txt
+// includeOrder: [ // Order of docs (glob patterns)
+// "**/intro.md",
+// "**/getting-started.md",
+// "**/guides/*",
+// ],
+// },
+// {
+// main: false, // Optional secondary config
+// name: "advanced", // Will output as llms-advanced.txt
+// root: "Advanced Topics", // Intro text
+// includeOrder: [
+// "**/advanced/*",
+// "**/api/*",
+// ],
+// },
+// ],
+// },
+// ],
+// ],
+//
+// Output:
+// -------
+// - `build/llms.txt` (main file, always generated if `main: true` exists).
+// - `build/llms-.txt` (for secondary configs).
+// - `build/.../*.md` stripped copies of docs (only for the main config).
+//
+// Notes:
+// - Paths in `includeOrder` are matched against doc file paths, so you can use wildcards.
+// - The `.md` copies are saved at the same relative path as the doc's URL.
+
+function GenerateLLMSPlugin(context, options) {
+ return {
+ name: "docusaurus-plugin-generate-llms",
+
+ async postBuild({ siteConfig }) {
+ const { url, plugins } = siteConfig;
+
+ const filesConfigs = options.filesConfigs || [];
+
+ let collectedDocs = [];
+
+ // 1. collect docs metadata
+ for (const plugin of plugins) {
+ if (
+ Array.isArray(plugin) &&
+ plugin[0] === "@docusaurus/plugin-content-docs"
+ ) {
+ const config = plugin[1];
+ const docsPath = path.resolve(config.path);
+ const routeBasePath = config.routeBasePath || "";
+
+ const allFiles = glob.sync("**/*.{md,mdx}", {
+ cwd: docsPath,
+ });
+
+ for (const file of allFiles) {
+ const fullPath = path.join(docsPath, file);
+ const raw = fs.readFileSync(fullPath, "utf-8");
+ const parsed = matter(raw);
+
+ const slug = parsed.data.slug;
+ const title = parsed.data.title;
+ const description = parsed.data.description || "";
+
+ if (!slug || !title) continue;
+
+ const pageUrl = `${url.replace(
+ /\/$/,
+ ""
+ )}/${routeBasePath.replace(/^\//, "")}/${slug.replace(
+ /^\//,
+ ""
+ )}`;
+
+ collectedDocs.push({
+ filePath: path.join(config.path, file),
+ title,
+ description,
+ pageUrl,
+ });
+ }
+ }
+ }
+
+ // Helper to convert Windows paths to POSIX
+ function toPosix(p) {
+ return p.split(path.sep).join("/");
+ }
+
+ function orderDocs(includeOrder) {
+ if (!includeOrder || includeOrder.length === 0) {
+ return [];
+ }
+
+ const matched = new Set();
+ const ordered = [];
+ const duplicates = new Set();
+
+ for (const pattern of includeOrder) {
+ for (const doc of collectedDocs) {
+ const docPath = toPosix(doc.filePath);
+ const pat = toPosix(pattern);
+
+ if (minimatch(docPath, pat)) {
+ if (matched.has(doc.filePath)) {
+ duplicates.add(doc.filePath);
+ } else {
+ ordered.push(doc);
+ matched.add(doc.filePath);
+ }
+ }
+ }
+ }
+
+ return ordered;
+ }
+
+ function renderLLMS(rootText, docs) {
+ let output = rootText.trim() + "\n\n";
+ for (const doc of docs) {
+ const desc =
+ doc.description ||
+ (doc.title.length > 20
+ ? `${doc.title} section of the docs.`
+ : "");
+ output += `- [${doc.title}](${doc.pageUrl}.md): ${desc}\n`;
+ }
+ return output;
+ }
+
+ // --- NEW: write .md copies into build folder ---
+ function writeMarkdownCopies(docs) {
+ for (const doc of docs) {
+ const rawContent = fs.readFileSync(doc.filePath, "utf-8");
+
+ // Use gray-matter to strip frontmatter
+ const parsed = matter(rawContent);
+ const cleanContent = parsed.content.trimStart();
+
+ // Convert pageUrl to relative path inside build
+ let relativePath = doc.pageUrl.replace(
+ siteConfig.url.replace(/\/$/, ""),
+ ""
+ );
+ relativePath = relativePath.replace(/^\//, "");
+
+ // Save as .md file (same path as page, but with .md)
+ const targetPath = path.join(
+ context.outDir,
+ `${relativePath}.md`
+ );
+
+ fs.mkdirSync(path.dirname(targetPath), { recursive: true });
+ fs.writeFileSync(targetPath, cleanContent, "utf-8");
+ }
+ }
+
+ // 2. generate files
+ for (const cfg of filesConfigs) {
+ const { main, name, root = "", includeOrder = [] } = cfg;
+
+ // Order docs based on includeOrder patterns
+ const orderedDocs = orderDocs(includeOrder);
+
+ // Inject "## Table of Contents" after root text
+ const tocRoot = root.trim() + "\n\n## Table of Contents\n";
+
+ const output = renderLLMS(tocRoot, orderedDocs);
+
+ // Use llms.txt for the first/main config, others as llms-.txt
+ const outFileName = cfg.main ? "llms.txt" : `llms-${name}.txt`;
+ const outPath = path.join(context.outDir, outFileName);
+
+ fs.writeFileSync(outPath, output, "utf-8");
+
+ // ✅ Only run markdown copy for main config
+ if (main) {
+ writeMarkdownCopies(orderedDocs);
+ }
+ }
+ },
+ };
+}
+
+module.exports = GenerateLLMSPlugin;
diff --git a/yarn.lock b/yarn.lock
index 66159cc6..b7cae1e6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2683,6 +2683,18 @@
resolved "https://registry.yarnpkg.com/@headlessui/tailwindcss/-/tailwindcss-0.2.1.tgz#1becc201f69358a40e08bd676acc234b2cabe6e4"
integrity sha512-2+5+NZ+RzMyrVeCZOxdbvkUSssSxGvcUxphkIfSVLpRiKsj+/63T2TOL9dBYMXVfj/CGr6hMxSRInzXv6YY7sA==
+"@isaacs/balanced-match@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29"
+ integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==
+
+"@isaacs/brace-expansion@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3"
+ integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==
+ dependencies:
+ "@isaacs/balanced-match" "^4.0.1"
+
"@jest/schemas@^29.6.3":
version "29.6.3"
resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz"
@@ -5099,6 +5111,13 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
+brace-expansion@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
+ integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
+ dependencies:
+ balanced-match "^1.0.0"
+
braces@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -6811,15 +6830,6 @@ docusaurus-json-schema-plugin@^1.12.2:
monaco-editor-webpack-plugin "^7.0.1"
react-monaco-editor "^0.55.0"
-docusaurus-plugin-llms@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/docusaurus-plugin-llms/-/docusaurus-plugin-llms-0.2.2.tgz#3461e8295d18d4057cf0fbcf5e3feac561ea6fd1"
- integrity sha512-DZlZ6cv9p5poFE00Qg78aurBNWhLa4o0VhH4kI33DUT0y4ydlFEJJbf8Bks9BuuGPFbY/Guebn+hRc2QymMImg==
- dependencies:
- gray-matter "^4.0.3"
- minimatch "^9.0.3"
- yaml "^2.8.1"
-
docusaurus@^1.14.7:
version "1.14.7"
resolved "https://registry.yarnpkg.com/docusaurus/-/docusaurus-1.14.7.tgz#f51858ab643b29ec52264d6dd85e0d629e5b3a4a"
@@ -11421,6 +11431,20 @@ minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1:
dependencies:
brace-expansion "^1.1.7"
+minimatch@^10.0.3:
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.3.tgz#cf7a0314a16c4d9ab73a7730a0e8e3c3502d47aa"
+ integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==
+ dependencies:
+ "@isaacs/brace-expansion" "^5.0.0"
+
+minimatch@^9.0.3:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimatch@^9.0.3:
version "9.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
@@ -16387,6 +16411,11 @@ yaml@^2.8.1:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79"
integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==
+yaml@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79"
+ integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==
+
yamljs@^0.2.1:
version "0.2.10"
resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.2.10.tgz#481cc7c25ca73af59f591f0c96e3ce56c757a40f"