diff --git a/api/address.md b/api/address.md new file mode 100644 index 00000000..897e4235 --- /dev/null +++ b/api/address.md @@ -0,0 +1,198 @@ +--- +sidebar_position: 1 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Address Information + +## Get XCH/CAT/NFT Balance for an Address + +This endpoint allows you to fetch the XCH, CAT, and NFT balances for a given address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/balance/{address} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| address | string | The XCH address or .xch name service name | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/address/balance/xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8" + + + + + import requests + + address = "xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8" + url = f"https://api.spacescan.io/address/balance/{address}" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const address = "xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8"; + const url = `https://api.spacescan.io/address/balance/${address}`; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|-------------|---------|-------------------------------------------------------| +| status | string | The status of the API request | +| xch_balance | object | XCH balance information | +| cat_balance | array | Array of CAT token balances | +| nft_balance | object | NFT balance information | + +### Notes + +- You can query multiple addresses (up to 10) by separating them with commas. +- The API supports both XCH addresses and .xch name service names. +- The `network` parameter is optional. Possible values are `mainnet` or `testnet10`. +- The `Version` parameter is optional and defaults to 1. + +## Get XCH Balance for an Address + +This endpoint retrieves only the XCH balance for a given address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/xch-balance/{address} +``` + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +## Get CAT Balance for an Address + +This endpoint retrieves only the CAT token balances for a given address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/cat-balance/{address} +``` + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +## Get NFT Balance for an Address + +This endpoint retrieves only the NFT balance for a given address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/nft-balance/{address} +``` + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +## Get Transactions for an Address + +This endpoint retrieves a list of transactions for a given address (up to 1000 transactions). + +### Endpoint + +``` +GET https://api.spacescan.io/address/transactions/{address} +``` + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +## Get XCH Address for .xch Name + +This endpoint retrieves the XCH address associated with a given .xch name service name. + +### Endpoint + +``` +GET https://api.spacescan.io/address/name-lookup/{name} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| name | string | The .xch name service name (e.g., spacescan.xch)| + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +### Notes + +- This endpoint uses the name service from https://www.namesdao.org/ +- The `network` parameter is optional. Possible values are `mainnet` or `testnet10`. +- The `Version` parameter is optional and defaults to 1. + +For any additional information or support, please contact our API support team or refer to our comprehensive API documentation. diff --git a/api/address/_category_.json b/api/address/_category_.json new file mode 100644 index 00000000..93da021f --- /dev/null +++ b/api/address/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Address", + "position": 2, + "link": { + "type": "generated-index", + "description": "API endpoints related to address information and balances." + } +} diff --git a/api/address/balance.md b/api/address/balance.md new file mode 100644 index 00000000..48f36f0e --- /dev/null +++ b/api/address/balance.md @@ -0,0 +1,75 @@ +--- +sidebar_position: 1 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Get XCH Balance + +This endpoint allows you to fetch the XCH balance for a given address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/balance/{address} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| address | string | The XCH address | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/address/balance/xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8" + + + + + import requests + + address = "xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8" + url = f"https://api.spacescan.io/address/balance/{address}" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const address = "xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8"; + const url = `https://api.spacescan.io/address/balance/${address}`; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|-----------------|--------|----------------------------------| +| balance | object | XCH balance information | +| balance.mojo | number | The XCH balance in mojos | +| balance.xch | number | The XCH balance in XCH | +| balance.usd | number | The USD value of the XCH balance | diff --git a/api/address/cat-balance.md b/api/address/cat-balance.md new file mode 100644 index 00000000..37d98797 --- /dev/null +++ b/api/address/cat-balance.md @@ -0,0 +1,29 @@ +--- +sidebar_position: 3 +--- + +# Get CAT Balance + +This endpoint retrieves the CAT (Chia Asset Token) balance for a given address. + +## Endpoint + +``` +GET https://api.spacescan.io/address/cat-balance/{address} +``` + +## Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------| +| address | string | The XCH address or .xch name service name | + +## Live API Test + + + 🚀 Test API in Browser + + +## Response + + diff --git a/api/address/transactions.md b/api/address/transactions.md new file mode 100644 index 00000000..32cc1f2b --- /dev/null +++ b/api/address/transactions.md @@ -0,0 +1,112 @@ +--- +sidebar_position: 2 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Get Address Transactions + +This endpoint allows you to fetch the transaction history for a given XCH address. + +### Endpoint + +``` +GET https://api.spacescan.io/address/transactions/{address} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| address | string | The XCH address to fetch transactions for | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/address/transactions/xch1raq84pknzte375kze2z3lapscwet5g3q9qqkse8cmnmp5yr40zcsntdcm9" + + + + + import requests + + address = "xch1raq84pknzte375kze2z3lapscwet5g3q9qqkse8cmnmp5yr40zcsntdcm9" + url = f"https://api.spacescan.io/address/transactions/{address}" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const address = "xch1raq84pknzte375kze2z3lapscwet5g3q9qqkse8cmnmp5yr40zcsntdcm9"; + const url = `https://api.spacescan.io/address/transactions/${address}`; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|-----------------|--------|--------------------------------------------| +| status | string | The status of the API request | +| data | object | Contains the transaction data | +| data.coins | array | List of coin transactions | +| data.rowCount | number | Total number of transactions | +| data.cat_balance| object | CAT (Chia Asset Token) balance information | + +#### Coin Transaction Object + +Each coin in the `data.coins` array contains the following fields: + +| Field | Type | Description | +|-------------------|---------|-------------------------------------------------------| +| coin_name | string | Unique identifier for the coin | +| confirmed_block | string | Block number where the transaction was confirmed | +| spend_block | string | Block number where the coin was spent (null if unspent)| +| parent_coin | string | Identifier of the parent coin | +| coin_mod | string | Coin modification type (e.g., "STND" for standard) | +| owner_address | string | Address of the coin owner | +| confirmed_time | string | Timestamp of confirmation (ISO 8601 format) | +| spend_time | string | Timestamp of spending (ISO 8601 format, null if unspent) | +| from_address | string | Address of the sender | +| memo | string | Transaction memo (null if not provided) | +| amount | string | Transaction amount in XCH | +| amount_mojo | string | Transaction amount in mojo (smallest unit) | +| spend_txn_type | string | Type of spending transaction (null if unspent) | +| timestamp | number | Unix timestamp of the transaction | +| id | string | Transaction ID (null in this example) | +| coinbase | boolean | Indicates if this is a coinbase transaction | +| confirmed_txn_id | string | ID of the confirmation transaction | +| spend_txn_id | string | ID of the spending transaction (null if unspent) | +| type | string | Type of the transaction (e.g., "NAN" for standard) | + +### Notes + +- The API returns the most recent transactions. The total number of transactions is provided in the `rowCount` field. +- All timestamps are returned in ISO 8601 format: `YYYY-MM-DDTHH:mm:ss.sssZ` +- Amounts are returned as strings to preserve precision +- The API does not require authentication for this endpoint +- CAT balance information is provided in the `cat_balance` object, which is empty in this example + +For any additional information or support, please contact our API support team or refer to our comprehensive API documentation. diff --git a/api/address/xch-balance.md b/api/address/xch-balance.md new file mode 100644 index 00000000..14a80e5a --- /dev/null +++ b/api/address/xch-balance.md @@ -0,0 +1,42 @@ +--- +sidebar_position: 2 +--- + +# Get XCH Balance + +This endpoint retrieves the XCH balance for a given address. + +## Endpoint + +``` +GET https://api.spacescan.io/address/xch-balance/{address} +``` + +## Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------| +| address | string | The XCH address or .xch name service name | + +## Live API Test + + + 🚀 Test API in Browser + + +## Response + + + +## Response Schema + +| Field | Type | Description | +|-------------|--------|-----------------------------| +| status | string | The status of the API request | +| xch_balance | object | XCH balance information | + +## Notes + +- The API supports both XCH addresses and .xch name service names. +- The `network` parameter is optional. Possible values are `mainnet` or `testnet10`. +- The `Version` parameter is optional and defaults to 1. diff --git a/api/api/_category_.json b/api/api/_category_.json deleted file mode 100644 index 2fdf830d..00000000 --- a/api/api/_category_.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "label": "API", - "position": 3, - "collapsed": false -} diff --git a/api/api/address.md b/api/api/address.md deleted file mode 100644 index 2faf71ef..00000000 --- a/api/api/address.md +++ /dev/null @@ -1,230 +0,0 @@ ---- -sidebar_position: 1 ---- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; - -# Address - - -## Get XCH/CAT/NFT balance for an address - -Retrieves XCH/CAT/NFT balance for a `address` - -``` -https://api.spacescan.io/address/balance - ?authkey=your_auth_key - &address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8 -``` - - - - - - - - -
ParamsDetails
addressThe XCH address in string format. It can also accept multiple address with comma separation. Max of 10 address allowed in sigle call. -
- Possible values: - xch address | .xch name service names -
- Example:
address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8,
xch18rv9snq2vxl4f9mt8j7zffattqqac80ajcvpe2h6j3t9w8y53l3s8970ya -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- - - -## Get XCH balance for an address - -Retrieves XCH balance for a `address` - -``` -https://api.spacescan.io/address/xch-balance - ?authkey=your_auth_key - &address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8 -``` - - - - - - - - -
ParamsDetails
addressThe XCH address in string format. It can also accept multiple address with comma separation. Max of 10 address allowed in sigle call. -
- Possible values: - xch address | .xch name service names -
- Example:
address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8,
xch18rv9snq2vxl4f9mt8j7zffattqqac80ajcvpe2h6j3t9w8y53l3s8970ya -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get CAT balance for an address - -Retrieves CAT balances for a `address` - -``` -https://api.spacescan.io/address/cat-balance - ?authkey=your_auth_key - &address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8 -``` - - - - - - - - -
ParamsDetails
addressThe XCH address in string format. It can also accept multiple address with comma separation. Max of 10 address allowed in sigle call. -
- Possible values: - xch address | .xch name service names -
- Example:
address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8,
xch18rv9snq2vxl4f9mt8j7zffattqqac80ajcvpe2h6j3t9w8y53l3s8970ya -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get NFT balance for an address - -Retrieves nft balances for a `address` - -``` -https://api.spacescan.io/address/nft-balance - ?authkey=your_auth_key - &address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8 -``` - - - - - - - - -
ParamsDetails
addressThe XCH address in string format. It can also accept multiple address with comma separation. Max of 10 address allowed in sigle call. -
- Possible values: - xch address | .xch name service names -
- Example:
address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8,
xch18rv9snq2vxl4f9mt8j7zffattqqac80ajcvpe2h6j3t9w8y53l3s8970ya -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get transactions for an address - -Retrieves list of transactions for a `address` and it return max of 1000 transactions - -``` -https://api.spacescan.io/address/transactions - ?authkey=your_auth_key - &address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8 -``` - - - - - - - - -
ParamsDetails
addressThe XCH address in string format. It can also accept multiple address with comma separation. Max of 10 address allowed in sigle call. -
- Possible values: - xch address | .xch name service names -
- Example:
address=xch1a6cd558gqsz2hch5pt0l8mx7zhavf32q5lyde09zjtqcmkelr9ns59k0j8,
xch18rv9snq2vxl4f9mt8j7zffattqqac80ajcvpe2h6j3t9w8y53l3s8970ya -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get xch address for .xch name - -Retrieve xch address for '.xch' name service from https://www.namesdao.org/ - -``` -https://api.spacescan.io/address/name-lookup - ?authkey=your_auth_key - &name=spacescan.xch -``` - - - - - - - - -
ParamsDetails
name The .xch name -
- Example:
name=hoffmang.xch -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
diff --git a/api/api/block.md b/api/api/block.md deleted file mode 100644 index 2f1837c2..00000000 --- a/api/api/block.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sidebar_position: 6 ---- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; - -# Block - -## Get Block info by Number or hash - -Retrieves Chia blockchain Block info by `number` or `hash` - -``` -https://api.spacescan.io/block/info - ?authkey=your_auth_key - &number=12345 -``` - - - - - - - - -
ParamsDetails
numberThe block number -
- You can get block info by number or block hash so send any one -
hashThe block hash -
- You can get block info by number or block hash so send any one
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get Peak Block - -Retrieves Chia blockc chain peak block - -``` -https://api.spacescan.io/block/peak - ?authkey=your_auth_key -``` - - - - - - -
ParamsDetails
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
diff --git a/api/api/coins.md b/api/api/coins.md deleted file mode 100644 index e71eec60..00000000 --- a/api/api/coins.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 7 ---- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; - -# Coins - -## Get Coin(Transaction) info by coin id - -Retrieves Coin(transaction) details by `coin id` - -``` -https://api.spacescan.io/coin/info - ?authkey=your_auth_key - &coin_id=0x554c7cdc91269736fca8216dfbfa01841185bad4d1097ec899d2b18f2e558789 -``` - - - - - - - -
ParamsDetails
coin_idThe coin id of the transaction
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
diff --git a/api/api/stats.md b/api/api/stats.md deleted file mode 100644 index 1a0170cc..00000000 --- a/api/api/stats.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -sidebar_position: 10 ---- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; -import CodeBlock from '@theme/CodeBlock'; - -# Stats - -## Get total supply of XCH - -Retrieves XCH in circulation - -``` -https://api.spacescan.io/stats/total-supply - ?authkey=your_auth_key -``` - - - - - - - -
ParamsDetails
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- -## Get XCH price - -Retrieves XCH price in supplied currency - -``` -https://api.spacescan.io/stats/price - ?authkey=your_auth_key - &cur=USD -``` - - - - - - - - -
ParamsDetails
curUS dollar symbol
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
- - -## Get Chia blockchain Netspace - -Retrieves Chia blockchain netspace - -``` -https://api.spacescan.io/stats/netspace - ?authkey=your_auth_key - &metrics=Eib -``` -> Dev notes we can send one note like how many 8TB hard disk for better visualization - - - - - - - -
ParamsDetails
metricsThe metrics you wants to view the current netspace - Possible values: - Eib|Pib|Tib -
networkIts optional
- Possible values: - mainnet|testnet10
VersionIts optional
- Defaults to 1
-
- - - {`{ - "status": "SUCCESS" -}`} - - -
\ No newline at end of file diff --git a/api/block.md b/api/block.md new file mode 100644 index 00000000..eca0899d --- /dev/null +++ b/api/block.md @@ -0,0 +1,100 @@ +--- +sidebar_position: 4 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Block Information + +## Retrieve Block Details + +This endpoint allows you to fetch detailed information about a specific block using its height or hash. + +### Endpoint + +``` +GET https://api.spacescan.io/block/info/{block_identifier} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| block_identifier | string | The block height or block hash | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/block/info/3000000" + + + + + import requests + + block_identifier = "3000000" + url = f"https://api.spacescan.io/block/info/{block_identifier}" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const blockIdentifier = "3000000"; + const url = `https://api.spacescan.io/block/info/${blockIdentifier}`; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|------------------|---------|-------------------------------------------------------| +| status | string | The status of the API request | +| block | object | Detailed information about the requested block | +| block.height | number | The height of the block | +| block.timestamp | string | The timestamp when the block was created | +| block.weight | number | The weight of the block | +| block.prev_hash | string | The hash of the previous block | +| block.farmer_puzzle_hash | string | The puzzle hash of the farmer who created the block | +| block.fees | string | The total fees in the block | +| block.transactions_count | number | The number of transactions in the block | + +### Error Responses + +| HTTP Status Code | Meaning | +|------------------|-------------------------------------------------------------------------------------------| +| 400 | Bad Request -- Your request is invalid. | +| 404 | Not Found -- The specified block could not be found. | +| 429 | Too Many Requests -- You're requesting too many blocks! Slow down! | +| 500 | Internal Server Error -- We had a problem with our server. Try again later. | +| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. | + +### Notes + +- You can use either block height or block hash as the block identifier. +- All timestamps are returned in ISO 8601 format: `YYYY-MM-DDTHH:mm:ss.sssZ` +- The API does not require authentication for this endpoint + +For any additional information or support, please contact our API support team or refer to our comprehensive API documentation. diff --git a/api/api/cat.md b/api/cat.md similarity index 100% rename from api/api/cat.md rename to api/cat.md diff --git a/api/coins.md b/api/coins.md new file mode 100644 index 00000000..42c6e296 --- /dev/null +++ b/api/coins.md @@ -0,0 +1,104 @@ +--- +sidebar_position: 7 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Coin Information + +## Retrieve Coin Details + +This endpoint allows you to fetch detailed information about a specific coin (transaction) using its unique identifier. + +### Endpoint + +``` +GET https://api.spacescan.io/coin/info/{coin_id} +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| coin_id | string | The unique identifier of the coin (transaction) | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/coin/info/0x554c7cdc91269736fca8216dfbfa01841185bad4d1097ec899d2b18f2e558789" + + + + + import requests + + coin_id = "0x554c7cdc91269736fca8216dfbfa01841185bad4d1097ec899d2b18f2e558789" + url = f"https://api.spacescan.io/coin/info/{coin_id}" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const coinId = "0x554c7cdc91269736fca8216dfbfa01841185bad4d1097ec899d2b18f2e558789"; + const url = `https://api.spacescan.io/coin/info/${coinId}`; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|------------------|---------|-------------------------------------------------------| +| status | string | The status of the API request | +| coin | object | Detailed information about the requested coin | +| coin.coin_name | string | The unique identifier of the coin | +| coin.coinbase | boolean | Indicates if this is a coinbase transaction | +| coin.confirmed_block | string | The block number where this coin was confirmed | +| coin.spent_block | string | The block number where this coin was spent (if applicable) | +| coin.amount | string | The amount of the coin in XCH | +| coin.amount_mojo | string | The amount of the coin in mojo (smallest unit) | +| coin.confirmed_time | string | The timestamp when the coin was confirmed | +| coin.sender | object | Information about the sender of the coin | +| coin.receiver | object | Information about the receiver of the coin | +| coin.type | string | The type of the coin (e.g., "STND" for standard) | +| coin.timestamp | number | Unix timestamp of the transaction | + +### Error Responses + +| HTTP Status Code | Meaning | +|------------------|-------------------------------------------------------------------------------------------| +| 400 | Bad Request -- Your request is invalid. | +| 404 | Not Found -- The specified coin could not be found. | +| 429 | Too Many Requests -- You're requesting too many coins! Slow down! | +| 500 | Internal Server Error -- We had a problem with our server. Try again later. | +| 503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. | + +### Notes + +- All timestamps are returned in ISO 8601 format: `YYYY-MM-DDTHH:mm:ss.sssZ` +- Amounts are returned as strings to preserve precision +- The API does not require authentication for this endpoint + +For any additional information or support, please contact our API support team or refer to our comprehensive API documentation. diff --git a/api/api/data_layer.md b/api/data_layer.md similarity index 100% rename from api/api/data_layer.md rename to api/data_layer.md diff --git a/api/api/did.md b/api/did.md similarity index 100% rename from api/api/did.md rename to api/did.md diff --git a/api/get-started.md b/api/get-started.md deleted file mode 100644 index 7775127f..00000000 --- a/api/get-started.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Get started - -[Spacescan.io](https://www.spacescan.io/) is leading chia blockchain explorer, Search, API, offer market place and analytics platform. - -Spacescan developer API's are created to provide easy alternative to access the Chia blockchain data. -Developers can quickly start building there ideas with REST API and Save a lot time from managing chia nodes or learning the RPC/CLI commands. - -Spacescan's APIs are provided as a community service and without any warranty. Data may change time to time because of P2P nature of blockchain. During any chain reorg or split data may wary and we always try to keep the data as reliable as possible. - -:::info Info -Source attribution as a backlink from your app is "Powered by spacescan.io APIs" is greatly appreciated. -::: - -:::danger -The APIs are still in very active development and this messge will be updated once its ready for consumption. -::: - -## 1) Create Account -## 2) Choose API plan -## 3) Make calls with authkey diff --git a/api/api/mempool.md b/api/mempool.md similarity index 100% rename from api/api/mempool.md rename to api/mempool.md diff --git a/api/api/nft.md b/api/nft.md similarity index 100% rename from api/api/nft.md rename to api/nft.md diff --git a/api/api/offers.md b/api/offers.md similarity index 100% rename from api/api/offers.md rename to api/offers.md diff --git a/api/stats.md b/api/stats.md new file mode 100644 index 00000000..7fb4627d --- /dev/null +++ b/api/stats.md @@ -0,0 +1,152 @@ +--- +sidebar_position: 10 +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import ApiCallExample from '@site/src/components/ApiCallExample'; + +# Statistics + +## Get Total Supply of XCH + +This endpoint retrieves the total supply of XCH currently in circulation. + +### Endpoint + +``` +GET https://api.spacescan.io/stats/total-supply +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| network | string | Optional. Possible values: `mainnet`, `testnet10` | +| Version | number | Optional. Defaults to 1 | + +### Live API Test + + + 🚀 Test API in Browser + + +### Request Example + + + + + curl -X GET "https://api.spacescan.io/stats/total-supply" + + + + + import requests + + url = "https://api.spacescan.io/stats/total-supply" + + response = requests.get(url) + data = response.json() + print(data) + + + + + const url = "https://api.spacescan.io/stats/total-supply"; + + fetch(url) + .then(response => response.json()) + .then(data => console.log(data)) + .catch(error => console.error('Error:', error)); + + + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|---------|--------|-----------------------------------| +| status | string | The status of the API request | +| supply | string | The total supply of XCH in circulation | + +## Get XCH Price + +This endpoint retrieves the current price of XCH in the specified currency. + +### Endpoint + +``` +GET https://api.spacescan.io/stats/price +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| cur | string | Required. Currency symbol (e.g., USD) | +| network | string | Optional. Possible values: `mainnet`, `testnet10` | +| Version | number | Optional. Defaults to 1 | + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|---------|--------|-----------------------------------| +| status | string | The status of the API request | +| price | string | The current price of XCH in the specified currency | + +## Get Chia Blockchain Netspace + +This endpoint retrieves the current netspace of the Chia blockchain. + +### Endpoint + +``` +GET https://api.spacescan.io/stats/netspace +``` + +### Parameters + +| Parameter | Type | Description | +|-----------|--------|-------------------------------------------------| +| metrics | string | Required. The unit for netspace (e.g., Eib, Pib, Tib) | +| network | string | Optional. Possible values: `mainnet`, `testnet10` | +| Version | number | Optional. Defaults to 1 | + +### Live API Test + + + 🚀 Test API in Browser + + +### Response + + + +### Response Schema + +| Field | Type | Description | +|----------|--------|-----------------------------------| +| status | string | The status of the API request | +| netspace | string | The current netspace in the specified unit | + +### Notes + +- The `authkey` parameter is no longer required for these endpoints. +- The `network` parameter is optional and defaults to `mainnet`. +- The `Version` parameter is optional and defaults to 1. + +For any additional information or support, please contact our API support team or refer to our comprehensive API documentation. diff --git a/apisidebars.js b/apisidebars.js index 76cf7b1f..bc6cffca 100644 --- a/apisidebars.js +++ b/apisidebars.js @@ -17,34 +17,28 @@ const sidebars = { tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], // But you can create a sidebar manually - - // tutorialSidebar1: [ - // { - // type: 'doc', - // label: 'Intro', - // id: 'intro', - // }, - // { - // type: 'category', - // label: 'Guide', - // items: ['guide/verifyDID','guide/updatecatinfo','guide/verifyDID-ZH','guide/updatecatinfo-ZH'], - // collapsible: true, - // collapsed: false, - // }, - // { - // type: 'link', - // label: 'Twitter', // The link label - // href: 'https://twitter.com/spacescan_io', // The external URL - - // }, - // { - // type: 'link', - // label: 'Discord', // The link label - // href: 'https://discord.gg/Bb4sj3Bg9P', // The external URL - - // }, - // ], - + apiSidebar: [ + 'address', // This replaces 'get-started' + { + type: 'category', + label: 'Address', + items: [ + 'address/balance', + 'address/transactions', + 'address/xch-balance', + 'address/cat-balance', + ], + }, + 'coins', + 'block', + 'cat', + 'data_layer', + 'did', + 'mempool', + 'nft', + 'offers', + 'stats', + ], }; module.exports = sidebars; diff --git a/docusaurus.config.js b/docusaurus.config.js index edf9d414..d14f797b 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -5,30 +5,30 @@ import {themes as prismThemes} from 'prism-react-renderer'; /** @type {import('@docusaurus/types').Config} */ const config = { title: 'Spacescan.io Docs', - tagline: 'Sapcescan- Chia explorer', + tagline: 'Spacescan - Chia explorer', url: 'https://docs.spacescan.io', baseUrl: '/', - onBrokenLinks: 'ignore', - onBrokenMarkdownLinks: 'ignore', + onBrokenLinks: 'throw', + onBrokenMarkdownLinks: 'warn', favicon: 'img/spacescan-logo.png', organizationName: 'Spacescan.io', // Usually your GitHub org/user name. projectName: 'Spacescan.io', // Usually your repo name. presets: [ [ - '@docusaurus/preset-classic', + 'classic', + /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { - sidebarPath: require.resolve('./sidebars.js'), - editUrl: 'https://github.com/spacescan-io/docs', + sidebarPath: './sidebars.js', + editUrl: 'https://github.com/spacescan-io/docs/tree/main/', }, blog: { showReadingTime: true, - editUrl: - 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', + editUrl: 'https://github.com/spacescan-io/docs/tree/main/blog/', }, theme: { - customCss: require.resolve('./src/css/custom.css'), + customCss: './src/css/custom.css', }, }), ], @@ -40,8 +40,7 @@ const config = { id: 'api', path: 'api', routeBasePath: 'api', - sidebarPath: require.resolve('./apisidebars.js'), - // ... other options + sidebarPath: './apisidebars.js', }, ], ], @@ -50,71 +49,54 @@ const config = { locales: ['en', 'zh'], }, themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ + // Navbar config remains the same navbar: { title: 'Spacescan.io', logo: { - alt: 'Spacescan.io', + alt: 'Spacescan.io Logo', src: 'img/spacescan-logo.png', }, items: [ { - type: 'doc', - docId: 'intro', + type: 'docSidebar', + sidebarId: 'tutorialSidebar1', position: 'left', label: 'Docs', }, - // { - // to: 'api/get-started', - // position: 'left', - // label: 'API', - // }, - { to: '/blog', label: 'Blog', position: 'left' }, + {to: '/blog', label: 'Blog', position: 'left'}, { href: 'https://www.spacescan.io/', label: 'Spacescan.io', position: 'left', - },{ + }, + { type: 'dropdown', label: 'Community', position: 'right', - // dropdownItemsAfter: [ - // { - // type: 'html', - // value: '
', - // }, - // ], items: [ { - label: 'Twitter', // The link label - href: 'https://twitter.com/spacescan_io', // The external URL - + label: 'Twitter', + href: 'https://twitter.com/spacescan_io', }, { - label: 'Discord', // The link label - href: 'https://discord.gg/Bb4sj3Bg9P', // The external URL - + label: 'Discord', + href: 'https://discord.gg/Bb4sj3Bg9P', }, - - // ... more items ], - },{ + }, + { type: 'localeDropdown', position: 'right', - // dropdownItemsAfter: [ - // { - // type: 'html', - // value: '
', - // }, - // ], + }, + { + to: '/api/address/balance', + position: 'left', + label: 'API', }, ], }, - docs: { - sidebar: { - hideable: true, - }, - }, footer: { style: 'dark', links: [ @@ -161,6 +143,7 @@ const config = { darkTheme: prismThemes.dracula, }, }), + themes: ['@docusaurus/theme-live-codeblock'], }; -module.exports = config; +export default config; diff --git a/package-lock.json b/package-lock.json index 13192084..c71ac832 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@docusaurus/core": "3.5.2", "@docusaurus/preset-classic": "3.5.2", + "@docusaurus/theme-live-codeblock": "^3.5.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", @@ -2672,6 +2673,30 @@ "react-dom": "^18.0.0" } }, + "node_modules/@docusaurus/theme-live-codeblock": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-3.5.2.tgz", + "integrity": "sha512-/jr+xvmJmvPhZsqUXQ+SGuI38qCb4dR9IZu0e+UA5my4pO63h//Nnf73naTiK3DYeszK+E0dyULPyWszVpjjOw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.5.2", + "@docusaurus/theme-common": "3.5.2", + "@docusaurus/theme-translations": "3.5.2", + "@docusaurus/utils-validation": "3.5.2", + "@philpl/buble": "^0.19.7", + "clsx": "^2.0.0", + "fs-extra": "^11.1.1", + "react-live": "^4.1.6", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, "node_modules/@docusaurus/theme-search-algolia": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz", @@ -2837,6 +2862,50 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -3034,6 +3103,196 @@ "node": ">= 8" } }, + "node_modules/@philpl/buble": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@philpl/buble/-/buble-0.19.7.tgz", + "integrity": "sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA==", + "license": "MIT", + "dependencies": { + "acorn": "^6.1.1", + "acorn-class-fields": "^0.2.1", + "acorn-dynamic-import": "^4.0.0", + "acorn-jsx": "^5.0.1", + "chalk": "^2.4.2", + "magic-string": "^0.25.2", + "minimist": "^1.2.0", + "os-homedir": "^1.0.1", + "regexpu-core": "^4.5.4" + }, + "bin": { + "buble": "bin/buble" + } + }, + "node_modules/@philpl/buble/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@philpl/buble/node_modules/acorn-class-fields": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz", + "integrity": "sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ==", + "license": "MIT", + "engines": { + "node": ">=4.8.2" + }, + "peerDependencies": { + "acorn": "^6.0.0" + } + }, + "node_modules/@philpl/buble/node_modules/acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "deprecated": "This is probably built in to whatever tool you're using. If you still need it... idk", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0" + } + }, + "node_modules/@philpl/buble/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@philpl/buble/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@philpl/buble/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@philpl/buble/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/@philpl/buble/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@philpl/buble/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@philpl/buble/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@philpl/buble/node_modules/regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@philpl/buble/node_modules/regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@philpl/buble/node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "license": "MIT" + }, + "node_modules/@philpl/buble/node_modules/regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@philpl/buble/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4215,6 +4474,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -6768,6 +7033,34 @@ } } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", @@ -8269,6 +8562,21 @@ "node": ">=0.10.0" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -8580,6 +8888,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, "node_modules/markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -10951,6 +11274,15 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -10979,6 +11311,17 @@ "multicast-dns": "cli.js" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -11229,6 +11572,15 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -11347,6 +11699,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -11495,6 +11853,22 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-to-regexp": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", @@ -11526,6 +11900,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", @@ -12591,6 +12974,25 @@ "react": "^16.13.1 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-live": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.7.tgz", + "integrity": "sha512-NTzl0POOAW3dkp7+QL30duOrIu2Vzf2LHdx4TaQ0BqOAtQcSTKEXujfm9jR2VoCHko0oi35PYp38yKQBXz4mrg==", + "license": "MIT", + "dependencies": { + "prism-react-renderer": "^2.0.6", + "sucrase": "^3.31.0", + "use-editable": "^2.3.3" + }, + "engines": { + "node": ">= 0.12.0", + "npm": ">= 2.0.0" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/react-loadable": { "name": "@docusaurus/react-loadable", "version": "6.0.0", @@ -13895,7 +14297,14 @@ "node": ">=0.10.0" } }, - "node_modules/space-separated-tokens": { + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", @@ -14012,6 +14421,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -14076,6 +14506,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -14131,6 +14574,95 @@ "postcss": "^8.4.31" } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14291,6 +14823,27 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -14357,6 +14910,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, "node_modules/tslib": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", @@ -14754,6 +15313,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/use-editable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", + "integrity": "sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA==", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.8.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -15209,6 +15777,44 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", @@ -17109,6 +17715,22 @@ "utility-types": "^3.10.0" } }, + "@docusaurus/theme-live-codeblock": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-live-codeblock/-/theme-live-codeblock-3.5.2.tgz", + "integrity": "sha512-/jr+xvmJmvPhZsqUXQ+SGuI38qCb4dR9IZu0e+UA5my4pO63h//Nnf73naTiK3DYeszK+E0dyULPyWszVpjjOw==", + "requires": { + "@docusaurus/core": "3.5.2", + "@docusaurus/theme-common": "3.5.2", + "@docusaurus/theme-translations": "3.5.2", + "@docusaurus/utils-validation": "3.5.2", + "@philpl/buble": "^0.19.7", + "clsx": "^2.0.0", + "fs-extra": "^11.1.1", + "react-live": "^4.1.6", + "tslib": "^2.6.0" + } + }, "@docusaurus/theme-search-algolia": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz", @@ -17226,6 +17848,34 @@ "@hapi/hoek": "^9.0.0" } }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, "@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -17375,6 +18025,135 @@ "fastq": "^1.6.0" } }, + "@philpl/buble": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@philpl/buble/-/buble-0.19.7.tgz", + "integrity": "sha512-wKTA2DxAGEW+QffRQvOhRQ0VBiYU2h2p8Yc1oBNlqSKws48/8faxqKNIuub0q4iuyTuLwtB8EkwiKwhlfV1PBA==", + "requires": { + "acorn": "^6.1.1", + "acorn-class-fields": "^0.2.1", + "acorn-dynamic-import": "^4.0.0", + "acorn-jsx": "^5.0.1", + "chalk": "^2.4.2", + "magic-string": "^0.25.2", + "minimist": "^1.2.0", + "os-homedir": "^1.0.1", + "regexpu-core": "^4.5.4" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "acorn-class-fields": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/acorn-class-fields/-/acorn-class-fields-0.2.1.tgz", + "integrity": "sha512-US/kqTe0H8M4LN9izoL+eykVAitE68YMuYZ3sHn3i1fjniqR7oQ3SPvuMK/VT1kjOQHrx5Q88b90TtOKgAv2hQ==", + "requires": {} + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "requires": {} + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + }, + "regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "requires": { + "jsesc": "~0.5.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -18265,6 +19044,11 @@ "color-convert": "^2.0.1" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -19905,6 +20689,22 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, "fork-ts-checker-webpack-plugin": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", @@ -20897,6 +21697,15 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -21113,6 +21922,19 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==" }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, "markdown-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", @@ -22380,6 +23202,11 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + }, "mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -22399,6 +23226,16 @@ "thunky": "^1.0.2" } }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -22555,6 +23392,11 @@ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==" + }, "p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -22624,6 +23466,11 @@ "semver": "^7.3.7" } }, + "package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, "param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -22735,6 +23582,15 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + } + }, "path-to-regexp": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", @@ -22755,6 +23611,11 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + }, "pkg-dir": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", @@ -23399,6 +24260,16 @@ "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", "requires": {} }, + "react-live": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/react-live/-/react-live-4.1.7.tgz", + "integrity": "sha512-NTzl0POOAW3dkp7+QL30duOrIu2Vzf2LHdx4TaQ0BqOAtQcSTKEXujfm9jR2VoCHko0oi35PYp38yKQBXz4mrg==", + "requires": { + "prism-react-renderer": "^2.0.6", + "sucrase": "^3.31.0", + "use-editable": "^2.3.3" + } + }, "react-loadable": { "version": "npm:@docusaurus/react-loadable@6.0.0", "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", @@ -24320,6 +25191,11 @@ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", @@ -24410,6 +25286,23 @@ } } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + } + } + }, "stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -24437,6 +25330,14 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -24469,6 +25370,66 @@ "postcss-selector-parser": "^6.0.16" } }, + "sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -24569,6 +25530,22 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -24612,6 +25589,11 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "tslib": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", @@ -24850,6 +25832,12 @@ } } }, + "use-editable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", + "integrity": "sha512-7wVD2JbfAFJ3DK0vITvXBdpd9JAz5BcKAAolsnLBuBn6UDDwBGuCIAGvR3yA2BNKm578vAMVHFCWaOcA+BhhiA==", + "requires": {} + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -25161,6 +26149,33 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 56fcaadf..7973d306 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "dependencies": { "@docusaurus/core": "3.5.2", "@docusaurus/preset-classic": "3.5.2", + "@docusaurus/theme-live-codeblock": "^3.5.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "prism-react-renderer": "^2.3.0", diff --git a/src/components/ApiCallExample.js b/src/components/ApiCallExample.js new file mode 100644 index 00000000..9ec89bb9 --- /dev/null +++ b/src/components/ApiCallExample.js @@ -0,0 +1,43 @@ +import React, { useState, useEffect } from 'react'; +import { LiveProvider, LiveEditor, LiveError, LivePreview } from 'react-live'; + +function ApiCallExample({ endpoint }) { + const [response, setResponse] = useState(null); + const [isLoading, setIsLoading] = useState(false); + + const makeApiCall = async () => { + if (isLoading || response) return; + setIsLoading(true); + try { + const res = await fetch(endpoint); + const data = await res.json(); + setResponse(JSON.stringify(data, null, 2)); + } catch (error) { + setResponse(`Error: ${error.message}`); + } finally { + setIsLoading(false); + } + }; + + useEffect(() => { + makeApiCall(); + }, []); + + return ( +
+ {isLoading ? ( +

Loading API response...

+ ) : response ? ( + + + + + + ) : ( +

Failed to load API response. Please try again later.

+ )} +
+ ); +} + +export default ApiCallExample; diff --git a/src/components/ApiResponseTab.js b/src/components/ApiResponseTab.js new file mode 100644 index 00000000..05ba64cd --- /dev/null +++ b/src/components/ApiResponseTab.js @@ -0,0 +1,19 @@ +import React, { useState } from 'react'; +import TabItem from '@theme/TabItem'; +import ApiCallExample from './ApiCallExample'; + +function ApiResponseTab({ endpoint }) { + const [isActive, setIsActive] = useState(false); + + return ( + + setIsActive(true)} /> + + ); +} + +export default ApiResponseTab;